如何生成待审批任务

问题:点击"生成新任务"显示 0 个任务

原因

  1. 阈值设置较高: 系统的问题检测阈值(如响应时间>5秒,切换率>20%)设置较严格
  2. 实际数据良好: 如果最近的交互数据响应快、没有问题,就不会生成任务
  3. 数据不足: 如果时间窗口内的交互数据太少,无法形成有效分析

解决方案

我们提供了两种方式生成任务:

方式 1: 使用示例数据生成任务(推荐演示用)

运行预设的示例脚本,直接生成包含4类问题的任务:

python scripts/generate_sample_tasks.py

这个脚本会:

  • ✓ 创建一个包含明确问题的示例报告
  • ✓ 生成 4 个不同类型的修改任务
  • ✓ 任务处于 pending 状态,等待人工审批
  • ✓ 显示详细的任务信息

生成的任务类型:

  1. slow_response (HIGH) - 响应时间过长优化
  2. expert_switch (MEDIUM) - 专家匹配优化
  3. unstable_response (MEDIUM) - 响应稳定性优化
  4. test_failure (CRITICAL) - Bug修复(上下文丢失)

方式 2: 从实际交互生成任务

2.1 先进行真实交互

python scripts/test_automation_with_approval.py

这会运行 10 个测试案例,与 MBE 真实交互。

2.2 通过 Web UI 生成任务

  1. 访问 http://localhost:8000/admin/tasks
  2. 点击 "生成新任务"
  3. 系统会分析最近 24 小时的交互数据

注意: 如果交互数据都很正常(响应快、无切换、无错误),可能不会生成任务。

2.3 调整检测阈值(可选)

如果需要更敏感的问题检测,可以修改 src/feedback/auto_test_report.py:

# 当前阈值(第318行附近)
if switch_rate > 0.2:  # 20%

# 调整为更敏感
if switch_rate > 0.1:  # 10%

# 响应时间阈值(第330行附近)
if avg_time > 5.0:  # 5秒

# 调整为更敏感
if avg_time > 3.0:  # 3秒

完整演示流程

步骤 1: 生成任务

python scripts/generate_sample_tasks.py

预期输出: ```

生成示例任务(用于演示人工审批流程)

正在生成任务...

[成功] 成功生成任务

  • 报告ID: sample_20260128_141125
  • 创建任务数: 4
  • 待审批任务数: 8

待审批任务:

  1. [HIGH] slow_response - 优化响应速度
  2. [MEDIUM] expert_switch - 优化专家匹配
  3. [MEDIUM] unstable_response - 优化响应稳定性
  4. [CRITICAL] test_failure - 修复上下文丢失Bug

### 步骤 2: 访问审批页面

打开浏览器访问:
- http://localhost:8000/admin/tasks
- https://mbe.hi-maker.com/admin/tasks

### 步骤 3: 查看任务详情

页面会显示:
- 统计信息(待审批/已批准/已完成数量)
- 任务列表(包含标题、描述、优先级、目标文件)
- 每个任务的完整信息

### 步骤 4: 审批任务

1. **勾选**要批准的任务(可多选)
2. 点击**"批准选中"**按钮
3. 状态变为 `approved`

或者:
- 勾选要拒绝的任务
- 点击**"拒绝选中"**按钮
- 状态变为 `rejected`

### 步骤 5: 执行已批准的任务

1. 点击**"执行已批准"**按钮
2. 系统调用 OpenRouter API(Claude)
3. AI 分析问题并生成修改方案
4. 查看执行结果

**注意**: 
- 需要配置有效的 `OPENROUTER_API_KEY`
- 默认 `auto_apply=false`,只生成修改方案不自动应用

## 常见问题

### Q1: 为什么 Web UI "生成新任务" 返回 0?

**A**: 可能原因:
1. 最近交互数据太少
2. 交互数据质量良好,未触发问题检测阈值
3. 时间窗口设置太短

**解决**: 使用 `generate_sample_tasks.py` 生成演示数据。

### Q2: 如何查看更多调试信息?

**A**: 查看 MBE 服务日志:
```bash
docker-compose -f docker-compose.prod.yml logs -f mbe-api

Q3: 任务为什么重复?

A: 如果多次运行 generate_sample_tasks.py,会基于同一个报告生成多个任务实例。可以:

  1. 通过 Web UI 拒绝重复任务
  2. 重启服务清空内存中的任务

Q4: OpenRouter 执行失败?

A: 检查:

  1. .env 中的 OPENROUTER_API_KEY 是否有效
  2. 网络是否能访问 OpenRouter API
  3. API Key 配额是否充足

脚本对比

脚本 数据来源 任务数量 自动批准 用途
generate_sample_tasks.py 预设示例 固定4个 ❌ 否 演示审批流程
test_automation_with_approval.py 真实交互 动态 ❌ 否 实际测试
test_task_generation.py 真实交互 动态 ✅ 是 完整流程演示

总结

推荐顺序:

  1. 先用 generate_sample_tasks.py 快速生成任务进行演示
  2. 熟悉审批流程后,使用 test_automation_with_approval.py 结合真实数据
  3. 根据需要调整问题检测阈值以适应实际场景

关键点:

  • ✓ 任务生成后默认 pending 状态
  • ✓ 必须人工审批才能执行
  • ✓ 可以使用示例数据快速演示
  • ✓ 执行结果可查看,修改可控制是否应用