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

工具参数不再偷渡 Schema 对象
v16.1.5 修了一个不容易注意但传出去就很尴尬的 bug:normalizeTools 的参数在 wire-encode 时没有统一处理。当工具的 intent 解析为 "omit" 时(比如内置的 eval 和 resolve 工具),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更新报告