跳到主要内容

oh-my-pi v16.0.0 发布 —— 你的 AI 助手旁边,现在坐了个审计员

· 阅读需 4 分钟

这是 v15.13 那波 dialect 语法大重构之后的一个大版本——版本号直接从 15 跳到 16,配了一个 Passive Advisor 系统。

oh-my-pi v16.0.0 封面

Passive Advisor:第二双眼睛

这个版本最核心的添加,是让用户指定第二个模型作为 Advisor。主模型在跑 tool calls、读文件、写代码的时候,Advisor 在隔离的 ToolSession 里同步审查——只读权限,不碰主模型的快照,不干扰执行路径。

审查结果分三个严重级别:

  • nit:不打断,排在下一轮输出前一起展示
  • concern / blocker:直接通过 steering channel 打断正在跑的 agent。工具执行中?打断。agent 已经 yield 了?恢复它再插话

以前你设过「rule injection」之类的东西——那是被动防御:模型写错了被正则拦下来,注入提醒。Advisor 是主动进攻:还没写错它就有意见。

这个设计的聪明之处在于隔离方案。Advisor 有自己的 ToolSession,read / search / find 各自维护独立的 snapshot 和 seen-lines cache,两边互不影响。主模型管执行,Advisor 管质量,各自的上下文预算不打架。

Advisor 的设置也分层了:advisor.enabled 控制顶层 session,advisor.subagents 控制是否延伸到 task/eval 子智能体。如果你让子智能体也配上 advisor,等于一个团队里每个工程师身边都跟了一个 code reviewer。

不过话说回来,这个功能的双刃剑很明显——多一个模型的 token 消耗翻倍,至少在关键 session 上开就行。omp 默认全关,advisor.enabled 和 advisor 角色配置好才激活。

配套的还有 /advisor on/advisor off/advisor status/advisor dump 四个 slash command。状态行上会出现一个 ++ badge(成功色),让你一眼知道 advisor 在工作。

11 种 Dialect,每个人说自己的话

v15.13 把 tool-calling 从「一套语法走天下」变成了「每个模型用母语说话」——支持了 8 种 in-band syntax。v16.0.0 在此基础上做了两件事:

从 Syntax 到 Dialect——统一命名toolCallSyntaxdialectPI_OWNED_TOOLSPI_DIALECTGrammarDialectDefinition。这不是单纯改名——每个 dialect 现在有完整的 renderThinkingrenderTranscript 方法,序列化的是完整的原生对话记录,不只是 tool call/result block。

从 8 种到 11 种。新增了 Gemma、Kimi、Pi-native 三条路子。更重要的补齐是 thinking channel:Gemini 拿到了 ```thinking fence(跟 ```tool_code 对称),Gemma 用其原生 <|channel|>thought...<|channel|> channel。Kimi 加上了 <think>...</think>,Pi 自己也补了 <thinking>...</thinking>。每个 scanner 现在把 reasoning 解析成 thinking event,不再把 chain-of-thought 泄漏到 visible reply 里。

顺便提一个开发细节:renderToolInventory 会在工具描述的 markdown 包含顶层 # header 时自动降级一级——不会让工具名称的 # Tool: foo 和描述里的 # 争级别。

其他更新

syncBacklogadvisor.syncBacklog 设为 135 可以让主 session 在 advisor backlog 降到阈值之前不进入下一轮,最长等 30 秒。适合那些「宁可慢一点也要确认上一步没问题」的场景。

onTurnEnd hook:每轮对话结束时触发,可以执行记账/状态持久化操作,支持异步。aborted 或 error 的 turn 自动跳过回调。

WATCHDOG.md 自动发现:用户目录和项目目录下的 WATCHDOG.md 自动附加到 advisor 的 system prompt 里。让本地监护规则指导 advisor 的审查方向——团队可以在 repo 里放一个 WATCHDOG.md,advisor 自动就知道什么可以放行、什么要拦。

/dump [raw]:新增 raw flag,默认走 compact markdown 输出,用 raw 退回到旧版 uncompact 格式。

startup.quiet 修复(#2639):之前 startup.quiet 只压制了模型输出,MCP 和 LSP 的启动状态还是会冒出来。现在真的安静了。

Windows bash 路径修复(#2634):MSYS/Git-Bash 的 /d/project 和 WSL 式的 /mnt/d/project 在 bash tool cwd 验证和 brush filesystem builtins 里统一走 native 路径了。Windows 双系统用户应该能注意到之前某些跨驱动器操作会挂。

升级

# macOS/Linux
curl -fsSL https://omp.sh/install | sh

# Homebrew
brew upgrade can1357/tap/omp

# Bun(推荐)
bun update -g @oh-my-pi/pi-coding-agent

# macOS/Linux/Windows — pinned with mise
mise use -g github:can1357/oh-my-pi

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#oh-my-pi #AI编程助手 #PassiveAdvisor #开源