乐于分享
好东西不私藏

Pi 和 OMP:了解OpenClaw 背后的 Agent 底座

Pi 和 OMP:了解OpenClaw 背后的 Agent 底座

今年初,开源 Agent 圈里最出圈的项目莫过于OpenClaw龙虾。

它能接入 Telegram、WhatsApp 和 Slack,能记住长期信息,能加载 Skills,也能在电脑或服务器上一直运行。用户看到的是一个随时可以叫来干活的个人 Agent。

OpenClaw 并非从头搭建,它背后还有一个最近热度很高的底座项目:Pi

Mario Zechner 最初开发 Pi 时,把这套过程拆得很小:一层负责连接不同模型,一层负责维护 Agent 的执行循环,一层负责调用工具和保存状态,最上面再放一个可以直接使用的 Coding Agent。默认工具也很克制,主要就是 Read、Write、Edit 和 Bash。

这套结构后来成为 OpenClaw 的重要起点。Peter Steinberger 等人在 Pi 的思路和部分实现之上,继续向外搭建 Gateway、长期记忆、通信渠道、Skills 和后台运行能力。

Pi 解决的是“模型怎么执行任务”,OpenClaw 解决的是“这个 Agent 怎么长期存在于用户的日常环境里”。

而 Oh My Pi,也就是 OMP,它直接从 Pi 分叉出来,没有像 OpenClaw 那样把重点转向个人 Agent 和消息渠道,而是继续沿着 Coding Agent 往前发展。

Pi 强调核心尽量小,很多能力留给使用者自己扩展(适合折腾);OMP 则把 LSP、浏览器、子 Agent、任务隔离、增强编辑和原生加速等能力直接加了进去,开箱即用。

Pi 先把模型变成能够持续调用工具的 Agent; OpenClaw 再让这个 Agent 接入真实生活并长期运行; OMP 则继续把它强化成更完整开箱即用 Coding Agent。

三个项目从同一个起点出发,回答了三种不同的问题: Agent 的核心应该怎么搭,Agent 应该怎样进入用户的生活,以及 Coding Agent 到底能被增强到什么程度。


01|藏在明星 Agent 背后的项目:Pi

先从 Pi 说起。

Pi 现在的仓库已经迁移到 earendil-works/pi。首页定位是:Pi Agent Harness

Pi 的 README 里把介绍项目最核心的软件包:

软件包
作用
pi-ai
统一不同模型 Provider 的接口
pi-agent-core
Agent Runtime、工具调用、状态和事件流
pi-coding-agent
可以直接运行的 Coding Agent CLI
pi-tui
支持差分渲染的终端 UI 组件
其中真正负责“让模型持续调用工具”的,是 pi-agent-core

pi-ai 解决的是模型适配问题:无论底层使用 Anthropic、OpenAI、Google 还是其他 Provider,上层 Runtime 都可以用相对统一的方式调用。

pi-agent-core 是 Agent 的执行核心。它维护消息状态,调用模型,识别工具请求,执行工具,并把结果重新送回模型。

pi-coding-agent 则把这些底层能力装配成一个能直接使用的 Coding Agent。

pi-tui,它负责的是用户如何在终端里看见消息流、工具调用、Diff 和执行结果。

你会发现,Pi 的思路和很多“先把所有功能都堆进去”的项目不一样。它没有先做一个巨大的“全能 Agent”,而是考虑能力才真正属于 Agent 的核心。

如果我要让别人能够基于这套东西造 Agent,那么最小的、可复用的 Agent Harness 应该长什么样?

一方面,你当然可以直接把它当成 Coding Agent 去用;另一方面,它的真正价值又不只是“你能不能用它改代码”,而是别人能不能把它嵌进自己的产品、继续往上造更复杂的系统

OpenClaw 和 Pi 的关系,恰恰说明了这一点。OpenClaw 的第三方声明里明确写着,部分实现由 Pi / pi-mono 改造而来,同时 OpenClaw 也仍然依赖 @earendil-works/pi-tui 做终端 UI 渲染。


02|Pi :克制与Agent 时代的底板

Pi 最迷人的地方,不是“功能最多”,反而是它的克制。

它的核心设计是:

能作为扩展实现的东西,就不一定要被写死在内核里。

Pi 当前一共注册了 readbasheditwritegrepfind 和 ls 七个内置工具,但 SDK 和默认会话通常只启用最基础的四个:readbasheditwrite。其他工具可以按需启用。一个完整的 Coding Agent 闭环:

read:读取项目bash:搜索、构建、测试和执行edit:精确修改已有内容write:创建或覆盖文件

这四个工具几乎把一个 Coding Agent 最核心的动作都覆盖了:读文件、写文件、精确修改、执行命令。作者的判断很明确:主流前沿模型对 Coding Agent 的工作方式已经足够熟悉,不需要再往默认系统里塞一大堆规则和工具面。

这种“默认先做少”的思路,带来两个直接结果。

