CAMEL
TL;DR
CAMEL is an Apache-2.0 Python framework from the CAMEL-AI research community for building groups of LLM agents. It offers two-agent role-playing sessions, a Workforce that splits tasks across worker agents, synthetic data generators and MCP tooling. It suits researchers studying agent societies or generating training data, and Python teams building task-splitting agent teams.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | Python |
| License | Apache-2.0 |
| Pricing model | Open source, free |
| Orchestration pattern | Supervisor |
| GitHub stars | 17,799 (as of 2026-10-01) |
| GitHub forks | 2,102 |
| Last push | 2026-09-30 |
| Latest release | v0.2.90 |
| Repository | camel-ai/camel |
| Website | www.camel-ai.org |
| Documentation | docs.camel-ai.org |
| Last verified | 2026-09-30 |
Key features
- Workforce: a task agent breaks a job into subtasks, a coordinator agent assigns them to worker nodes by description, and finished results feed later subtasks as dependencies. (source)
- RolePlaying society: an AI user and an AI assistant work a task in strict turns, with optional task-specifier, planner and critic agents. (source)
- MCPToolkit connects agents to MCP servers listed in a JSON config, over stdio or remote transports. (source)
- A ChatAgent can be exposed as an MCP server with to_mcp() or the scripts in the services/ folder. (source)
- Memory classes for chat history, vector-store recall, and LongtermAgentMemory that combines the two under a token-limited context creator. (source)
- Data generation modules for chain-of-thought, Self-Instruct, Source2Synth and self-improving CoT datasets. (source)
- Model backends include hosted APIs and local runtimes such as Ollama, vLLM, SGLang and LM Studio. (source)
Architecture and orchestration pattern
Pattern: Supervisor
CAMEL has two multi-agent modes. RolePlaying pairs an AI user, who issues instructions, with an AI assistant, who answers them; turns alternate strictly and built-in prompt rules stop the two from swapping roles. Optional agents can refine the task first, plan it, or critique each assistant reply.
Workforce is the larger orchestration engine. It holds a list of child nodes (SingleAgentWorker wraps one ChatAgent, RolePlayingWorker wraps a role-playing pair, and Workforce itself subclasses the same BaseNode). A task agent decomposes the incoming Task, a coordinator agent picks a worker for each subtask, ready subtasks run in parallel, and each result is stored so dependent subtasks can use it. When a subtask fails, the workforce chooses between retrying, replanning and decomposing again.
State sits in each agent's memory object (chat history, vector store, or both). Setting share_memory=True on a Workforce lets its single-agent workers share memory, and the storages module provides key-value and vector backends for persistence.
Human in the loop
The Workforce guide shows human involvement through HumanToolkit: attach its tools (for example ask_human_via_console) to the coordinator, task agent or workers, and an agent pauses to ask a person when it decides to call that tool. A separate cookbook uses the external HumanLayer SDK (API key required) to make chosen tools wait for human approval. In the source, the Workforce class also has pause(), resume(), stop_gracefully(), add_task() and methods that list pending tasks for review. No approval gate is enabled by default.
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client and server: MCPToolkit loads tools from MCP servers into agents, and a separate docs page shows ChatAgent.to_mcp() exposing an agent as an MCP server. |
| A2A | Unknown | Not in README or docs index; GitHub code search found no A2A code. An open feature request (#2788) and unmerged PRs (#2889, #3768) propose A2A workers. |
| AG-UI | Unknown | Searched README, docs llms.txt, GitHub code and issues for ag-ui / ag_ui, and the AG-UI README integration list; CAMEL is not listed and nothing was found. |
Best for
- Task-splitting research teams such as a searcher, analyst and writer run by one Workforce, as in the official example. (shortlist)
- Academic work on agent societies and role-playing dialogues, the use the project started from.
- Generating synthetic instruction, chain-of-thought or multi-hop QA data with agents.
- Running agents on local models through Ollama, vLLM, SGLang or LM Studio backends. (shortlist)
Not for
- Teams that need a TypeScript, Java or .NET SDK.
- Projects that need a stable 1.x API; the package is still 0.2.x and recent tags are alpha pre-releases.
- Anyone looking for a hosted, managed agent service; CAMEL is a library you run yourself.
Quickstart
pip install camel-ai from camel.agents import ChatAgent
from camel.societies.workforce import Workforce
from camel.tasks import Task
from camel.toolkits import SearchToolkit
# Default backend is OpenAI: export OPENAI_API_KEY first.
searcher = ChatAgent(
"You search the web and report short findings with links.",
tools=[SearchToolkit().search_duckduckgo],
)
writer = ChatAgent("You turn research notes into a five-sentence summary.")
team = Workforce("Mini research team")
team.add_single_agent_worker("Searches the web for facts", worker=searcher)
team.add_single_agent_worker("Writes the final summary", worker=writer)
done = team.process_task(Task(content="Explain what CAMEL's RolePlaying society does.", id="0"))
print(done.result)
Common pitfalls
- Requires Python >=3.10 and <=3.14. On Python 3.13+, the
unstructuredandpyobvectordependencies are unavailable, so features that need them only work on 3.10-3.12. - The base package is minimal; the DuckDuckGo search tool needs
pip install 'camel-ai[web_tools]', andcamel-ai[all]pulls every extra. - With no model given, agents use the default platform (OpenAI) and need
OPENAI_API_KEY; other providers need their own keys. - Tags after v0.2.90 are alpha pre-releases (0.2.91aN); pip installs pre-releases only with
--preor an exact version pin.
Pros
- Two multi-agent modes in one package: turn-based RolePlaying pairs and task-splitting Workforce teams. (source)
- MCP works in both directions: agents consume MCP tools and can be published as MCP servers. (source)
- Workforce has documented failure handling (retry, replan, re-decompose) instead of stopping at the first failed subtask. (source)
- Local model runtimes (Ollama, vLLM, SGLang, LM Studio) are listed next to hosted providers. (source)
- Built-in synthetic data pipelines (CoT, Self-Instruct, Source2Synth) that most agent frameworks do not ship. (source)
Cons
- Still pre-1.0: the latest stable tag is v0.2.90 and later tags are alpha pre-releases (v0.2.91a7 in September 2026). (source)
- No A2A support yet; importing A2A agents as workers is an open feature request. (source)
- An open bug report says Workforce does not work with Mistral AI models plus tools (open since February 2025). (source)
- An open, untriaged security report says MCP servers created by CAMEL have no authentication. (source)
- Some optional dependencies do not install on Python 3.13+, per the installation guide. (source)
Alternatives
FAQ
Does CAMEL support MCP?
Yes. MCPToolkit loads tools from MCP servers into CAMEL agents, and ChatAgent.to_mcp() exposes an agent as an MCP server. A2A and AG-UI support were not found; A2A is an open feature request.
Is CAMEL free?
The framework is Apache-2.0 licensed and has no paid tier of its own; you pay only for the model APIs you call. The README lists Eigent as a separate product built on CAMEL, which this record does not cover.
What language is CAMEL written in?
Python. The installation guide supports Python 3.10 through 3.14, with some optional extras limited to 3.10-3.12.
What is the difference between RolePlaying and Workforce in CAMEL?
RolePlaying runs two agents (an AI user and an AI assistant) in strict turns on one task. Workforce decomposes a task, assigns subtasks to several workers through a coordinator agent, runs them in parallel and recovers from failures.
Can a person step into a CAMEL Workforce run?
Yes, if you give agents HumanToolkit tools they can ask a person for input; the Workforce class also has pause, resume and add_task methods. Tool approval gates need the external HumanLayer SDK shown in a cookbook.
Sources
- CAMEL GitHub repository (README)
- CAMEL documentation
- Installation
- Workforce
- Societies (RolePlaying)
- CAMEL agents as an MCP client
- CAMEL agent as an MCP server
- Memory
- Data generation
- Models
- Cookbook: human-in-the-loop and tool approval with HumanLayer
- Workforce source (pause, resume, add_task)
- Official example: multiple single-agent workers
- Releases
- Issue #2788: A2A agent workers (feature request)
- Issue #1669: Workforce with Mistral AI and tools
- Issue #4351: MCP servers without authentication