多 Agent 协作代码生成系统 — 让 AI 像真实团队一样写代码
单个 LLM 生成代码时,往往"一次性出活"——能跑但质量参差不齐。就像一个人既要写代码又要审查又要测试,很难兼顾。
Multi-Agent Code Studio 将代码生成流程拆分为四个专业角色,模拟真实软件团队的协作模式:
┌─────────────────────────────────────────────────────────────┐
│ Orchestrator │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ ✍️ Writer │──▶│ 🔍 Reviewer│──▶│ 🧪 Tester │──▶│ 🔧 Refiner │ │
│ │ 生成代码 │ │ 审查代码 │ │ 验证代码 │ │ 优化代码 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ▲ │ │
│ └──────────────── 反馈循环 ◀────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- Writer — 专注于实现功能,生成初始代码
- Reviewer — 以"挑刺"视角审查安全/性能/风格问题
- Tester — 自动生成测试用例,用事实验证正确性
- Refiner — 综合反馈,针对性优化
pip install -r requirements.txt
export OPENAI_API_KEY="sk-xxx"
# 交互模式
python main.py
# 直接指定需求
python main.py --task "实现一个 LRU 缓存,支持 get 和 put 操作"
# 指定模型和迭代次数
python main.py --task "..." --model gpt-4o --max-iterations 3🎭 Multi-Agent Code Studio
📋 需求: 实现一个 LRU 缓存,支持 get 和 put 操作
━━━ 第 1 轮 ━━━
✍️ Writer 生成初始代码...
🔍 Reviewer 审查中...
🟡 L8: 使用 list.remove() 效率较低,建议改用 OrderedDict
🔵 L15: 建议添加类型注解
🧪 Tester 生成测试用例...
✅ 通过 4/5 个测试
❌ 测试用例 5: 并发场景下缓存淘汰顺序错误
🔧 Refiner 优化中...
━━━ 第 2 轮 ━━━
🔍 Reviewer 审查中...
✅ 代码质量良好,未发现问题
🧪 Tester 执行测试...
✅ 通过 5/5 个测试
✨ 完成!共迭代 2 轮
multi-agent-code-studio/
├── main.py # CLI 入口
├── agents/
│ ├── base.py # Agent 基类(定义统一接口)
│ ├── writer.py # 代码生成 Agent
│ ├── reviewer.py # 代码审查 Agent
│ ├── tester.py # 测试 Agent
│ └── refiner.py # 优化 Agent
├── core/
│ ├── orchestrator.py # 编排器(核心逻辑)
│ ├── llm.py # LLM 调用封装
│ └── sandbox.py # 代码安全执行沙箱
├── prompts/
│ └── templates.py # Prompt 模板
└── requirements.txt
| 参数 | 默认值 | 说明 |
|---|---|---|
--model |
gpt-4o | 使用的模型 |
--max-iterations |
3 | 最大迭代轮数 |
--quality |
0.8 | 质量阈值(测试通过率) |
| 角色 | 职责 | 类比 |
|---|---|---|
| Writer | 生成代码 | 初级开发 |
| Reviewer | 审查代码 | Tech Lead |
| Tester | 验证代码 | QA 工程师 |
| Refiner | 优化代码 | 高级开发 |
通过分工协作,每个角色专注于自己的职责,最终产出的代码质量显著高于单次生成。
MIT — 详见 LICENSE