跳到主內容

Theme / v5.1.61

Oh My OpenAgent

AI 代理編排系統

基礎觀念

v5.1.45~v5.1.51:Session 分頁、記憶與執行可靠性

🟡 中階|整理 OmO v5.1.45~v5.1.51:長 session API 分頁與效能量測、init-deep committed mode 的 PR handoff、Git pathspec 相容、turn-end subscriber 有界等待、後續 memory 與 engine 改善,以及 v5.1.51 的 session startup 不再等 liveness probe、同步 task 快速失敗與 provider fallback。含互動測驗與升級檢查清單。

概述

v5.1.45~v5.1.48 於 2026-10-24~2026-10-25 發布。本課聚焦長 session 資料讀取,以及初始化、Git 查找、memory recovery 與 turn-end 等可靠性改善。效能數字是各版 release notes 記載的量測,不代表本站或讀者環境的實測結果。

v5.1.45:Session API 分頁與長對話效能

session_read、session_search 與 session_info 改為透過 OpenCode 的 message API 分頁讀取,而非載入整個 session。release notes 以 23,000 則訊息的 session 量測:session_read 使用 limit: 2, from_end: true 時,讀取時間由 39.6 秒降至 42 ms,峰值記憶體由 1,848 MB 降至 68 MB(#10741;相關 issue:#10738)。

搜尋耗盡 60 秒 timeout 時,現在會在搜尋返回後停止讀取;release notes 指出,舊行為會在背景再讀取 228 MB。這組量測說明分頁讀取對特定長 session 的影響,不應解讀為所有環境都會達到相同數字。

v5.1.46:Committed mode 使用自身的 PR handoff

OmO Native 的 init-deep committed mode 不再指向 OmO Native 未提供的 skill,而是透過自身的 pull-request handoff 完成流程。若無法開啟 PR,流程會回報如何手動完成(#11228;修正 #9686)。

同版也改善 reflection 執行的復原:host 在 run 中途結束時,若 launcher 與 publish claimant 都已消失且結果有記錄,後續請求會結算該 run,讓排隊請求繼續執行(#10388、#10528)。此外,一筆不合規的 memory entry 不再讓整個 reflection run 失敗;有效項目會保留,遭拒項目會逐項附原因回報(#10528)。

v5.1.47:Git pathspec 模式下的字面路徑查找

Memory path-state recovery 與 commit hooks 在全域 glob 或不區分大小寫的 pathspec 模式啟用時,仍能進行 literal Git lookups(#11167;修正 #11130)。同版也將使用者 Stop 對 workflow run 的作用改為暫停:DAG nodes、workpool workers 與 task children 停在原處,對暫停中的 run 傳送訊息或執行 Resume 後,會從停止處繼續(#10808;修正 #6752)。

v5.1.48:限制卡住的 turn-end 等待

OmO Native 遇到卡住的 turn-end subscriber 時,等待兩秒後停止等待。Memory recovery 仍可重試,而被取消的等待不會被當成失敗的 reflection run;stall diagnostics 會指出 component 與 hook,而不只顯示 omo.js(#11254)。

v5.1.48 也更新 senpi engine 至 2026.10.25-2。release notes 記載,在有 748 個 skills 的案例中,啟動時間由 83.2 秒降至 1.4 秒;這是該案例的量測。長 session 出現 context-budget reminder 時,該次 request 寫入 44k cache tokens,而舊行為寫入 758k;engineTurns.maxPerUserInput 可重新啟用預設關閉的 per-request turn limit,6 小時 turn runtime cap 仍適用(#11240)。

v5.1.51:啟動加速與同步 task 快速失敗

v5.1.51(2026-10-28 發布)併入了未發布的 v5.1.49 與 v5.1.50——v5.1.49 的 Linux binaries 超過 182 MiB 體積預算(linux-x64 200.0 MB),該 release 在任何東西發布前就停止,體積預算隨後移到 200 MiB。

  • Session startup 與 task RPC attachment 不再等 task-host liveness probes(#11335):recovery 改為每 host 獨立運作、shutdown 後不再 claim 或 revive children,並保留較新的 ownership claims。
  • DAG recovery 與 workpool reconciliation 共用啟動 gate(#11525):兩者等待同一個 session-start reconcile 而不佔住 admission——暫停 DAG 中可復活的 child 不再被誤判 orphaned,orphaned worker 的 queued workpool item 改為重新投遞而非標記 delivery_uncertain。
  • 同步 task 快速失敗(#11524,修 #11520):對已刪除的 session 續跑同步 task 立即回錯並要求開新 task,不再等滿 30 分鐘 sync poll timeout;完成的 sync task session 改守 background_task.taskCleanupDelayMs 而非固定 10 分鐘。
  • Provider 登入失效改走 fallback(#11440):engine 以 provider_credentials_missing/provider_credentials_expired 拒絕 child 首個 prompt 時,task 跳過該 provider、走 fallback chain 的下一個 provider,最後落到 parent session 的 model;每一跳記錄 task_model_fallback event。ChatGPT subscription 的 sign-in refresh 只在啟動時短暫失敗(connection refused、timeout、408/429/5xx)時,model profile 不再被換到下一個 metered provider(#11442,修 #11432)。

複查重點

  • Session API 使用分頁讀取;長 session 的量測值需連同測試條件解讀。
  • init-deep committed mode 有自己的 PR handoff,無法開 PR 時會提供手動完成方式。
  • Git 全域 pathspec 設定不應再破壞 memory recovery 與 commit hooks 的字面路徑查找。
  • 卡住的 turn-end subscriber 等待兩秒後停止等待;被取消的等待不代表 reflection run 失敗。
  • v5.1.51 起 session startup 與 task RPC attachment 不再等 liveness probes;同步 task 對已刪除 session 快速失敗,provider 登入失效改走 fallback chain。
隨堂測驗

v5.1.45 的長 session 量測中,`session_read` 使用 `limit: 2, from_end: true` 後有何改變?

💡 想先看個提示?

確認前後的秒數與 MB 數字。

動手升級檢查清單

升級 v5.1.51:動手檢查清單

逐項勾選,確認你已完成升級必要的步驟(進度會保存在此瀏覽器)

0 / 9

延伸閱讀