第一,上下文压力压低。 模型不用先读一堆复杂约束,更多 Token 可以留给真正的项目代码和当前任务。

第二,它把控制权交回给开发者。 Pi 并不假设所有人都应该用同一套 Agent 工作流,给了开发者自己定义产品的空间。

Pi 把扩展入口留出来,如果你需要更多能力,可以加自己的工具,可以改上下文压缩方式,可以接管 Bash 执行,也可以给它做自己的命令和快捷键。

判断一个开源项目有没有成为“底座潜力股”,有个朴素的标准:除了它自己之外,有没有别人在它上面继续搭东西。

Pi 现在已经显露出这种特征。

一边是 OpenClaw 这样的项目,会直接吸收 Pi 的实现和组件;另一边则是社区层面的外溢:有人做 VS Code 里的 Pendant,有人为 Emacs 做单独前端,也有人围绕 Pi 做桌面端和移动端。


03|Oh My Pi:Pi 的增强版

如果说 Pi 的关键词是克制,那么 Oh My Pi 的关键词就是预装

Pi 默认只提供 readwriteeditbash 四个工具,把剩余能力留给开发者扩展;OMP 则选择了完全相反的方向:把真实开发中经常用到的代码理解、调试、执行、多 Agent 和审查能力,直接做进产品。

它对自己的定义非常准确:

A coding agent with the IDE wired in.

Pi 更像一块留着接口的底板,OMP 则已经把 IDE、调试器、执行环境和协作系统接好,装上就能用。

OMP 在 README 中列出的能力非常激进:40 多个模型 Provider、32 个内置工具、14 个 LSP 操作、28 个 DAP 操作,以及约 5.5 万行 Rust Core。这已经不是轻量 Harness 的设计,而是一套面向真实代码库的重型 Coding Agent。

能力
Pi
Oh My Pi
默认工具
read
writeeditbash
32 个内置工具
代码理解
主要依赖文件和文本搜索
LSP 符号、引用、诊断、重命名
调试
通过 Bash、日志和测试间接定位
DAP 断点、单步、线程、栈帧和变量
代码编辑
通用文本编辑
Hashline 锚点编辑、结构化定位
执行环境
主要调用外部命令
持久 Python / Bun 内核
多 Agent
通过 Extension 自行实现
Subagent、Advisor、Review 等直接内置
产品定位
可复用 Agent Harness
电池齐全的 Coding Agent

当然OMP 最核心的增强,是把 Coding Agent 几个薄弱环节重新做了一遍。

第一个杀手锏: LSP 和 DAP

传统 Coding Agent 主要面对文本。它读取文件、搜索字符串,再根据上下文推测符号之间的关系。

OMP 把 LSP 接进了 Agent 工具层。模型可以直接查符号定义、查找引用、读取诊断、执行重命名和代码操作。它不再只能看到“这一行写了什么”,还可以利用 IDE 已经计算出来的代码语义。

DAP 则把调试器接给了 Agent。面对崩溃、异常状态或者线程问题,模型可以设置断点、单步执行、查看栈帧和变量,不必继续依赖“加几行日志再猜一次”。

这会产生一个本质差别:

普通 Agent 是对着代码文本工作,OMP 开始对着 IDE 理解出的程序结构和运行状态工作。

第二个杀手锏:Hashline Edit

Coding Agent 经常不是不会写代码,而是无法把修改准确地落进代码。

传统字符串替换非常脆弱。空格不同、目标片段重复、文件刚刚被其他操作修改,都可能让编辑失败。模型只能重新读取文件、重新组织补丁,再消耗一轮上下文和 Token。

Hashline Edit 给文件内容附加稳定锚点,模型根据锚点指定修改位置。如果文件发生了变化,原有锚点会失效,系统可以在错误补丁写入之前拒绝操作。

它解决的是 Coding Agent 核心却不显眼的问题:

如何让模型第一次生成的修改,稳定地写到正确位置。

这种底层编辑成功率比再增加一个花哨工具更直接地决定实际体验。

第三个杀手锏:持久执行内核

OMP 提供持久化的 Python 和 Bun 环境,而且执行环境还能反过来调用 Agent 工具。

Agent 可以读取数据、在 Python 中完成处理、继续调用搜索和文件工具,再把结果交给后续步骤。变量和中间状态能够持续存在,不需要每轮重新初始化,也不必把全部计算过程都翻译成自然语言塞回上下文。

对于 CSV 分析、日志处理、批量修改、数据可视化和复杂中间计算,这种设计非常实用。

第四个杀手锏:多 Agent 直接产品化

Pi 允许开发者通过 Extension 或 SDK 自己实现 Subagent;OMP 则直接把 Subagent、Advisor、Review 和协作能力做进默认产品。

主 Agent 可以把代码调查、方案比较、测试分析和代码审查拆给不同 Agent,并行执行后再汇总结果。一个 Agent 负责实现,另一个 Agent 可以独立 Review,而不是让同一个模型既当运动员又当裁判。

