如何通过 AI 搜索将 Claude Code 的成本降低 5 倍

@d0znpp
英语2026年8月19日
535K
351
130
47
148

TL;DR

本文探讨了如何通过为 AI Agents 提供现有的代码引用而非仅仅依赖提示词,从而显著降低 Claude Code 的 token 成本并提高准确性。

如果你等不及读完这篇文章,现在就把这个提示词复制粘贴到你的 Claude Code / Codex / Grok 里,立刻就能用:

安装 XERJ(文档:

https://xerj.org/llms.txt ),索引这个项目的源代码,并设置参考编码:克隆并索引与我们正在构建的内容最接近的开源仓库,在编写代码之前搜索它们是如何解决问题的。

大多数人把 Claude Code 当成一个昂贵的实习生来用,而下面要讲的是如何让它每次交互都变得更聪明(真的)。

你交给它一个任务。它会问几个问题。它 grep 一下仓库,猜测你的代码是如何工作的,写一个实现,然后某个地方出错了。你粘贴错误信息。它重写。然后又有别的地方出错了。

每一次这样的交互,都是你花钱买的 token。

而且 Claude 通常卡住,并不是因为问题本身很难。它卡住是因为你让它重新发现了一个已经存在的答案,这个答案要么在你的仓库里,要么在一个开源项目里,那里已经有几千个开发者找到了所有的边界情况。

XERJ 对此进行了严格的测试。8 个编码任务,4 种编程语言,每种设置运行 16 次,token 数量直接从 Claude 的 -p 参数中提取。

从记忆中:260,916 个输出 token 从参考中:9,982 个输出 token

Ivan Novikov - inline image

基于记忆解决了 16 个任务中的 11 个。基于参考解决了全部 16 个。

所以,请认真对待并读完下面的内容 ↓↓↓

你正在为这个循环付费

Ivan Novikov - inline image

一个正常的会话是这样的。

你描述你想要什么。Claude 进行探索。它对你的模式、你的错误处理、你的数据形状做出一个假设。它基于这个假设编写代码。这个假设在某处是错误的,所以东西出错了,你解释错误,它重写,然后你再次循环,直到输出与你一开始脑海中想的一致。

人们把这个循环看作是 Claude 不擅长编码的表现。恰恰相反。Claude 非常擅长获取一个有效的示例,并将其适配到新的情况。这个循环之所以发生,是因为房间里没有示例,所以它把会话的前半部分都花在了重建一个示例上。

输出 token 是昂贵的,在 Claude 模型上,其定价大约是输入 token 的 5 倍。所以这个循环的每一圈都是按最高费率计费的。

提示词和参考不是一回事

Ivan Novikov - inline image

提示词是一个指令。参考是证据。

Ivan Novikov - inline image

你可以写两千字来精确描述这个东西应该如何表现,但 Claude 仍然需要将这些描述转化为实现,然后猜测你遗漏的所有东西。

一个有效的实现已经包含了那些你永远不会写下来的部分:

  • 架构
  • 错误处理
  • 重试逻辑
  • 两年前有人在生产环境中遇到的边界情况
  • 一个函数为什么被那样拆分的原因

你没有在提示词中提到这些,因为你不知道它们很重要。

这里有一个最尖锐的例子。编译器最终会泄露一个方法名。它会告诉你这个函数叫 absorb 而不是 push,并为此向你收取 20 到 25 倍的 token 费用。但编译器永远不会泄露一个契约。你的工具链中没有任何东西会告诉你,这个结构在读取之前必须先被密封。这个规则存在于编写这个库的人的脑子里,以及函数体内部,再多的提示词编写也无法恢复它,因为你根本不知道它的存在。

Ivan Novikov - inline image

这就是为什么这种方法能同时减少 token 消耗并提高质量。更多有用的上下文输入,更少的猜测,更少的重试。

测试结果说明了什么

与基于 grep 的设置相比,参考编码在相同的 8 个任务上使用了 2.7 倍更少的输出 token。各分支的总成本从记忆模式的 $11.18,到使用 grep 的 $3.27,再到使用参考的 $1.58。

Ivan Novikov - inline image

Grep 看起来像是解决方案,但大多数情况下并非如此。Grep 告诉 Agent 去哪里看,然后 Agent 仍然需要将文件读入上下文才能理解它。本研究中的一个语料库为此消耗了 106 万个输入 token。更便宜的 token,但数量巨大,再加上你等待的每一个 Agent 交互轮次。

然后是更大规模的运行。为这项研究从头开始编写了 13 个库,跨越 5 种编程语言,每个库都能编译并通过自己的测试,每个库都携带一个编译器无法警告你的运行时规则。故意这样构建,因为你不能在模型已经记忆的代码上测试检索。

Ivan Novikov - inline image

仅凭记忆:21 个任务中完成 1 个 使用检索:21 个任务中完成 21 个

成本是 $21.90 对比 $3.38。

这是一个完全不同的结果,而不仅仅是更便宜的结果。

其中最干净的一个例子是一个 Java 任务。构建一个仅追加的账本,在重放前密封,截断到某个检查点。仅凭记忆,它重新发明了整个东西,503 行,大约 36,000 个 token,截断语义错误,测试失败。交给它参考后,它写了四行代码。103 个 token。测试通过。

按编程语言划分的差异告诉你价值在哪里。Python 从 14,752 降到 214。C 从 18,792 降到 988。Java 从 27,108 降到 98。JavaScript 只从 4,300 降到 646,因为前缀树是一个已知的结构,模型已经大致知道答案了。

Ivan Novikov - inline image

在日常工作中使用 XERJ 的开发者报告说,token 消耗大约减少了 5 倍。这是自我报告而非基准测试的结果,所以请将其视为最低水平,而非最佳水平。

为什么更长的提示词解决不了这个问题

有一段时间,面对糟糕的输出,答案总是一样的:写一个更好的提示词。添加更多上下文。解释架构。

有时这确实有效。

但是,提示词是你描述一个你尚未写出的解决方案。而参考是一个别人已经发布并调试过的解决方案。你无法通过描述来获得那个仅仅因为维护者在凌晨 3 点被限速而匆忙修补的重试逻辑。

代码已经在那里了。你不需要解释其中蕴含的决策。

找到参考才是真正的工作

Ivan Novikov - inline image

这就是事情变得棘手的地方。

手动操作意味着打开 GitHub,浏览那些部分匹配的仓库,翻阅旧的 Pull Request,然后打开你八个月前的代码库,试图记住你给文件起了什么名字。等你找到一些可用的东西时,你可能已经自己把功能写完了。

所以,搜索必须成本低廉,否则没人会做第二次。

这就是 XERJ 的作用。它索引代码,让你能够根据你正在解决的问题进行搜索,而不是根据文件名或关键字,然后提取匹配的实现作为参考,你可以直接交给 Claude。 https://xerj.org

如何运行

Ivan Novikov - inline image

1) 将安装提示词复制/粘贴到 Claude Code 会话中

