最近在终端里跑 Agentic Coding 任务,几乎被一个反直觉的事实反复教育:AI 写不好代码,往往不是大模型不够聪明,而是外围的 Harness 太脆弱。把这条理念做成产品的,除了已经讲过的 Pi Agent 零基础入门 和 Pi Agent 必装 8 个插件,还有今天的主角——Oh-My-Pi(下文简称 OMP)。

OMP 是 Pi Agent 爱好者把整个代码 fork 之后,在其上做的「开箱即用」发行版。它和 Pi Agent 共享一套内核,但开箱就从 4 个工具直接扩到 32 个,把 LSP、DAP 调试、多智能体协作、模型路由、Advisor 监工等 IDE 级能力一次性塞进同一个 binary。下面把这几天的实测整理出来,按「设计理念 → 安装 → 模型路由 → 关键设置 → 上下文文件 → 工作流 → 实战演示 → 生态复用」的顺序,把 OMP 用透。

Oh-My-Pi 设计理念:从 Pi Agent 的极简到全副武装

一、为什么需要 OMP:从 Pi Agent 到 Harness Problem

Pi Agent 的设计哲学是「少即是多」——初次打开只有文件读、文件写、文件编辑、Bash 执行四件套,够轻、够克制,几乎是最小化的 Harness。对追求极致自定义的硬核用户来说,这是梦寐以求的起点;但对希望「装上就能干活」的开发者来说,这套极简几乎等同于「无从下手」。

OMP 的作者属于后者。他在 fork 后的项目里明确提出一个新视角——Harness Problem:

AI 写不好代码,很多时候不是大模型不够聪明,而是外围的 Harness 太脆弱。

换句话说,真正决定一个 Agent 能不能跑通生产链路的是工具链、上下文管理、权限控制、模型调度、协作机制这套「外骨骼」,不是模型本身。基于这个判断,OMP 把 Pi Agent 当作内核,在外面套了一整套 IDE 级别的工程能力,让你不必再自己造轮子。

具体而言,OMP 在三件事上比 Pi Agent 走得更远:

维度 Pi Agent OMP
内置工具 4 个 32 个(含 LSP、DAP、多 Agent 等)
工作流 靠插件 / 命令自己拼 4 套内置工作流:/plan /go /vibe /prework
模型调度 单模型 + 手动切换 60+ 供应商 + 角色路由(tiny / small / slow / chat / image / embedding / search)
协作 靠插件 原生多智能体 + Advisor 监工(三级风险拦截)
生态 自有 catalog 完全复用 Pi Agent 生态

这些能力不是堆砌出来的噱头,而是 OMP 想做的核心定位——一个完整的、由 Agent 驱动的 IDE 平台。

二、OMP 与主流 Harness 工具的差别

在实测之前,先把它和市面上几个常被拿来对比的选手摆清楚——Codex 的半年更新、Claude Code、Cursor。

OMP 与 Pi Agent、Claude Code、Codex、Cursor 的核心差别

先说 Pi Agent——它们一棵树内核一脉相承,Pi Agent 的扩展包、配置体系、上下文文件,OMP 几乎都能直接用。差别不在能力,在使用习惯和场景:

  • Pi Agent = 给你四件工具,你自己组装。
  • OMP = 帮你组装好,开箱即用。

可以把 OMP 理解成 Pi Agent 的全副武装版——同样的内核,但 IDE 该有的能力都内置了。

再说 Claude Code / Codex / Cursor——它们都是非常优秀的 Harness,但深度绑定了自家的模型或生态。OMP 走的是相反的路线:

能力 Claude Code / Codex / Cursor OMP
模型供应商 深度绑定自家 集成 60+ Provider,不锁定任何一家
角色路由 主要靠单模型 + 手动切换 按角色自动路由(规划用强模型,执行用便宜模型)
IDE 能力 通过插件或外部 IDE 把 IDE 能力搬进内核——LSP 跨文件联动、DAP 原生 debug
工具链 部分需要子进程 / WSL search、share 等编进同一个 binary,Windows 不走 WSL
多智能体 受限 原生支持,主 Agent 实时可见、可打断
迁移成本 — 几乎零:已有的 AGENTS.md、CLAUDE.md、CURSOR_RULES 都能直接读