读取代码时加入语义,修改代码时加入锚点,运行代码时加入持久内核,排查问题时加入调试器,复杂任务中加入多 Agent。

Pi 和 OMP 的关系:内核与增强发行版

Pi 负责定义一套干净、可拆分的 Agent 结构。OMP 负责证明这套结构可以被推成多强的完整产品。

Pi 更像 Linux 内核,OMP 更像已经装好桌面、驱动和常用软件的发行版。


04|Pi 的生态外溢

Pi 是否真的是 Harness,要看有没有人真的拿它去造别的东西。

OMP 是最直接的一种改法:保留 Pi 的基本骨架,然后向上补齐 IDE、调试、多 Agent、执行环境和编辑优化,把它做成更重的 Coding Agent。

OpenClaw 展示了1另一条路线。它吸收 Pi / pi-mono 的部分实现,也继续使用 Pi 的终端组件,但最终做出来的已经不是单纯的 Coding Agent,而是能够接入消息渠道、长期运行、加载 Skill 和处理个人任务的 Agent 系统。

Pendant 和 Emacs 前端则保留 Pi 的 Runtime,重新设计产品入口。Agent 不再只运行在原来的终端界面中,而是进入 VS Code 或 Emacs。

还有项目会把 Pi 嵌入桌面端、浏览器或者云端运行环境。它们改变界面、运行位置和业务目标,却不需要重新实现 Agent Loop。

这些项目共同说明了一点:

Pi 可以被强化,可以被嵌入,可以被换壳,也可以被改造成完全不同的 Agent 产品。

这才是 Harness 与普通 CLI 的真正区别。普通 CLI 的价值主要是“拿来使用”,Harness 的价值则包括“拿去继续制造”。


05|怎么折腾 Pi 和 OMP?

可以先 OMP 当成产品研究。

不要只让它修一个小 Bug,而是刻意测试它最有区别度的能力:让它用 LSP 完成跨文件重命名,让它用调试器定位运行时错误,让 Subagent 并行分析一个陌生仓库,再让 Review Agent 检查修改结果。

这样才能真正理解,一套“IDE wired in”的 Agent 与普通文本型 Coding Agent 到底差在哪里。

体验过完整形态以后,再回头读 Pi。重点不是从头通读整个仓库,而是沿着一次完整任务追踪调用链:

用户输入    ↓Agent Session    ↓模型生成 Tool Call    ↓工具执行    ↓结果写回上下文    ↓模型继续下一轮

先看 pi-ai 如何统一不同模型,再看 pi-agent-core 如何驱动 Agent Loop,最后看 pi-coding-agent 如何把工具、会话、压缩和界面组装成完整 CLI。

如果目标是做自己的 Agent,通常没有必要立刻 Fork 整个 Pi。更合理的方式是保留 Pi 的 Runtime,在上面替换工具、界面和业务流程。

例如,医疗 Agent 不应该长期停留在 readwritebash,而应该逐渐拥有真正的行业动作:

get_patient_casequery_pacsload_dicom_seriesrun_segmentationmeasure_anatomygenerate_surgical_planrequest_doctor_review

Pi 负责 Tool Calling、会话状态和 Agent Loop,你负责定义这个行业里什么数据可以读取、什么动作可以执行、什么结果必须审核。

可以把最终结构理解成:

自己的产品界面        ↓自己的工作流与审核机制        ↓自己的行业 Skill 和工具        ↓Pi Agent Runtime        ↓不同模型 Provider

先用 OMP 看见一个完整 Agent 能做到什么,再用 Pi 理解这套能力是怎样被组织起来的,最后把 Pi 的通用骨架换成自己的业务工具和产品界面。

OMP 适合让你迅速获得一套强力 Coding Agent,Pi 则适合让你真正获得制造 Agent 的能力。


参考链接

  • Pi 仓库:https://github.com/earendil-works/pi[1]
  • Pi 官网:https://pi.dev[2]
  • Oh My Pi 仓库:https://github.com/can1357/oh-my-pi[3]
  • OpenClaw 仓库:https://github.com/openclaw/openclaw[4]

往期推荐

从 Prompt 到 Graph:AI 工程范式五次演进

Claude 删掉 80% 系统提示词给了我们什么启示?

27k Star项目Orca:把多个Coding Agent放进同一个工作台

2026 WAIC 论坛:Richard Sutton 如何重新定义下一代 Agent

Skill 推荐 | 深度调研?PPT制作?试试这个超强Skill合集

大家好,我是小柴,C9 计算机本硕,做过产品,现在是 AI 算法工程师,持续跟进和分享 AI 资讯、智能体、开源实测、经验分享、个人工具分享等内容,欢迎加好友进群交流,您的点赞、关注和分享是我持续创作的动力。

引用链接

[1]https://github.com/earendil-works/pi

[2]https://pi.dev

[3]https://github.com/can1357/oh-my-pi

[4]https://github.com/openclaw/openclaw