内容提要
jevgrep 是面向编程 Agent 的 CLI 检索工具,采用 Jev 评估模型进行递归代码发现,无需建索引,可避免索引漂移。在 SWE-bench 实测中,任务成本从 7.62 美元降至 4.52 美元,节省约四成。其流程分四步:层级遍历、内容预览、AST 解析、上下文打包,输出精确到行号的代码片段。使用时需安装 skill 让 Agent 学会调用,但长会话中 skill 易被压缩失效,且省钱同时解题率略降。
延伸解读
成本节省的真相:翻文件才是烧钱黑洞
文章指出,编程Agent在陌生任务中大量token消耗在“翻文件”环节,占任务总量的三到六成,而代码生成只占小部分。jevgrep通过递归发现循环,在Agent动手前先用Jev模型缩小上下文范围,从而将SWE-bench任务成本从7.62美元降至4.52美元。这提醒我们,优化Agent成本不应只关注模型推理价格,检索效率同样关键。
递归发现 vs 一次性语义搜索:为何通用方案不够用
文章对比了jevgrep与通用语义搜索(如jevgrep.com)。后者仅做一步向量匹配,返回结果要么过多撑爆窗口,要么过少漏掉依赖,难以应对跨文件、跨层级的复杂问题。jevgrep采用四步递归循环:层级遍历、内容预览、AST解析、上下文打包,逐步缩小范围并输出精确到行号的代码片段,更贴合编程Agent的实际需求。
安装skill是关键,但长会话中易失效
文章强调,仅安装CLI不够,必须通过`jg skill`安装技能文件,让Agent学会调用jg。然而,在长会话中,skill指令容易被上下文压缩机制丢弃,导致Agent退回默认搜索方式,省钱效果归零。目前尚无成熟的自动重注入方案,用户需定期手动干预。
省钱与解题率的权衡:成本降四成,解题率掉一个
SWE-bench实测显示,使用jevgrep的组解出7/10个任务,基线组解出8/10个。成本降低约四成,但解题率略有下降。作者承认,jevgrep可能因上下文筛选过于激进而漏掉关键信息,这种成本与质量的矛盾在复杂任务上尤为明显,且自动优化循环运行70小时仍未彻底解决。
Q&A
jevgrep是什么?它和普通的代码搜索工具有什么不同?
jevgrep是一款由Jev评估模型驱动的研究代理CLI,专为编程Agent设计,通过自然语言提问来发现相关文件和源码上下文。它不维护代码索引,避免了索引漂移和重建负担,核心机制是递归发现循环而非一次性语义搜索。
jevgrep能帮编程Agent省多少钱?有实测数据吗?
在SWE-bench实测中,同一个编程Agent跑十个Python修复任务,使用jevgrep做上下文检索时总花费4.52美元,不用时7.62美元,节省约四成。省下的钱主要来自减少Agent翻文件环节的token消耗。
jevgrep的递归发现循环具体分哪几步?
分四步:1. 层级遍历,从项目根目录逐层扫描,用Jev评估模型砍掉不相关分支;2. 内容预览筛选,对候选文件取预览内容再次打分;3. AST声明解析,对Python、TypeScript和JavaScript精确定位函数、类和方法声明;4. 上下文打包,将代码片段、行号引用、文件路径等组装成结构化输出。
为什么一次性语义搜索对编程Agent不够用?
一次性语义搜索只做一步向量匹配,返回的上下文要么太多撑爆窗口,要么太少漏掉关键依赖。编程Agent面对的真实问题往往跨文件、跨层级,比如数据库连接创建、池化和关闭可能散落在配置文件、连接池模块、中间件层和测试用例里,一次性搜索抓不全。
安装jevgrep后编程Agent还是不用它,可能是什么原因?
很可能是因为只安装了CLI,但没有安装skill(技能文件)。skill是写给编程Agent看的说明书,告诉Agent在什么场景下调用jg、如何解读结果。没有skill,Agent根本不知道jevgrep存在。安装方式是在项目目录下运行jg skill,或使用npx skills add dzhng/jevgrep --skill jevgrep。
jevgrep在长会话中有什么隐患?
skill指令是编程Agent上下文窗口里最先被压缩掉的内容。当Agent跑超长任务时,系统会自动做上下文压缩,skill这种辅助说明往往第一个被牺牲。一旦skill被压缩掉,Agent会悄悄退回默认搜索方式,省钱效果归零,而用户从终端输出看不出变化。建议在长会话中定期重新注入skill指令。
使用jevgrep会影响编程Agent的解题率吗?
会略有影响。SWE-bench实测中,用jevgrep的组跑了十个任务解出七个,不用jevgrep的基线组解出八个,成本降了四成但解题率掉了一个。原因是jevgrep偶尔会因为上下文筛选过于激进而漏掉关键信息,成本和质量之间存在矛盾。