最后一个迁移成本对存量项目尤其重要——你项目里早就写好的上下文文件,OMP 直接读,不需要搬家。

三、安装与配置目录结构

OMP 的安装方式覆盖全平台,在 macOS 上最快是 Homebrew:

1
brew install oh-my-pi

如果你已经装过,升级一条命令搞定:

1
brew upgrade oh-my-pi

macOS 上一键安装 OMP

装完先别急着启动,先看一眼配置目录的层级,这一步决定了你后面 80% 的设置能不能一次到位。

3.1 配置目录:全局 vs 项目级

OMP 的全局配置目录位于 ~/.omp/agent/,与 Pi Agent 的 ~/.pi/agent/ 几乎一一对应:

1
2
3
4
5
6
7
~/.omp/agent/
├── config.yaml # 全局配置文件
├── AGENTS.md # 全局上下文(可选)
├── system.md # 系统指令
├── append_system.md # 系统指令补充
├── RULES.md # 平台硬性规则
└── WATCHDOG.md # Advisor 监工规则

优先级规则(与 Pi Agent 完全一致):

  1. 项目目录下的同名配置文件 > 全局配置
  2. 项目级 AGENTS.md > 全局 AGENTS.md
  3. system.md 作为唯一系统指令;append_system.md 作为 OMP 内嵌指令的补充

这条规则的实际意义是:如果你打算在多个 Harness 之间切换,把所有上下文文件放在项目目录根下是最稳的,放到 ~/.omp/ 下反而绑死了工具。

3.2 进入 IDE 能力前:装好 LSP 与 Bun

OMP 只是一个 Agent 客户端,要想用上 LSP 跨文件联动、DAP 原生调试,对应语言的 LSP 必须先装好。比如后面实战里要用 JS 的 LSP,就得提前装:

1
2
# 例:为 JS/TS 装语言服务器
npm install -g typescript-language-server typescript

另外,OMP 的插件体系依赖 Bun,所以建议一并装上并加入 PATH:

1
curl -fsSL https://bun.sh/install | bash

这两步做完,OMP 才算进入完整形态。

四、首次启动:30 秒跑通的模型配置

启动命令极简:

1
omp

OMP 启动后的 TUI 界面

界面相比 Pi Agent 的极简风格多了不少装饰,实际手感仍然在终端里完成所有操作——Tab 切换窗口、回车选项、ESC 退到上一层,熟练之后效率明显高于 GUI。

4.1 供应商配置:/connect

进入后第一步是用 /connect 配置模型供应商。OMP 适配了 60 多家 provider,不仅包括 DeepSeek、Anthropic、OpenAI、Google 这类标准 API,还复用了 Codex、Anti-Gravity、Claude Code 等登录平台的能力——你日常用哪家,基本都能挂上来。

OMP 模型供应商与角色路由配置

4.2 模型配置:/model 的两条路径

供应商配好后,用 /model 进入模型设置。这里提供两种用法,可以混着来:

路径 A:单模型 + 手动切换

和大多数 Harness 一样,只设一个默认模型,在特定场景下用 /switch 手工换。简单直接,但每次任务都要算账。

路径 B:角色路由表(推荐)

OMP 提供一套「使用场景 ↔ 模型」的映射表,匹配完成后会自动按场景切换模型。这是我在所有 Harness 工具里最希望看到的功能——

打开 /model 后切到 rules 分类,可以看到 OMP 默认按下面这些维度切分场景:

维度 场景 用途
任务难度 tiny 简单文字、零碎语言处理
small 中等任务,需要多步完成 / 轻量推理
slow 复杂推理、规划、深度任务
default 默认场景
任务类型 chat 对话模型
image 图片生成
embedding 向量生成
search 网络搜索

