我平时用 AI 干活,终端里基本一直挂着 Pi。

用下来的体感是真好用:响应快,不啰嗦,交代一句它就动手,很少在那绕圈子,用起来比原生 agent 更顺手。但体感这东西说不清楚,我也说不好它到底强在哪,强多少。

直到最近看到 Databricks 的这篇评测分析,他们把主流大模型和主流命令行工具两两组合,全拉到自家几百万行真实代码库上跑了一遍,在同样完成任务的情况下 Pi 的 token 消耗显著更低。

数据摆出来那一刻,我之前模糊的体感,一下子有了着落。

这篇文章就说三件事:

  • 这份测评说明了什么;
  • Pi 为什么性价比这么高;
  • 我们该如何选择合适的 agent。

一、Pi 是什么

先说清楚 Pi 是什么。它是一个开源的命令行编程工具,2025 年 8 月的新项目,现在 7w+ star。

它跟 Claude Code、Codex 的功能类似,但是同一个大模型,套上不同的 agent,表现可以差很多,因为这层外壳决定了:每一轮对话往模型那边送多少内容、给模型配了哪些工具、怎么判断任务是否做完了等等。

外壳决定一切:同一个大模型套上不同厚度的外壳,成本和成绩就不一样

当然作为一个独立开源项目,不绑模型也是非常重要的优势。


二、测评结果 Pi > Claude Code/Codex

2026 年 7 月 8 日,Databricks 发了一篇内部评测报告,署名里有 Spark 的作者、现任 CTO 的 Matei Zaharia。他们把主流大模型和主流命令行工具两两组合,全拉到自家几百万行的真实代码库上跑了一遍,画成一张 agent x model 的性价比图。 Databricks 的 agent × model 性价比图

图上取得最高分的 7 个模型 Agent 组合,其中 4 个是 Pi,全场通过率最高的 90% 也是 Pi。

也就是说,在真实生产代码上,一个开源项目的成绩,压过了 Anthropic 和 OpenAI 各自为自家模型量身定做的官方工具。

而且便宜得多。同样是 Opus 4.8 跑高强度,走 Claude Code 平均每个任务花 1.94 美元,走 Pi 只要 0.95 美元左右,便宜一倍多,通过率只差 2 个百分点。

此外,我们也可以从这份测评中看出来,便宜的模型不一定更划算。

Sonnet 5 的单价比 Opus 4.8 便宜,但每个任务的总花费反而更高,消耗的 token 是 Opus 的 1.9 倍。

真正该比较的是「跑完一个任务实际花多少钱」,不是「每百万 token 标价多少」。


三、数据是如何测得的

相信分数之前,先看它是怎么测出来的很重要。

不再使用公开考题

现在业内测编程能力,最常被引用的是 SWE-Bench 和 Terminal-Bench 这类公开题库。Databricks 在文章里直接说了不用它们,理由很实在:题目是公开的,答案也在网上,各家训练模型的时候就已经会把这些内容抓进去。

结果就是,模型对这些题目的表现,有相当一部分来自「见过」,而不是来自「会做」。这跟考试前泄题了是一回事。

并且公开题库里的任务,跟工程师每天实际写的代码不太一样。

前者更像是做题,后者是在一个已经跑了很多年、有历史包袱、有内部约定的代码库里改东西。

拿自家已经合并的 PR 当考题

Databricks 的工程师每天要合并几千次代码改动。他们从这个池子里挑,挑的标准是:改动要自包含,别牵扯太多模块;要带一套质量过关的测试。

然后过滤掉三类东西:机器人提交的、服务账号提交的、以及本身就是 AI 生成的改动。

留下来的每一条,人工过一遍,把这次改动想干什么提炼成一句任务描述,同时把原始描述里透露解法的部分全部删掉——不删的话,题目自己就把答案说了。

代码库覆盖十几种语言,Scala 写的后端服务、Rust 写的系统层、React 加 TypeScript 的前端、protobuf 和 gRPC 的接口定义、Bazel 的构建配置,都在里面。

判卷用的是这个 PR 自己原本带的那套测试。先看代码能不能编译过,编译过了就跑测试,测试全过算通过。没有用另一个大模型来当裁判打分。

这一点值得单独说一句。现在很多评测图省事,让 GPT 或者 Claude 去判断另一个模型答得好不好,这种打分方式的可信度是存疑的,因为裁判自己也会看走眼、也有偏好。用测试套件判卷,结果是二值的,跑过就是跑过。

他们填上了 agent 偷看 git 历史的坑

文章里承认了一件事:早期跑实验的时候,有些模型的分数「高得不真实」。

翻执行记录才发现,这些模型直接去翻 git 提交历史,把正确答案找出来了——每道题本来就来自一次已经合并的提交,工作区里的 git 历史没隔离干净,等于把答案留在了考场里。

他们后来把这个洞补上了,我倾向于把这件事看作正面信号。

一份评测报告愿意写「我们一开始搞错了」,比通篇只讲成果的可信度高,说明这套题是边做边改出来的。


四、Pi 为什么性价比这么高?

精简的系统提示词

Claude Code 每次开始干活之前,还没轮到你说话,先要往模型那边送两万多 token。

token 是模型计费和处理文本的最小单位,一个汉字大约算一到两个 token,一行普通代码十几个。两万多 token,大致相当于一本三四万字的小册子。

这个数字是社区逆向出来的,不是官方公布的——有人把请求拦下来,把 Claude Code 每次发出去的完整内容抓下来分析。截止 2026 年 2 月的版本,系统提示词本身大约 23500 token,另外还有 27 个内置工具的定义,工具定义本身又是近十万个字符。这两块加起来,构成了每次对话的固定开销。

Pi 那边,系统提示词不到 1000 token,内置工具 4 个:读文件、写文件、改文件、执行命令。

23500 对 1000。27 个工具对 4 个。

开机固定开销对比:Claude Code 23500 token、27 个工具,Pi 不到 1000 token、4 个工具

有人实测过一个极端例子:通过 Claude Code 说一句「你好」,这两个字本身只值几个 token,整个请求实际消耗了四万多。

即使有缓存,轻量系统依然有绝对优势

看到这里可能有人会说,这不是问题——现在各家都有提示词缓存,同一个会话里,第二次之后这部分内容只按一折计费。

这话对,但只对了一半。

缓存解决的是「同样的内容重复发送」的计费问题。它没有解决的是:这两万多 token 每一轮都真实地占据着模型的注意力。

Databricks 那句关键结论是:**Pi 每一轮送给模型的内容,大约是其它工具的三分之一。**这个差距持续存在于整个任务过程中,任务越长,改的文件越多,来回轮次越密,它累积得越厉害。

还有一个容易被忽略的地方:子任务。

Claude Code 支持把活拆出去派给一个独立的 subagent,但每一个 subagent 在自己的每一轮对话里,都要独立地把系统提示词和工具定义重新加载一遍。

他们实测过一个任务:直接做消耗 121000 token,拆成两个 subagent 去做,消耗 513000 token,翻了四倍多。

精简提示词能提高模型智能

这是这篇文章我最想说清楚的一点。

上下文变长,模型会变笨。这件事有实证。

2023 年斯坦福和伯克利那篇《Lost in the Middle》测了六个模型家族,发现同样一条信息,放在输入的开头或结尾,模型能准确用上;放在中间,准确率掉超过 30%。原因跟模型内部的位置编码机制有关——距离拉远,注意力会自然衰减。

2025 年 Chroma 做了一组更贴近实际的测试,覆盖 18 个模型。结论是随着输入变长,表现下降 20% 到 50%。他们特别指出,号称 20 万 token 窗口的模型,实际到 5 万 token 就已经出现明显衰退了。而且衰退不是线性的:任务越需要综合判断、语义越模糊,掉得越快。

把这两件事放一起看:你每一轮多送进去的那两万 token,既在账单上收你钱,也在稀释模型对真正重要那部分内容的注意力。

省 token 和提质量,在这里是同一件事。

上下文越长模型越笨:Lost in the Middle 与 Chroma 两组实证,准确率随上下文增长而下降

随着模型更智能,harness 越薄越好

Pi 的作者 Mario Zechner 说过一句话,大意是:一个 harness 工具里,到底有多少东西是真正起支撑作用的,有多少只是因为大家都这么做才留着的?Pi 用「删掉」来回答这个问题。

他还说,这个工具应该小到你能把它每一个 token 都装在脑子里。

这跟大厂的产品逻辑正好相反。Claude Code 和 Codex 在过去一年里持续加功能——任务管理、团队协作、各种子系统。

前面提到的系统提示词,在 2026 年 2 月的两周内就涨了 28%,涨的部分主要就是新加的任务管理和协作模块。

功能多不是坏事,但每一个功能都要在系统提示词里占一段位置告诉模型「你还可以这样做」,而这段占位,每一轮对话都要重新付一次费、重新占一次注意力——哪怕你这次的任务根本用不上它。

阴谋论

Hacker News 上有人把这件事讲得更直接。

一条高赞评论说:Anthropic 洗不清「用自家工具虚增 token 消耗」这个嫌疑,毕竟数据摆在这里,Pi 在 token 管理上效率高出一倍多。

底下有人补充:激励方向本来就不一样。

Claude Code 自带的上下文越大,Anthropic 赚得越多。

我不想把这条说死——大厂的系统提示词长,主要原因还是功能确实多、要覆盖的场景确实杂,不一定只是为了利润。

但有一点是客观成立的:Anthropic 和 OpenAI 都没有动力去「帮用户省 token」。

这大概就是为什么,独立开源项目在这件事上做得更好。


五、那 Pi 是不是全面碾压 Claude Code/Codex?

到这里为止,读起来像是 Pi 一边倒,不过我们还是要全面看待这份数据。

Databricks 那张对比图,一共六组,每组都是同一个模型、同一个思考强度,只换外壳。完整数据是这样的:

模型 + 思考强度 Pi 原生工具 差值 成本
Opus 4.8 high 85% 87% −2 Pi 便宜 2.08 倍
Opus 4.8 xhigh 90% 88% +2 Pi 便宜 1.46 倍
Opus 4.8 max 82% 89% 图上没标 Pi 便宜 1.20 倍
GPT-5.5 medium 83% 80% +3 Pi 便宜 1.54 倍
GPT-5.5 high 81% 83% −2 Pi 便宜 1.22 倍
GPT-5.5 xhigh 78% 80% −1 Pi 便宜 1.44 倍

六组里,Pi 赢两组,输四组。只是输的那四组里有三组差距在 2 个百分点以内,而成本优势稳定在 1.2 到 2.08 倍之间。

Databricks 对这张图的总结是「成本差异显著,质量保持不变」。

不过我还是从中看到了 Pi 的一些问题。

Effort 高,Pi 的优势就消失了

看第三行:Opus 4.8 max 那一档:82% 对 89%

同一个模型,只是把思考强度从 xhigh 调到 max,Pi 就从全场最高的 90% 掉到 82%,反过来输给原生工具 7 个百分点。

这跟「质量保持不变」的说法直接冲突。

7 个百分点在这份数据里是很大的差距——它足够把这个组合从最高一档(82% 到 90%)踢到第二档(71% 到 82%)。

而且这一行是整张图六行里,唯一没有标注差值的一行。其它五行都规规矩矩写着「−2 pt」「+3 pt」,只有这一行空着。正文里对这个数据点也是只字未提。

至于原因,能想到的解释是:思考强度调到最高时,模型自己产生的推理内容会变得非常长,这时候 Pi 那套「尽量少送内容」的策略可能反而不够用了。

还有精简带来的功能缺失

跑分之外,Pi 有几个实打实的缺口:

没有权限系统。

这是 Pi 自己在项目说明里写的:它不内置任何限制文件访问、进程、网络、密钥的机制,默认就用启动它的那个用户的全部权限在跑。

想要边界,得自己套容器或者沙箱,项目文档里给了三种做法。

相比之下,Claude Code 每次改文件、跑命令都会停下来问你一句。

对新手来说,这道确认是有价值的。

功能上是真的少。

子助手、MCP 扩展、计划模式,这些 Claude Code 有的东西 Pi 基本都没有。省下来的速度和成本,代价就是功能确实少。


六、如何选择

先说结论:这不是一道单选题,取决于你是谁。

你该用哪个:需求清楚走 Pi,刚上手留在 Claude Code,两者都占按任务分

如果你需求写得清楚,用 Pi

判断标准很具体,符合下面这些描述的人,换 Pi 大概率立刻受益:

  • 你交代任务时会写清楚改哪个文件、要什么行为、边界情况怎么处理
  • 你的项目里有一份写好的说明文档(AGENTS.md 或者 CLAUDE.md),把项目结构、命令、约定都交代过了
  • 你走的是 API 按量计费,不是订阅
  • 你的任务量大,成本开支已经让你产生焦虑了

对这类人来说,Claude Code 那两万多 token 提供的东西,你自己已经提供过一遍了。你在为一份自己不需要的说明书重复付费。

Databricks 的数据对这个场景是直接适用的:同样的活,账单砍掉一半到一多半,通过率浮动在几个百分点以内。

补充两条实操建议:思考强度别无脑往最高调,那组 82% 对 89% 就是在 max 档发生的,Databricks 数据里 Pi 表现最好的是 xhigh 档;另外,Pi 没有权限限制,跑不熟悉的代码或者让它执行破坏性命令之前,先套个容器。

如果你刚上手 AI,留在 Claude Code

同样给具体标准:

  • 你还不太清楚该怎么跟这类工具描述需求,经常是一句「帮我改一下这个问题」就发过去了
  • 你的项目里没有写给 AI 看的说明文档
  • Claude Code 支持官方订阅
  • 你离不开 Subagent/PlanMode/Permission/MCP 等功能

对这类人,那两万多 token 是保险费,不是浪费。

它里面写着大量「遇到这种情况该怎么办」的兜底规则——需求含糊时该先去看什么文件,改代码前该先跑什么命令,什么时候该停下来问用户。你的提示词越简略,这些规则替你补的东西越多。

Pi 的极简是有前提的:**它假设你知道自己要什么。**这个假设对新手不成立。社区反馈里,「对低质量提示词可靠性差」正是 Pi 最常被提到的问题之一。

而且订阅用户换过去要另外付 API 的钱。省一半的前提是你本来在按量付费。

权衡

如果你两边的特征都占一点,可以按任务分:

  • 需求明确的机械工作——改个接口、批量重命名、按现成模式补一个模块——交给 Pi,这类活最省钱,也最不需要兜底
  • 需求模糊的探索活——不知道故障出在哪、要在陌生代码库里找一个东西、需要先理解再动手——留给 Claude Code,让它的兜底规则帮你把问题问清楚

两个一起用也不冲突。


最后

Pi 会不会一直领先,我不知道。Anthropic 和 OpenAI 随时可以把系统提示词精简一遍,这是工程问题,不是能力问题。

但这份数据揭示的那件事会一直成立:

你付的钱里,其实有一半跟模型本身没关系,跟外面这层 agent 怎么管理上下文有关。

在这份评测出来之前,几乎所有人的注意力都在模型上——哪个模型更聪明,哪个跑分更高。

Databricks 的数据说明了,同一个模型,同一个任务,换个agent,成本能差一倍。