Loading...

文章背景图

ChatDev 2.0:零代码多智能体编排平台

2026-10-16
0
- 字
- 分钟
|

ChatDev 2.0(DevAll):零代码多智能体编排平台完整中文翻译

一、官方信息表

项目 说明
项目名称 ChatDev 2.0(产品代号 DevAll)
一句话定位 一个用于「开发一切」的零代码多智能体平台(Zero-Code Multi-Agent Platform for Developing Everything)
GitHub 仓库 OpenBMB/ChatDev
旧版本分支 ChatDev 1.0(Legacy)
开发团队 清华大学 THUNLP、OpenBMB、面壁智能(ModelBest)
PyPI 包 chatdev 0.1.0
论文 ChatDev: Communicative Agents for Software Development

二、官方图

ChatDev 2.0 官方封面

三、项目概览与背景

ChatDev 2.0(DevAll)把「零代码」作为核心卖点:用户不需要懂 Python,不需要写编排逻辑,只要在可视化画布里拖拽节点、填参数,就能让一组智能体按你设计的方式协作。它把过去 1.0 时代写死在代码里的「虚拟软件公司」流水线,抽象成了可自由拼装的通用工作流引擎——从写软件扩展到做数据图表、生成 3D 模型、跑深度研究、甚至自动发小红书笔记。

ChatDev 已经从一个专门做软件开发的多智能体系统,演进成了一个综合性的多智能体编排平台。仓库 main 分支上的 ChatDev 2.0(DevAll) 是一个零代码多智能体平台:用户不需要写代码,只通过简单配置就能快速搭建并执行定制化的多智能体系统——在配置里定义好智能体、工作流和任务,就可以编排数据可视化、3D 生成、深度研究等复杂场景。

而 ChatDev 1.0(旧版) 则像一家「虚拟软件公司」:它让 CEO、CTO、程序员等各类智能体参加分工明确的功能研讨会,自动完成设计、编码、测试、文档编写的整个软件开发生命周期,是「可沟通智能体协作」这一范式的奠基之作,目前代码迁移到 chatdev1.0 分支维护。在 1.0 的世界里,CEO 智能体先理解你的一句话需求,CTO 把需求拆成技术方案,程序员智能体据此写代码,测试智能体跑测试并把问题反馈回去,评审智能体再把关质量——整套流程模拟了真实软件公司的部门协作,用户只要输入一句话想法就能得到一个可运行的软件原型。

官方动态:2026 年 1 月 7 日,ChatDev 2.0(DevAll)正式发布,经典版 ChatDev(v1.x)转入维护分支。在此之前,团队还陆续提出了 MacNet(用有向无环图组织上千智能体协作)、IER 迭代经验精炼、经验协同学习、以及登上 NeurIPS 2025 的「puppeteer 中央编排器」范式(用强化学习训练一个可学习的中央调度器,动态激活并排序智能体,既提升推理质量又降低算力成本)。

回顾这条技术演进线:2023 年 7 月 ChatDev 的预印本论文发布,同年 8 月系统对外开放;随后团队在 9 月连续推出 Git 版本控制模式(在 ChatChainConfig.json 里把 git_management 设为 True 即可让程序员智能体用 Git 做版本管理)、Human-Agent-Interaction 人机协同模式(你扮演评审给程序员提建议,用 python3 run.py --task 你的想法描述 --config "Human" 启动)、以及 Art 美术模式(激活设计师智能体生成软件配图,用 --config "Art" 启动);10 月接入 Docker 安全执行;11 月上线增量开发功能(--config "incremental" --path 现有代码目录,让智能体在已有代码上继续开发),并推出 SaaS 平台;12 月发布经验协同学习(Experiential Co-Learning)模块。2024 年 5 月提出 IER 迭代经验精炼——导师与助教两类智能体通过经验的获取、利用、传播与淘汰,在一系列任务中越做越快;6 月又推出 MacNet,用有向无环图让上千个智能体在不超出上下文窗口的前提下协作,覆盖逻辑推理、数据分析、故事生成等软件开发之外的场景。

四、环境要求与安装

4.1 前置环境

  • 操作系统:macOS / Linux / WSL / Windows
  • Python:3.12 及以上
  • Node.js:18 及以上
  • 包管理器:推荐使用 uv 管理 Python 依赖

选择 uv 而不是传统 pip 是因为 ChatDev 2.0 的后端依赖全部由 uv 的锁文件统一管理,uv sync 一条命令就能装好与官方完全一致的依赖版本,避免「在我机器上能跑」这类环境问题。前端则是标准的 Vite + Vue 3 工程,npm install 即可。

4.2 安装步骤