安装 XERJ(文档:

https://xerj.org/llms.txt ),索引这个项目的源代码,并设置参考编码:克隆并索引与我们正在构建的内容最接近的开源仓库,在编写代码之前搜索它们是如何解决问题的。

2) 检查你的编码 Agent 的回复,并建议你要克隆作为参考的项目

无论你在构建什么,你总是知道还有谁在做同样的事情。在这个阶段,Claude Code 可能已经找到了一些项目,你可以根据自己的选择添加更多。5-10 个通常就足够了,但这取决于你在编码什么。

3) 制作下一个产品功能并检查结果

放手去做,享受(或不享受)新的结果。你随时可以回到浪费编码的老路上,但我相信你会立刻看到不同。

4) 保持其运行,并通过你的反馈帮助社区

你以这种方式完成的每一个任务,都会成为下一个任务的参考。这个库会不断累积。任何时候当...

何时跳过它

如果模型已经知道这些代码,那么这只是一个额外的开销,仅此而已。然而,这种情况并不常见。

Ivan Novikov - inline image

他们也对此进行了测量,针对 Valkey 和 Memcached,这些是 Claude 肯定训练过的真实公共代码。仅凭记忆以 $1.49 的成本完成了 6 个任务中的 6 个。检索以 $4.40 的成本完成了 6 个任务中的 5 个。它排名最后,成本是什么都不做的三倍。

所以,分界线在于:一边是私有的、专有的或真正不熟悉的代码,另一边是模型已经“消化”过的所有代码。

Ivan Novikov - inline image

如果你正在构建的东西以前从未被构建过,那么就没有什么可以指向的,你又回到了描述它的状态。

如果参考代码是基于你未使用的框架版本编写的,那么它的成本会超过它节省的成本。

如果任务只有四行代码,直接写就行了。

仍有待解决的问题

那 13 个库是为研究而构建的,这使得它们天生不熟悉,同时也规模较小。还没有人在真正的大型私有代码库上运行过这个测试。预期是差距会在这里扩大,因为 grep 的成本会随着代码树的大小而增加,而检索的成本保持不变,但这只是一个猜测,直到有人实际测量它。

上面的每一个数字都来自 XERJ 自己发布的基准测试,原始每次运行的数据都在他们的仓库里。 https://xerj.org/case-studies/reference-coding

核心要点

你不需要一个不同的模型,你也不需要离开 Claude Code。

你需要停止从零开始每一个任务,因为你正在构建的东西很可能已经存在于你的仓库里,或者存在于一个两年前就解决了这个问题的开源项目中。

如果别人已经解决了,就把他们的代码交给 Claude,让它基于此工作。而且这不会花费你任何东西,只是一个提示词而已。

https://xerj.org

Ivan Novikov - inline image
一键保存

使用 YouMind AI 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章