如何生成待审批任务
问题:点击"生成新任务"显示 0 个任务
原因
- 阈值设置较高: 系统的问题检测阈值(如响应时间>5秒,切换率>20%)设置较严格
- 实际数据良好: 如果最近的交互数据响应快、没有问题,就不会生成任务
- 数据不足: 如果时间窗口内的交互数据太少,无法形成有效分析
解决方案
我们提供了两种方式生成任务:
方式 1: 使用示例数据生成任务(推荐演示用)
运行预设的示例脚本,直接生成包含4类问题的任务:
python scripts/generate_sample_tasks.py
这个脚本会:
- ✓ 创建一个包含明确问题的示例报告
- ✓ 生成 4 个不同类型的修改任务
- ✓ 任务处于
pending状态,等待人工审批 - ✓ 显示详细的任务信息
生成的任务类型:
- slow_response (HIGH) - 响应时间过长优化
- expert_switch (MEDIUM) - 专家匹配优化
- unstable_response (MEDIUM) - 响应稳定性优化
- test_failure (CRITICAL) - Bug修复(上下文丢失)
方式 2: 从实际交互生成任务
2.1 先进行真实交互
python scripts/test_automation_with_approval.py
这会运行 10 个测试案例,与 MBE 真实交互。
2.2 通过 Web UI 生成任务
- 访问 http://localhost:8000/admin/tasks
- 点击 "生成新任务"
- 系统会分析最近 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
待审批任务:
- [HIGH] slow_response - 优化响应速度
- [MEDIUM] expert_switch - 优化专家匹配
- [MEDIUM] unstable_response - 优化响应稳定性
- [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,会基于同一个报告生成多个任务实例。可以:
- 通过 Web UI 拒绝重复任务
- 重启服务清空内存中的任务
Q4: OpenRouter 执行失败?
A: 检查:
.env中的OPENROUTER_API_KEY是否有效- 网络是否能访问 OpenRouter API
- API Key 配额是否充足
脚本对比
| 脚本 | 数据来源 | 任务数量 | 自动批准 | 用途 |
|---|---|---|---|---|
generate_sample_tasks.py |
预设示例 | 固定4个 | ❌ 否 | 演示审批流程 |
test_automation_with_approval.py |
真实交互 | 动态 | ❌ 否 | 实际测试 |
test_task_generation.py |
真实交互 | 动态 | ✅ 是 | 完整流程演示 |
总结
推荐顺序:
- 先用
generate_sample_tasks.py快速生成任务进行演示 - 熟悉审批流程后,使用
test_automation_with_approval.py结合真实数据 - 根据需要调整问题检测阈值以适应实际场景
关键点:
- ✓ 任务生成后默认
pending状态 - ✓ 必须人工审批才能执行
- ✓ 可以使用示例数据快速演示
- ✓ 执行结果可查看,修改可控制是否应用