关于 gaia-debugging
gaia-debugging 用于追踪失败的 GAIA 基准问题、分类故障并提出针对性修复,适合排查错误答案、超时和通过率回退。
主要功能
- 01加载任务追踪记录
- 02分类六种故障模式
- 03扩展日志重新运行任务
- 04按故障类型提出修复建议
- 05存储并搜索调试模式
适用场景
- 01调查 GAIA 答案错误
- 02追查超时或工具错误
- 03定位通过率下降原因
- 04复用以往调试中的修复方案
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill gaia-debugging安装后在 Claude Code 中输入/gaia-debugging确认已加载。
详细介绍
GAIA 调试技能
当 GAIA 问题失败时,系统地诊断根本原因并提出有针对性的修复方案。
适用场景
- 特定的
task_id返回了错误答案或超时 - 两次运行之间的通过率下降,需要找出回归问题
- 想了解为什么某类问题总是失败
失败模式分类
| 代码 | 模式 | 症状 | 修复方向 |
|---|---|---|---|
| TG | 工具缺失 | Agent 缺少必需工具(没有图像 OCR、没有 PDF 阅读器) | 将工具添加到目录 |
| RM | 推理失误 | Agent 有正确数据,但得出了错误结论 | 改进系统提示词,添加 CoT 指令 |
| EB | 提取错误 | 答案在跟踪记录中,但 FINAL_ANSWER: 正则表达式未能匹配 | 修复答案提取模式 |
| LI | 循环问题 | Agent 陷入循环(重复发起相同的工具调用)并达到轮次上限 | 增大 max-turns 或添加循环检测 |
| DS | 数据集偏移 | 基准答案与当前网络上的内容不同 | 标记为待 HAL 数据集审查 |
| AT | API 超时 | 工具调用超时;Agent 始终未能获取结果 | 增大每轮超时时间 |
诊断工作流
步骤 1 — 加载问题跟踪记录
# Find the result for the task_id in the latest run
RESULTS=~/.cache/ruflo/gaia/results-latest.json
node -e "
const r = JSON.parse(require('fs').readFileSync('$RESULTS'));
const q = r.results.find(x => x.task_id === '$TASK_ID');
console.log(JSON.stringify(q, null, 2));
"
步骤 2 — 对失败进行分类
查看跟踪记录输出:
- 完全没有调用工具 → RM 或配置问题
- 调用了工具,但返回错误 → TG 或 AT
- 工具返回了数据,但答案错误 → RM 或 EB
- 跟踪记录中有正确答案,但被判为错误 → EB
- 达到 max-turns → LI,或当前模型难以处理该问题
步骤 3 — 使用扩展日志重新运行
node v3/@claude-flow/cli/bin/cli.js gaia-bench run \
--level 1 --limit 1 \
--task-id $TASK_ID \
--models claude-sonnet-4-6 \
--max-turns 20 \
--output json
步骤 4 — 应用有针对性的修复
| 失败 | 操作 |
|---|---|
| TG — 缺少 web_browse | 确认 gaia-tools/index.ts 导出了 web_browse;检查工具注册 |
| TG — 缺少图像 OCR | 添加 image_describe 工具调用;确认 GOOGLE_AI_API_KEY |
| RM — 推理 | 添加系统提示词指令:“回答前,列出你收集到的所有事实” |
| EB — 提取 | 手动测试 FINAL_ANSWER_RE 正则表达式是否能匹配跟踪记录 |
| LI — 循环 | 在 gaia-agent.ts 中添加工具调用去重保护 |
| AT — 超时 | 增大 DEFAULT_PER_TURN_TIMEOUT_MS,或使用 --max-turns 标志 |
步骤 5 — 验证修复并存储模式
# Re-run the single question
node … gaia-bench run --task-id $TASK_ID --models $MODEL --output json
# If now passing, store the pattern
npx @claude-flow/cli@latest memory store \
--namespace gaia-debug-patterns \
--key "fix-$FAILURE_CODE-$(date +%Y%m%d)" \
--value "task_id=$TASK_ID, mode=$FAILURE_CODE, fix=$FIX_DESCRIPTION"
快速参考:检查工具目录
node -e "
const { createDefaultToolCatalogue } = require('./v3/@claude-flow/cli/src/benchmarks/gaia-tools/index.js');
const cat = createDefaultToolCatalogue({});
console.log('Tools registered:', cat.definitions.map(t => t.name));
"
预期结果:web_search、file_read、web_browse、image_describe、python_exec
模式存储
调试会话解决后,存储调查结果:
npx @claude-flow/cli@latest memory store \
--namespace gaia-debug-patterns \
--key "session-$(date +%Y%m%d-%H%M)" \
--value '{"task_id":"$TASK_ID","failure_mode":"$CODE","fix":"$FIX","verified":true}'
搜索类似的历史失败:
npx @claude-flow/cli@latest memory search \
--namespace gaia-debug-patterns \
--query "extraction bug final answer regex"
评论
支持 Markdown