返回首頁

GitHub Repo

OpenHands 1.24 修補 MCP 授權續接,處理權杖到期後工具失效

新版保留雲端 OAuth 狀態,搭配 SDK 修正權杖更新端點與回寫流程。完整效果仍取決於後端部署,既有連線須驗證跨對話續用。

مھتاب احمد · CC BY-SA 4.0 · Image source
zh-Hant

OpenHands 於 9 月 25 日發布 1.24.0,納入 MCP 雲端授權修補,並升級至 SDK 1.49.6。這組變更處理代理初次連線成功,卻在存取權杖到期後失去外部工具的問題。[版本公告](https://github.com/OpenHands/OpenHands/releases/tag/v1.24.0)

MCP 讓代理載入外部伺服器提供的工具,執行時再轉送呼叫。依官方文件,OpenHands 會先讀取設定、建立連線並註冊工具;因此,授權更新是否可靠,會影響後續任務能否取得同一套能力。從工程角度看,首次安裝測試不足以涵蓋這類隨時間出現的故障,隔日排程與反覆建立沙箱的流程尤其需要驗證憑證生命週期。[MCP 文件](https://docs.openhands.dev/overview/model-context-protocol)

維護者指出,舊版雲端儲存流程把 OAuth 憑證壓成固定的 Bearer 標頭,刪掉包含更新權杖的授權狀態。GitLab 連線因而可能在約兩小時後失效。新版保留 OAuth 狀態,重新儲存時清除舊標頭;伺服器若判定毋須再次同意,前端會查詢作業結果,不再將缺少授權網址視為錯誤。[前端修補](https://github.com/OpenHands/OpenHands/pull/17677)

SDK 同時修正另一條失敗路徑:新對話建立的用戶端,可能把更新請求送到錯誤的預設端點。新實作先探索授權伺服器中繼資料,取得正確端點,並將沙箱更新後的狀態透過 webhook 回寫,讓下一段對話能使用輪替後的權杖。[SDK 修補](https://github.com/OpenHands/software-agent-sdk/pull/5306)

SDK 1.49.6 已於同日在 PyPI 提供套件,要求 Python 3.12 以上。維護者回報前端相關測試 74 項、SDK 與代理伺服器測試 67 項通過;這些是專案測試紀錄,仍不足以證明所有服務商與託管環境均已恢復。[套件頁](https://pypi.org/project/openhands-sdk/1.49.6/)、[前端測試](https://github.com/OpenHands/OpenHands/pull/17677)、[SDK 測試](https://github.com/OpenHands/software-agent-sdk/pull/5306)

部署仍須核對應用伺服器的配套版本:完整修補橫跨前端、SDK 與雲端後端,公開發布紀錄無法證明每個託管環境已完成更新。回寫失敗時,新權杖仍可供當次執行使用,跨對話持久化卻可能失敗。工程團隊應驗證權杖到期後的工具載入,以及沙箱重建後能否續用,並觀察回寫警告。曾以舊流程儲存的連線,也應檢查更新權杖是否仍存在;若已遺失,可能需要重新授權,才能補回完整狀態。[部署限制](https://github.com/OpenHands/OpenHands/pull/17677)、[回寫行為](https://github.com/OpenHands/software-agent-sdk/pull/5306)

來源

  1. OpenHands v1.24.0 release
  2. Keep OAuth credentials on cloud saves and skip consent when tokens still work
  3. Refresh OAuth tokens at the discovered endpoint and write refreshed state back
  4. OpenHands Software Agent SDK v1.49.6 release
  5. openhands-sdk 1.49.6
  6. Model Context Protocol (MCP)