跳到主內容

Theme / v5.1.61

Oh My OpenAgent

AI 代理編排系統

基礎觀念

v5.1.22~v5.1.30:記憶安全、前台控制授權與研究瀏覽器

🔴 進階|v5.1.21 → v5.1.30 的升級重點:記憶系統的秘密掃描與 /doctor 稽核、ultrawork 防誤觸發、senpi 引擎的 MCP OAuth 綁定與自動輪次上限、前台電腦控制需明確授權(desktop.control.acquire)、ulw-research 改用你的瀏覽器讀來源。含互動測驗與升級檢查清單。

概述

八個已發布版本(v5.1.22 ~ v5.1.30,2026-10-07~10-11;v5.1.25 從未發布——Linux x64 binary 超過 150 MiB 發布預算,變更全併入 v5.1.26)。四條主線:

主線 版本 一句話
記憶安全 v5.1.22/v5.1.24 秘密文字不得進記憶;/doctor 稽核記憶檔案;維護執行留下收據
任務生命週期 v5.1.22–v5.1.30 啟動失敗說原因、DAG 上限只算運行中、懸置 child 必有結局
引擎(senpi) 各版 MCP OAuth 綁定發證者、自動輪次 150 上限、帳號重試與快取
桌面與前台控制 v5.1.30 macOS 選單路徑操作;前台控制需明確 OK

記憶系統:安全與可審核(v5.1.22、v5.1.24)

  • 秘密不得進記憶:含 token、API key 或 PEM 區塊的 memory commit 被拒絕;注入對話的記憶文字先遮罩。v5.1.24 再補:認得更多偽裝形態(黏在字尾、被格式字元接合、含不可見字元的 token),/doctor 與維護收據會註明掃描何時退回保守模式。
  • /doctor 檢查記憶檔案本身:壞連結、無效 frontmatter、重複筆記、記憶資料夾外的檔案、讀不到的檔案、超大的 system 區段;--json 輸出同樣結果(秘密遮罩)。背景清理會修掉它找到的問題。
  • 維護執行的收據與隔離:reflection、dream、facts 每次執行留收據(/doctor 可見);執行到一半死掉的 run 連同檔案被隔離並記下原因,後續 run 不被卡住;死前已提交的成果保留。
  • 記憶不再拖慢每個 prompt:「這個 session 存過記憶嗎」的檢查從讀整個身份歷史(可能數秒、記憶體壓力下裸錯)改為有界;每個 turn 的記憶檔名清單列入 byte 預算(實測曾在長壽 corpus 上到約 158 KB ≈ 39K token)。

任務生命週期:每個 child 都有結局

這批修復的主題句:懸置(suspended)不該是穩態。

問題 版本 修復
child 啟動失敗只說「Child prompt failed to start.」 v5.1.22 一行指名原因:host 超時/拒絕(含錯誤碼)、連線遺失、child 先退出(含 exit code);原始錯誤文字不外洩
task.dag.max_runs_per_session(預設 16)把已結束的 graph 也算到一週後 v5.1.24 只計仍在運行的 graphs;拒絕訊息說明目前 active 數
指定模型的 child(如 anthropic/claude-opus-5-5:medium)pin 被靜默丟掉 v5.1.26 pin 對 live registry 解析一次,child 起跑後核對實際模型;解析不了或跑錯模型 → typed error,task_output 並列請求與實際模型
懸置 child 等 session 下次啟動才被重訪 v5.1.26 resume 時退避重試;仍救不回則標 lost 並附原因與次數,parent 被通知
一個拒絕 SIGTERM 的 child 卡死閒置清掃,完畢 child(每個約 2 GB)堆積 v5.1.28 每個 teardown 步驟有界;閒置 resident 逐一回收;task_cancel 釋放已完畢 resident
parent 還活著時背景 child 懸置數小時,等它的 goal 永遠等 v5.1.29 立即喚醒,或以一個結果結束
parent teardown 期間被停掉的 child 短暫誤報自身失敗 v5.1.30 2 秒確認窗:owner 先退 → 記 lost 不重播;owner 存活 → 真失敗照報
單次 task 呼叫最多 16 個 child v5.1.30 每次呼叫的批次上限移除;併發仍由 global/provider/model 上限決定,其餘排隊

