ChatDev 简易指导文档
概述
ChatDev 是一个由 OpenBMB 开发的开源框架,旨在通过基于大型语言模型(LLM)的多智能体协作实现从自然语言创意到定制化软件的开发。ChatDev 模拟虚拟软件公司,通过不同角色的智能体(如首席执行官、首席技术官、程序员、测试员、设计师等)协作完成设计、编码、测试和文档编写等任务。其目标是提供一个易用、可高度定制和可扩展的框架,用于研究集体智能和自动化软件开发。
安装
环境要求
- Python 版本:3.9 或更高版本
- 包管理器:pip
- 可选:Docker(用于安全代码执行)
- 操作系统:支持 Windows、Linux 和 macOS
安装步骤
-
克隆仓库
从 GitHub 克隆 ChatDev 仓库:git clone https://github.com/OpenBMB/ChatDev.git cd ChatDev
-
创建虚拟环境(推荐)
为避免依赖冲突,建议创建虚拟环境:python -m venv chatdev_env source chatdev_env/bin/activate # Linux/Mac chatdev_env\Scripts\activate # Windows
-
安装依赖
安装 ChatDev 所需的 Python 包:pip install -r requirements.txt
依赖包括
openai
、camel-ai
等,具体见 requirements.txt。 -
验证安装
运行以下命令检查环境:python3 run.py --help
若显示命令行帮助信息,说明安装成功。
配置
ChatDev 依赖大型语言模型(如 OpenAI 的 GPT-4o)运行,需配置 API 密钥或本地模型。
-
设置 OpenAI API 密钥
将 API 密钥添加到环境变量:export OPENAI_API_KEY="your-api-key"
或修改
CompanyConfig/Default/model_config.json
文件:{"model": "gpt-4o","api_key": "your-api-key" }
-
本地模型支持
ChatDev 支持本地模型(如 LLaMA、Ollama)。需修改model_config.json
并安装相应依赖。社区正在完善本地模型集成文档,详情见 Issue #27 和 Issue #352。
基本使用
ChatDev 通过多智能体协作完成软件开发任务。以下是一个简单示例,展示如何通过命令行创建软件。
示例:开发 2048 游戏
运行以下命令:
python3 run.py --task "design a 2048 game" --name "2048" --org "THUNLP" --config "Default"
这将在 WareHouse/2048_THUNLP_timestamp
文件夹中生成:
- 2048 游戏相关文件和文档
- 公司配置文件(
CompanyConfig/Default
中的三个 JSON 文件) - 软件构建过程的日志文件(
timestamp.log
) - 初始提示文件(
2048.prompt
)
运行结果
ChatDev 将通过智能体协作生成 2048 游戏的代码、文档和测试用例。例如,生成的代码可能包括:
import randomdef create_board():board = [[0]*4 for _ in range(4)]add_new_tile(board)add_new_tile(board)return boarddef add_new_tile(board):empty_cells = [(i, j) for i in range(4) for j in range(4) if board[i][j] == 0]if empty_cells:i, j = random.choice(empty_cells)board[i][j] = random.choice([2, 4])
高级功能
1. 自定义 ChatChain
ChatDev 允许用户自定义软件开发流程(ChatChain),例如 DemandAnalysis -> Coding -> Testing -> Manual
。配置文件位于 CompanyConfig/Default/ChatChainConfig.json
,可调整阶段、循环次数和是否启用反思。
示例:修改 ChatChainConfig.json
{"phases": ["DemandAnalysis", "Coding", "Testing", "Manual"],"max_turn_step": 10,"git_management": true
}
启用 Git 管理后,程序员智能体将使用 GitHub 进行版本控制。
2. 人机交互模式(HAI)
通过 --config "Human"
启用人机交互模式,允许用户扮演审查员角色,实时提供反馈:
python3 run.py --task "design a tic-tac-toe game" --config "Human"
用户可在开发过程中与智能体交互,澄清需求或提出修改建议。
3. 艺术设计支持
通过 --config "Art"
激活设计师智能体,生成软件所需的图像:
python3 run.py --task "design a chess game with custom graphics" --config "Art"
生成的图像和相关文件存储在 WareHouse
文件夹中。
4. 体验式协同学习
ChatDev 集成了体验式协同学习模块,智能体可从先前任务中学习,提升性能。经验池位于 ecl/memory/MemoryCards.json
。可通过设置 with_memory: true
启用此功能。
5. Docker 支持
为确保代码执行安全,ChatDev 支持 Docker 沙箱环境:
docker run -it --rm -v $(pwd):/app -w /app python:3.9 bash
pip install -r requirements.txt
python3 run.py --task "design a calculator app" --config "Default"
Docker 隔离不可信代码,防止本地系统受损。
6. Web 可视化
ChatDev 提供本地 Web 可视化工具,显示实时日志、回放日志和 ChatChain 流程:
python3 visualizer/app.py
访问 http://localhost:5000
查看可视化界面。
常见应用场景
-
软件开发
ChatDev 可生成完整软件,包括代码、测试用例和使用手册。例如,开发 Web 应用、游戏或工具。 -
教育与研究
研究人员可使用 ChatDev 研究多智能体协作和集体智能,定制角色和流程以模拟不同场景。 -
快速原型设计
通过自然语言描述快速生成原型,适合验证创意或教学演示。