第一步安装后端依赖(Python 由 uv 统一管理):

uv sync

第二步安装前端依赖(Vite + Vue 3):

cd frontend && npm install

4.3 配置环境变量

先复制环境变量模板:

cp .env.example .env

然后在 .env 里为你的大模型供应商填写 API_KEY 和 BASE_URL。配置文件里可以用 ${VAR} 占位符(例如 ${API_KEY})来引用这些环境变量,避免把密钥硬编码进 YAML。

五、部署与运行

5.1 一键启动(推荐)

项目提供 Makefile,一条命令同时拉起后端和前端:

make dev

启动后访问 Web 控制台:http://localhost:5173。这个命令内部会先确保后端依赖已同步,再分别启动 FastAPI 后端和 Vite 前端开发服务器,带热更新,适合日常开发。

5.2 手动分步启动

先启动后端(FastAPI,默认端口 6400):

uv run python server_main.py --port 6400 --reload

其中 --reload 只监听服务器自身的 Python 源码目录,智能体在 WareHouse/ 下生成的文件不会再触发重启;你还可以用 --reload-dir 或 --reload-exclude(可重复传)自定义监听范围。

再启动前端:

cd frontend
VITE_API_BASE_URL=http://localhost:6400 npm run dev

如果前端连不上后端,多半是默认端口 6400 被占用了——把后端换成 --port 6401,前端的 VITE_API_BASE_URL 同步改成 http://localhost:6401 即可。

5.3 常用运维命令

make help          # 查看所有可用命令
make sync          # 把 yaml_instance/ 下所有工作流文件同步到数据库
make validate-yamls # 校验所有 YAML 工作流的语法与 schema

5.4 Docker 部署

也可以用 Docker Compose 一次性跑起整个应用,省去本地依赖管理:先装好 Docker 与 Docker Compose,确认项目根目录有填好 API Key 的 .env,然后:

docker compose up --build

访问地址:后端 http://localhost:6400,前端 http://localhost:5173。容器崩溃会自动重启,本地文件改动也会实时反映到容器内,方便开发。这种方式适合不想在本机装 Python 3.12 和 Node 18 的用户,一条命令就能得到和官方一致的运行环境。

5.5 与 OpenClaw 集成

ChatDev 2.0 可以和 OpenClaw 打通:在 OpenClaw 里调用已有的智能体团队,或在 ChatDev 内部动态创建新团队。步骤是:先启动 ChatDev 2.0 后端,然后在 OpenClaw 实例上安装技能:

clawdhub install chatdev

之后直接用自然语言让 OpenClaw 创建 ChatDev 工作流即可,例如「创建一个 ChatDev 工作流,自动收集热点信息、生成一篇小红书笔记并发布」,或者「创建一个多智能体工作流,模拟中东局势未来可能的发展」。这意味着你可以在日常聊天工具(Telegram、Discord 等)里随口一句话,就触发一整套多智能体流水线跑完信息采集、内容生成和发布的全过程。

六、使用方法

6.1 Web 控制台三大模块

DevAll 的网页界面把「构建」和「执行」两条线做在了一起:

  • Tutorial(教程):平台内置了完整的分步指引和文档,帮助新用户快速上手。
  • Workflow(工作流画布):一个可视化画布,用拖拽方式设计多智能体系统——配置节点参数、定义上下文流向、编排复杂的智能体交互。每个节点代表一个智能体或一个工具调用,连线代表数据和上下文的流向,你不需要写代码就能拼出一条完整的任务流水线。
  • Launch(启动):发起工作流运行、查看实时日志、检查中间产物,并支持人工介入(human-in-the-loop)反馈。运行过程中每一步产出的文件都可以打开查看,遇到偏差随时可以人工纠偏后再继续。

6.2 Python SDK 编程调用

需要自动化或批量处理时,可以用轻量 Python SDK 直接执行工作流:

from runtime.sdk import run_workflow

result = run_workflow(
    yaml_file="yaml_instance/demo.yaml",
    task_prompt="Summarize the attached document in one sentence.",
    attachments=["/path/to/document.pdf"],
    variables={"API_KEY": "sk-xxxx"}
)

if result.final_message:
    print(f"Output: {result.final_message.text_content()}")

这段代码的意思是:指定一个已写好的 YAML 工作流文件,传入任务描述和本地附件,必要时用 variables 临时覆盖 .env 里的环境变量;运行结束后从 result.final_message 取出最终输出。官方已发布 PyPI 包 chatdev,也可以直接在 Python 里跑 YAML 工作流和多智能体任务,安装与版本见 PyPI: chatdev。这种方式特别适合把多智能体流水线嵌进你自己的后台系统,做批量定时任务或流水线触发。

6.3 项目结构(二次开发参考)

项目是模块化组织的:server/ 存放 FastAPI 后端,负责 API、会话与数据库;runtime/ 管理智能体抽象与工具执行,是整个系统的运行时内核;workflow/ 处理多智能体编排逻辑,由 entity/ 下的配置驱动,也就是工作流节点如何连接、上下文如何流转;frontend/ 是 Vue 3 Web 控制台,也就是上面提到的可视化画布;functions/ 是放自定义 Python 工具的地方,你想让智能体调用什么新能力,就往这里加。官方建议二次开发时先读用户指南的入门文档,再按「工作流编写 → 记忆模块 → 工具模块」的顺序深入。

6.4 官方内置工作流合集

所有可直接运行的工作流配置都放在 yaml_instance/ 目录:demo_*.yaml 用于演示特定功能,其余为完整复刻的实战工作流。官方提供的开箱模板包括:

类别 工作流文件 示例提示词
数据可视化 data_visualization_basic.yaml、data_visualization_enhanced.yaml 「为我的大额房地产交易数据集生成 4–6 张高质量 PNG 图表」
3D 生成(需装 Blender 与 blender-mcp) blender_3d_builder_simple.yaml、blender_3d_builder_hub.yaml、blender_scientific_illustration.yaml 「请帮我搭建一棵圣诞树」
游戏开发 GameDev_v1.yaml、ChatDev_v1.yaml 「帮我设计并开发一个坦克大战游戏」
深度研究 deep_research_v1.yaml 「调研基于 LLM 的智能体强化学习领域最新进展」
教学视频 teach_video.yaml(运行前先执行 uv add manim) 「讲一下什么是凸优化」

实际使用时在 Launch 页选择工作流、上传必要文件(例如数据分析用的 .csv),再输入你的需求即可执行。这套模板体系的价值在于:你不需要从零理解多智能体怎么分工,直接挑一个接近的场景改提示词就能跑,跑通后再到 Workflow 画布上微调节点参数和连线。

七、常见问题(FAQ)

问:ChatDev 2.0 和 1.0 是什么关系? 2.0 是全新的零代码多智能体编排平台,1.0 的「虚拟软件公司」模式已迁移到 chatdev1.0 分支继续维护,老用户的 v1.x 项目不受影响。

问:前端打不开 / 连不上后端怎么办? 默认后端端口是 6400,如果被其他程序占用,把后端 --port 换成 6401 之类空闲端口,前端 VITE_API_BASE_URL 同步改掉即可。

问:运行教学视频工作流报错怎么办? teach_video.yaml 依赖 manim 库,运行前先执行 uv add manim 安装。

问:3D 生成工作流需要额外装什么? 需要本机安装 Blender 以及 blender-mcp 桥接。

问:API Key 应该配在哪里? 统一放在项目根目录的 .env 文件里(先 cp .env.example .env),工作流 YAML 里用 ${API_KEY} 引用;Python SDK 里也可以通过 variables 参数临时覆盖。

问:改了 yaml_instance/ 下的工作流,页面里看不到怎么办? 执行 make sync,它会把 yaml_instance/ 下所有工作流文件上传同步到数据库;同步前可以先跑 make validate-yamls 校验一遍语法和 schema,避免脏数据入库。

问:Python SDK 的 result 对象怎么取结果? run_workflow 返回结果对象,最终节点消息在 result.final_message 上,用 text_content() 取出纯文本;附件通过 attachments 参数传入本地文件路径,任务需求用 task_prompt 传入。

问:团队背景和学术支持是怎样的? 项目由清华大学 THUNLP 实验室发起,与面壁智能(ModelBest)等机构合作,累计发表了 ChatDev、经验协同学习、MacNet、iAgents、puppeteer 等多篇 arXiv 论文,其中 puppeteer 工作被 NeurIPS 2025 接收。

问:第一次打开页面应该从哪里下手? 官方建议的顺序是:先在 Tutorial 页过一遍内置教程,再打开 Workflow 画布随便选一个 demo_*.yaml 看看节点是怎么连的,然后切到 Launch 页选一个工作流、上传示例文件、输入提示词跑一遍完整流程,观察实时日志和中间产物,最后再回来改配置。

八、跳转链接

ChatDev 团队欢迎社区贡献:无论是修 bug、新增工作流模板,还是分享你用 DevAll 产出的高质量案例和作品,都可以通过 Issues 或 Pull Request 参与。项目致谢名单包括清华大学 NLP 实验室、面壁智能、AgentVerse、RepoAgent、AppCopilot 等团队。

评论交流

文章目录