Turn plain‑English requirements into fully‑configured multi‑agent AI teams (CrewAI, LangGraph, ReAct, WatsonX Orchestrate).
Project description
🔧 agent‑generator
From one plain‑English sentence to a production‑ready multi‑agent workflow.
✨ Why agent‑generator?
Designing multi‑agent systems is powerful yet verbose—boilerplate, framework quirks, deployment plumbing.
agent‑generator turns intent (“I need an AI team that …”) into runnable artefacts:
| Output | Where it runs |
|---|---|
| Python scripts for CrewAI, CrewAI Flow, LangGraph, ReAct | Any Python 3.9+ environment |
| YAML skill for WatsonX Orchestrate | IBM WatsonX Orchestrate |
| FastAPI MCP server (wrapper) | MCP Gateway / Kubernetes |
| JSON spec + Mermaid/DOT | Docs, audits, architecture diagrams |
🚀 Features
| Category | Details |
|---|---|
| Multi‑framework | WatsonX Orchestrate · CrewAI · CrewAI Flow · LangGraph · ReAct |
| Provider‑agnostic | IBM WatsonX (default) · OpenAI (extra) |
| MCP integration | Python outputs include a FastAPI /invoke endpoint ready for MCP Gateway registration |
| Web UI (Flask) | Form‑based generator with live diagram preview & code download |
| Cost estimator | Token counts & USD approximation before you run the prompt |
| Pluggable | Add providers / frameworks via a single subclass & registry |
| Typed models | Pydantic schemas for Agents · Tasks · Workflow |
| CI / CD | Ruff · Mypy · Pytest in GitHub Actions + automatic PyPI publish |
| Docker‑ready | Alpine image with Gunicorn server |
📦 Installation
# Core (WatsonX only)
pip install agent-generator
# + OpenAI provider
pip install "agent-generator[openai]"
# + Flask Web UI and dev tools
pip install "agent-generator[dev,web]"
Requires Python ≥ 3.9.
⚡ Quick Start
1 Export WatsonX credentials (or put them in .env)
export WATSONX_API_KEY=...
export WATSONX_PROJECT_ID=...
export WATSONX_URL=https://us-south.ml.cloud.ibm.com
export AGENTGEN_PROVIDER=watsonx
2 Generate a WatsonX Orchestrate YAML skill
agent-generator "I need a research assistant that summarises papers" --framework watsonx_orchestrate
or
agent-generator \
"I need a research assistant that summarises papers" \
--framework watsonx_orchestrate \
--output research_assistant.yaml
You will get
✓ Written to research_assistant.yaml
Import the resulting research_assistant.yaml via:
orchestrate agents import -f research_assistant.yaml
3 Generate a CrewAI Python skill with MCP wrapper
agent-generator \
"I need a research assistant that summarises papers" \
--framework crewai
or
agent-generator \
"I need a research assistant that summarises papers" \
--framework crewai --mcp \
--output research_team.py
✓ Written to research_team.py
4 Run the Python skill locally
python research_team.py # one‑off execution
python research_team.py serve # FastAPI /invoke on :8080
🖥 CLI Reference
agent-generator [OPTIONS] "requirement sentence"
| Option / Flag | Default | Description |
|---|---|---|
-f, --framework * |
— | watsonx_orchestrate · crewai · crewai_flow · langgraph · react |
-p, --provider |
watsonx | watsonx (default) | openai |
--model |
provider default | Override LLM model |
--mcp / --no-mcp |
off | Append FastAPI MCP wrapper (Python only) |
-o, --output PATH |
stdout | Write artefact to file |
--dry-run |
Build spec & code skeleton, no LLM calls | |
--show-cost |
Print token usage + USD estimate |
See the full Usage guide for examples.
🌐 Web UI
FLASK_APP=agent_generator.web FLASK_ENV=development flask run
Navigate to http://localhost:5000 → fill the form → generate → download code/YAML.
Deployed via Docker:
docker build -t agent-genenerator .
docker run -e WATSONX_API_KEY=... -p 8000:8000 agent-genenerator
🛠 Extending
- New provider → subclass
BaseProvider, register inproviders/__init__.py. - New framework → subclass
BaseFrameworkGenerator, register inframeworks/__init__.py. The MCP wrapper is added automatically for any Python output.
🧑💻 Development
git clone https://github.com/ruslanmv/agent-generator.git
cd agent-generator
pip install -e ".[dev,web,openai]"
pre-commit install
make lint test
mkdocs serve # live docs
Documentation
https://ruslanmv.com/agent-generator/
🗺️ Roadmap
- Azure OpenAI provider
- MCP Gateway dashboard helper
- VS Code “Generate agent” command
- Real‑time collaborative flow editor
📄 License
Apache License, Version 2.0 © 2025 Ruslan M. V. – contributions are welcome, PRs + issues encouraged!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_generator-0.1.2.tar.gz.
File metadata
- Download URL: agent_generator-0.1.2.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d206e8d592d802a1e973ffb549e6bf22a8fccf8d4d0f6f1020da6933af166e6c
|
|
| MD5 |
558f6074455e0007259734508c78e41d
|
|
| BLAKE2b-256 |
dbfcf43ad28242fe1d2d29a595243833dcc132f1d41d4989bc09bae4f3de9e5f
|
Provenance
The following attestation bundles were made for agent_generator-0.1.2.tar.gz:
Publisher:
release.yml on ruslanmv/agent-generator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_generator-0.1.2.tar.gz -
Subject digest:
d206e8d592d802a1e973ffb549e6bf22a8fccf8d4d0f6f1020da6933af166e6c - Sigstore transparency entry: 305534608
- Sigstore integration time:
-
Permalink:
ruslanmv/agent-generator@3636093f98d6be1165716a58e65a9fe6bddc6160 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/ruslanmv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3636093f98d6be1165716a58e65a9fe6bddc6160 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agent_generator-0.1.2-py3-none-any.whl.
File metadata
- Download URL: agent_generator-0.1.2-py3-none-any.whl
- Upload date:
- Size: 43.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03f9335bd152f40fccedb6f7155adf72002244797cff481a58a9513d4ca45fd1
|
|
| MD5 |
759b8359b50ee270026ff557274f55f2
|
|
| BLAKE2b-256 |
238ddb0988c69be987da83e70ba16ec2fa649df556edaf4aeb6e61fedf42d232
|
Provenance
The following attestation bundles were made for agent_generator-0.1.2-py3-none-any.whl:
Publisher:
release.yml on ruslanmv/agent-generator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_generator-0.1.2-py3-none-any.whl -
Subject digest:
03f9335bd152f40fccedb6f7155adf72002244797cff481a58a9513d4ca45fd1 - Sigstore transparency entry: 305534616
- Sigstore integration time:
-
Permalink:
ruslanmv/agent-generator@3636093f98d6be1165716a58e65a9fe6bddc6160 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/ruslanmv
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3636093f98d6be1165716a58e65a9fe6bddc6160 -
Trigger Event:
release
-
Statement type: