4 万 Star 的 Agent 工具链:OpenClaw 都在用的 pi-mono 到底强在哪

0 阅读6分钟

今天要介绍的这个项目,可能是目前最平衡的答案。它叫 pi-mono,GitHub 上已经 4 万 Star。更重要的是,OpenClaw 的核心运行时就是基于它构建的——OpenClaw 的 README 里直接写了:特别感谢 Mario Zechner 的支持以及 pi-mono。

能让 OpenClaw 这种级别的项目选做底层,pi-mono 到底做对了什么?

GitHub:

github.com/badlogic/pi…

作者背景: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:

github.com/badlogic/pi…

安装:

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 工具。