Pi 的极简哲学
Pi 是一个小型编程代理,它的系统提示词可能是同类工具中最短的,而整个工具集只有四个:读文件、写文件、编辑文件、运行 Bash 命令。没有花哨的功能堆砌,就这四样东西撑起了一个完整的编程助手。
这种精简不是偷懒,而是一种设计选择。Pi 用扩展系统来弥补核心的简洁——扩展可以在会话中保存状态,这个能力让它的实际能力远超表面看到的那四个工具。
值得一提的是,Pi 本身的代码质量很高。不闪烁、不吃内存、不会莫名崩溃,用起来非常稳。这种可靠性在开源工具里并不常见。
理解 Pi 的关键:它"没有"什么
Pi 不支持 MCP(Model Context Protocol)。这看似是个缺陷,但背后有清晰的设计逻辑。
如果你确实需要 MCP,可以通过 mcporter 这个工具把 MCP 调用转换成 CLI 接口,OpenClaw 就是这么做的。但 Pi 更推崇的思路是:与其下载一个扩展包,不如让代理自己写代码来扩展自己。
这个理念很有意思——"代码写代码"。你可以指着一个已有的扩展跟 Pi 说:"照着这个做,但改成我想要的样子。" 代理自己就能完成适配。
为 AI 构建的架构设计
Pi 的底层架构有几个值得关注的设计决策:
- 跨模型兼容:会话系统可以包含来自不同模型提供商的消息,不会过度依赖某个特定提供商的功能,保持可移植性
- 自定义消息层:除了模型消息,Pi 在会话文件里维护了一层自定义消息,扩展可以用它存储状态,系统也可以存放不需要发给 AI 的信息
- 热重载:因为扩展状态可以持久化到磁盘,代理可以写代码、重载、测试,循环往复直到扩展真正可用
- 内置文档和示例:代理可以直接参考这些资源来扩展自己的能力
其中最有意思的设计是树状会话结构。你可以对会话进行分支和导航,这意味着当某个工具出了问题,你可以开一个"支线"去修复它,不会污染主会话的上下文。修好之后,把会话倒回主线,Pi 会自动总结支线里发生了什么。这个设计对复杂任务的上下文管理非常实用。
作为构建基座的价值
Pi 本质上是一组小组件的集合,你可以在它的基础上搭建自己的代理。OpenClaw 是一个例子,也有人用它做了 Telegram 机器人。
对于想要搭建自己 AI Agent 的独立开发者来说,Pi 提供了一个值得研究的思路:与其追求功能的全面,不如把核心做到极致精简,把扩展性留给使用者。这种"黏土式"的可塑软件,可能比那些大而全的框架更适合快速迭代和个性化定制。