senpi 引擎更新(跨版本)

  • MCP 安全(v5.1.26 / senpi 2026.10.10-8):內建 MCP SDK 升 1.32.1(GHSA-6qxp-vccf-f47h);每個已存的 MCP 登入記住發證的 authorization server 並只在該處刷新——授權伺服器換人時要求重新登入;MCP HTTP endpoint 不再跟隨跨 origin 的 redirect,錯誤指名兩個 origin 與該填入設定的 URL。
  • 自動輪次上限(v5.1.27 / senpi 2026.10.10-9):你的一則訊息之後,stream-rule nudge、goal 續跑等自動跟進在 150 個 turn 後暫停,或一分鐘內 12 個自動 turn 沒做任何事時暫停;每個 stream rule 對一則訊息最多修正一次。暫停時 session 會說,你的下一則訊息恢復。
  • ask_user_question 的 required: true(v5.1.27/28):作為動作閘門的問題(核准不可逆步驟等)若逾時、被關掉或無法顯示,模型被明確告知不要執行該動作;ulw-plan 的核准閘、授權區塊與 mass-ulw 的範圍/花費/不可逆決策都以 required: true 提出。
  • 多帳號與串流(v5.1.28/29 / senpi 2026.10.10-10/11):多個 Anthropic Subscription 帳號下暫態錯誤不再換帳號——重試同一帳號、留在持有 transcript 的帳號;長串流工具呼叫不再爆「session stream queue exceeded 256 messages」;-fast pin 在成對基底模型上被接受(Kibitzer 喚醒與 fast-first 鏈不再 model_unavailable)。
  • Code mode cell 更省(v5.1.29/30):Julia/Ruby/Python cell 減少每格固定開銷;tool_schema("eval:environments") 記載 packages.install 讓 cell 知道怎麼裝套件;JavaScript eval cell 起的行程有自己的 process group,group kill 不會波及 agent。

桌面與電腦使用(v5.1.30)

  • 前台控制需要你的明確 OK:模型要打字、點擊前景或 raise 視窗之前,其程式碼先呼叫 desktop.control.acquire({ reason }),OmO 帶著理由向你確認。只有明確的 yes 授權;拒絕、45 秒逾時、headless 或唯讀 run 都不授權。授權在模型釋放、run 結束/失敗、停止和弦或 session 關閉時終止,resume 不恢復,一個 session 的授權不被另一個接走。背景傳遞不變,仍是預設。
  • macOS 選單路徑操作:win.menu.items(path?) 列出標題、路徑、enabled/checked、子選單與快捷鍵;win.menu.select(path) 呼叫唯一、啟用中的葉節點指令——歧義標籤、停用項、僅子選單都拒絕;多視窗 app 直接拒絕而非冒險選錯。原生支援此版僅 macOS。
  • popup 與日期控制:el.setValue(text) 對 macOS popup 改為真的選中選項(缺漏/歧義/停用則拒絕並列可用選項),不再回報被忽略的寫入為成功;日期/時間控制接受 ISO-8601 值並讀回驗證,日光節約跳過或重複的本地時間拒絕而非悄悄平移。
  • 其他:電腦使用逾時訊息指名 handshake 停在哪個階段;Windows 上 hook 與 plugin 更新不再閃出 console 視窗(windowsHide)。

