title: 让智能体别再整文件地读代码:依赖图喂上下文,单任务成本 $0.78 降到 $0.33(作者自测基准)
category: 编程搭建
score: 73
status: 已实现(作者自测基准,42 次运行;未经独立审计)
source_author: Nicola Alessi(Vexp 联合创始人,HN @nicola_alessi;DEV 个人页署名 Nicola Alessi、Co-Founder @ Lumigo & Vexp 核实,2026-10-22 补核)
source_url: https://news.ycombinator.com/item?id=47222316
source_date: 2026-03-02(HN Firebase 与 Algolia API 双源核实,epoch 1772477523,2026-10-22 补核)
tools: [Vexp MCP Server, Claude Code, tree-sitter]
cost: 免费层可用(原文:free tier, no account needed);完整定价未给出
time_needed: 约 1 小时装上并用自己的任务复测
---
速览卡
- 分类:编程搭建 / 省钱账单
- 结果:单任务成本 $0.78 → $0.33,降 58%(已实现,作者自测基准,未经独立审计);时长 170 秒 → 132 秒;输出 token 504 → 189
- 状态:已实现(作者基准实测口径)
- 成本:免费层起步
- 耗时:约 1 小时复测
一句话
编码智能体贵在“找代码”:先用 tree-sitter 把仓库建成依赖图,只把相关节点喂给它,少读整文件,账单立刻降。
原作者怎么做的
- 痛点:Claude Code 需要一个函数时也常常把整个文件读进来,上下文越攒越贵。
- 做法:写一个 MCP 服务(Vexp),用 tree-sitter 预先计算依赖图(函数、类、类型、导入、调用关系),存 SQLite,文件保存时增量更新;查询时只返回排好序的相关代码节点。
- 基准设计(原文口径):FastAPI 代码库(800 个 Python 文件)、Claude Sonnet 4.6、7 个任务(修 bug、加功能、重构、理解代码),每任务每组跑 3 次,共 42 次执行;两组都用
--strict-mcp-config隔离,headlessclaude -p收集流式 JSON 结果。 - 机制变化:基线平均每任务约 15 次 Read + 4 次 Grep + 4 次 Glob;用图谱后平均 2.3 次 pipeline 调用一次拿到排好序的上下文,缓存创建更少、往返更少。
- 附带功能:跨会话记忆——观察记录挂到图节点上,代码变了自动标过期。单个 Rust 二进制、纯本地运行,除可选许可证检查外无网络调用。
结果
- 单任务成本:$0.78 → $0.33,-58%(已实现,作者自测基准,未经独立审计)
- 时长:170 秒 → 132 秒,-22%;输出 token:504 → 189,-63%(同上口径)
- 分任务类型:理解代码 -57%、新功能 -53%、重构 -48%、修 bug -29%(同上口径;作者自释:bug 修复范围本来就窄,省得最少)
- 样本量提醒:7 个任务 × 3 次 × 2 组 = 42 次,单个代码库、单个模型,不许外推成普遍降幅
提示词结构
本条的资产是复测协议(按原文基准方法还原):
```
在自己的仓库上复测,别信厂商数字:
- 挑 [7] 个真实任务(修 bug / 加功能 / 重构 / 理解代码各至少 1 个)
- A 组:原生方式跑 [3] 次;B 组:接上图谱 MCP 后跑 [3] 次
- 两组用同一模型、同一隔离配置,只比三件事:
单任务成本、时长、输出 token
- 降幅 < [20%] 或正确率下降 → 不采用,记录原因
```
中国读者怎么迁移
国内团队用 Claude Code、Cursor、通义灵码等都会遇到“读全仓烧 token”。图谱法与工具无关:先给仓库建一份符号/依赖索引(tree-sitter 是开源的),让智能体先查索引再读文件。先在一个 500+ 文件的老仓库上按上面的协议复测半天,数字对得上再推广。
风险与限制
- 厂商自测:基准由工具作者本人设计与执行,任务挑选与判定口径未公开全量数据,58% 只能按“作者自测,未经独立审计”引用。
- 作者与日期已补核(2026-10-22):HN 页面文本本身不显示这两项,改走 HN Firebase 与 Algolia API 双源核实——作者 HN @nicola_alessi、发帖 2026-03-02;全名 Nicola Alessi 与 Vexp 联合创始人身份由其 DEV 个人页署名交叉核实。门槛 1 该缺项已消除,不再因此降备选。
- 与已发布内容的边界:第三批 CI/CD 分流省的是“别让智能体亲自跑测试部署”的调用次数,本条省的是“读代码的上下文”,任务段不同;今日淘汰的工具清单条省的是 schema 重复发送,三者不要混写。
- 免费层有节点/仓库上限(另一 Show HN 介绍帖口径:免费层 2,000 节点、1 个仓库),大仓库成本未给出。
原文链接
https://news.ycombinator.com/item?id=47222316
工具站(原文给出):https://vexp.dev