ChatDev 2.0 (DevAll) 项目介绍
ChatDev 2.0 (DevAll) 项目介绍
项目定位
ChatDev 2.0 是一个零代码多智能体编排平台——用户无需编写代码,通过 YAML 声明式配置即可构建和执行定制化的多 Agent 系统,覆盖从软件开发到数据可视化、3D 生成、深度调研等多种场景。
它从 ChatDev 1.0 的”虚拟软件公司”隐喻(CEO、CTO、程序员协作)演进为通用的图编排引擎,将 Agent 协作抽象为有向图的节点与边。
核心能力
| 能力 | 说明 |
|---|---|
| YAML 声明式编排 | 以 YAML 定义 Agent 节点、记忆、工具、边条件与处理器,系统自动解析并执行图 |
| 多节点类型 | 支持 agent(LLM Agent)、human(人工介入)、python(脚本执行)、subgraph(子图嵌套)、passthrough、literal、loop_counter 七种节点 |
| 图拓扑自适应 | 自动检测环(Tarjan 算法),区分 DAG / 含环图 / 多数投票三种拓扑,应用不同执行策略 |
| 动态边扩展 | Map/Tree 两种动态模式,在运行时将目标节点按正则/JSONPath 分裂为多个并行实例 |
| 多记忆类型 | SimpleMemory(向量检索)、FileMemory(文件索引)、BlackboardMemory(共享黑板)、Mem0Memory(外部记忆服务) |
| Thinking / 反思 | 生成前/后两阶段思考,内置 Self-Reflection 实现,支持自定义 Prompt |
| MCP 协议集成 | 原生支持 MCP Remote(HTTP SSE)和 MCP Local(Stdio)两种工具接入方式 |
| 多模型 Provider | 通过 Provider Registry 抽象层支持 OpenAI、Gemini 等多模型,可插拔扩展 |
| WebSocket 实时流 | 前后端通过 WebSocket 传递工作流执行事件,支持前端可视化图编辑与实时进度查看 |
| 多数投票模式 | is_majority_voting: true 启用多 Agent 并行投票,自动聚合多数结果 |
技术栈
| 层级 | 技术选型 |
|---|---|
| 后端 | Python 3.12+,FastAPI + Uvicorn,uv 包管理 |
| 前端 | Vue 3 + Vite,@vue-flow 图可视化组件 |
| 图编排 | 自研 GraphExecutor + 策略模式(DAG / Cycle / MajorityVote) |
| 向量检索 | FAISS + OpenAI / 自定义 Embedding |
| 通信协议 | REST API + WebSocket 实时事件流 + MCP(Remote / Local) |
| 工具系统 | 函数调用(Function Calling)+ MCP Server 集成 |
| 依赖管理 | tenacity(重试),pydantic(配置校验),pyyaml(YAML 解析) |
架构概览
快速体验
# 1. 克隆项目git clone https://github.com/OpenBMB/ChatDev.gitcd ChatDev
# 2. 安装后端依赖uv sync
# 3. 安装前端依赖cd frontend && npm install && cd ..
# 4. 配置环境变量cp .env.example .env# 编辑 .env 设置 API_KEY 和 BASE_URL
# 5. 启动开发服务器(前后端同时)make dev启动后访问 http://localhost:5173 打开 Web Console,选择内置的 YAML 工作流模板(如 ChatDev_v1.yaml、deep_research_v1.yaml)输入任务即可运行。
也可通过 Python SDK 直接调用:
from runtime.sdk import run_workflow
result = run_workflow( "yaml_instance/ChatDev_v1.yaml", task_prompt="开发一个五子棋游戏",)print(result.final_message.text_content())教程导读
本教程分为 AI 应用通用知识 和 编程核心技术 两条线索:
AI 应用通用知识 (ai/)
从 ChatDev 源码中抽象出的 AI 工程通用知识,包括:
| 章节 | 知识点 | 与 common 的关系 |
|---|---|---|
| 01 | YAML 驱动的声明式 Agent 编排 | 首次覆盖 → common/yaml-agent-orchestration/ |
| 02 | 多 Agent 图拓扑与执行策略 | 补充 → common/multi-agent/ 已有编排模式,补充 Tarjan 环检测与策略切换 |
| 03 | Agent 记忆系统的多存储实现 | 引用 → common/memory-system/ 已有通用原理,聚焦 ChatDev 的具体实现 |
| 04 | Thinking / 反思在 Agent 循环中的集成 | 补充 → common/agent-design/ 已有核心循环,补充生成前/后思考模式 |
| 05 | MCP 协议在工具层的集成方案 | 引用 → common/mcp/ 已有协议定义,聚焦 ChatDev 的 ToolManager 实现 |
| 06 | 动态边 Map/Tree 运行时分裂 | 首次覆盖 → common/dynamic-agent-execution/ |
编程核心技术 (dev/)
聚焦 ChatDev 的工程实践与架构决策:
| 章节 | 主题 |
|---|---|
| 01 | YAML Schema 设计与配置校验体系 |
| 02 | 图执行器与策略模式(DAG / Cycle / MajorityVote) |
| 03 | 动态边执行器:Map/Tree 分裂与并行调度 |
| 04 | 边条件与处理器:条件评估 + 正则/函数变换 |
| 05 | Agent 节点执行器:Provider 抽象 + 工具调用 + 重试机制 |
| 06 | FastAPI + WebSocket 实时事件流架构 |
| 07 | Vue Flow 前端图编辑器与 YAML 双向同步 |
| 08 | 项目构建、部署与 Docker 安全执行 |