乐于分享
好东西不私藏

OpenClaw 对话上下文动辄几十 K,底层引擎的启动指令却不到 1000 Token

OpenClaw 对话上下文动辄几十 K,底层引擎的启动指令却不到 1000 Token

2026 年最火的开源 AI 编程助手是什么?十个人里有八个会提到 OpenClaw。

这个把 Agent 接到聊天平台上的项目,很快成了 GitHub 现象级作品。但很少有人关注它底下跑的东西:一个叫 Pi 的 Agent 引擎。OpenClaw 最早的 Agent 推理循环,就是把 Pi 的 pi-agent-core 直接嵌进自己进程里跑起来的。当前版本 OpenClaw 把运行时内化成了自家的 agent-core,但终端渲染层至今还在用 Pi 的 pi-tui 组件。

可以说,Pi 是 OpenClaw 血统的起点。而这个起点本身,设计得极其反直觉。

反直觉在哪?OpenClaw 一次对话的上下文动辄几万 Token,但 Pi 引擎自身的启动指令(System Prompt,就是对话开始前预先灌给 AI 的指令文本),加上全部工具定义,总共不到 1000 Token。工具也只给四个:读文件、写文件、编辑文件、执行终端命令。

这里要说清楚:不到 1000 Token 是 Pi 引擎的"起步开销",不是 OpenClaw 的对话总量。OpenClaw 在引擎之上还要叠加对话历史、工具返回结果、文件内容,一次完整对话轻松跑到几十 K。Pi 只是想说明一件事:引擎在还没开始干活之前,只占这么点地方。

这 1000 Token 里到底写了什么

Pi 的作者 Mario Zechner 干脆把完整的 System Prompt 贴在了博客里,核心就一句话:你是一个专业的编程助手,通过读文件、执行命令、编辑代码、写新文件来帮用户处理编程任务。

后面跟了几条简短的使用指南,比如用 bash 做 ls、grep 这类文件操作,编辑前先用 read 看一眼文件,总结时别用 cat 刷屏。没了。

对比一下某些主流编程 Agent 动辄上万 Token 的系统提示词,Pi 这份简直像没写完。

Mario 的底气来自一个判断:前沿模型都经过了海量强化学习训练,天生就知道什么是编程 Agent。你不需要在 System Prompt 里教它"你是资深工程师"、"请遵循最佳实践",模型早就懂了。

他还真去验证了。Mario 用 Claude Opus 4.5 跑了一套完整的 Terminal-Bench 2.0 基准测试,每个任务跑五轮,成绩直接提交到了官方排行榜,跟一众带着复杂系统提示词的重型框架同台竞技。

排行榜上还有个更极端的例子:Terminal-Bench 团队自己做的 Terminus 2,只给模型一个 tmux 会话,连文件操作工具都没有,照样能跟工具齐全的 Agent 们掰手腕。极简这条路,走得通。

Mario 给 Pi 定的开发原则就八个字:我不需要的,就不造。

四个工具够干什么

Pi 默认只暴露四个原子操作:read、write、edit、bash。

看起来少得离谱,但组合起来覆盖面惊人。read 和 write 处理文件读写,edit 做精确替换,bash 能执行任何终端命令。想查文档?bash 里跑个 curl 就行,Pi 默认连联网搜索工具都不给,就用 curl。想做 Git 操作、装依赖、跑测试?统统丢给 bash。

其实 Pi 还准备了 grep、find、ls 三个只读工具,但默认关闭,只在你明确想限制 Agent 权限时才打开。默认状态下,就是这四个。

其他框架给 AI 装了专门的「搜索工具」「Git 工具」「数据库工具」,每个都有自己的参数定义和错误处理。Pi 觉得这些都是多余的封装。AI 本来就会写 shell 命令,让它直接写 bash 不就行了?

这个思路很 Unix:小工具、可组合、用管道串联。

那些 Pi 故意不做的事

Pi 的激进不只在于工具少。它还故意拒绝了一堆 Agent 框架的"标配功能"。

不做 MCP。 MCP 是一种让 Agent 连接外部服务的标准协议,2026 年几乎人人都在接。Mario 的态度很绝:Pi 不支持 MCP,以后也不会支持。

他的理由是:流行的 MCP Server 往往一次性塞给模型一堆工具和大段描述,吃 Token,难扩展,互相之间也没法组合。Pi 的做法是让你把能力做成带 README 的命令行工具,Agent 按需读文档,用 bash 调用,用完就忘。

不做子代理。 很多框架支持 Agent 派生子 Agent 去做并行任务。Pi 不提供这个功能,想要的话就用 tmux 起一个新的 Pi 实例。好处是全程可观察,你随时能切过去看那个会话在干什么,而不是对着一个黑盒干等。

不做权限确认。 Claude Code 在你执行敏感操作之前会弹确认框。Pi 直接 YOLO(完全信任模式),没有任何权限弹窗。

Mario 的说法挺扎心:其他编程 Agent 的那些安全措施,大多是安全剧场。只要你的 Agent 能写代码、跑代码,防线就已经破了,一条 rm 就能删库,弹窗拦不住任何东西。真要隔离,就把 Pi 放进容器里跑,别在宿主机上搞假权限。

不做内置 TODO 和计划模式。 Mario 发现 TODO 列表经常让模型更糊涂,因为它得额外跟踪和更新状态,出错的机会反而变多。Pi 的做法是把任务写进 TODO.md,把计划写成 Markdown 文件。状态即文件,文件即状态。

这些"不做"背后的统一逻辑是:每多一个内置功能,就多一个你无法检查的黑盒。Mario 想检查自己和模型交互的每一个细节,Pi 就是按这个标准做的。

Pi 背后的男人,不止一个

Pi 最初是 Mario Zechner 的个人项目。他更出名的身份是游戏框架 libGDX 的作者,写游戏引擎写了十几年,对"最小化抽象"有种执念。

2025 年 11 月底,他在博客上正式介绍了 Pi。2026 年 4 月,Flask 之父 Armin Ronacher 在博客里宣布 Mario 加入了他所在的公司 Earendil Works,Pi 项目也跟着迁到了这个组织的仓库下。

Ronacher 不是旁观者。他现在是 Pi 仓库提交数第二多的贡献者,仅次于 Mario 本人。他在公告文章里给 Pi 的评价是:这是思考最深入的编程 Agent 之一,出自一个真正在乎软件质量、品味和可扩展性的人之手。

做 Flask 的人和做 Pi 的人凑到了一起,倒也不意外。这两个人都信同一件事:不需要,就不造。

上手试试

安装一行命令:

npm install -g --ignore-scripts @earendil-works/pi-coding-agent

或者用官方安装脚本:

curl -fsSL https://pi.dev/install.sh | sh

认证有两条路。有订阅的话,启动后输入 /login,支持 Claude Pro/Max、ChatGPT Plus/Pro 和 GitHub Copilot。用 API Key 的话,支持 Anthropic、OpenAI、DeepSeek、Google Gemini 等十几种提供商,本地模型走 OpenAI 兼容接口也能接。

💡

Pi 的 GitHub 仓库已经迁到了 Earendil Works 组织下:https://github.com/earendil-works/pi,老地址 badlogic/pi-mono 会自动跳转。目前 Star 数已经超过 8.5 万。

说实话第一次跑的时候我被它的"简陋"惊到了。没有欢迎界面,没有功能菜单,就一个输入框等你说话。但用了几轮之后反而觉得舒服,Agent 每一步在想什么、做了什么,全都明明白白摆在那里。

写在最后

Pi 不适合所有人。它不帮你管权限,不给你漂亮的界面,也不保证 Agent 不会干蠢事。

但如果你是那种"不搞清楚底层在干什么就浑身难受"的人,Pi 可能是目前最干净的答案。它用不到 1000 Token 的起步开销和四个工具证明了一件事:好的引擎不是什么都帮你做,而是只做该做的事。