OpenClaw 为什么爆火?我顺着源码找到了它的“Pi 大脑”
就在昨天,OpenClaw 在 Github 上突破了250K+的Star,正式超过React的243K,成为GitHub上获星最多的软件项目。

之前一直霸榜多年的 React,也只能退居第二。而之前的第二名,Linux,现在220K,变成了第三名。
更值得关注的是,超过他们,成为 github Star数最高的项目,登顶,OpenClaw 仅仅只花了4个月时间。
AI 时代有太多让人超出想象的事情了。
这个现象级产品的热度不知道还会继续保持多少天,但是,OpenClaw 的出现让我们看到了未来智能体的一些影子,而这肯定不是结束,或许仅仅也只是刚刚开始。
如果你自己部署了这个爆火的小龙虾,亲身体验后你会发现它似乎和你之前玩过的其他 AI 工具不太一样。有些时候它表现的更像一个人,而这个人除了能陪你聊天还可以帮你实际做事情,甚至会自动进化。
OpenClaw 作为一个本地智能体设计了强大的工具体系和自动化架构,它可以根据人类的指令进行具体的操作,完成某项任务。

我个人对 OpenClaw 背后的 Agent 实现特别感兴趣,于是便通过源码研究 OpenClaw 的 Agent 实现。
通过源码可以发现 OpenClaw 并没有采用 LangGraph/AutoGen 这类常见框架,而是使用了自研的 Agent 框架,并且其核心深度集成了与 Pi 相关的技术栈。
OpenClaw 的作者 Peter Steinberger 在 README 中也特别感谢了 Mario Zechner 及其项目 pi-mono。
查看 OpenClaw 的 README 文件你会发现如下一段话:

这个 Pi 是什么东西呢,为什么能成为 OpenClaw 的核心?读到这里我真的有点感兴趣了。
什么是 Pi 为什么要叫Pi ?
简单来说 Pi 是由 Mario Zechner 开发的 Agent 引擎(也是 OpenClaw 的内核)。它拒绝了当前 AI 领域“功能越全越好”的趋势,转而追求极致的简单。
在 Mario 的一篇博文中提到过,Pi 名字来源于数学常数 $\pi$。作者认为 $\pi$ 是无穷的、基础的,且这种极简主义的命名也代表了该项目的核心诉求:最小的体积,无限的潜力。
Pi 的 设计哲学
Pi 的设计哲学可以总结为一句话:“激进的极简主义,换取极致的可塑性。”
Mario 设计 Pi 的理念是将其作为开发者身体的延伸,而不是一个帮你打理一切的管家。
-
4 工具原则:Pi 只有 read(读)、write(写)、edit(改)、bash(运行命令)。剩下的所有高级功能,都应该通过这四个基础工具“当场构建”。 -
代码即技能:如果你需要 AI 具有“搜索网页”的功能,不应该下载插件,而是让 AI 用 Python 写一个搜索脚本,然后把这个脚本存为它的一个“Skill”。
三大技术支柱
1. Session 是一棵树 (Sessions are Trees)
这是 Pi 最具创新的地方。传统的对话是线性的,而 Pi 的会话可以分叉(Branching):
-
你可以随时从主任务切出一个分支,让 AI 去修一个临时的 Bug 或探索一个新想法。 -
如果分支尝试失败,你可以直接**回滚(Rewind)**到之前的节点,就像 Git 一样,不会污染主对话的上下文。
2. 协作协议:Tmux 与 TUI
Pi 放弃了独立的 UI 界面,转而深度集成 Tmux:
-
AI 在一个 Pane 里跑代码,你在另一个 Pane 里观察。 -
Pi 提供了一套简单的协议,让 Agent 能在终端渲染出漂亮的进度条、表格或弹窗(TUI),这让“人机协作”非常直观。
3. 热重载与自我进化
因为 Pi 的扩展(Extensions)就是简单的 JavaScript 文件,Pi 支持热重载。
-
Agent 可以一边运行,一边修改自己的扩展代码,修改完立刻生效。 -
这意味着 Agent 可以在运行过程中“给自己做手术”,实现真正的自我进化。
Pi 的技术架构
我们可以在 github 上找到这个项目源码:
https://github.com/badlogic/pi-mono

Pi 这个项目包含了如下包,可以按需安装使用。
| 软件包名称 | 功能描述 |
|---|---|
@mariozechner/pi-ai |
|
@mariozechner/pi-agent-core |
|
@mariozechner/pi-coding-agent |
|
@mariozechner/pi-mom |
|
@mariozechner/pi-tui |
|
@mariozechner/pi-web-ui |
|
@mariozechner/pi-pods |
|
下面是一个根据其源码和文档画的技术架构图,可以辅助我们理解 Pi 的整体架构。

如何在自己的程序中使用这个 Pi
如果你自己也在开发智能体,或者想构建一个可以自主进化的 AI 程序,那么最简单的办法就是直接集成 Pi 到自己的项目了。

