跳到主要内容

Oh My Pi v16.0.6 发布 —— DeepSeek 也防递归了,OpenAI 全家桶大重构

· 阅读需 3 分钟

Oh My Pi v16.0.6 封面

思考循环守卫扩展到 DeepSeek

v16.0.5 引入了 Gemini 的思考循环守卫,这次覆盖到了 DeepSeek 模型。同时守卫的监控范围从 thinking logs 扩展到了 assistant response prose(text_delta 事件),响应正文开始流式后的循环也能被检测并中断。

还有一个重要的行为变更:如果循环发生在响应正文已开始流式之后,守卫不再抛可重试错误,而是发出一个包含已累积流式文本的不可重试 partial content block——防止 agent session 回滚导致丢失已有输出。

OpenAI 全家桶大重构

这次最大的改动藏在底层:pi-ai 内部对 OpenAI 兼容 provider 的代码做了一次系统性重构。

统一了 OpenAI 兼容路由:之前 Chat Completions 和 Responses 两条路径各有各的 shared 层,现在合并到 openai-shared。三个重复的 service_tier 请求块和每个 provider 的 wire model-id 转换被抽成了 applyOpenAIServiceTier / applyWireModelIdTransform 等共享 helper。

Provider 差异集中管理:DeepSeek 的特殊 token 剥离、Ollama 的空长度上下文错误、OpenAI 的 tool-call-id 上限、Fireworks 的 thinking drop、OpenRouter/OpenAI Responses 的请求字段——这些散布在各处的 provider 差异逻辑被统一搬到了 resolved compat fields 中。

新工具applyOpenAIExtraBodyapplyOpenAIGatewayRoutingresolveOpenAIOutputTokenParam 等 helper 成为新的标准入口。

对用户来说,这些重构几乎没有直接感知——但如果你在用多个 OpenAI 兼容 provider(DeepSeek、OpenRouter、Fireworks、Together AI),之前偶尔出现的「这个 provider 参数不生效」「那个 provider 报奇怪的错」应该会变少。代码合并意味着差异点被归拢了,边缘 case 的覆盖更完整。

ArkType schema 支持

工具参数除了已有的 Zod schema,现在也支持 ArkType schema 了。如果你的项目用 ArkType 做类型验证,配置 tool 参数时可以直接传 ArkType schema,不用额外转 Zod。

其他小改

从 Zod 到 ArkType 的迁移已经开始——auth-broker、Anthropic Messages 请求、OpenAI Chat/Responses 请求等内部 wire-schema 验证已从 Zod 切到 ArkType。xai-responses provider 被统一的 openai-responses 路径替代,xAI 的 reasoning effort 剥离逻辑改为动态处理。

完整更新日志:https://github.com/can1357/oh-my-pi/compare/v16.0.5...v16.0.6

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

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