外部精选
omp · v18.9.2
本文来自外部来源,不是黄奕彬的原创文章。本站提供原文入口,并在采集端生成 AI 结构化摘要、解读与中文翻译(如有),一切以原文为准。
阅读原文(github.com)结构化摘要 AI 生成
背景与问题
背景与问题:这是 oh-my-pi(omp)v18.9.2 的官方发布说明,回答的问题是:相对 v18.9.1,本版本各子包有哪些破坏性变更、新增、改进与修复。omp 是多包(monorepo)项目,含 pi-agent-core、pi-ai、pi-catalog、pi-coding-agent、pi-natives、pi-tui、pi-utils 等组件。目标读者是使用这些包、需评估升级与迁移的开发者。
方法或内容
方法或内容:按子包分组列出变更,并附 PR 级 What's Changed 清单:
@oh-my-pi/pi-agent-core:改进重复回合的上下文缓存。@oh-my-pi/pi-ai:judge API 破坏性更名;新增 OpenAI Decisions 与 Cloudflare Workers AI 原生 judge;问题自动分批;改进 Anthropic 提示缓存;修复 Devin 路由问题。@oh-my-pi/pi-catalog:移除 Cloudflare AI Gateway 凭据工具函数。@oh-my-pi/pi-coding-agent:多项修复。@oh-my-pi/pi-natives:修复 Markdown 高亮卡顿。@oh-my-pi/pi-tui:tmux 内 Tern 终端原生 TSP 渲染。@oh-my-pi/pi-utils:流式 JSON 解析改进。
另列出约 36 个 PR、2 位新贡献者及完整变更链接 v18.9.1...v18.9.2。
关键发现 / 结果
关键发现或结果:
- 破坏性:
TypeSafeJudge更名为NativeJudge,TypeSafeApiError更名为JudgmentApiError(含关联选项类型);JUDGMENT_ROUTES已移除,改用isJudgmentApi或createNativeJudge(model, { apiKey })。 - 新增:
openai-decisions与workers-ai-systemoneAPI 的原生 judge 支持;createNativeJudge(model, { apiKey, headers, fetch });loginCloudflareWorkersAi;对有问答上限的端点自动分批,最多 4 个并发批次并合并答案与用量。 - 移除:
parseCloudflareAiGatewayCredential、serializeCloudflareAiGatewayCredential、CloudflareAiGatewayCredential从pi-catalog/wire/cloudflare-ai-gateway移除,改用pi-catalog/wire/cloudflare的等价物。 - 修复:Devin 路由 OpenAI 模型切会话后每回合返回
invalid_argument;apply_patch无上下文块在目标文本多次出现时的绑定;/tan分叉错误继承父任务 subagent 花费;omp gc --apply残留临时文件;OpenRouter:floor/:nitro变体路由;models.yml裸模型 ID 误解析到本地 Ollama/llama.cpp/LM Studio。 - CI 固定 Bun
1.4.3;新贡献者 @akai-hana、@Ikaleio。
结论与意义
结论与意义:本版本为补丁版本(v18.9.1 → v18.9.2),以修复与性能改进为主,同时包含 @oh-my-pi/pi-ai 的破坏性 API 更名,升级方需迁移代码(尤其 JUDGMENT_ROUTES 与 judge 相关调用)。原文未说明迁移示例、兼容期限或后续计划;「更快」「内存更低」等性能主张未附基准数据。适用边界:变更描述仅针对 v18.9.2 这一版本。
AI 解读 AI 生成
方法:按「时空变量」分析(时间 / 空间 / 变量,严格区分包含、相关与因果),对象包括原文作者、署名人员与关键技术及其实际原理;结论用「元反空」(元思考、反思考、空思考、综合)整理。
时间:何时发生,现在是否仍成立
时间:来源日期为 2026年10月12日 03:07(北京时间),即北京时间 2026-10-12 03:07:17 发布。
内容是对该时间点已发布的 v18.9.2 的变更记录,作为该版本的官方清单应当成立;但具体 API 形态(如 NativeJudge)是否仍适用取决于后续版本,原文未说明后续版本计划,因此现在(阅读时)是否仍成立无法从原文确认。
空间:谁的环境 / 场景
空间:适用于使用 oh-my-pi(omp)v18.9.2 及其子包的用户与开发者。具体场景包括:
- 使用
@oh-my-pi/pi-aijudge API(原TypeSafeJudge)的代码。 - 接入 OpenAI Decisions API、Cloudflare Workers AI、Anthropic、Devin 路由 OpenAI 模型、OpenRouter 变体(
:floor/:nitro)、Groq 的场景。 - 本地 Ollama、llama.cpp、LM Studio 端点(含相应环境变量)。
- tmux 内运行的 Tern 终端会话。
- CI/文档镜像固定 Bun
1.4.3。
变量:实际改变了什么
变量:相对此前实际改变了:
- 结构:API 更名(
TypeSafeJudge→NativeJudge、TypeSafeApiError→JudgmentApiError);删除JUDGMENT_ROUTES与pi-catalog中 3 个 Cloudflare AI Gateway 凭据导出(等价物迁移到另一模块路径)。 - 行为:系统提示不变时重复回合减少冗余提示处理;Anthropic 长对话缓存断点选择内存占用降低;judge 问答自动分批(≤4 并发)并合并答案与用量上报;
apply_patch无上下文块绑定到首次匹配。 - 修复类行为变化:Devin 路由
invalid_argument、/tan分叉计费继承、omp gc临时文件、OpenRouter 变体、裸模型 ID 误解析等。 - 工具链:CI 固定 Bun
1.4.3;README 改用nix profile add。原文未说明价格类变化。
区分:包含 ≠ 相关 ≠ 因果
区分:有明确因果陈述的是改进与修复项——如上下文缓存改进「减少冗余提示处理并使系统提示不变时的后续回合更快」;修复项均为「问题→已修复」的直接对应(如 Devin 路由返回 invalid_argument 已修复)。
仅包含或相关的是:What's Changed 的 PR 清单与各包变更同属一个版本,但单个 PR 对整体性能的量化影响原文未说明;perf 标记的提交声称性能改进,未给基准数据;新贡献者名单与版本质量之间无因果证据;包与包之间的变更互不构成因果。
对象:作者/署名与关键技术原理
对象:署名/作者仅为结构化作者字段给出的 github-actions[bot](GitHub Actions 自动化账号)。正文 What's Changed 中按 PR 标注了贡献者句柄(如 @iliaal、@sjawhar、@yuzu-octopus、@H4vC 等),这属于变更清单内容,不是本发布说明的署名。关键技术(按原文描述的原理):
- 上下文缓存:系统提示不变时复用缓存、减少重复提示处理。
NativeJudge:按目录模型创建判定器,携带配置的请求模型 ID 与问题上限;对有上限的端点自动分批,最多 4 个并发批次,合并答案与用量,经partial-usage回调及会话与 auth-gateway 用量台账上报(即使某批次失败)。- Anthropic 提示缓存:缓存断点选择改为一次反向遍历以降低内存。
- 原生 TSP 渲染:tmux 内 Tern 会话自动检测并安全设置标题。
- 流式 JSON 解析:针对含大量字符串的工具参数做性能改进,并修复含非双/单引号闭合定界符的长字符串解析。原文未说明更深层实现细节。
元反空综合结论
元反空综合:
- 元:这条内容本质是一份版本变更清单,解决「omp
v18.9.2相对v18.9.1改了什么、升级者需注意什么(尤其破坏性更名与删除项)」的问题。 - 反:最可能失效或有边界的部分——所有
perf类主张(更快、内存更低、响应更好)均无基准数据,效果因对话长度、模型与负载而异;NativeJudge等新 API 属演进中的接口,后续版本可能再改;修复只覆盖列出的特定场景,不代表同类问题全部消除。 - 空:去掉发布叙事后剩下的必要事实是:一个从
v18.9.1到v18.9.2的版本发布,跨 7 个子包列出破坏性变更、新增、改进与修复,附约 36 个 PR、2 位新贡献者、CI 固定 Bun1.4.3,署名为github-actions[bot]。 - 综合结论:作为「该版本包含哪些变更」的官方记录可信;用户升级前应优先处理
pi-ai的 API 更名、JUDGMENT_ROUTES移除及pi-catalog凭据函数迁移,性能收益需自行验证;原文未说明迁移示例、基准数据与后续路线。
中文译文 AI 生成
@oh-my-pi/pi-agent-core
变更
- 改进了重复轮次的上下文缓存,减少冗余的 prompt 处理,在系统提示词未变化时使后续轮次更快。
@oh-my-pi/pi-ai
破坏性变更
- 将
TypeSafeJudge重命名为NativeJudge,将TypeSafeApiError重命名为JudgmentApiError,包括其相关的选项类型。JUDGMENT_ROUTES已被移除;请使用isJudgmentApi,或使用createNativeJudge(model, { apiKey })为目录模型创建 judge。
新增
- 为 OpenAI 的 Decisions API 和 Cloudflare Workers AI 决策模型新增了原生 judge 支持,包括
openai-decisions和workers-ai-systemoneAPI。认证网关的 System One 路由同时支持这两个提供方。 - 新增
createNativeJudge(model, { apiKey, headers, fetch }),用于基于目录模型创建 judge,并使用其配置的请求模型 ID 与问题数量限制。 - 新增通过
loginCloudflareWorkersAi进行 Cloudflare Workers AI 认证,会存储 API token 和账户 ID;使用相同 token 再次登录会替换已有凭据。 - 为
NativeJudge新增自动问题分批,适用于设有问题数量限制的端点,最多支持四个并发批次,并合并答案与用量报告。即使另一个批次失败,成功批次的用量仍会通过partial-usage回调以及会话和认证网关两份用量台账进行报告。
变更
- 改进了长对话场景下的 Anthropic prompt 缓存,降低了选择缓存断点时的内存占用。
修复
- 修复了已有会话从
openai-codex切换后,经 Devin 路由的 OpenAI 模型每轮都返回invalid_argument的问题。
@oh-my-pi/pi-catalog
移除
- 从
@oh-my-pi/pi-catalog/wire/cloudflare-ai-gateway中移除了parseCloudflareAiGatewayCredential、serializeCloudflareAiGatewayCredential和CloudflareAiGatewayCredential。请改用@oh-my-pi/pi-catalog/wire/cloudflare中的对应实现。
@oh-my-pi/pi-coding-agent
修复
- 改进了在长对话记录中工具调用之后添加助手文本时的响应速度。
- 修复了目标文本出现多次时
apply_patch对无上下文 hunk 的处理。 - 修复了在 judge 端点限制每次请求问题数量的情况下,find 文件名排序与 sketch 评分的问题。
- 修复了
omp gc --apply在保存被中断后遗留临时会话文件的问题。 - 修复了
omp auth-gateway serve对 OpenRouter 路由变体(如:floor和:nitro)的处理。 - 通过指明涉及的辅助函数与参数,改进了 text 参数缺失或非字符串时 computer 辅助函数的校验错误提示。
- 修复了
/tan分叉错误继承父任务 subagent 支出的问题,同时保留 token 计数。 - 修复了
omp://文档链接,使其在源码检出中打开对应文件。 - 修复了
models.yml中裸模型 ID 错误解析为自动发现的 Ollama、llama.cpp 或 LM Studio 提供方的问题。 - 新增了当已配置的 Ollama、llama.cpp 或 LM Studio 端点无法访问时的警告,并指明相关的环境变量。
@oh-my-pi/pi-natives
修复
- 修复了高亮包含大量内联 span 或反斜杠转义的 Markdown 工具预览时出现卡顿的问题。
@oh-my-pi/pi-tui
新增
- 新增了对运行在 tmux 内的 Tern 终端会话的原生 TSP 渲染支持,具备自动会话检测与安全的标题设置行为。
修复
- 改进了在长对话记录中工具调用之后插入助手消息时的响应速度。
@oh-my-pi/pi-utils
变更
- 改进了对包含大量字符串值的工具参数的流式 JSON 解析性能。
修复
- 修复了对包含双引号或单引号以外闭合分隔符的长字符串的解析。
变更内容
- fix(natives):在构建时注册修正后的 Markdown 语法,由 @iliaal 在 #15272 中提交
- perf(natives):以 vendor 方式引入无指数级回溯的 Markdown 语法,由 @sjawhar 在 #13838 中提交
- perf(utils):对较短的转义片段避免批量扫描初始化,由 @iliaal 在 #15273 中提交
- perf(coding-agent):延迟高亮器初始化,由 @iliaal 在 #15299 中提交
- perf(read):压缩目录元数据的间距,由 @MikeeI 在 #9062 中提交
- perf(tui):在
insert-after-anchor时保持 transcript 条目镜像同步,由 @F0Rextasy 在 #14344 中提交 - perf(coding-agent):为 18.9 压缩 Read 目录元数据,由 @iliaal 在 #15352 中提交
- perf(tui):在 18.9 中保持 transcript 插入同步,由 @iliaal 在 #15353 中提交
- fix(coding-agent):优先使用
models.yml提供方而非隐式本地发现,由 @H4vC 在 #15360 中提交 - docs(readme):使用
nix profile add替代已弃用的install,由 @akai-hana 在 #15297 中提交 - chore(ci):在 runner 和 docs 镜像中固定 Bun 1.4.3,由 @yuzu-octopus 在 #15324 中提交
- fix(edit):
apply_patch像 Codex 一样将 hunk 绑定到首个匹配,由 @Ikaleio 在 #15340 中提交 - fix(find):将 judgment 请求上限设为 16 个问题,由 @yuzu-octopus 在 #15160 中提交
- refactor(ai):为提供方重试等待钩子提供统一的
waitForRetry辅助函数,由 @yuzu-octopus 在 #15307 中提交 - refactor(config):为 dap 和 lsp 提供统一的 JSON 配置源栈,由 @yuzu-octopus 在 #15306 中提交
- perf(ai):将三次索引遍历融合进转换阶段,由 @yuzu-octopus 在 #15330 中提交
- perf(ai):通过一次反向遍历选取 anthropic 缓存断点,由 @yuzu-octopus 在 #15219 中提交
- perf(agent):不再在每次构建时拼接系统提示词并重新渲染工具键,由 @yuzu-octopus 在 #15218 中提交
- perf(scrapers):将 youtube 元数据与字幕的 spawn 合并为一次,由 @yuzu-octopus 在 #15334 中提交
- feat(coding-agent):新增 computer 元素
doubleClick,并在元素调用命中find()的数组时为 pick 命名,由 @will-bogusz 在 #15312 中提交 - fix(computer):指明格式错误调用所传的辅助函数与参数,并将菜单路径作为独立标题处理,由 @will-bogusz 在 #15309 中提交
- fix(coding-agent):在分叉中重置继承的嵌套任务计费,由 @anatoli-tsinovoy 在 #15039 中提交
- fix:将
omp://文档链接指向源码检出中的磁盘文件,由 @danzaio 在 #15086 中提交 - fix(edit):将单个
apply_patchhunk 绑定到首个规范化重复,由 @H4vC 在 #15367 中提交 - perf(coding-agent):按需加载延迟代码,由 @iliaal 在 #15298 中提交
- 修复(judgment):仅为有需要的评判模型设置 System One 问题数量上限,由 @H4vC 在 #15368 中完成
- 修复(catalog):仅向 Groq 发送其接受的请求字段,由 @Robinbinu 在 #15322 中完成
- 修复(judgment):在
auth-gateway中应用问题数量上限并限制 chunk 扇出,由 @H4vC 在 #15373 中完成 - 修复(ai/devin):在 cascade 重放时规范化外部
tool-callid,由 @roboomp 在 #15237 中完成 - 修复(coding-agent):在
gc中回收孤立的会话暂存临时文件,由 @roboomp 在 #15355 中完成
新贡献者
- @akai-hana 在 #15297 中完成了首次贡献
- @Ikaleio 在 #15340 中完成了首次贡献
完整变更日志:v18.9.1...v18.9.2
展开原文提取正文(采集端自动提取,可能有缺失)
@oh-my-pi/pi-agent-core
Changed
Improved context caching for repeat turns, reducing redundant prompt processing and making subsequent turns faster when the system prompt is unchanged.
@oh-my-pi/pi-ai Breaking Changes
Renamed TypeSafeJudge to NativeJudge and TypeSafeApiError to JudgmentApiError, including their associated option types. JUDGMENT_ROUTES has been removed; use isJudgmentApi or create a judge for catalog models with createNativeJudge(model, { apiKey }).
Added
Added native judge support for OpenAI’s Decisions API and Cloudflare Workers AI decision models, including the openai-decisions and workers-ai-systemone APIs. The auth gateway’s System One route supports both providers. Added createNativeJudge(model, { apiKey, headers, fetch }) for creating judges from catalog models with their configured request model IDs and question limits. Added Cloudflare Workers AI authentication with loginCloudflareWorkersAi, storing the API token and account ID; logging in again with the same token replaces the existing credential. Added automatic question batching to NativeJudge for endpoints with question limits, with up to four concurrent batches and merged answers and usage reporting. Usage from successful batches is reported through partial-usage callbacks and both session and auth-gateway usage ledgers, even if another batch fails.
Changed
Improved Anthropic prompt caching for long conversations, reducing memory usage while selecting cache breakpoints.
Fixed
Fixed Devin-routed OpenAI models returning invalid_argument on every turn after an existing session was switched from openai-codex.
@oh-my-pi/pi-catalog
Removed
Removed parseCloudflareAiGatewayCredential, serializeCloudflareAiGatewayCredential, and CloudflareAiGatewayCredential from @oh-my-pi/pi-catalog/wire/cloudflare-ai-gateway. Use the equivalents from @oh-my-pi/pi-catalog/wire/cloudflare instead.
@oh-my-pi/pi-coding-agent
Fixed
Improved responsiveness when adding assistant text after tool calls in long transcripts. Fixed apply_patch handling of context-free hunks when the target text appears multiple times. Fixed find filename ranking and sketch scoring with judge endpoints that limit the number of questions per request. Fixed omp gc --apply leaving temporary session files after an interrupted save. Fixed omp auth-gateway serve handling of OpenRouter routing variants such as :floor and :nitro. Improved validation errors for computer helpers with missing or non-string text arguments by identifying the helper and argument involved. Fixed /tan forks incorrectly inheriting the parent task's subagent spending while preserving token counts. Fixed omp:// documentation links so they open the corresponding files in source checkouts. Fixed bare model IDs in models.yml incorrectly resolving to auto-discovered Ollama, llama.cpp, or LM Studio providers. Added warnings when configured Ollama, llama.cpp, or LM Studio endpoints cannot be reached, identifying the relevant environment variable.
@oh-my-pi/pi-natives
Fixed
Fixed stalls when highlighting Markdown tool previews containing many inline spans or backslash escapes.
@oh-my-pi/pi-tui
Added
Added native TSP rendering support for Tern terminal sessions running inside tmux, with automatic session detection and safe title-setting behavior.
Fixed
Improved responsiveness when inserting assistant messages after tool calls in long transcripts.
@oh-my-pi/pi-utils
Changed
Improved streaming JSON parsing performance for tool arguments containing many string values.
Fixed
Fixed parsing of long strings that contain closing delimiters other than double or single quotes.
What's Changed
fix(natives):register corrected Markdown grammar at build time by @iliaal in #15272perf(natives):vendor the Markdown grammar without exponential backtracking by @sjawhar in #13838perf(utils):avoid bulk scan setup for short escaped runs by @iliaal in #15273perf(coding-agent):defer highlighter initialization by @iliaal in #15299perf(read):compact directory metadata spacing by @MikeeI in #9062perf(tui):keep the transcript entry mirror in step on insert-after-anchor by @F0Rextasy in #14344perf(coding-agent):compact Read directory metadata for 18.9 by @iliaal in #15352perf(tui):keep transcript insertions synchronized on 18.9 by @iliaal in #15353fix(coding-agent):prefermodels.ymlproviders over implicit local discovery by @H4vC in #15360docs(readme):use nix profile add instead of deprecated install by @akai-hana in #15297chore(ci):pin Bun 1.4.3 in the runner and docs images by @yuzu-octopus in #15324fix(edit):apply_patchbinds hunks to the first match like Codex by @Ikaleio in #15340fix(find):cap judgment requests at 16 questions by @yuzu-octopus in #15160refactor(ai):onewaitForRetryhelper for the provider retry-wait hook by @yuzu-octopus in #15307refactor(config):one json config-source stack for dap and lsp by @yuzu-octopus in #15306perf(ai):fuse three index walks into the transform passes by @yuzu-octopus in #15330perf(ai):pick anthropic cache breakpoints in one backward walk by @yuzu-octopus in #15219perf(agent):stop joining the system prompt and re-rendering tool keys per build by @yuzu-octopus in #15218perf(scrapers):collapse the youtube metadata and subtitle spawns into one by @yuzu-octopus in #15334feat(coding-agent):add computer elementdoubleClickand name the pick when element calls hitfind()'s array by @will-bogusz in #15312fix(computer):name the helper and argument a malformed call passes, and take menu paths as separate titles by @will-bogusz in #15309fix(coding-agent):reset inherited nested task billing in forks by @anatoli-tsinovoy in #15039fix:link omp:// docs to the on-disk file in source checkouts by @danzaio in #15086fix(edit):bind singleapply_patchhunks to the first normalized repeat by @H4vC in #15367perf(coding-agent):load deferred code on demand by @iliaal in #15298fix(judgment):cap System One questions only for judge models that need it by @H4vC in #15368fix(catalog):sent Groq only the request fields it accepts by @Robinbinu in #15322fix(judgment):apply question caps in auth-gateway and bound chunk fan-out by @H4vC in #15373fix(ai/devin):normalized foreign tool-call ids on cascade replay by @roboomp in #15237fix(coding-agent):reclaimed orphaned session staging temps in gc by @roboomp in #15355
New Contributors
@akai-hana made their first contribution in #15297 @Ikaleio made their first contribution in #15340
Full Changelog: v18.9.1...v18.9.2
原文入口
阅读原文(github.com)原文将在新窗口打开。收录时间不是内容更新时间;正文、译文与解读的版权归原作者/来源所有,本站仅作个人阅读辅助并保留原文入口;页面时间均为北京时间。
了解来源批准与收录规则