
今天要介绍的这个项目,可能是目前最平衡的答案。它叫 pi-mono,GitHub 上已经 4 万 Star。更重要的是,OpenClaw 的核心运行时就是基于它构建的——OpenClaw 的 README 里直接写了:特别感谢 Mario Zechner 的支持以及 pi-mono。
能让 OpenClaw 这种级别的项目选做底层,pi-mono 到底做对了什么?
GitHub:
作者背景:libGDX 之父的极简主义
pi-mono 的作者是 Mario Zechner,网名 badlogic。如果你做游戏开发,一定听说过 libGDX——那个著名的跨平台 Java 游戏框架,就是他的作品。
他在 AI Engineer London 上做过一个演讲,标题很霸气:
"I hate every coding agent, so I wrote my own" (我讨厌每一个 Coding Agent,所以我自己写了一个)
这种态度贯穿了 pi-mono 的设计哲学:极致极简,却又不失强大。
极简主义:四个工具走天下
现在的 Coding Agent 工具,功能列表越来越长:MCP 支持、子 Agent、Plan 模式、权限弹窗、内置 Todo...
但你实际用到的可能不到三分之一。
pi-mono 反着来。它的核心只有四个工具:
- read —— 读文件
- write —— 写文件
- edit —— 编辑代码
- bash —— 执行命令
系统提示词不到 1000 个 token,是所有主流 Agent 里最短的。
它刻意没有内置这些:
- 没有 MCP
- 没有子 Agent
- 没有权限弹窗
- 没有 Plan 模式
- 没有内置 Todo
- 没有后台 Bash
这些功能不是做不了,而是让你通过 Extensions、Skills、Packages 按需扩展。
pi-mono 的理念是:让工具适应你的工作流,而不是让你适应工具。
给你一个干净的内核,剩下的你自己搭。不想搭也行,装别人做好的包就行。
这也是为什么 OpenClaw 选了它——底层足够干净,上面才能搭出足够复杂的东西。
七个包各司其职
pi-mono 是一个 TypeScript monorepo,把 Agent 开发需要的每一层都拆成了独立的 npm 包:
pi-ai:统一的多提供商 LLM API。一个接口对接 20 多个 LLM 提供商,包括 OpenAI、Anthropic、Google、Azure、Kimi、MiniMax、Hugging Face 等等。你不需要关心每个提供商的 API 差异,pi-ai 帮你抹平了。这个包完全可以单独拿出来用。
pi-agent-core:Agent 运行时。负责工具调用循环、状态管理、上下文维护这些核心逻辑。只依赖 pi-ai,非常轻量。
pi-coding-agent:终端编程 Agent 主产品。就是那个 pi 命令行工具,包含完整的会话管理、扩展系统、UI 渲染。它也暴露了 SDK,OpenClaw 就是通过这个 SDK 把 Pi 嵌入到自己的网关里的。
pi-tui:终端 UI 库,差分渲染引擎。你在终端里看到的那些漂亮的界面就是它画的。
pi-web-ui:Web 端的聊天组件。如果你想在浏览器里做一个 AI 对话界面,直接用就行。
pi-mom:Slack 机器人。把 Pi 接到 Slack 里,频道消息自动委托给 Pi Agent 处理。
pi-pods:管理 vLLM 在 GPU Pod 上的部署。如果你要跑自己的模型,这个包帮你在远程 GPU 上管理推理服务。
重点来了:这七个包每一个都可以独立使用。你不需要用整个 Pi,只用 pi-ai 来统一 LLM 调用也行,只用 pi-agent-core 来搭自己的 Agent 运行时也行。
这就是模块化设计的威力。
四大核心特性
① 20+ LLM 提供商统一接入
pi-ai 支持两种认证方式:API Key 和 OAuth 订阅登录。
这意味着你可以直接用 Anthropic Claude Pro/Max、OpenAI ChatGPT Plus、GitHub Copilot 的订阅来跑 Pi,不用单独买 API 额度。
切换模型也很方便:
Ctrl+L—— 呼出模型选择器Ctrl+P—— 在多个模型之间快速轮换
② Sessions 树状分支
Pi 的会话是用 JSONL 文件存的,每个条目有 id 和 parentId,形成树状结构。
你可以在对话中的任意历史节点分叉出去探索新方向,所有历史都保留在一个文件里。
输入 /tree 可以看到完整的对话树,折叠、展开、搜索、跳转都支持。
像 Git 一样管理对话历史,这个设计真的挺巧妙的。
③ Extensions 扩展机制
用 TypeScript 写扩展,可以自定义:
- 工具
- 命令
- 快捷键
- UI 组件
- 甚至可以替换内置工具
你还可以通过扩展添加自定义的 LLM Provider。
社区里有人做了一个 Doom 扩展,在等待 Agent 回复的时候可以在终端里打 Doom,非常离谱但确实能跑。
④ Skills 技能系统
遵循 Agent Skills 标准,一个 Markdown 文件就是一个技能。
零代码就能扩展 Agent 的能力。
生态安装
把你的扩展、技能、提示词模板、主题打包成 npm 包,一行命令安装:
pi install npm:@foo/pi-tools
Pi 会帮你处理依赖、版本管理、加载顺序。
适合谁用
想从零搭建 Agent 的开发者 —— pi-mono 给你最干净的底层,上面想怎么搭就怎么搭。
觉得现有 Agent 工具太臃肿的人 —— 四个核心工具,按需扩展,没有功能膨胀的烦恼。
需要统一 LLM 接入的项目 —— pi-ai 一个包就能对接 20+ 提供商,省掉大量适配工作。
想学习 Agent 架构的人 —— 七个包的分层设计是很好的学习材料,每一层都职责清晰。
准备做 Agent 相关产品的人 —— OpenClaw 已经验证了这条路,基于 pi-mono 构建产品是个稳妥选择。
怎么开始
GitHub:
安装:
npm install -g @mariozechner/pi-coding-agent
或者从源码构建:
git clone https://github.com/badlogic/pi-mono.git
cd pi-mono
npm install
npm run build
./pi-test.sh # 从源码运行 pi
写在最后
pi-mono 的成功不是偶然的。
在 Agent 工具越来越臃肿的当下,它用极简主义杀出了一条路。四个核心工具、七个独立包、按需扩展的设计,让它既轻量又强大。
Mario Zechner 的演讲标题不是随便说的——他真的讨厌那些功能堆砌但不好用的 Agent 工具,然后自己动手写了一个更好的。
4 万 Star 和 OpenClaw 的认可,证明这条路走对了。
如果你也在搞 Agent,pi-mono 值得研究透彻。
关注
如果这篇文章对你有帮助,欢迎点赞、收藏、转发。我会持续分享优质的 AI Agent 开发资源和架构设计思路,关注我,一起打造更好的 AI 工具。