这里的 tiny / small / slow / default 名字是 OMP 自己的角色标签,不是某个具体模型。同一款模型也可以挂到不同角色下,关键看你想让它承担哪类工作。

举个例子,实测里我会把 tiny 指向 Gemini 3.5 Flash、small 指向 DeepSeek V3、slow 指向某个推理强模型、default 留给 /plan 用更稳的型号。每个角色还能独立设置思考等级(继承 / low / medium / high)。

经验之谈:初次配置不用追求最优,先用主观判断设一遍,跑两周再根据实际账单和效果迭代。

五、必看设置:权限、Memory、Session 三件套

供应商和模型都搞定之后,别急着开始干活——下面这三组设置决定了 OMP 在生产里能不能稳。

5.1 权限控制:三档 + 自定义

OMP 权限(Approvals)设置

进入 /settings,选 Interaction → Approvals,可以看到 OMP 内置了三档权限 + 一档自定义:

档位 行为 适合场景
always-ask 只读操作自动放行,写文件 / 命令必须确认 重要项目、生产环境
write 读 / 写文件自动放行,命令必须确认 日常开发
yolo 全自动审批 demo / 临时项目
自定义 逐工具定义权限,如 bash: allow 精细管控

实测建议:对重要项目保持 always-ask 或自定义;对 demo / 学习项目直接 yolo,省心。

如果自定义粒度够细,可以直接写:

1
2
3
4
approvals:
bash: allow
write: ask
edit: ask

OMP 会按你写的策略执行,同时仍然尊重上下文文件里要求的二次确认——这是双保险。

5.2 Memory:四种后端,按场景选

OMP Memory 后端选择

进入 /settings → Memory,OMP 提供了四种 Memory 存储方案:

后端 形态 特点
local 本地 MD 文件 最简单,所有记忆落到 Markdown,适合个人
hindsight 在线服务(图核心) 长期记忆的颠覆性方案,能自我总结优化
monopoly 本地 SQLite 区分全局 / 项目作用域,检索方便
sniper 项目级决策层记忆 专为 coding 设计,只记项目开发过程中的决策

对纯 coding 场景,sniper 值得专门说一下:它只存储在项目目录下,只记录开发过程中的决策(代码规范、技术选型),后续开发能保持一致性,而且支持指定专属模型(sniper model),不设的话默认走 small 场景的模型。

对大多数个人开发者,先用 local,等会话沉淀到一定规模再切 sniper 或 hindsight。

5.3 Session 管理:断线续传 + 历史回溯

OMP 继承了 Pi Agent 优秀的 Session 能力,并加了几条实用命令:

命令 作用
omp -c 继续最近一次 session(远程服务器断线重连救命)
/session 查看当前 session 状态
/resume 列出历史 session 列表,可选任意一条回退
/tree 回溯当前 session 的历史对话节点,从那里继续
/branch 在当前 session 内开新分支
/fork 以当前对话为基底生成新 session
/rename 给当前 session 命名,方便查找
/pn 把当前 session 推到历史列表最上方

对长任务、多 Agent 协作,/branch 和 /fork 是两个救命工具——主线走偏时不必从头再来,直接分支即可。

六、上下文文件体系:AGENTS.md / system.md / WATCHDOG.md

OMP 对上下文文件的处理是它和 Pi Agent 一脉相承的关键证据——同一套目录、同一种优先级,意味着存量项目的上下文文件可以直接搬过来。

OMP 上下文文件体系

文件 优先级 作用
AGENTS.md 项目级 > 全局 项目专属上下文:开发规范、技术栈、交付目标、可做与不可做
system.md 唯一系统指令 顶层系统级指令
append_system.md 补充系统指令 作为 OMP 内嵌指令的补充
RULES.md 全局 > 项目级 平台硬性规则:工具响应方式、输出格式、质量标准
WATCHDOG.md 项目级 Advisor 监工的判定规则

