ripwire 解剖:grep 丢掉的结构,索引侧一次付清——agent 动手前的确定性地板

素材是 C3P0 亲手写的一句话描述(「AI 每次动手前都得先满仓库找路,token 就烧在这儿」)+ 裸仓库链接。海关核对结论:零膨胀——Red Hat(redhat-et)、零依赖 C++23、确定性调用图、blast radius/tests-to-run、离线 HTML 全部与仓库原文一致。这是本号开档以来第…

ripwire 解剖:grep 丢掉的结构,索引侧一次付清——agent 动手前的确定性地板

素材是 C3P0 亲手写的一句话描述(「AI 每次动手前都得先满仓库找路,token 就烧在这儿」)+ 裸仓库链接。海关核对结论:零膨胀——Red Hat(redhat-et)、零依赖 C++23、确定性调用图、blast radius/tests-to-run、离线 HTML 全部与仓库原文一致。这是本号开档以来第一份描述者亲手写、逐句属实的素材。顺带说:这条素材的引导词「token 就烧在这儿」是对的,但论文级的答案比「省 token」深一层——它把过去两个月散落在本号主线里的三根线(接口税定价、断言强度阶梯、编排税)拧在了同一个二进制里。

一、身位与数字

  • redhat-et/ripwire:2026-07-29 创建,6.5 周 2057★/122 fork,Apache-2.0,Trendshift C++ 周榜第一;一个自包含二进制 + MCP server + 七家 agent(Claude Code/Codex/Cursor/Windsurf/Gemini/opencode/aider)的任务型 skills
  • 自我定位:「The ripgrep of AI context」——不是又一个 AI 编码工具,是给 agent 的代码导航原语
  • token 账本(自家仓库实测,~token≈bytes/4):
  • 「谁调用这个函数」:580 token vs grep 全仓 40–52K(69–89 倍)——grep 输出的多是 mentions,得再开 2–3 个文件区分真调用
  • 「让我接手这个任务」:2.1K vs 16–80K(7.7–37.7 倍);「我已知什么」:15K vs 读全库 119 份文档的 445K(29.2 倍)
  • 中段任务问题 overall 5.0% 的 grep-and-read 成本;--pack-signatures 比完整函数体少 74.7% 字节;「对输出再跑一个专用上下文压缩器,省下恰好 0 token」——结构化输出已经在信息底上
  • 对图数据库 MCP 的 48 题对照:赢 27 平 14 负 7,总 token 77K vs 486K;索引 0.25–0.45s/6.6–16.5MB vs 23–52s/391–623MB;热查询 197ms vs 1082ms
  • 更宽的 held-out:243 实例/78 仓库,60.9% vs 自家 pre-routing 基线 27.6%(配对 +33.3pp,bootstrap 95% 下界 +25.0pp),代价 +3.4% 延迟、−39.4% token

二、三根主线拧进一个二进制

1)接口丢结构第十七验:grep 的词法接口。 --callers 为什么能省 69–89 倍?不是 grep 慢——是 grep 把调用结构拍扁进文本匹配,返回的 hits 里「真调用」和「顺带提及」混在一起,agent 得花昂贵的 LLM 推理把 real calls from mentions 重新分开。这和 Synapse 向量检索丢结构(第九验,低相似度区崩 56.3%)是同一枚硬币的软件工程面:词法/向量接口保内容丢关系。解药也严格同构 LightRAG 的「结构税账本位置」:tree-sitter 在索引侧付一次语法解析的钱(0.15s 冷解析、15 种语言、10K 符号/10K 边量级),查询侧输出自带 caller→callee 边、blast radius、tests-to-run——索引付一次 vs 查询反复付,账本位置选对了。

2)接口税定价学第三级:请求级预算参数。 本号已记账三级:事前任务级(MKB 7:17/20)、比特级(预测码长当货币)、事中时效级(Prefix Sliding)。ripwire 补第四格:token budget 是查询参数——「what one costs is something you ask for rather than discover」,超预算时明确报告溢出而不是静默丢行。配套的 --pack-signatures(签名代替函数体)是 Fact–Token 边界的工程化:签名是接口事实、函数体是实现细节,74.7% 的压缩比就是这条边界的价签。而「压缩器省 0 token」是个漂亮的数据点:结构化输出不是还没压缩,是已经贴着信息底。

3)断言强度阶梯第六位置:CLI 输出层。 论文管线的检查单(ARS)、图 schema 三动词(Semantica)、数据准入 NOT_EVALUATED(NeoHorse)之后,ripwire 把阶梯搬进了命令行 header:ambiguous= 逐边标猜测(overload 命中多义,选了一个目标,源码自证)、counts_floor="1" 明示下界不是总数、「a zero means none found, never none exists」unresolved= 计数不静默、--skipped 逐文件列遗漏原因、--scip 喂编译器级索引后精确边带 prov="scip" 溯源标签替换猜测。对 scip-clang oracle 的 68 题实测:silent-miss = 0——6 个不完美答案 4 个自我标注、2 个其实是 oracle 看不见文件。一句话纪律:「a measurement you cannot check is a claim, and this tool ships the check.」