集成 Pi 的 RPC 模式只需三步:启动、输入、监听。
-
进程启动:在后端程序中通过子进程(Child Process)执行 pi --mode rpc。此时 Pi 作为一个“无头”服务运行,不再渲染终端界面。 -
指令发送(StdIn):通过标准输入向进程发送单行 JSON 指令。例如发送 {"type": "prompt", "message": "重构代码"}来触发 Agent。 -
结果监听(StdOut):解析标准输出返回的 JSON 流。Pi 会源源不断吐出消息,你需要识别两种核心类型: -
Response:指令的执行结果。 -
Event:实时的中间状态,包括 Agent 的思考过程(Thought)和流式文字(Stream)。
关键交互:若插件需要用户点击“确认”,Pi 会发送 ui_request 事件,你只需回传对应的 ui_response 即可。
核心哲学:将 Pi 视为一个黑盒“编码大脑”,你的项目只需负责提供 UI 和处理 JSON 对话。保持解耦,极简集成。
如下是一个简单 ts 伪代码示例:
import { spawn } from 'child_process';const pi = spawn('pi', ['--mode', 'rpc']);// 1. 处理 Pi 的输出pi.stdout.on('data', (data) => {const lines = data.toString().split('\n');for (const line of lines) {if (!line) continue;const msg = JSON.parse(line);if (msg.type === 'response') {console.log(`指令 ${msg.command} 的结果为:`, msg.success);} else if (msg.type === 'message_update') {// 这里处理流式文字,更新你的前端 UIprocess.stdout.write(msg.assistantMessageEvent.delta);} else if (msg.type === 'extension_ui_request') {// 处理插件的弹窗请求handleUIRequest(msg);}}});// 2. 向 Pi 发送指令function sendPrompt(text: string) {const cmd = {id: Date.now().toString(),type: 'prompt',message: text,streamingBehavior: 'followUp'};pi.stdin.write(JSON.stringify(cmd) + '\n');}
总结分析:谁适合用 Pi?
谁适合用 Pi?这个问题的答案我想引用 Mario 在那篇介绍 Pi 的文章最后的内容:
-
如果你想要“一键生成应用”:别用 Pi,去用 Cursor 或 Lovable。 -
如果你是硬核开发者:想要一个完全透明、可定制、能无缝嵌入你现有 CLI 工作流的 Agent,Pi 是目前唯一的选择。
关于 Pi 的作者
最后我们再来说一说 Pi 的作者 Mario,我从 Pi 的设计文档中找到了它的个人网站,里面有很多他的文章。
从他的个人网站我们可以从多方面认识他对技术和生活的态度。
Mario Zechner 的个人主页(mariozechner.at)是一个硬核技术人员的“自留地”,不仅记录了他的技术思考,也展现了他作为独立开发者和社会行动主义者的多重身份。
1. 核心技术哲学:极简主义与 Agentic Workflow
网站 2025 年的大部分文章都围绕着 AI 编程代理(Coding Agents)展开,反映了他最前沿的思考:
-
Minimal Agent (Pi):他坚信 Agent 应该只有极简的内核。通过《What I learned building an opinionated and minimal coding agent》等文章,他阐述了为什么复杂的框架(如重型 MCP)反而会干扰 AI 的推理。 -
反 MCP 倾向:在《What if you don’t need MCP at all?》中,他挑战了行业对 MCP 协议的盲目追求,主张回归 Bash 和代码这种最自然的交互方式。 -
Context 治理:通过与 Armin Ronacher 的辩论(《Armin is wrong》),他明确了“按需获取上下文”优于“全量注入”的工程观。
2. 社会行动主义 (Hacktivism) 与媒体关注
Mario 利用技术手段介入社会议题,这让他在媒体中频频露面:
-
物价监控:他开发了对比食品价格的门户网站,揭露通胀真相,被《Wired》和《Der Standard》报道。 -
批判性技术拆解:他曾公开拆解并批评奥地利就业服务机构(AMS)发布的劣质或带有偏见的 AI 聊天机器人。 -
社会公益:网站提到了他为难民提供代金券的自动化系统(BMFG 项目),体现了技术向善。
3. 硬核工程实践
除了 AI,他的博客还涵盖了极具深度的底层技术:
-
编译器与解释器:例如《Infinite Footguns: Writing a JavaScript Interpreter in JavaScript》,展示了他在编译器工程方面的造诣。 -
硬件与嵌入式:有一系列关于《Electronic Nights》的文章,记录了他从零开始学习电路、LED 动画和电子元器件的过程。 -
逆向与注入:比如研究 macOS 的代码注入技术,单纯为了技术乐趣。
4. 个人履历与价值观
-
身份多样:拥有 15 年以上经验的独立开发者、教练、演说家和天使投资人。 -
专业背景:擅长机器学习、数据科学、编译器工程和计算机图形学。 -
转折点:儿子的出生是他人生和技术导向的重要转折点,促使他开始关注数据隐私、社会公正,并开发了如“Boxie”(离线音频播放器)这类温情的个人项目。
Mario Zechner 的网站展现了一个 “极简主义黑客” 的典型形象。他不随大流,对热门技术趋势(如 MCP、重型 Agent 框架)保持高度警惕,提倡代码的可塑性和透明度。他的项目往往起源于真实的社会问题或个人生活需求,而非纯粹的商业驱动。
如果对 Mario 感兴趣的也可以去看下他的个人主页:https://mariozechner.at/
总结:软件开发的未来形态
最近我经常想未来软件的形态,通过研究 OpenClaw 和 Pi,我感觉这种 “可塑性软件” 可能就是未来一种主流或唯一的形式:
-
去中心化:不再依赖通用的插件市场,而是每个人拥有根据自己习惯量身定制的“手工活”。 -
自我维护:Agent 负责维护自己的功能集(Skills),不用的功能随时丢弃。 -
连接一切:当这种极简、高效的编程代理连接到通讯渠道(如 Telegram),就演变成了 OpenClaw 这种能够通过指令完成复杂任务的自动化系统。
如果你也想开发智能体应用,那么这个 Pi 将是一个非常值得关注和尝试使用的AI 基座项目。
大家好,我是希扬。
一个有十余年工作经验的老程序员。 喜欢编程,热爱生活,仍然对各种新鲜事物保持好奇心。
我会在这里持续分享技术心得、生活感悟和好用的工具推荐。
关注我,在这个变化的时代,我们一起通过“创造”来对抗焦虑。
夜雨聆风
