本文档定义了基于 MCP 工具集的单Agent开发流程。
| 传统模式 |
MCP 模式 |
| Agent 只能读取日志 |
Agent 可直接操作浏览器 |
| 验收依赖人工执行 |
Playwright MCP 自动化 |
| 手动创建 PR |
用户负责 PR 创建和合并 |
原则:能力优先、渐进增强、安全边界(PR 创建/合并由用户负责)
阶段 1: 静态检查(ruff check + format check)
阶段 2: 单元测试(pytest unit)
阶段 3: 集成测试(pytest integration)
阶段 4: Dev 无头验收(E2E)
阶段 5: User 无头验收(E2E)
| 阶段 |
内容 |
命令 |
通过条件 |
| 1. 静态检查 |
ruff + 格式 |
ruff check . && ruff format --check . |
无错误 |
| 2. 单元测试 |
pytest unit |
pytest tests/unit/ -v |
全部通过 |
| 3. 集成测试 |
pytest integration |
pytest tests/integration/ -v |
全部通过 |
| 4. Dev 无头 |
E2E 验收 |
rscore --dev --headless 或降级 |
退出码 0 |
| 5. User 无头 |
E2E 验收 |
rscore --user --headless 或降级 |
无严重问题 |
# 步骤1:尝试 rscore(需要 pip install -e .)
rscore --dev --headless
# 步骤2:如果 rscore 不可用,降级到 main.py
python main.py --dev --headless
非标准流程,用户手动执行观察 UI:
rscore --dev # 可视化模式(优先)
python main.py --dev # 降级方案
| 操作 |
执行者 |
说明 |
| 创建 PR |
用户 |
Agent 不自动创建 |
| 合并 PR |
用户 |
Agent 不自动合并 |
验收通过后,Agent 通知用户创建 PR。
| 工具 |
用途 |
| read_graph |
读取知识图谱 |
| search_nodes |
搜索节点 |
| open_nodes |
打开节点 |
| create_entities |
创建实体(知识归档) |
| create_relations |
创建关系 |
| add_observations |
添加观察 |
| delete_entities |
删除实体 |
| delete_observations |
删除观察 |
| delete_relations |
删除关系 |
| 工具 |
用途 |
| get_file_contents |
获取文件内容 |
| search_code |
搜索代码 |
| get_pull_request |
获取 PR 详情 |
| get_pull_request_files |
获取 PR 文件列表 |
| get_pull_request_status |
获取 PR CI 状态 |
| get_pull_request_comments |
获取 PR 评论 |
| get_pull_request_reviews |
获取 PR 审查 |
| list_pull_requests |
列出 PR |
| list_commits |
列出提交 |
| 工具 |
用途 |
| create_or_update_file |
创建/更新文件 |
| push_files |
推送多文件 |
| create_branch |
创建分支 |
| create_pull_request |
创建 PR |
| merge_pull_request |
合并 PR |
| 工具 |
用途 |
| playwright_navigate |
导航 |
| playwright_click |
点击 |
| playwright_fill |
填充 |
| playwright_select |
选择 |
| playwright_hover |
悬停 |
| playwright_press_key |
按键 |
| 工具 |
用途 |
| playwright_screenshot |
截图 |
| playwright_close |
关闭页面 |
| playwright_go_back |
后退 |
| playwright_go_forward |
前进 |
| 工具 |
用途 |
| playwright_get_visible_text |
获取文本 |
| playwright_get_visible_html |
获取 HTML(仅精简取证) |
| playwright_console_logs |
控制台日志 |
| playwright_evaluate |
执行 JS |
| 工具 |
用途 |
| playwright_get |
GET 请求 |
| playwright_post |
POST 请求 |
| Skill |
触发关键词 |
说明 |
review-workflow |
"处理评论"、"解决评论"、"PR 评论" |
PR 审查评论处理完整工作流(强制闭环) |
acceptance-workflow |
"验收"、"测试"、"开发完成" |
代码验收完整工作流 |
| Skill |
说明 |
fetch-reviews |
获取 AI 审查评论 |
resolve-review-comment |
解决单个评论 |
e2e-acceptance |
E2E 无头验收 |
用户请求:"处理评论"
↓
review-workflow Skill
├── 阶段 1:获取评论(内部调用 fetch-reviews)
├── 阶段 2:分类评估
├── 阶段 3:修复代码
├── 阶段 4:验收(强制调用 acceptance-workflow)
│ └── acceptance-workflow Skill
│ ├── 前置检查:评论状态
│ ├── 阶段 1:静态检查
│ ├── 阶段 2:测试
│ ├── 阶段 3:审查评论检查
│ └── 阶段 4:E2E 验收(调用 e2e-acceptance)
├── 阶段 5:解决评论
└── 阶段 6:确认总览
- 强制闭环:修复 → 验收 → 解决评论 → 确认总览
- 熔断机制:连续 2 次验收失败后等待人类干预
- pytest 降级:xdist 不可用时自动降级为单线程
Solo Coder 可以通过调用子Agent实现并行开发。子Agent是可选的并行工具,不是必须的协作流程。
| Agent |
职责 |
定义文件 |
dev-agent |
代码修改与局部验证 |
.trae/agents/dev-agent.md |
test-agent |
测试执行与E2E验收 |
.trae/agents/test-agent.md |
docs-agent |
文档更新 |
.trae/agents/docs-agent.md |
| Agent |
何时调用 |
dev-agent |
需要独立的代码修改会话时 |
test-agent |
需要独立的测试验证会话时 |
docs-agent |
需要独立的文档更新会话时 |
| 自主区 |
用户确认区 |
| 读取/写入文件 |
创建 PR |
| 运行测试 |
合并 PR |
| 浏览器操作 |
删除远程分支 |
git add/commit/push |
暴露 secrets |
git commit --amend(未 push) |
|
如果命令执行失败,先检查环境:
pip show rewards-core # 检查是否安装
| 参数 |
搜索次数 |
调度器 |
用途 |
| 默认 |
20 |
✅ 启用 |
生产环境 |
--user |
3 |
❌ 禁用 |
稳定性测试 |
--dev |
2 |
❌ 禁用 |
快速调试 |
--headless |
- |
- |
无头模式 |
最后更新:2026-02-24