NVIDIA 最近开源了一个名为 SoL-Pi 的项目,目标很明确:让 Coding Agent 在长任务中大幅减少 Token 消耗。
需要先说明的是,SoL-Pi 目前并不是 Codex、Claude、Cursor 的通用插件,它只能作为 Pi Coding Agent 的扩展使用。

你可以通过 Codex 或 Claude Code 来安装它,但最终执行任务的仍然是 Pi。整体架构关系大致如下:

如果你完全不使用 Pi,目前这个项目还无法直接集成到 Codex 或 Claude Code 中。但它这套优化思路值得仔细看看。
NVIDIA 的测试数据显示:在长任务场景下,Token 使用量可减少 45%~49%,成本下降约三分之一,同时保留 Pi 约 94% 的平均任务得分。换句话说,它节省的是重复性工作,而不是减少实际产出。

SoL-Pi 的功能并非随意添加。NVIDIA 先让 Agent 自主分析当前 Coding Agent 中哪些环节最浪费 Token,最初找到了 152 个优化点,经过多轮试验、验证和淘汰,最终保留了 4 个核心机制。下面选取最容易理解的三个进行说明。
改完代码,顺手把测试也跑了
第一个机制叫做 Action Fusion。
Agent 修改完代码后,通常的 workflow 是这样的:

但很多时候,代码改完之后下一步就是跑测试。SoL-Pi 会把这两个动作合并为一个:

这样就少了一次模型决策。单次看节省不多,但在一个长任务中这样的操作会反复出现,累积效果明显。

几千行日志,不用每轮都重新塞给 AI
第二个机制叫做 ObservationPack,这个更实用。
比如 Agent 刚刚读完了 4000 多行的编译日志。一般情况下,在继续执行任务时,这些内容会被再次加入上下文。SoL-Pi 的做法是:把完整内容保存在本地,只在上下文中留下索引和少量摘要。
[observation: build-log-032]
共 4287 行
需要时读取:1200-1250 行
后面真正要用到某一段时,再单独读取。原始内容没有丢失,但不需要在每一轮对话中都把几千行重新发送给模型。
官方对 ObservationPack 进行了单独测试,结果是 API 费用降低了约 24%,而请求数量没有太大变化——节省的就是每次请求中重复的上下文。

5000 行日志,先挑出真正有用的
第三个机制叫做 Evidence-Preserving Reducer。
比如一次编译输出了 5000 行日志,真正关键的可能是下面这几行:
Line 1832: TypeError
Line 1841: build failed
SoL-Pi 会先让成本较低的模型在长日志中筛选出真正有用的内容,再回到原始日志中进行核对。只有核对无误,才会把结果交给主模型。这样主模型不需要每次都从几千行里从头找起,也不会因为压缩而丢失关键错误信息。

最终效果如何?
前面三个机制解决的其实是同一个问题:不要让最贵的模型去做已经做过的活。NVIDIA 在 EdgeBench 长任务基准上进行了测试,SoL-Pi 相比原版 Pi 的效果如下:
- Token 使用量减少约 45%~49%
- 成本降低约 1/3
- 平均任务得分保留到 94% 左右
下面是官方给出的 Token 和成本对比图:


Agent 跑复杂任务时,Token 很容易浪费在几个地方:读取的文件越来越多,日志越来越多,前面看过的内容后面又重复出现。SoL-Pi 就是把这些冗余一点一点削减掉。
如何安装使用
核心前提:SoL-Pi 需要运行在 Pi Coding Agent 中。官方测试的版本是:
- @earendil-works/pi-coding-agent 0.84.2
- Node.js 22.19 或更高
先安装 Pi:
npm install --global @earendil-works/pi-coding-agent@0.84.2
然后安装 SoL-Pi:
pi install git:github.com/NVlabs/SoL-Pi
安装完成后,这些优化默认不会全部开启。首次使用时可以选择性地启用:

写在最后
SoL-Pi 最大的遗憾是:它目前只能和 Pi 一起使用。如果后续官方能把 Codex、Claude、Cursor 等主流 Coding Agent 也接进来,适用范围会大得多。对于不使用 Pi 的开发者来说,多少还是有些可惜。