关于 agent-eval
agent-eval 是用于审计 CodeGraph 质量的技能,可比较其与仅使用 grep 和读取文件时对 Agent 工作的影响。它通过 headless、tmux 或两种测试方式,在选定版本和真实代码库上运行评估。
主要功能
- 01选择 CodeGraph 版本、语言和代码库
- 02运行 headless 和 tmux 测试方式
- 03报告工具调用、读取、耗时和成本
- 04比较 CodeGraph 与基线结果
- 05检查答案正确性和反馈指标
适用场景
- 01在语料库代码库上测量 CodeGraph 表现
- 02比较 headless 与交互式 Agent 运行
- 03评估索引是否减少代码调查工作
- 04检查评估成本和答案正确性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ colbymchenry/ codegraph --skill agent-eval安装后在 Claude Code 中输入/agent-eval确认已加载。
附带文件corpus.json
详细介绍
CodeGraph 质量审计
衡量在选定的真实代码仓库上,指定版本的 CodeGraph 相较于纯 grep/read 能为 Agent 提供多少帮助。用于驱动
scripts/agent-eval/ 中的测试框架。
前置条件
tmux3+、已登录的claudeCLI、node、git(macOS/Linux)。- 从 codegraph 仓库根目录运行。
工作流
复制此清单:
- [ ] 1. Pick version (local or npm)
- [ ] 2. Pick language
- [ ] 3. Pick repo by size
- [ ] 4. Pick harness (headless / tmux / both)
- [ ] 5. Run audit.sh in the background
- [ ] 6. Report results
步骤 1 — 版本。 使用 AskUserQuestion 询问要测试哪个 codegraph 版本。
提供“本地开发构建”和“最新发布版”;自由文本选项“其他”允许
用户输入特定版本(例如 0.7.10)。将答案映射为 VERSION 令牌:
- “本地开发构建” →
local - “最新发布版” →
latest - 输入的版本 → 对应字符串(例如
0.7.10)
步骤 2 — 语言。 读取 .claude/skills/agent-eval/corpus.json。使用
AskUserQuestion 询问要测试哪种语言,并列出其中有条目的语言。
步骤 3 — 仓库。 从所选语言的条目中询问要测试哪个仓库。为每个
选项标注其规模和文件数,例如 excalidraw — 中型(约 600 个文件)。
每个条目都包含 repo URL 和一个代表性问题 question。
步骤 4 — 测试框架。 使用 AskUserQuestion 询问要运行哪个测试框架,并将
答案映射为 MODE 令牌:
- “无头模式” →
headless— 使用 stream-json 的claude -p:精确记录令牌数/费用和 清晰的工具调用序列(运行 2 次,速度快,无 TTY)。 - “交互模式(tmux)” →
tmux— 在 tmux 中驱动真实的 Claude TUI:忠实呈现 Explore 子 Agent 的行为,从会话日志中提取指标(运行 2 次,速度较慢)。 - “两者” →
all— 无头模式 + 交互模式(运行 4 次)。
步骤 5 — 运行。 在后台启动(设置版本;如果仓库不存在则克隆; 清理并重新索引;运行所选方案 — 需要几分钟):
scripts/agent-eval/audit.sh <VERSION> <repo-name> <repo-url> "<question>" <MODE>
步骤 6 — 报告。 作业完成后,读取日志并按方案报告:
- 无头模式(
parse-run.mjs):工具调用总数、文件Read次数、Grep/Bash 次数、codegraph 工具调用次数、耗时、总费用。 - 交互模式(
parse-session.mjs):VERDICT: codegraph_explore used Nx | Read N | Grep/Bash N和TOKENS:行。 - 两种模式还会打印三项反馈指标——剩余上下文占用率、
探索充分性、分配效率;无头模式 A/B 测试最后会输出并排的
ARM COMPARISON表格。报告该表格,并首先检查其中的 污染行:CLI calls that RETURNED output> 0 表示该方案通过 Bash 调用了 CodeGraph, 其数据无效。其余内容的解读方法见:docs/benchmarks/agent-eval-feedback-metrics.md。
优先报告费用和工具/Read 次数——这些信号可靠;原始令牌输入/输出数会受到子 Agent 委派和提示词缓存的干扰。说明 CodeGraph 是否降低了工作量,以及两种方案是否都得出了正确答案。
备注
- 每次运行都会重建索引(
audit.sh会清理.codegraph)——不同版本的提取结果不同,因此索引必须由构建它的同一二进制文件提供服务。 audit.sh会在测试期间临时修改全局codegraph安装,然后通过local-install.sh恢复你的开发链接。- 语料库仓库会克隆到
/tmp/codegraph-corpus(若已存在则重复使用)。 - 在
corpus.json中添加或编辑仓库(字段:name、repo、size、files、question)。