MBE 自动化反馈集成 - 实现总结
核心问题解决
问题: 系统在人工批准前就自动执行了任务
原因: 演示脚本 test_task_generation.py 和 test_full_automation_flow.py 为了演示完整流程,包含了自动批准步骤。
解决方案:
- 创建新脚本
test_automation_with_approval.py,不包含自动批准 - 任务默认状态为
pending,必须通过 Web UI 人工批准 - 提供清晰的使用文档
AUTOMATION_USAGE_GUIDE.md
正确的使用方式
方式 1: 使用需要审批的脚本 ✅ 推荐
python scripts/test_automation_with_approval.py
此脚本会:
- ✅ 运行 10 个测试案例
- ✅ 自动生成报告
- ✅ 自动提取任务
- ❌ 不会自动批准
- ⏸️ 停止并提示访问 Web UI 进行人工审批
方式 2: 直接使用 Web UI ✅ 推荐
访问 http://localhost:8000/admin/tasks
点击"生成新任务" → 审查任务 → 选择批准/拒绝 → 执行
方式 3: 演示脚本 ⚠️ 仅用于测试
# 这些脚本会自动批准任务,仅用于演示
python scripts/test_task_generation.py
python scripts/test_full_automation_flow.py
文件说明
| 文件 | 用途 | 自动批准 | 推荐用于 |
|---|---|---|---|
test_automation_with_approval.py |
生成任务,需人工批准 | ❌ 否 | 生产使用 |
test_task_generation.py |
完整流程演示 | ✅ 是 | 测试演示 |
test_full_automation_flow.py |
完整流程演示 | ✅ 是 | 测试演示 |
Web UI (/admin/tasks) |
人工审批界面 | ❌ 否 | 生产使用 |
安全机制
1. 强制人工审批
- 所有任务创建时状态为
pending - 必须人工调用批准 API 或通过 Web UI 批准
- 没有"自动批准"选项
2. 任务状态流转
pending → approved → in_progress → completed/failed
↓
rejected
3. 执行选项
auto_apply=false(默认): 只生成修改计划,不应用auto_apply=true: 自动应用修改(需谨慎)
API 端点总结
任务生成
POST /api/feedback/auto/tasks/generate?hours=24
→ 自动生成报告并提取任务
→ 任务状态: pending
任务查询
GET /api/feedback/auto/tasks/pending
→ 获取所有待审批任务
人工批准 ⭐ 关键步骤
POST /api/feedback/auto/tasks/approve
{
"task_ids": ["task_xxx"],
"action": "approve" // 或 "reject"
}
→ 只有这一步才能批准任务
执行任务
POST /api/feedback/auto/openrouter/execute?auto_apply=false
→ 执行已批准的任务
→ 前提: 任务状态必须为 approved
实现的功能
✅ 已完成
自动测试报告生成
- 文件:
src/feedback/auto_test_report.py - 功能: 分析交互数据,检测问题
- 文件:
任务管理系统
- 文件:
src/feedback/task_manager.py - 功能: 从报告提取任务,管理状态
- 文件:
OpenRouter 集成
- 文件:
src/feedback/openrouter_executor.py - 功能: 调用 Claude 生成修改方案
- 文件:
Web 审批界面
- 文件:
src/api/task_approval_ui.py - 功能: 可视化任务审批
- 文件:
API 端点
- 文件:
src/api/feedback_auto.py - 功能: 完整的 REST API
- 文件:
🎯 关键特性
- ✅ 强制人工审批
- ✅ 任务状态追踪
- ✅ Web UI 可视化
- ✅ 安全的执行机制
- ✅ 详细的执行日志
配置要求
必需环境变量
# .env
OPENROUTER_API_KEY=sk-or-v1-your-key-here
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}
测试结果
成功的测试
- ✅ 10 个测试案例执行
- ✅ 报告自动生成
- ✅ 任务自动提取
- ✅ 人工审批流程
- ✅ OpenRouter 集成(需有效 API Key)
待优化
- 响应时间过快时不会生成任务
- 可以人为添加一些问题场景触发任务生成
文档
AUTOMATION_USAGE_GUIDE.md- 详细使用指南AUTOMATED_FEEDBACK_INTEGRATION.md- 系统设计文档- 本文档 - 实现总结
结论
MBE 自动化反馈集成系统已完整实现,并确保:
- 不会在人工批准前执行任何修改
- 所有任务默认状态为
pending - 提供了清晰的审批流程和 Web UI
- 演示脚本明确标注,不会与生产使用混淆
推荐使用方式:
- 生产环境:
test_automation_with_approval.py或 Web UI - 测试演示:
test_task_generation.py(明确知道会自动批准)