实测建议:

  1. AGENTS.md 放项目根目录,不要放 ~/.omp/ 下——这样换工具时不需要改路径。
  2. system.md 和 append_system.md 按需启用,大多数项目只用 AGENTS.md 就够。
  3. RULES.md 写硬性红线(比如「不允许修改 package.json 的依赖版本」),用机器能解析的判断口径。
  4. WATCHDOG.md 等开了 Advisor 模式再写,刚开始可以直接用默认规则。

七、4 套内置工作流:plan / go / vibe / prework

OMP 真正区分于「工具型 Harness」的能力来自这 4 套工作流——它们都用 / 命令触发,可以直接当成 Agent 团队里的不同岗位。

OMP 4 套内置工作流

7.1 /plan:复杂需求的规划师

适合需求模糊、要先理清现状再动手的场景。/plan 会先梳理项目目录下已有代码,再根据用户需求提出一套可执行的方案。

复杂需求建议直接用 /plan 启动;可以给它单独指定一个强模型(plan model),规划阶段值得花贵一点的算力。

7.2 /go:有预算的执行者

/go 是带 token 预算 的执行流,启动时直接写:

1
/go <目标描述> --budget 50000

执行结束只有两种结果:完成目标,或者 token 预算耗尽。在执行过程中,/go 会自动把目标拆解成步骤,逐步推进,中途可以用:

  • /go show — 查看当前目标拆解
  • /go pause — 暂停
  • /go resume — 恢复

7.3 /vibe:多智能体的项目经理

/vibe 是多智能体协作管理工作流,主对话里的智能体会自动成为「Director」,把不同子任务分派给不同的子 Agent 并行执行。

典型场景:一个项目涉及前端 + 后端,/vibe 可以把任务分派给两个子 Agent 分别负责,主 Agent 负责整合和最终交付。特别适合「一个人顶一个团队」的小项目。

7.4 /prework:质优价廉的执行编排

/prework 是我最看好的工作流之一——

  1. 设计完成后,先用强模型做项目实现规划
  2. 再把具体编码交给更便宜的模型执行

这套编排让质量、成本之间找到了一个很舒服的平衡点。对国内做长任务、低预算跑生产链路的团队尤其有用。

八、Advisor 监工:三级风险拦截

OMP Advisor 监工模式与 WATCHDOG.md

Advisor 是 OMP 的另一项独家能力——它在主 Agent 之外开一个独立 session,扮演「顾问 / 监工」的角色,实时监控主 session 的运行状态。

8.1 三级风险模型

Advisor 把所有风险分成三档:

等级 处理方式
need 轻度问题,加注释提示主 Agent 评估是否修改
concern 中度风险,在下一轮交付中注入修改
blocker 严重问题,直接阻断开发流程,要求主 Agent 修复并验证后再继续

8.2 WATCHDOG.md:监工的判定规则

Advisor 的判定标准完全由项目根目录下的 WATCHDOG.md 控制。你可以在里面定义:

  • 哪些情况算 need、哪些算 concern、哪些算 blocker
  • 硬性红线(一旦违反,直接 blocker)
  • 审查顺序(从重到轻)

实测时这一机制救了一次场:在「给太阳系加月球」的任务里,Advisor 拦住了一次明显越界的轨迹计算,要求主 Agent 修复后再继续。

8.3 启用与避坑

启用 Advisor 用 -advisor-on,关闭用 -advisor-off。注意三点:

  1. Advisor 会显著拉长项目运行时间——它每轮都要独立跑一遍判断。
  2. Advisor 可能给出不合理建议——这时候先优化 WATCHDOG.md,其次切换 Advisor 专属模型,最后才考虑关掉。
  3. 指令里可以直接忽略 Advisor 的建议——如果你明确知道某条建议是错的,在 prompt 里写明即可。

九、实战:用 OMP 做一个太阳系交互网页

理论说够了,接下来用一个完整的 demo 把上面这些能力串起来——用 OMP 做一个给小朋友演示的太阳系交互网页。

