> Planner-Generator-Evaluator 三代理架构 + Sprint Contract 协商 + 对抗性评估。
> 核心原则:复杂任务的问题不是 AI 不够聪明,而是上下文污染和自我评估偏差。
自动触发:
不触发:
首次进入框架时,在项目根目录创建:
mkdir -p .auto-agent
需要 5 个核心文件:
项目/.auto-agent/
├── tasks.json # 任务清单(单一事实来源)
├── progress.md # 进度日志 + 决策记录
├── handoff.md # 会话间交接工件
├── sprint-contract.md # 当前任务 Generator-Evaluator 契约
└── review-checklist.md # 项目特定的审查标准
可选辅助目录:
├── scripts/ # 自动化执行脚本(无人值守模式)
│ ├── run-task.ps1 # 执行单个任务
│ └── run-agent.ps1 # 持续执行多个任务
└── templates/ # 项目特定的代码模板
└── system-template.txt # 新模块的起手式骨架
每个任务开始前,必须先协商契约并写入 sprint-contract.md。
契约必须包含:
passes: true编译检查 / 运行测试 / 手动验证 / 自动化测试示例:
目标: 实现用户登录 API 调用及 Token 持久化
验收标准:
1. 输入用户名密码后,2 秒内 POST 请求发送到 /api/login
2. 成功后 token 加密存储到本地,UI 切换到主页
3. 失败后弹窗显示服务端返回的错误信息
4. 网络超时 10 秒后显示"网络异常,请重试"
涉及文件:
- src/services/ApiClient.ts
- src/systems/LoginSystem.ts
- src/ui/LoginPanel.tsx
测试方式: 编译检查 + 手动验证登录流程 + 模拟网络超时
| 角色 | 对应阶段 | 职责 | 约束 |
|---|---|---|---|
| ------ | --------- | ------ | ------ |
| Planner | Plan + Explore | 拆解任务、分析架构、识别复用 | 只做规划,不写实现代码 |
| Generator | Implement + Test | 编码实现、自评估、修复 | 不能评估自己的代码 |
| Evaluator | Review | 独立验收、多维度评分 | 禁止看 Generator 实现思路 |
为什么必须分离:
progress.md 中的实现说明tasks.json 的 dependencies 字段记录acceptance_criteria、steps、critical_filesestimated_complexity:low / medium / high,决定 Evaluator 严格程度| 维度 | Hard Threshold | 权重参考 |
|---|---|---|
| ------ | --------------- | --------- |
| 功能正确性 | ≥ 4 / 5 | 40% |
| 架构合规 | ≥ 3 / 5 | 25% |
| 代码质量 | ≥ 3 / 5 | 20% |
| 复用性 | ≥ 3 / 5 | 15% |
任一维度低于 hard threshold → 退回 Generator 修复 → 进入下一轮迭代。
典型迭代 2-4 轮,超过 3 轮仍未通过 → 升级为 blocked。
| 级别 | Evaluator 模式 | 典型场景 |
|---|---|---|
| ------ | --------------- | --------- |
| low | 简化:编译检查 + 功能点验证 | 单文件修复、配置修改 |
| medium | 完整:四维度评分 + 代码审查 | 新功能、跨 2-3 文件 |
| high | 完整 + 运行测试 + 边界探索 | 新系统、大型重构 |
Plan → Explore → Implement → Test → Review
↑ │
└────────── 未通过,退回重来 ─────────┘
角色:Planner
tasks.jsonsprint-contract.mddependenciesprogress.md 记录决策角色:Planner
progress.md角色:Generator
tasks.json 的 steps 顺序实现progress.md角色:Generator
角色:Evaluator
Evaluator 必须首先声明:
> "切换为 Evaluator 角色。以下是仅基于代码文件和 Sprint Contract 的独立评估,未受 Generator 实现思路影响。"
tasks.json 中 passes: true,status: completed按序读取恢复上下文:
tasks.json → 当前所有任务状态progress.md → 最新进度和决策记录handoff.md(如存在)→ 上次会话交接状态连续 3 轮迭代未通过 → status: blocked:
progress.md 中记录完整阻塞原因🚫 任务阻塞 - 需要人工介入
当前任务: TASK-001 - 任务标题
阻塞原因: [具体原因]
已完成: [已完成内容]
解除后: [具体步骤]
passes 设为 true{
"id": "TASK-001",
"title": "简短标题",
"description": "详细描述",
"status": "planned | in_progress | completed | blocked",
"phase": "Plan | Explore | Implement | Test | Review",
"passes": false,
"acceptance_criteria": ["可验证标准1", "可验证标准2"],
"steps": ["具体步骤1", "具体步骤2"],
"dependencies": ["TASK-000"],
"critical_files": ["path/to/file1.cs", "path/to/file2.cs"],
"estimated_complexity": "low | medium | high",
"iteration": 0,
"created_at": "YYYY-MM-DD",
"updated_at": "YYYY-MM-DD"
}
| 规则 | 说明 |
|---|---|
| ------ | ------ |
| 🔴 不无人值守 | 至少 Level 1 有人工验收 |
| 🔴 单独 commit | 每个任务独立 git commit,不合并 |
| 🔴 不放水 | Evaluator 未达标必须退回,不走捷径 |
| 🔴 不谎报 | 阻塞时不上报通过 |
| 🟡 自动化级别 | 默认 Level 1(人工验收),逐步升级 |
自动化级别:
--dangerously-skip-permissions)# 通过 SkillHub(推荐,国内加速)
# 在 Claude Code 中说:"安装 auto-agent 技能"
# 通过 npx skills(国际)
npx skills add <your-org>/auto-agent -g -y
# 手动安装
mkdir -p ~/.claude/skills/auto-agent
# 复制 SKILL.md 到上述目录
项目专属配置(代码模板、审查清单)放在项目 .auto-agent/ 下。
共 1 个版本