ChatDev 简易指导文档

发布于:2025-07-15 ⋅ 阅读:(15) ⋅ 点赞:(0)

概述

ChatDev 是一个由 OpenBMB 开发的开源框架,旨在通过基于大型语言模型(LLM)的多智能体协作实现从自然语言创意到定制化软件的开发。ChatDev 模拟虚拟软件公司,通过不同角色的智能体(如首席执行官、首席技术官、程序员、测试员、设计师等)协作完成设计、编码、测试和文档编写等任务。其目标是提供一个易用、可高度定制和可扩展的框架,用于研究集体智能和自动化软件开发。

安装

环境要求

  • Python 版本:3.9 或更高版本
  • 包管理器:pip
  • 可选:Docker(用于安全代码执行)
  • 操作系统:支持 Windows、Linux 和 macOS

安装步骤

  1. 克隆仓库
    从 GitHub 克隆 ChatDev 仓库:

    git clone https://github.com/OpenBMB/ChatDev.git
    cd ChatDev
    
  2. 创建虚拟环境(推荐)
    为避免依赖冲突,建议创建虚拟环境:

    python -m venv chatdev_env
    source chatdev_env/bin/activate  # Linux/Mac
    chatdev_env\Scripts\activate  # Windows
    
  3. 安装依赖
    安装 ChatDev 所需的 Python 包:

    pip install -r requirements.txt
    

    依赖包括 openaicamel-ai 等,具体见 requirements.txt

  4. 验证安装
    运行以下命令检查环境:

    python3 run.py --help
    

    若显示命令行帮助信息,说明安装成功。

配置

ChatDev 依赖大型语言模型(如 OpenAI 的 GPT-4o)运行,需配置 API 密钥或本地模型。

  1. 设置 OpenAI API 密钥
    将 API 密钥添加到环境变量:

    export OPENAI_API_KEY="your-api-key"
    

    或修改 CompanyConfig/Default/model_config.json 文件:

    {
        "model": "gpt-4o",
        "api_key": "your-api-key"
    }
    
  2. 本地模型支持
    ChatDev 支持本地模型(如 LLaMA、Ollama)。需修改 model_config.json 并安装相应依赖。社区正在完善本地模型集成文档,详情见 Issue #27Issue #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 random

def create_board():
    board = [[0]*4 for _ in range(4)]
    add_new_tile(board)
    add_new_tile(board)
    return board

def 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 查看可视化界面。

常见应用场景

  1. 软件开发
    ChatDev 可生成完整软件,包括代码、测试用例和使用手册。例如,开发 Web 应用、游戏或工具。

  2. 教育与研究
    研究人员可使用 ChatDev 研究多智能体协作和集体智能,定制角色和流程以模拟不同场景。

  3. 快速原型设计
    通过自然语言描述快速生成原型,适合验证创意或教学演示。


网站公告

今日签到

点亮在社区的每一天
去签到