9.1 先写两份上下文文件

进入项目目录,先建两份文件:

AGENTS.md(开发规范):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 项目规则

## 交付目标
- 输出一个可在浏览器打开的交互式太阳系网页
- 八大行星按真实比例(允许一定缩放)+ 自转 / 公转动画
- 用户可点击行星查看详情

## 技术栈
- HTML / CSS / 原生 JS,允许引用 Three.js
- 不允许引入任何额外框架(React/Vue 等)

## 禁止项
- 不允许使用需要登录的服务
- 不允许写 .env 文件

## 验收
- 八大行星位置正确
- 自转公转速度合理
- 控制台无报错

WATCHDOG.md(监工规则):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Advisor 规则

## blocker
- 引入了未在 AGENTS.md 列出的框架
- 行星轨道偏离真实数据超过 50%

## concern
- 控制台有 warning 但不影响运行
- 动画帧率 < 30fps

## need
- 代码风格未统一
- 缺少关键注释

## 硬性规则
- 任何修改前必须先备份原文件

9.2 启动 OMP,确认 plan mode 的模型

1
2
omp
/model # 切到 rules,把 plan model 设成偏强的模型

9.3 /plan 启动规划

OMP /plan 工作流执行中

1
/plan 用 HTML + Three.js 做一个交互式太阳系网页:八大行星 + 自转 + 公转 + 可点击查看详情,允许使用真实天文数据。

/plan 第一步先扫整个项目目录(空的,所以基本无负担),第二步开始从官方文档 / 权威来源搜集天文数据,所有信息搜集完成之后才进入计划撰写——这一步它严格遵守了 AGENTS.md 里「编程之前把信息搜集完整」的规则。

大概 3 分钟,计划生成完毕。OMP 的 plan 界面分三个窗口:

  • 左:计划大纲(目录)
  • 右:具体细节
  • 底:操作选项(approved and execute / refine plan / save and quit)

确认无误后,选 approved and execute,并指定用 slow 场景的模型执行(这里我故意用相对重的模型,展示 Advisor 不触发的情况)。

9.4 多 Agent 并行执行

/plan 执行过程中自动启动两个 Agent 并行

执行一开始,状态栏右下角显示 2 个 Agent 同时运行——

  • Agent 1:3D 场景实施(Three.js 路线)
  • Agent 2:Canvas 画布场景实施(2D 路线)

OMP 自动判断这两个任务没有相互依赖,所以并行分配。大概 10 分钟,两个 Agent 都完成,主 Agent 做最终整合,网页可以正常打开——八大行星、轨道、自转公转都符合预期。

9.5 /go 加一个新功能:月球

第一步完成后,用 /go 加一个新需求——月球在地球附近环绕。

1
/go 在地球附近增加月球,月球绕地球旋转,速度合理

/go 自动分析目标 → 拆解步骤 → 逐步执行。这个过程里 Advisor 触发了一次——拦住了月球轨迹计算的一个明显越界推理,要求主 Agent 修复后再继续。最后交付的网页里,月球很自然地绕地球旋转,速度肉眼看上去也合理。

9.6 看一下成品效果

完成后打开本地服务器,八大行星按比例排列、自转公转运行流畅、点击任意行星弹出详情面板——一个完整的、给小朋友演示用的交互式太阳系网页,实测从规划到交付 13 分钟左右。

整个流程跑下来,印证了一件事:OMP 把规划、执行、监工三件事拆得很清楚,并且每一层都允许单独指定模型——这对成本敏感型的团队是个相当务实的工程方案。

十、LSP 跨文件重命名 + 复用 Pi Agent 生态

10.1 LSP 跨文件重命名

OMP LSP 跨文件重命名

LSP 最常用的场景是标识符重命名——改了某个函数名,OMP 通过 LSP 自动找到所有引用并修改。实测一次不到 1 分钟,所有引用同步更新,代码前后一致性得到有效保证。