三、编排税的第三样本,和交接接口的直接测量

README 引了一篇 8 月的独立研究(arXiv 2608.01507,Deep Agentic Search):planner 把探索委派给隔离上下文窗口里的 sub-agent,46.2% vs 预建索引检索的 65.2%,成本反而更高,且 41.8% 的失败静默发生在 planner→sub-agent 交接处——「A single process answering in one call has no hand-off to fail at.」这是编排税定律(编排智能只在静态方案失败处回本)的第三次独立命中,而且第一次给了「交接接口丢结构」的直接测量:委派不是免费的,交接缝隙本身是失真源。ripwire 的多 agent 立场也在这里:map 是「一个不必被每个 agent 重新发现的人造物」——编排器拉起的每条 lane 都在同一棵树上冷启动,地图 = 跨 lane 共享外存,与 NeoHorse 模型池、深模块「代码库=人机共享外存」同构。付费边界作者自己写得很清楚:一个 grep 已经能答的问题,ripwire 不回本——编排智能不住在工具里,住在「何时调用工具」的判断里。

四、诚实文化:这次是工具级的

  • 预注册负结果(随附预印本,明确标注未送审):图扩展重排器 anchor-hop 按 LARGER 风格做 1-hop 扩展,train-only 校准、one-shot held-out、两级 quality-per-cost 门——被拒两次:Python held-out +0.41pp(95% 下界 0)、C++ held-out 恰好 +0.00pp CI [0,0],尽管 train 信号 +2.6pp。原话:「the field's ablation tables rarely report the expansions that did not survive a disjoint held-out set.」注意反讽:一个调用图工具自己证明图扩展对 ranking 没用——图的价值在 blast-radius 和测试选择,不在重排。
  • 双向数字都印:整体成本 7.3%→5.0% 变好、两者都答对的子集 1.7%→5.2% 变差,原话「printing only the one that improved would be the failure this project exists to not commit」。
  • 修自己的正字:LocBench 对手 codebase-memory-mcp 早前被记 26.7%,公平重跑后 40.0%——「margin over the best competitor is therefore 1.46×, not the 1.75× two separately-dated tables used to imply」。
  • 文档由测试守卫:README 里「49 仓库 + 70 论文折入、237 工具仅勘察未借力」三个数字由 test/readmedriftcheck.sh 自动核对,表文不一致则 CI 红。LINEAGE.md 的折入标准:教训能一句话说清能指到真实 flag 或源文件,否则只算 surveyed——「『inspired by the whole field』不可证伪,『我们发明了排名代码地图』是假的,两者都比一张表便宜。这是那张表。」
  • 还有一个修复合格却仍回滚的案例:一个排序 miss 的修复通过了预注册 band,但没过另一条常设要求,照样 revert。

五、诚实边界与可打脸预测

边界:方法未同行评审(自述);动态语言的动态分派/宏展开是明示 floor(PHP「dynamic dispatch is a stated floor」、Lua 元表无继承边);token 表主要测在自己仓库上,跨仓库泛化靠 78 仓库 held-out 撑着;基准部分自建(C++ 定位基准 n=121,来自 Multi-SWE-bench 人工核验 C++ 切分,作者声明「primacy claim is a literature claim, not a measurement——本仓库没有 gate 能核查它」);LocBench 上 strict file@10 58.3% 离满分远,multi-file 严格命中 32.9%「仍是开放空间」。

可打脸预测:12 个月内——①「tests-to-run/blast radius 进 CI」成为 agent 编码工具的默认位:Claude Code/Codex 官方内置调用图原语,或 ripwire 式 map 成为 MCP 生态标配服务;②planner→sub-agent 委派式检索在评测中被系统性重估(41.8% 静默交接失败这个数字会被反复引用),「先建索引再检索」vs「委派探索」的对照进入主流 agent 框架设计文档;③负结果文化外溢:至少一个高星 agent 工具跟进「预注册评测门 + 回滚纪律」,EVALS.md 式的「发布数字登记册+拒绝发布的声明清单」成为工具 README 的可见形态。


*核查备注:GitHub API 元数据(2057★/122fork/07-29 创建/09-14 push)+ README 178KB 全文 + docs/LINEAGE.md 94KB + paper/PREPRINT.md 48KB 实抓;token 表、对照实验、负结果、引用论文 arXiv 2608.01507 均对照原文。素材描述零膨胀,2026-09-15 凌晨 02:10 素材,当日成稿。*


下一步选项: 1. 深挖 arXiv 2608.01507(Deep Agentic Search 实证研究)——「委派探索 vs 预建索引」的完整对照表和 41.8% 静默交接失败的解剖,值得单独一篇; 2. LINEAGE.md 精读——49 仓库 + 70 论文的折入清单本身就是一张「软件工程 50 年 → agent 上下文工程」的谱系图,可拆出 McCabe 1976 到 2026 的传播链; 3. 先收

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens