TL · 工具实测

Pi 1.0 实测:开启 Codemode,同一个任务省了 61% 的 token

Pi 在 10 天里从 0.87 连发到 1.0,最重要的升级是 Codemode:让 AI 写一段脚本一次把活干完,而不是一趟一趟地调用工具。我用同一个任务各跑 4 次做了对比:工具调用从 17 次降到 2 次,token 少了 61%,花费少了 72%。

约 5 分钟

我写代码用的 Agent 工具 Pi,10 月 1 日发布了 1.0 正式版。从 9 月 21 日的 0.87 到 1.0,10 天里连发了 6 个版本。

如果只看 1.0 的更新说明,变化不算大。真正重要的东西,藏在前面几个版本里:Codemode。它改变的是 AI 干活的方式本身。

这篇不罗列更新日志,只做一件事:用同一个任务实测,开不开 Codemode,到底差多少。

Codemode 是什么:从“跑腿”到“列清单”

在这个专题的第一篇里我讲过,Pi 默认只给模型四个工具:读、写、改文件和执行命令。模型每调用一次工具,结果都会被完整塞回它的上下文里。

这就像一个跑腿的人:去超市买鸡蛋,回家;再去买牛奶,回家;再去买面包,回家。每跑一趟,都要把买回来的东西全部摆在桌上,桌子越堆越满。

Codemode 换了一种方式:让 AI 直接写一小段 JavaScript 脚本,在脚本里一次调用多个工具,还可以同时进行,最后只把有用的结果交回来。相当于先列好购物清单,一趟买齐,回来只汇报“都买到了,一共花了多少”。

脚本跑在隔离的沙箱里,不能自己上网,也不能直接碰文件,只能通过 Pi 允许的工具做事。

我是怎么测的

为了让对比有意义,我把条件尽量固定:

  • 任务:一个有 16 个代码文件的小项目,让 Pi 统计每个文件里有多少个 TODO 标记,告诉我总数和最多的 3 个文件;
  • 模型:统一用 DeepSeek Flash,便宜,而且两种模式用的是同一个模型;
  • 次数:关闭和开启 Codemode 各跑 4 次,取平均值;
  • 录屏:用终端录制工具写好脚本,窗口大小、字号、配色全部固定,两种模式各录一遍,画面可以直接对比。

同一个任务,开不开 Codemode 的对比:左边逐个读文件,右边写一段脚本一次读完

结果:工具调用从 17 次降到 2 次

实测指标(4 次平均)不开 Codemode开启 Codemode变化
工具调用次数17 次2 次−88%
模型与服务器往返5 轮3 轮−40%
模型要读的工具输出约 22,500 字符约 1,200 字符−95%
总 token 消耗约 42,600约 16,800−61%
花费$0.0046$0.0013−72%

录屏里的画面很直观:

  • 不开 Codemode:AI 一个文件一个文件地 read,屏幕被一长串调用刷满,16 份文件的全文全部进了上下文;
  • 开启 Codemode:AI 只写了一段脚本,16 个文件同时读完,用 match(/TODO/g) 在脚本里数好,最后只交回一行结果。

省下来的 token,几乎全部来自“模型要读的工具输出”这一行:从两万多字符降到一千多。模型不需要看到所有文件的全文,它只需要知道答案。

最意外的发现:别让 AI 用眼睛数数

录屏的那一次,不开 Codemode 的 AI 数错了:它说一共 32 个 TODO,实际是 36 个。

原因很简单:让模型在一大堆代码里靠“看”去数数,本来就容易出错。而开启 Codemode 后,数数这件事是代码做的,代码不会数错。

公平起见要说明:另外 4 次测试里,两种模式都答对了。所以这不是“不开就一定错”,而是把精确计算交给代码,比交给模型更可靠。

这句话我觉得可以推广到所有 Agent 的用法上:能用代码确定的事,就别让模型去猜。

1.0 又让它更省了

Codemode 在 0.99 版本正式登场,1.0 又做了两处改进:

  • 提示词更短:官方数据是,用默认工具开启 Codemode 时,一次请求的提示词从约 5,300 token 降到约 3,300 token,少了大约 40%;
  • 报错会教 AI 怎么改:比如 AI 把 tools.bash 写成了 tools.Bash,报错信息会直接提示“你是不是想用 tools.bash”,模型看到就能自己改过来,不会卡在原地反复试。

Codemode 默认是关着的

这一点很容易错过。Pi 1.0 装好之后,Codemode 并没有自动打开。打开的方法是编辑 ~/.pi/agent/settings.json,加上一行:

"defaultTools": ["+codemode"]

前面的 + 表示在默认工具的基础上加上 Codemode,原来的读、写、改文件等工具都还在。如果你接入了 MCP 服务,Pi 会自动打开 Codemode。

这次升级里的其他变化

挑几个影响日常使用的:

  • 正式支持 MCP(0.99):用 pi mcp add 添加服务,在对话里用 /mcp 管理。服务在后台连接,接得再多也不会拖慢第一次对话;需要哪个工具时再去搜索,不用一开始就把几百个工具塞进上下文;
  • 可以用 ChatGPT 会员登录(0.99):输入 /login openai,直接用 ChatGPT 订阅,不用另外申请 API Key;
  • 界面:1.0 默认全屏,配色自动跟随终端的深浅模式,长回复的内存占用也降到了原来的约五分之一;
  • 生图:1.0 起,Codemode 脚本里可以直接调用图片生成模型,费用计入本次对话的总花费。

对我上一篇文章的一处修正

在《只有 4 个工具的 Pi》里,我写过“Pi 不内置 MCP”。0.99 之后,这句话已经不成立了,那篇文章里我也补上了说明。

不过我觉得 Pi 的思路并没有变:核心依然很小,能力按需加。 MCP 是可选的接入方式,Codemode 也要自己打开。而 Codemode 本身,正是“让模型写代码去办事”这个思路的延续:与其给模型更多工具,不如让它用代码把工具组合起来。

最后一个提醒

Pi 官方说得很直白:它没有内置权限系统,运行时拥有和你一样的电脑权限。所以:

  1. 先在不重要的项目里试;
  2. 重要项目一定用 Git 做好备份;
  3. 想更稳妥,可以用官方文档里的 Docker 等沙箱方案运行。

如果你的团队也在考虑用 Agent 写代码,想知道怎么选工具、怎么控制成本和风险,可以看看我的 Skill / Agent 定制服务。