ChatDev
TL;DR
ChatDev is a multi-agent project from OpenBMB. Version 2.0, called DevAll, is a zero-code platform where agents, tools and human checkpoints are wired together as YAML graphs and run from a Vue web console or a Python SDK. The original virtual software company now lives on a legacy branch. It suits researchers and low-code builders.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | Python |
| License | Apache-2.0 |
| Pricing model | Open source, free |
| Orchestration pattern | Graph |
| GitHub stars | 34,428 (as of 2026-10-01) |
| GitHub forks | 4,314 |
| Last push | 2026-07-24 |
| Latest release | v2.2.0 |
| Repository | OpenBMB/ChatDev |
| Documentation | github.com |
| Last verified | 2026-09-30 |
Key features
- Workflows are YAML files (version, vars, graph) built from agent, python, human, subgraph, passthrough, literal and loop-guard nodes joined by conditional edges. (source)
- Web console with a visual workflow canvas and a Launch view that streams node status, logs and artifacts. (source)
- The engine runs DAGs in parallel layers and handles cycles by grouping strongly connected components into super nodes. (source)
- Edge-level dynamic execution fans a message out to parallel node instances (map) or fans out and reduces (tree). (source)
- Agent nodes use MCP tools from remote HTTP servers (mcp_remote) or local stdio processes (mcp_local). (source)
- Pluggable memory stores declared in YAML: simple (JSON + FAISS), file-backed vector index, append-only blackboard, or Mem0. (source)
- Python SDK function run_workflow executes a YAML workflow and returns the final node message. (source)
- OpenClaw can call or create ChatDev agent teams after installing the chatdev skill. (source)
Architecture and orchestration pattern
Pattern: Graph
ChatDev 2.0 (DevAll) treats a multi-agent system as a graph declared in YAML. Nodes are LLM agents, Python steps, human checkpoints, nested subgraphs or small utility nodes; edges carry messages and can have keyword or other conditions. A FastAPI backend validates the file, creates a session and runs the graph, while a Vue web console and a Python SDK are the two ways to start runs.
Acyclic graphs run by topological sort, with nodes in the same layer executed concurrently. Loops are found with Tarjan's algorithm and wrapped as super nodes so the outer graph stays acyclic; loop-counter and loop-timer nodes bound iterations. Dynamic edges can split a message and run many copies of the target node.
Each run gets its own session folder under WareHouse/ holding attachments, a shared code_workspace/ and context snapshots. Longer-term memory is opt-in: stores declared under memory are attached to agent nodes with read/write rules. The older chat-chain design with CEO, CTO and programmer roles is kept on the chatdev1.0 branch.
Human in the loop
A human node blocks the workflow and shows its description plus the current context in the Launch view; the person types a reply or uploads files, and the text flows to downstream nodes. Combined with a keyword edge condition, this gives review loops (for example, repeat until the reviewer types ACCEPT). Runs can be watched live in the web console. No per-tool-call approval mechanism is documented.
Harnesses it can drive
- OpenClaw (evidence)
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client: agent nodes load MCP tools from remote HTTP servers (mcp_remote) or local stdio servers (mcp_local); the legacy type: mcp schema is dropped. |
| A2A | Unknown | Searched README, docs/user_guide/en, GitHub code search (hits were CSS/lockfile false positives) and issues for a2a / agent2agent; nothing official found. |
| AG-UI | Unknown | Searched README, docs, GitHub code search for ag-ui / agui, and the AG-UI README integration list; ChatDev is not listed. |
Best for
- Building and running multi-agent workflows from YAML and a visual canvas without writing orchestration code.
- Deep-research and data-visualization pipelines using the bundled workflow templates. (shortlist)
- Review loops where a person approves or sends back each draft through the web console.
- Self-hosting the whole stack (backend and web console) with Docker Compose. (shortlist)
Not for
- Teams looking for the original ChatDev 1.0 software-company behaviour on the main branch.
- Environments pinned to Python older than 3.12.
- Developers who want a documented, versioned pip-installable framework API rather than a platform run from a repo checkout.
Quickstart
uv sync # yaml_instance/release_notes.yaml - run it from the Launch tab after `make dev`
version: 0.4.0
vars:
API_KEY: ${API_KEY}
graph:
id: release_notes
description: Draft release notes, then wait for a human to approve
start: [Drafter]
end: [Drafter]
nodes:
- id: Drafter
type: agent
config: {provider: openai, name: gpt-4o, api_key: "${API_KEY}", role: "Write concise release notes from the input."}
- id: Approver
type: human
config: {description: "Type ACCEPT to finish, or give revision notes."}
edges:
- {from: Drafter, to: Approver}
- {from: Approver, to: Drafter, condition: {type: keyword, config: {none: [ACCEPT]}}}
Common pitfalls
uv syncis run inside a clone of the repository; the frontend also needscd frontend && npm install.- Requires Python 3.12+, Node.js 18+ and uv.
- Copy
.env.exampleto.envand setAPI_KEYandBASE_URL; an undefined${VAR}placeholder raises aConfigError. - If the web console cannot reach the backend, port 6400 may be taken; change both
--portandVITE_API_BASE_URL. - MCP tooling must use
mcp_remoteormcp_local; the oldtype: mcpschema is no longer accepted. - An open issue reports the Docker setup failing with
sh: vite: not found.
Pros
- No orchestration code needed: agents, tools, memory and human steps are all declared in YAML and editable on a canvas. (source)
- Loops are first-class: cycle detection and loop-guard nodes allow review-and-revise workflows. (source)
- MCP tools can come from both hosted HTTP servers and local stdio processes. (source)
- Human checkpoints are a node type, so review steps sit anywhere in the graph. (source)
- Workflows can be nested as subgraphs from files or inline definitions. (source)
Cons
- The original ChatDev 1.0 software-company system was moved to the chatdev1.0 branch for maintenance; main is a different product. (source)
- An open issue reports the provider chat path has no request timeout and a protocol TypeError. (source)
- An open issue reports Docker Compose failing with 'sh: vite: not found'. (source)
- There is no documented private security disclosure channel; an open issue asks for one. (source)
- Documentation is Markdown inside the repository; the GitHub homepage link points to the 2023 arXiv paper rather than a docs site. (source)
Alternatives
FAQ
What is ChatDev 2.0 (DevAll)?
The current main branch: a zero-code platform where multi-agent workflows are YAML graphs run through a web console or Python SDK. It replaced the ChatDev 1.0 virtual software company, which now lives on the chatdev1.0 branch.
Does ChatDev support MCP?
Yes, as a client. Agent nodes can use tools from remote HTTP MCP servers (mcp_remote) or local stdio MCP processes (mcp_local). A2A and AG-UI support were not found.
Is ChatDev free?
Yes, the code is Apache-2.0. You pay your model provider. A 2023 README news item mentions a SaaS at chatdev.modelbest.cn, but no pricing for it is documented.
Can a human take part in a ChatDev workflow?
Yes. A human node pauses the run and asks for input in the Launch view; an edge condition can loop back until the person types a keyword such as ACCEPT.
Does ChatDev work with OpenClaw?
The README documents an OpenClaw integration: after installing the chatdev skill, OpenClaw can invoke existing ChatDev agent teams or create new ones through the running ChatDev backend.
Sources
- OpenBMB/ChatDev repository
- ChatDev README (ChatDev 2.0 / DevAll)
- chatdev1.0 legacy branch
- DevAll user guide index
- Workflow authoring guide
- Graph execution logic
- Dynamic execution mode
- Memory module guide
- MCP tooling guide
- Human node
- Subgraph node
- Web UI quick start
- Issue #674: provider layer TypeError and no request timeout
- Issue #663: Docker fails (vite not found)
- Issue #667: request for private security disclosure channel
- ChatDev paper (arXiv 2307.07924)