研究、引導與帳號地基(v5.1.30)

  • ulw-research 用你的瀏覽器讀來源:Phase 0 brief 以單一規則決定 Collection: search-only | browser(只有當結果摘要能解決每個軸時才 search-only);web workers 透過 browser skill 的附掛引擎讀每個候選——每 worker 一個具名 session、每來源一個分頁、比較時多分頁並排、top 來源附整頁截圖。webfetch 留給原始檔;瀏覽器開不了的主機才交給 ultimate-browsing 並保留出處。
  • 引導(onboarding)跟著第一個真實 prompt 走:首次執行 context 搭在你真正送出的第一則 prompt 上,不另起一個模型 turn——agent 先回答你的請求再提議導覽;背景/preview/headless session 不消耗 onboarding,失敗或中止的第一個 turn 釋放 onboarding 待下次。
  • 帳號地基先行:omo login、omo whoami、omo logout 隨版出貨,但帳號服務尚未上線——login 會先探測服務、立即以一行錯誤指名服務位址收手(不開瀏覽器、不等待)。服務上線後:瀏覽器流程或 headless device-code 流程(--device/--no-browser)、憑證只存 OS keychain/Secret Service/Credential Manager、無明文 fallback。

其他要點

  • ultrawork 防誤觸發(v5.1.26):以寄件人標頭([REPORT]、[a -> b])、Markdown 引用塊或雙引號文字開頭的訊息被視為別人的話——貼一份描述 ultrawork 的報告不再武裝它;識別字、路徑、URL 或禁止句(「no ultrawork」)中的 skill 名稱不觸發;被委派的 child 不再因 brief 提到 ultrawork 就自己開團隊。
  • 模型路由(v5.1.28/29/30):explore、librarian、quick 預設鏈改用 Claude Haiku 5.5(medium)(排在 GPT-6 Luna Fast 之後);gpt-6.1-sol-ultrafast 免本地擴充即可用(Ultrafast tier、預設 xhigh);unspecified-low 在 OpenAI 線路改用 GPT-6.1 Sol(medium);自訂 category 模型的 reasoning 設定在背景工作啟動與恢復時不再被內建 category 的變體覆蓋。
  • TUI side panel(opt-in):side_panel.enabled: true(或單次 --omo-side-panel)得到右欄一覽(session、goal、context、subagents、tools、變更檔案與記憶),點檔案列開 diff;訂閱用量是另一個 opt-in(side_panel.sections.usage,因為它讀憑證);窄於 120 欄自動隱藏。
  • OpenCode:session 工具改用分頁式全域 session endpoint,可跨專案列與搜(v5.1.30)。
  • WhatsApp:thread_bind 與 store 接受 whatsapp 平台(schema v7)——這是 connector 需要的核心綁定支援,本身不安裝 connector。
  • Workflow node ID 驗證:空 ID、.、..、路徑分隔符、冒號與 NUL 被拒(invalid_node_id);既有含這些字元的 run 升級後無法恢復已存結果——重新命名節點並重啟 run。
  • mass-ulw 相鄰全對全波以單一 review 節點接合:不再畫出每條 producer→consumer 邊;finding 只重跑被點名的 producer。
  • AUR:Arch Linux 社群套件 omo-bin(由 @sTiKyt 維護,非 OmO 團隊)經 SHA256SUMS 驗證安裝官方 binary;以 AUR helper 更新而非 omo update。
  • 測試瘦身(v5.1.22):跨七個 repo 的 47 個 PR 移除 61 個測試檔與 393 個抓不到真回歸的案例(約 8,100 行),修復 47 個「程式壞了卻不會失敗」的測試——每個都以故意弄壞被守的程式碼證明。

隨堂測驗

隨堂測驗

模型想在前景視窗打字。v5.1.30 之後,這需要什麼前提?

💡 想先看個提示?

前景輸入與背景工具呼叫的風險量級不同。

隨堂測驗

你把一份描述 ultrawork 的內部報告貼進一般 session。v5.1.26 之後會發生什麼?

💡 想先看個提示?

「引用別人的話」與「自己要求」是兩回事。

動手升級檢查清單

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

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

0 / 7

延伸閱讀