Pi 本体:极简 Agent Harness
Pi 不是一个模型
第一次看到 Pi,很容易把它和 Claude Code、Codex 归到同一类,以为又是一个「开箱即用的 AI 编程产品」。更准确的说法是:Pi 是一个开源的 Agent Harness。它负责把大模型、工具调用、会话状态和终端交互连起来,本身并不绑定任何具体模型。
┌─────────────────────────────────────────────────┐
│ pi-coding-agent │
│ (终端交互、会话、Slash 命令、TUI) │
├─────────────────────────────────────────────────┤
│ pi-agent-core │
│ (Agent Loop、工具注册、状态管理、会话树) │
├─────────────────────────────────────────────────┤
│ pi-ai │
│ (OpenAI / Anthropic / Google / 自定义 Provider) │
└─────────────────────────────────────────────────┘这三层拆分把两条路都留了出来:一条是直接用现成的 CLI(pi-coding-agent),另一条是把底层运行时嵌进自己的程序,做面向写作、研究、自动化或者垂直业务的 Agent。
轻量,不只是安装包小
Pi 常被叫做「极简 Agent」。如果这个「极简」只是界面简单,就没有多少分析价值。真正影响使用成本的,是每一次模型调用前需要携带多少固定上下文。
一个 Coding Agent 每走一步,通常都要重新携带系统提示词、工具定义、会话历史和工具返回结果。固定内容越长,多轮任务里的重复成本越高。
Pi 默认只提供 4 个核心工具:
| 工具 | 作用 |
|---|---|
read | 读取文件 |
bash | 执行 Shell 命令 |
edit | 修改已有文件 |
write | 创建或覆盖文件 |
从当前源码看,只有实际传给模型的工具才会出现在系统提示词的工具列表里。默认提示词也没有塞一套庞大的项目管理流程,怎么组织工作、用什么节奏,都由用户自己决定。
Skill 的处理也遵循同一思路:启动时只把 Skill 的名称和简介放进上下文;当任务确实需要某项能力时,再读取完整的 SKILL.md。
Session Start
│
▼
[ 名称 + 简介 ] ← 只放元数据,几十 Token 一条
│
│ 任务触发
▼
[ 读完整 SKILL.md ] ← 真正用到时才加载这对我很重要。以后无论是代码分析、资料研究还是图片生成,我都可能积累越来越多 Skill。如果几十份完整说明每轮一起发送,能力越多,成本反而越重。Pi 允许我保留一个小内核,按任务装入需要的能力。
它究竟能省多少 Token?没有一个万能数字
围绕 Pi 的 Token 效率,社区里已经出现过「少 40%」「少一半」「省 90%」「便宜 30 倍」等说法。这些数字不一定是假的,但它们测量的通常不是同一件事——有的统计单轮固定前缀,有的统计完整任务,有的把缓存 Token 算进去,有的只看最终账单,还有的没有把失败和重试计入。
我更看重下面两组相对可靠的外部材料。
1. Databricks:每轮上下文约少 3 倍
Databricks 用自家百万行、多语言代码库里的真实 PR 构建内部 Benchmark。任务来自近期人工代码修改,并使用隐藏测试判断 Agent 有没有完成。为了避免 Agent 从 Git 历史里找到原答案,他们还在运行期间切断了工作副本与原仓库历史的连接。
在相同模型、相同思考强度下切换不同 Harness,Databricks 观察到:
- 部分组合的单任务成本相差超过 2 倍,同时质量相当;
- Pi 每一轮发送给模型的上下文约少 3 倍;
- Pi 保持了更紧凑的工作上下文,并用更少的运行次数完成任务。
这组结果对我有参考价值,因为任务来自真实代码库,也使用确定性测试验收。不过公开文章没有给出完整样本量和全部逐任务原始记录,所以我不会把「约少 3 倍上下文」改写成「Pi 普遍节省 67% Token」。它只证明,在 Databricks 的任务和配置里,Harness 本身足以显著改变成本。
2. 预注册研究:固定前缀相差约 12–15 倍
2026 年 8 月,PointFive 的两位作者发布了一项预注册研究。核心实验包含 24 个确定性代码任务、6 个开放权重推理模型以及 Claude Sonnet 5,共记录 4,644 次有效运行。
研究在其特定配置中测得:
| 指标 | Pi | 对照 Harness |
|---|---|---|
| 固定前缀 | 1,147 – 1,642 Token | 15,983 – 20,330 Token |
| 固定前缀差距 | 1 倍 | 约 12 – 15 倍 |
| 匹配任务中的轮次 | 基准 | 约 2 – 7 倍 |
固定前缀包括系统提示词和工具 Schema。研究最终报告,在匹配的模型、任务和提示词组合里,两套 Harness 的「每次成功成本」差距达到 5 – 30 倍。
「5–30 倍」很有传播性,也最容易被误用。这项研究里的任务最多涉及 4 个文件,整体成功率较高,部分开放模型还经过协议转换网关。它是 2026 年 8 月发布的预印本,复现材料公开,但还不能代表所有长周期生产项目。
我愿意引用它,是因为它把固定前缀、轮次、缓存、成功率和最终成本分开测量;我不会把实验里的最大数字直接写成 Pi 的产品承诺。
固定开销小,不等于整个任务一定更快
如果只放支持 Pi 的数据,这篇文章会变成一篇软文。
Composio 使用同一个 DeepSeek V4 Pro、同一组 30 个工具任务、相同工具和验收规则测试多种 Harness,结果很有意思:
| Harness | 通过率 | 平均 Token / 任务 | 平均轮次 | 中位时间 |
|---|---|---|---|---|
| Pi | 21 / 30(70%) | 924,990 | 16.3 | 362.9 s |
| OpenCode | 19 / 30(63.3%) | 710,140 | 13.1 | 280.6 s |
| Claude Code | 19 / 30(63.3%) | 649,900 | 12.1 | 181.8 s |
Pi 的通过率最高,总花费低于 OpenCode;但它使用了最多的原始 Token,平均轮次更多,中位完成时间也是最慢的。
这组反例帮助我把 Pi 的优势说得更准确:它降低了每轮调用的固定成本,最后总账仍然取决于模型走多少轮、读取多少文件、调用多少工具,以及失败后是否返工。
轻量 Harness 也会被用重。装入大量常驻工具和扩展、把多个无关目标塞进一个长会话,或者反复要求模型「深度思考、比较所有方案、确认绝对正确」,都可能把节省下来的固定 Token 再花出去。
速度也要拆开看
Pi 作者 Mario Zechner 在 X 上公布过一项传输优化:通过 OpenAI WebSocket 使用增量更新后,只发送最新增加的上下文,在对应链路上获得了 66% 的吞吐提升。
这是特定 WebSocket 链路的吞吐提升,不是总 Token 减少 66%。
吞吐提升、Token 减少和完整任务提速是三个指标。增量传输可以减少重复数据的传送和处理,却不意味着模型少看了 66% 的逻辑上下文,也不能推导出其他 Provider 同样提速。
以后评估 Pi,我会同时记录:
- 新输入 Token
- 缓存读取
- 输出 Token
- 推理耗时
- 轮次
- 工具调用
- 任务成功率
- 墙钟时间
只拿其中一个数字,很容易得到一个好看但不完整的结论。
Pi 适合我的地方:可理解、可调整、可积累
我选择 Pi 时,也接受了它没有把所有功能做好的现状。Pi 没有内置完整的权限系统,也没有为文件、进程、网络和凭据提供默认沙箱。官方文档明确说明:它默认继承启动用户和进程的权限;需要更强边界时,应使用容器、微型虚拟机或策略沙箱。
Pi 默认边界
────────────────────────────────────────────────
进程权限 → 启动用户权限(root 就是 root)
文件访问 → 无默认限制
网络访问 → 无默认限制
凭据使用 → 模型可读环境变量 / auth.json
↓ 需要更强边界时
Docker / Firecracker / Landlock / Gondolin这意味着 Pi 不适合毫无准备地交给普通用户,更不能未经隔离就用于多租户或敏感环境。扩展直接运行在同一个进程里,也要求认真审查来源和权限。
对我的目标来说,这些边界可以管理。我想逐步形成自己的 Agent 工作环境:
- 底层模型可以更换,不把工作流绑定在单一厂商;
- Skill 和工具继续保持文件化、可迁移;
- 编程和自媒体创作使用不同的项目能力;
- 从一条稳定链路开始,再逐渐加入研究、写作、图片和自动化;
- 每加一项能力,都知道它增加了什么上下文、权限和维护成本。
Pi 的默认状态不完整,却足够透明。对希望开箱即用的人,这会增加学习和维护工作;对愿意理解 Agent 如何运行、希望自己控制能力边界的人,这种克制反而留下了空间。
接下来,我会怎么折腾 Pi
这一篇先解决「Pi 是什么、为什么值得选」的问题。后面的实践不会一开始就堆扩展,我准备按下面的顺序推进:
- 确认本机安装、命令来源、模型登录和默认工具;
- 用只读模式分析一个真实项目,观察它实际读取了什么;
- 在隔离的小项目里完成一次修改、测试和差异检查;
- 阅读 Pi 的源码结构,理解 Agent Loop、会话和工具注册;
- 分别为开发与自媒体创作建立项目级 Skill;
- 用同一模型、同一任务和同一验收条件,测量 Token、轮次、时间和成功率;
- 在需要无人值守或处理敏感资料前,再补外部沙箱、审计和凭据隔离。
我不会因为几张 Benchmark 图表就认定 Pi 一定比其他 Harness 更好。现在能确认的是,Pi 把系统提示词、工具集合、Skill 加载和上下文管理都做得足够轻,大部分决定权也留给了我。
这套取舍适合我。