Zigha08/ai-coding-team
GitHub: Zigha08/ai-coding-team
基于多智能体协作的全流程 AI 编程框架,通过编排、编码、审查、安全审核的角色分工与迭代机制实现从需求拆解到代码交付的自动化。
Stars: 0 | Forks: 0
# AI 编程团队
用于自动化编程的多代理团队,工作流程如下:
**Orchestrator → [Coder → Reviewer → Fixer → Reviewer] (按步骤) → Security Pass**
## 架构
- **Orchestrator** – 将需求拆解为步骤列表 + 专家角色(`backend` / `frontend` / `general`)。
- **Specialist Coder** – 根据每个角色的系统 prompt 编写代码。
- **Reviewer** – 循环审查每个步骤,直到获得批准或达到迭代上限。
- **Security Reviewer** – 在最后审核所有合并的代码(仅提供报告,不进行自动修复)。
## 设置
```
pip install openai python-dotenv
cp .env.example .env
# 编辑 .env,填写 NARAYA_API_KEY
python team.py
```
## 环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
| `NARAYA_API_KEY` | (必填) | API key router.naraya.ai |
| `REQUEST_TIMEOUT` | `60` | 每个 LLM 请求的超时时间(秒) |
| `MAX_TOKENS` | `8192` | 每次响应的 token 限制 |
| `MAX_RETRIES` | `3` | 针对临时性错误的自动重试 |
| `SECURITY_CHUNK_CHARS` | `12000` | security pass 的分块阈值 |
| `LOG_FILE` | (空) | 可选的日志文件路径 |
## 已实施的加固措施
- ✅ 在启动时验证 `NARAYA_API_KEY`(fail-fast)
- ✅ 在每次调用 LLM 时设置 `timeout` + `max_tokens`
- ✅ 针对临时性错误(超时、速率限制、5xx)使用 exponential backoff 进行自动重试。4xx 错误不进行重试。
- ✅ 嵌套 JSON 解析:strip code-fence → `json.loads` → 轻度修复(smart-quote、trailing comma、注释) → fallback
- ✅ 对 reviewer 和 security 的 JSON 输出进行类型检查(保守策略:未定义 → `approved=False` / `risk_level=unknown`)
- ✅ 当代码 > 12k 字符时,为 security pass 进行分块(先进行分块摘要,然后进行整体集成审核)
- ✅ 针对 `.env` 和日志的 `.gitignore`
- ✅ 在 SDK 中设置 `max_retries=0`,手动处理重试以确保可预测性
## 基于角色的模型配置
编辑 `team.py` 中的 `MODEL_BY_ROLE`,以便为不同角色使用不同的模型(例如:为 orchestrator/security 使用更大的模型,为 coder 使用更小的模型):
```
MODEL_BY_ROLE = {
"orchestrator": "nousresearch/hermes-3-llama-3.1-405b",
"backend": "model-kecil",
"frontend": "model-kecil",
"general": "model-kecil",
"reviewer": "model-sedang",
"security": "nousresearch/hermes-3-llama-3.1-405b",
}
```
## 限制(刻意为之,需知悉)
- Security pass 仅提供报告;不进行自动修复。发现的问题需要人工跟进处理。
- 每个步骤的迭代次数上限(默认为 3)。即使代码“未批准”,在下一步骤中仍会被继续使用。
- 步骤之间没有并行机制(串行执行),以保持模块间的上下文依赖。
- 如果 LLM 输出确实无法解析为 JSON,orchestrator 将 fallback 到 1 个 `general` 步骤并使用原始任务。
## 关于我
由 [Ghazi Abid Al Azzam (@Zigha08)](https://github.com/Zigha08) 构建。
作品集:[zigha08.github.io](https://zigha08.github.io/)
标签:AI, AI编程, C2, OpenAI, Petitpotam, Python, 内存规避, 多智能体, 无后门, 自动化代码审查, 逆向工具