MBE 自动化反馈集成 - 使用指南
概述
MBE 现在支持从测试到代码修改的完全自动化流程,但关键的人工审批环节确保了修改的安全性和可控性。
完整流程
┌─────────────────┐
│ 1. 测试交互 │ ← 自动执行(10个测试案例)
└────────┬────────┘
│
▼
┌─────────────────┐
│ 2. 生成报告 │ ← 自动执行(分析交互数据)
└────────┬────────┘
│
▼
┌─────────────────┐
│ 3. 提取任务 │ ← 自动执行(从报告提取修改任务)
└────────┬────────┘
│
▼
┌─────────────────┐
│ ⚠️ 4. 人工审批 │ ← **需要人工决策**
└────────┬────────┘
│
▼
┌─────────────────┐
│ 5. AI执行修改 │ ← 自动执行(OpenRouter + Claude)
└─────────────────┘
使用方法
方法 1: 使用需要审批的脚本(推荐)
# 运行自动化测试,生成任务但不自动批准
python scripts/test_automation_with_approval.py
脚本会:
- 运行 10 个测试案例
- 生成测试报告
- 提取修改任务
- 停止并提示你访问 Web UI 进行人工审批
方法 2: 直接使用 Web UI
访问任务审批页面:
点击"生成新任务"按钮
系统会自动生成报告并提取任务
在任务列表中:
- ✅ 选中你想批准的任务
- ❌ 选中你想拒绝的任务
- 点击相应按钮
点击"执行已批准"调用 OpenRouter AI 执行修改
Web UI 功能
任务审批页面 (/admin/tasks)
统计信息
- 待审批数量
- 已批准数量
- 已完成数量
操作按钮
- 生成新任务: 从最近交互数据生成测试报告和任务
- 批准选中: 批准选中的任务
- 拒绝选中: 拒绝选中的任务
- 执行已批准: 调用 OpenRouter AI 执行所有已批准的任务
任务列表
每个任务显示:
- 优先级(CRITICAL/HIGH/MEDIUM/LOW)
- 标题和描述
- 目标文件
- 修改类型
- 创建时间
任务类型
系统会自动识别以下问题类型并生成相应任务:
| 问题类型 | 优先级 | 目标文件 | 修改类型 |
|---|---|---|---|
slow_response |
MEDIUM | src/core/engine.pysrc/llm/base.py |
优化 |
unstable_response |
LOW | src/core/engine.pysrc/core/memory.py |
优化 |
test_failure |
CRITICAL | src/api/src/core/ |
修复Bug |
expert_switch |
MEDIUM | src/knowledge/expert_router.py |
优化 |
安全机制
1. 人工审批
- 所有任务默认状态为
pending - 必须人工点击"批准"才能执行
- 可以选择性批准或拒绝任务
2. 手动应用选项
# 执行任务但不自动应用修改(默认)
POST /api/feedback/auto/openrouter/execute?auto_apply=false
# 自动应用修改(谨慎使用)
POST /api/feedback/auto/openrouter/execute?auto_apply=true
3. 任务状态追踪
pending- 待审批approved- 已批准rejected- 已拒绝in_progress- 执行中completed- 已完成failed- 执行失败
API 端点
生成任务
# 自动生成报告并提取任务
POST /api/feedback/auto/tasks/generate?hours=24
# 从已有报告提取任务
POST /api/feedback/auto/tasks/extract-from-report
Content-Type: application/json
{
"report": {...}
}
任务管理
# 获取待审批任务
GET /api/feedback/auto/tasks/pending
# 获取所有任务
GET /api/feedback/auto/tasks/all
# 批准任务
POST /api/feedback/auto/tasks/approve
Content-Type: application/json
{
"task_ids": ["task_xxx", "task_yyy"],
"action": "approve"
}
# 拒绝任务
POST /api/feedback/auto/tasks/approve
Content-Type: application/json
{
"task_ids": ["task_xxx"],
"action": "reject"
}
执行任务
# 执行已批准的任务(不自动应用)
POST /api/feedback/auto/openrouter/execute?auto_apply=false
# 执行已批准的任务(自动应用)
POST /api/feedback/auto/openrouter/execute?auto_apply=true
配置
环境变量
在 .env 文件中配置:
# OpenRouter API Key (必需)
OPENROUTER_API_KEY=sk-or-v1-your-key-here
# OpenRouter 模型
OPENROUTER_MODEL=anthropic/claude-sonnet-4
Docker 配置
在 docker-compose.prod.yml 中:
environment:
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}
- OPENROUTER_MODEL=${OPENROUTER_MODEL:-anthropic/claude-sonnet-4}
故障排除
问题: 任务被自动批准
原因: 使用了演示脚本 test_task_generation.py,它会自动批准任务用于测试。
解决:
- 使用
test_automation_with_approval.py代替 - 或直接使用 Web UI
问题: OpenRouter API 返回 401
原因: API Key 无效或未配置。
解决:
- 访问 https://openrouter.ai/keys 获取有效 Key
- 更新
.env文件 - 重启容器:
docker-compose -f docker-compose.prod.yml restart mbe-api
问题: 任务列表为空
原因: 没有待审批的任务。
解决:
- 点击"生成新任务"按钮
- 或运行
python scripts/test_automation_with_approval.py
最佳实践
- 定期审查任务: 及时批准或拒绝待审批任务
- 先测试后应用: 使用
auto_apply=false查看修改计划 - 备份代码: 在执行任务前备份重要文件
- 监控执行结果: 检查任务执行日志
- 渐进式批准: 先批准优先级高的任务
文件说明
| 文件 | 用途 | 自动批准? |
|---|---|---|
test_automation_with_approval.py |
生成任务,需要人工批准 | ❌ 否 |
test_task_generation.py |
完整流程演示(含自动批准) | ✅ 是 |
test_full_automation_flow.py |
完整流程演示(含自动批准) | ✅ 是 |
总结
MBE 的自动化反馈集成在提供完全自动化能力的同时,通过强制的人工审批环节确保了:
- ✅ 修改的可控性
- ✅ 代码的安全性
- ✅ 团队的参与度
- ✅ 决策的透明度
使用 test_automation_with_approval.py 或直接访问 Web UI,确保所有修改都经过人工审批。