前提还是那句话:先装好对应语言的 LSP,然后在 OMP 里要求它「使用并激活 LSP」即可。

10.2 直接复用 Pi Agent 生态

OMP 通过 zmarket 复用 Pi Agent 生态插件

因为 OMP 与 Pi Agent 共用一套内核,Pi Agent catalog 里的插件在 OMP 里也能直接用:

手动安装方式——把 pi install npm <插件名> 直接换成 omp install npm <插件名>:

1
omp install npm ask-question

Marketplace 方式——装一个 zmarket 扩展,它会把 Pi Agent 和 OMP 的扩展市场聚合在一起:

1
omp install npm zmarket

进入 OMP,执行 /zmarket,可以直接搜索 / 安装 / 浏览跨 Harness 的扩展包,每条都贴心地标了它跟哪些 Harness 工具适配。

这意味着 Pi Agent 上验证过的所有插件,在 OMP 上是零迁移成本——这一点对已经在 Pi 生态里深耕过的开发者来说,是切换到 OMP 最大的利好。

十一、谁该用 OMP,谁该继续用 Pi Agent

把整套实测拉回小目标:

优先选 OMP 的场景:

  • 想装好就用,不愿自己组装 Harness的开发者
  • 项目需要多模型路由(不同任务用不同模型),且预算敏感
  • 需要原生 LSP / DAP 能力,做严肃的工程开发
  • 项目里上下文文件已经按 AGENTS.md 体系写好了,希望工具自动读
  • 需要 Advisor 监工,对生产链路风险敏感

继续用 Pi Agent 的场景:

  • 你是极简主义者,享受从 4 个工具自己拼装的快感
  • 项目规模小,根本不需要多智能体协作
  • 你已经在 Pi 生态里深度定制,迁移成本反而比新增工具低
  • 想要最轻量的 TUI 体验,不希望界面有装饰元素

一句话总结:OMP 是 Pi Agent 的「全副武装版」,不是替代品——你装哪个,取决于你想要「少即是多」还是「多即是省心」。

总结与配套资源

最后把这次实测的所有关键点收一下,给一份上手优先级清单:

  1. 第一件事:安装 + /connect + /model 路由表——这三步是 OMP 的入口,缺一不可。
  2. 第二件事:/settings 里把 Approvals 调到适合自己的档位——yolo 之前想清楚后果。
  3. 第三件事:Memory 先用 local,跑两周再换 sniper 或 hindsight——别一上来就上最复杂的方案。
  4. 第四件事:AGENTS.md 写好就开 /plan,复杂需求不要直接 /go。
  5. 第五件事:Advisor 不是越多越好,第一次用建议关掉,等熟悉工作流后再开。

配套命令速查:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 安装
brew install oh-my-pi

# 启动
omp

# 关键命令
/connect # 配置供应商
/model # 配置模型 + 角色路由
/settings # 全局设置
/plan <需求> # 启动规划
/go <目标> --budget N # 启动执行(带预算)
/vibe # 多智能体协作
/prework # 强模型规划 + 弱模型执行
/session /resume /tree # 会话管理
/-advisor-on / -advisor-off # Advisor 开关
/zmarket # 扩展市场

# 配置文件位置
~/.omp/agent/config.yaml # 全局配置
<项目根>/AGENTS.md # 项目上下文
<项目根>/WATCHDOG.md # Advisor 规则

如果你之前就在用 Pi Agent,这篇可以当成对照参考——不需要切换,只需要知道 OMP 在哪些能力上做了加强。如果你刚准备入 Agentic Coding 的坑,OMP 是当前少数能把「开箱即用」和「高自由度」两端都做扎实的工具,值得花一晚上先跑一遍上面的实战。

更多 Pi Agent 的深度内容,可以看 Pi Agent 必装 8 个插件实测 和 Pi Agent 零基础入门——把它们当成「轻装版 + 全装版」的对照读,会对 OMP 的设计取舍理解得更透。