MBE 自动化反馈集成 - 使用指南

概述

MBE 现在支持从测试到代码修改的完全自动化流程,但关键的人工审批环节确保了修改的安全性和可控性。

完整流程

┌─────────────────┐
│  1. 测试交互    │  ← 自动执行(10个测试案例)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  2. 生成报告    │  ← 自动执行(分析交互数据)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  3. 提取任务    │  ← 自动执行(从报告提取修改任务)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ ⚠️ 4. 人工审批  │  ← **需要人工决策**
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│  5. AI执行修改  │  ← 自动执行(OpenRouter + Claude)
└─────────────────┘

使用方法

方法 1: 使用需要审批的脚本(推荐)

# 运行自动化测试,生成任务但不自动批准
python scripts/test_automation_with_approval.py

脚本会:

  1. 运行 10 个测试案例
  2. 生成测试报告
  3. 提取修改任务
  4. 停止并提示你访问 Web UI 进行人工审批

方法 2: 直接使用 Web UI

  1. 访问任务审批页面:

  2. 点击"生成新任务"按钮

  3. 系统会自动生成报告并提取任务

  4. 在任务列表中:

    • ✅ 选中你想批准的任务
    • ❌ 选中你想拒绝的任务
    • 点击相应按钮
  5. 点击"执行已批准"调用 OpenRouter AI 执行修改

Web UI 功能

任务审批页面 (/admin/tasks)

统计信息

  • 待审批数量
  • 已批准数量
  • 已完成数量

操作按钮

  • 生成新任务: 从最近交互数据生成测试报告和任务
  • 批准选中: 批准选中的任务
  • 拒绝选中: 拒绝选中的任务
  • 执行已批准: 调用 OpenRouter AI 执行所有已批准的任务

任务列表

每个任务显示:

  • 优先级(CRITICAL/HIGH/MEDIUM/LOW)
  • 标题和描述
  • 目标文件
  • 修改类型
  • 创建时间

任务类型

系统会自动识别以下问题类型并生成相应任务:

问题类型 优先级 目标文件 修改类型
slow_response MEDIUM src/core/engine.py
src/llm/base.py
优化
unstable_response LOW src/core/engine.py
src/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 无效或未配置。

解决:

  1. 访问 https://openrouter.ai/keys 获取有效 Key
  2. 更新 .env 文件
  3. 重启容器: docker-compose -f docker-compose.prod.yml restart mbe-api

问题: 任务列表为空

原因: 没有待审批的任务。

解决:

  1. 点击"生成新任务"按钮
  2. 或运行 python scripts/test_automation_with_approval.py

最佳实践

  1. 定期审查任务: 及时批准或拒绝待审批任务
  2. 先测试后应用: 使用 auto_apply=false 查看修改计划
  3. 备份代码: 在执行任务前备份重要文件
  4. 监控执行结果: 检查任务执行日志
  5. 渐进式批准: 先批准优先级高的任务

文件说明

文件 用途 自动批准?
test_automation_with_approval.py 生成任务,需要人工批准 ❌ 否
test_task_generation.py 完整流程演示(含自动批准) ✅ 是
test_full_automation_flow.py 完整流程演示(含自动批准) ✅ 是

总结

MBE 的自动化反馈集成在提供完全自动化能力的同时,通过强制的人工审批环节确保了:

  • ✅ 修改的可控性
  • ✅ 代码的安全性
  • ✅ 团队的参与度
  • ✅ 决策的透明度

使用 test_automation_with_approval.py 或直接访问 Web UI,确保所有修改都经过人工审批。