跳到主要内容

Oh My Pi v16.1.5 发布 —— 工具参数不泄露 Schema 了,旧方法清理掉

· 阅读需 2 分钟

Oh My Pi v16.1.5 封面

工具参数不再偷渡 Schema 对象

v16.1.5 修了一个不容易注意但传出去就很尴尬的 bug:normalizeTools 的参数在 wire-encode 时没有统一处理。当工具的 intent 解析为 "omit" 时(比如内置的 evalresolve 工具),raw arktype/zod schema 对象会泄露到参数里

如果你在自己调 agent 的 tool 调试信息里看到过一堆奇怪的 schema 类型定义而不是干净的 JSON schema——就是这个 bug 导致的。修法就是把 normalizeTools 的所有分支统一 wire-encode,不挑工具类型下菜碟。

删了 nextToolChoice 旧入口

AgentSession 上之前有一个 nextToolChoice() 和一个 nextToolChoiceDirective() 两个方法,做的事情高度重叠。区别是 nextToolChoiceDirective() 会走完整的 hard-choice 出队 + active-tool 过滤流程,而 nextToolChoice() 只出队,跳过过滤。

v16.1.5 删了后者。per-turn tool-choice 指令全部走 nextToolChoiceDirective() 一条路径,不再给调用者留两个入口。这个清理本身不影响功能,但开发者如果直接调用 nextToolChoice() 做集成,需要改为 nextToolChoiceDirective()

升级

Oh My Pi 安装方式:

macOS / Linux:

curl -fsSL https://omp.sh/install | sh

Homebrew:

brew install can1357/tap/omp

Bun:

bun install -g @oh-my-pi/pi-coding-agent

mise:

mise use -g github:can1357/oh-my-pi

Windows(PowerShell):

irm https://omp.sh/install.ps1 | iex

完整更新日志:GitHub Release

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

#OhMyPi #版本更新 #AI写代码的小任 #LLM更新报告