變更內容
過去有數個過度開放的匯入介面,讓外掛能從單一進入點存取 幾乎所有內容:openclaw/plugin-sdk和openclaw/plugin-sdk/compat- 在建置聚焦的 SDK 期間,曾重新匯出數十個輔助工具。這兩個根路徑現已移除; 請改為匯入文件記載的子路徑。openclaw/plugin-sdk/infra-runtime- 混合了系統事件、心跳偵測狀態、 傳遞佇列、擷取/Proxy 輔助工具、檔案輔助工具、核准類型及 不相關公用程式的廣泛彙總匯出。openclaw/plugin-sdk/config-runtime- 廣泛的設定彙總匯出,僅為後續的 相容期間而保留;直接的執行階段載入/寫入輔助工具已移除。openclaw/extension-api- 已移除的橋接層,先前讓外掛可直接 存取主機端的輔助工具,例如內嵌代理程式執行器。api.registerEmbeddedExtensionFactory(...)- 已移除且僅供內嵌執行器使用的 掛鉤,先前用於觀察內嵌執行器事件,例如tool_result。請改用代理程式 工具結果中介軟體(請參閱將內嵌工具結果擴充功能遷移至中介軟體)。
infra-runtime 和 config-runtime 僅為各自另行記錄的後續
期間而保留;新外掛應使用聚焦的子路徑。
OpenClaw 不會在引入替代方案的同一項變更中,移除或重新解讀文件記載的
外掛行為。破壞合約的變更會先經過相容性配接器、診斷、文件及
淘汰期間。這適用於 SDK 匯入、資訊清單欄位、設定 API、掛鉤及執行階段
註冊行為。
原因
- 啟動緩慢 - 匯入一個輔助工具會載入數十個不相關的模組。
- 循環相依性 - 廣泛的重新匯出使匯入循環很容易 產生。
- API 介面不明確 - 無法分辨穩定匯出項目與內部匯出項目。
openclaw/plugin-sdk/<subpath> 現在都是小型、獨立且
具有文件化合約的模組。
綁定通道的舊版供應商便利介面也已移除 -
帶有通道品牌的輔助工具捷徑是私有單一儲存庫的便利功能,而非
穩定的外掛合約。請改用範圍狹窄的通用 SDK 子路徑。在
綁定的外掛工作區內,請將供應商擁有的輔助工具保留在該外掛自身的
api.ts 或 runtime-api.ts 中:
- Anthropic 將 Claude 專用的串流輔助工具保留在自己的
api.ts/contract-api.ts介面中。 - OpenAI 將供應商建構器、預設模型輔助工具及即時供應商
建構器保留在自己的
api.ts中。 - OpenRouter 將供應商建構器及新手引導/設定輔助工具保留在自己的
api.ts中。
相容性政策
外部外掛的相容性工作依照以下順序進行:- 新增合約。
- 透過相容性配接器維持舊有行為的連接。
- 發出診斷或警告,指出舊路徑及其替代方案。
- 在測試中涵蓋兩條路徑。
- 記錄淘汰及遷移路徑。
- 僅在公告的遷移期間結束後移除,通常會在主要 版本中進行。
已發布通道的設定相容性
透過2026.7.1 發布的 Slack、Discord、Signal 和 Microsoft Teams
套件,會從 openclaw/plugin-sdk/bundled-channel-config-schema 匯入通道專用的設定結構描述。
已發布的 Slack 和 Discord 套件也會從
openclaw/plugin-sdk/setup-runtime 匯入 createLegacyCompatChannelDmPolicy 和
promptLegacyChannelAllowFromForAccount。
這些匯出項目仍以已淘汰的執行階段相容性配接器形式提供。
新外掛及重新發布的外掛應在本機擁有其設定結構描述及設定政策,
並使用 channel-config-schema 和 setup-runtime 的通用基礎功能。
只有在支援的最低已發布套件版本不再匯入這些項目後,
才能移除相容性匯出項目。
通道設定輸入欄位的相容性
ChannelSetupInput 現在只會永久保留跨通道設定封套的型別。
通道專用欄位仍在已淘汰的相容性層中保有型別,讓現有外部外掛
在外掛作者將這些欄位移入外掛本機設定輸入型別時仍可編譯。
OpenClaw 不發布主要版本。2026-07-22 的登錄檔掃描檢查了
426 個已發布的樹外通道外掛,並移除 21 個沒有讀取端的欄位。
保留的 22 個欄位各自都有已知的已發布讀取端。只要沒有已發布外掛
讀取某個欄位,就會立即刪除該欄位;隨著外掛作者遷移至外掛本機
設定輸入型別,保留集合會持續縮小。
同一次掃描也移除了 23 個沒有已發布相依項目的舊版未宣告配接器
提升索引鍵。目前保留六個常用索引鍵及僅供設定使用的 rooms
索引鍵。隨著已發布外掛宣告 singleAccountKeysToMove,該集合也會持續縮小。
共用型別沒有索引簽章。外掛擁有的索引鍵仍可存在於執行階段
輸入物件中;請在外掛本機的交集型別中宣告它們,或透過擁有該索引鍵的
外掛設定結構描述縮小其型別。
singleAccountKeysToMove;若外掛不需要額外的提升索引鍵,
也應包含空陣列,以便逐一淘汰共用備援中的索引鍵。
驗證讀取端
- 使用每個
nextCursor分頁瀏覽https://clawhub.ai/api/v1/packages?family=code-plugin&limit=100,並保留其categories包含channels的套件。 - 從
npm search --json --searchlimit=1000 "openclaw channel plugin"新增 npm 候選項目。從 GitHub 中針對openclaw/plugin-sdk/channel-setup、openclaw/plugin-sdk/setup和openclaw/plugin-sdk/core的程式碼搜尋新增僅原始碼候選項目。 - 解析每個候選項目的最新已發布版本。執行
npm pack <package>@<version> --json --pack-destination <temp-dir>、解壓縮套件,並檢查已出貨的distJavaScript 和宣告,尋找直接或解構式欄位讀取。如果套件沒有 npm 版本,請下載 ClawHub 成品。 - 記錄套件、版本、欄位或提升索引鍵,以及相符的檔案。只有在沒有任何已發布外掛成品讀取該欄位或索引鍵時,才能刪除它。請讓保留欄位及索引鍵清單旁程式碼註解中的讀取端名稱與掃描結果保持同步。
pnpm plugins:boundary-report 稽核目前的遷移佇列:
pnpm plugins:boundary-report:ci 會啟用全部三個失敗旗標。已淘汰的
記錄通常具有明確的 removeAfter 日期,而非含糊的「下一個
主要版本」。擁有者尚未核准日期的記錄不會包含
removeAfter,會顯示為 no-date,且永遠不符合移除資格。
報告會依日期將已淘汰記錄分組、計算本機程式碼/文件參照、
顯示跨擁有者的保留 SDK 匯入,並摘要私有的
記憶體主機 SDK 橋接層。保留的 SDK 子路徑必須有追蹤記錄的擁有者使用情形;
未使用的保留匯出項目應從公開 SDK 中移除。
媒體舊版投影
media-legacy-projection 相容性記錄涵蓋舊有的平行
媒體欄位、酬載建構器、掛鉤中繼資料別名及媒體範本
名稱。其核准的 removeAfter 日期為 2026-10-01(以事實優先的替代方案
出貨後兩個發布週期)。屆時要移除它,還必須完成沒有問題的
已發布外掛成品掃描;請在該日期前完成遷移。
針對通道輸入,請將單數/複數的 MediaPath、MediaUrl、
MediaType、MediaPaths、MediaUrls、MediaTypes、
MediaTranscribedIndexes、MediaWorkspaceDir 和 MediaStaged 替換為有序
事實:
inbound_claim 和 message_received 掛鉤中使用 event.media。如果遠端
媒體尚未在本機暫存,請使用 event.originalMedia 進行身分識別/診斷,
並等待 event.media;event.mediaStagingPending 可區分該
狀態。請勿從 event.metadata 讀取已淘汰的單數/複數屬性。
針對命令列介面的媒體模型,請將 {{MediaPath}}、{{MediaUrl}}、{{MediaType}}
和 {{MediaDir}} 替換為 {{AttachmentPath}}、{{AttachmentUrl}}、
{{AttachmentContentType}} 和 {{AttachmentDir}}。當附件位置很重要時,
請使用 {{AttachmentIndex}}。
針對本機媒體讀取政策,請從
openclaw/plugin-sdk/media-local-roots 匯入 getAgentScopedMediaLocalRoots(...) 或
getAgentScopedMediaLocalRootsForSources(...)。
openclaw/plugin-sdk/agent-media-payload 外觀介面及其
buildAgentMediaPayload(...) 投影均已淘汰。
如何遷移
遷移執行階段設定載入/寫入輔助工具
api.runtime.config.loadConfig() 和
api.runtime.config.writeConfigFile(...)。請優先使用已傳入目前呼叫路徑的
設定。需要目前處理程序快照的長期執行處理常式可以使用
api.runtime.config.current()。長期執行的代理程式工具應在 execute 內讀取
ctx.getRuntimeConfig(),如此一來,在設定寫入前建立的工具仍可取得重新整理後的設定。設定寫入會透過交易式輔助工具進行,並使用明確的
寫入後政策:afterWrite: { mode: "restart", reason: "..." };只有在呼叫端負責後續處理,且刻意停用
重新載入規劃器時,才使用 afterWrite: { mode: "none", reason: "..." }。
變更結果包含具型別的 followUp 摘要,供測試與記錄使用;
閘道仍負責套用或排程重新啟動。loadConfig 和 writeConfigFile 已從外掛
執行階段移除。內建外掛與儲存庫執行階段程式碼受到
pnpm check:deprecated-api-usage 和
pnpm check:no-runtime-action-load-config 的防護:新的正式環境外掛用法
會直接失敗、直接寫入設定會失敗、閘道伺服器方法必須使用
請求執行階段快照、執行階段頻道傳送/動作/用戶端輔助函式
必須從其邊界接收設定,而長期存續的執行階段模組
不允許任何環境式 loadConfig() 呼叫。新的外掛程式碼應避免使用廣泛的 openclaw/plugin-sdk/config-runtime
桶狀匯出。請針對工作使用範圍較窄的子路徑:將嵌入式工具結果擴充功能遷移至中介軟體
api.registerEmbeddedExtensionFactory(...) 工具結果處理常式替換為
不依賴執行階段的中介軟體:contracts.agentToolResultMiddleware 中宣告時,也可以註冊工具結果中介軟體。
未宣告的已安裝中介軟體註冊會遭到拒絕。將原生核准處理常式遷移至能力事實
approvalCapability.nativeRuntime 加上共用執行階段情境
登錄檔,公開原生核准行為:- 將
approvalCapability.handler.loadRuntime(...)替換為approvalCapability.nativeRuntime。 - 將核准專用的驗證/傳遞從舊版
plugin.auth/plugin.approvals配線移至approvalCapability。 ChannelPlugin.approvals已從公開 頻道外掛合約中移除;請將傳遞/原生/算繪欄位移至approvalCapability。plugin.auth僅保留供頻道登入/登出流程使用;核心不再 從該處讀取核准驗證鉤子。- 透過
openclaw/plugin-sdk/channel-runtime-context註冊頻道擁有的執行階段物件(用戶端、權杖、Bolt 應用程式)。 - 請勿從原生核准處理常式傳送外掛擁有的重新路由通知; 核心會依實際傳遞結果負責傳送已路由至其他位置的通知。
- 將
channelRuntime傳入createChannelManager(...)時,請提供 真正的createPluginRuntime().channel介面,不完整的虛設常式會 遭到拒絕。
稽核 Windows 包裝函式的後援行為
openclaw/plugin-sdk/windows-spawn,無法解析的 Windows
.cmd/.bat 包裝函式現在會採取封閉式失敗,除非你明確傳入
allowShellFallback: true:allowShellFallback,而應改為處理拋出的錯誤。尋找已淘汰的匯入
替換為聚焦的匯入
替換廣泛的 infra-runtime 匯入
openclaw/plugin-sdk/infra-runtime 仍為外部
相容性而存在,但新程式碼應匯入實際
需要的聚焦介面:infra-runtime,因此儲存庫程式碼
無法退回使用廣泛的桶狀匯出。遷移頻道路由輔助函式
openclaw/plugin-sdk/channel-route。較舊的
路由鍵名稱仍保留為相容性別名:{ channel, to, accountId, threadId }。請勿新增使用
plugin-sdk/channel-route 中的 ChannelMessagingAdapter.parseExplicitTarget 或
resolveChannelRouteTargetWithParser(...),這些項目已淘汰,僅為較舊的
外掛保留。新的頻道外掛應使用
messaging.targetResolver.resolveTarget(...) 進行目標 ID 正規化
與目錄查無結果時的後援;核心需要提早取得對等端種類時,使用
messaging.inferTargetChatType(...);而提供者原生
工作階段與討論串身分則使用 messaging.resolveOutboundSessionRoute(...)。建置與測試
匯入路徑參考
公開套件匯出對應表是可匯入 SDK 子路徑的唯一事實來源。請使用 SDK 概覽 所連結的主題式 SDK 指南,並優先採用範圍最窄且有文件記載的公開子路徑。scripts/lib/plugin-sdk-entrypoints.json 中的編譯器清單也包含用於
建置內建外掛的私有本機項目;它們出現在該處並不表示其為公開套件匯出。
此表是常見的遷移子集,而非完整的 SDK 介面。編譯器進入點清單位於
scripts/lib/plugin-sdk-entrypoints.json;套件匯出則由公開子集產生。
為內建外掛保留的輔助接縫已從公開 SDK
匯出對應表中淘汰,但明確記載的相容性 facade 除外,例如保留給仍
直接匯入已發布 @openclaw/discord 套件之外部外掛的
已淘汰 plugin-sdk/discord 相容層。擁有者專用
輔助函式位於所屬外掛套件內;共用主機行為則透過
plugin-sdk/gateway-runtime、
plugin-sdk/security-runtime 與注入的外掛 API 等通用 SDK 合約傳遞。
請使用符合工作需求且範圍最窄的匯入。如果找不到匯出,
請檢查 src/plugin-sdk/ 的原始碼,或詢問維護者應由哪個通用
合約負責。
已移除的相容性介面
2026 年 7 月的清理移除了根 SDK 與 compat 桶狀匯出、擴充功能 API 橋接、已到期的 SDK 子路徑別名、未使用的 SDK 子路徑,以及僅供內建使用之 SDK 模組的公開 匯出。僅供內建使用的模組仍可由其儲存庫擁有者透過私有本機 建置對應使用;但無法從已發布的套件匯入。程序全域 API 提供者發布
registerApiProvider(...) 和 unregisterApiProviders(...) 已從
openclaw/plugin-sdk/llm 移除。它們會將 API 傳輸發布至程序全域
狀態,導致由生命週期擁有的模型執行階段之後必須將其複製到每個準備完成的
登錄檔中。
提供者外掛應透過 api.registerProvider(...) 註冊文字推論提供者。
建立 ApiRegistry 的主機擁有程式碼與測試,應直接在該登錄檔上
註冊,使提供者擁有權與拆卸作業都維持在準備完成之執行階段的範圍內。
私有測試桶狀匯出
openclaw/plugin-sdk/testing 僅供儲存庫本機使用,且不包含在發布的套件
成品中,因此已在其 2026-07-28 removeAfter 日期前移除。儲存庫
測試會使用 plugin-sdk/plugin-test-runtime、
plugin-sdk/channel-test-helpers、plugin-sdk/channel-target-testing、
plugin-sdk/test-env 和 plugin-sdk/test-fixtures 等聚焦子路徑。
遷移參考
這些對應關係涵蓋已於 2026 年 7 月移除的介面,以及較晚時程中仍在進行的 淘汰項目。對應關係是遷移指引,不代表舊 介面仍然可用;請查閱相容性登錄檔與移除 時程表以瞭解目前狀態。command-auth 說明建構器 -> command-status
command-auth 說明建構器 -> command-status
openclaw/plugin-sdk/command-auth):buildCommandsMessage、
buildCommandsMessagePaginated、buildHelpMessage。新版(openclaw/plugin-sdk/command-status):簽章相同,改從
範圍較窄的子路徑匯入。command-auth 相容性重新匯出
已遭移除。提及閘控輔助函式 -> resolveInboundMentionDecision
提及閘控輔助函式 -> resolveInboundMentionDecision
openclaw/plugin-sdk/channel-inbound 或
openclaw/plugin-sdk/channel-mention-gating 的 resolveMentionGating(params) 與
resolveMentionGatingWithBypass(params)。新版:resolveInboundMentionDecision({ facts, policy })——使用單一決策
物件,取代兩種分開的呼叫形式。Discord、iMessage、Matrix、MS Teams、QQ Bot、Signal、
Telegram、WhatsApp 與 Zalo 均已採用。Slack 自有的 app_mention 事件模型
不使用此輔助函式。頻道執行階段相容層與頻道動作輔助函式
頻道執行階段相容層與頻道動作輔助函式
openclaw/plugin-sdk/channel-runtime 已遭移除。請使用
openclaw/plugin-sdk/channel-runtime-context 註冊執行階段
物件。openclaw/plugin-sdk/channel-actions 中的原生訊息結構描述輔助函式
已與原始的 “actions” 頻道匯出一併移除。請改為透過語意化的
presentation 介面公開功能——頻道外掛應宣告其呈現的內容
(卡片、按鈕、選取項目),而不是其接受的原始
動作名稱。網頁搜尋供應商 tool() 輔助函式 -> 外掛上的 createTool()
網頁搜尋供應商 tool() 輔助函式 -> 外掛上的 createTool()
openclaw/plugin-sdk/provider-web-search 的 tool() 工廠函式。新版:直接在供應商外掛上實作 createTool(...)。
OpenClaw 不再需要 SDK 輔助函式來註冊工具包裝函式。純文字頻道封裝 -> BodyForAgent
純文字頻道封裝 -> BodyForAgent
api.runtime.channel.reply.formatInboundEnvelope(...)(以及輸入訊息物件上的
channelEnvelope 欄位),從輸入頻道訊息建立扁平的
純文字提示封裝。新版:BodyForAgent 加上結構化使用者情境區塊。頻道
外掛會將路由中繼資料(討論串、主題、回覆目標、回應)附加為
具型別的欄位,而非串接到提示字串中。
formatAgentEnvelope(...) 輔助函式仍支援合成的
助理端封裝,但輸入純文字封裝正逐步淘汰。受影響的區域:inbound_claim、message_received,以及任何會對
舊封裝文字進行後處理的自訂
頻道外掛。deactivate 鉤子 -> gateway_stop
deactivate 鉤子 -> gateway_stop
api.on("deactivate", handler)。新版:api.on("gateway_stop", handler)。關閉時的清理
合約相同;只有鉤子名稱變更。deactivate 仍以已淘汰的相容性別名接線,直到
2026-08-16 後移除。subagent_spawning 鉤子 -> 核心討論串繫結
subagent_spawning 鉤子 -> 核心討論串繫結
api.on("subagent_spawning", handler) 會傳回
threadBindingReady 或 deliveryOrigin。新版:讓核心透過頻道工作階段繫結轉接器,準備 thread: true 子代理
繫結。api.on("subagent_spawned", handler)
僅用於啟動後觀察。subagent_spawning、PluginHookSubagentSpawningEvent、
PluginHookSubagentSpawningResult 與
SubagentLifecycleHookRunner.runSubagentSpawning(...) 僅在外部外掛遷移期間
保留為已淘汰的相容性介面,並將於
2026-08-30 後移除。供應商探索型別 -> 供應商目錄型別
供應商探索型別 -> 供應商目錄型別
ProviderCapabilities 靜態集合
已遭移除。供應商外掛
應使用明確的供應商鉤子,例如 buildReplayPolicy、
normalizeToolSchemas 與 wrapStreamFn,而非靜態物件。思考策略鉤子 -> resolveThinkingProfile
思考策略鉤子 -> resolveThinkingProfile
ProviderThinkingPolicy 上的三個獨立鉤子):
isBinaryThinking(ctx)、supportsXHighThinking(ctx) 與
resolveDefaultThinkingLevel(ctx)。新版:單一 resolveThinkingProfile(ctx),會傳回
ProviderThinkingProfile,其中包含標準的 id、選用的 label,以及
按順位排列的層級清單。OpenClaw 會依設定檔順位,自動
降級過時的已儲存值。情境包含 provider、modelId、選用的合併後 reasoning,
以及選用的合併後模型 compat 資訊。供應商外掛可以使用這些
目錄資訊,僅在已設定的要求合約支援時,公開模型專屬的設定檔。請實作一個鉤子,而非三個。舊版鉤子已遭移除。外部驗證供應商 -> contracts.externalAuthProviders
外部驗證供應商 -> contracts.externalAuthProviders
contracts.externalAuthProviders
並且實作 resolveExternalAuthProfiles(...)。供應商環境變數查詢 -> setup.providers[].envVars
供應商環境變數查詢 -> setup.providers[].envVars
providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }。新版:將相同的環境變數查詢對應到資訊清單上的 setup.providers[].envVars。
這會將設定/狀態環境中繼資料整合到同一處,
並避免僅為回應環境變數查詢而啟動外掛執行階段。不再接受 providerAuthEnvVars。記憶體外掛註冊 -> registerMemoryCapability
記憶體外掛註冊 -> registerMemoryCapability
api.registerMemoryPromptSection(...)、
api.registerMemoryFlushPlan(...)、api.registerMemoryRuntime(...)。新版:記憶體狀態 API 上的一個呼叫——
registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime })。插槽相同,僅使用單一註冊呼叫。附加式提示與語料庫輔助函式
(registerMemoryPromptSupplement、registerMemoryCorpusSupplement)
不受影響。記憶體嵌入供應商 API
記憶體嵌入供應商 API
api.registerMemoryEmbeddingProvider(...) 加上
contracts.memoryEmbeddingProviders。新版:api.registerEmbeddingProvider(...) 加上
contracts.embeddingProviders。通用嵌入供應商合約可在記憶體之外重複使用,並且是
新供應商所支援的路徑。記憶體專用註冊 API
在現有供應商遷移期間,仍以已淘汰的相容性方式接線。
外掛檢查會將非內建使用情況回報為相容性
技術債。原始頻道傳送結果 -> OutboundDeliveryResult
原始頻道傳送結果 -> OutboundDeliveryResult
ChannelSendRawResult 傳回 { ok, messageId, error },並使用
createRawChannelSendResultAdapter(...) 將其標準化。新版:傳回 OutboundDeliveryResult 欄位,並使用
createAttachedChannelResultAdapter(...) 附加頻道。傳送失敗時應擲回例外,
而不是傳回錯誤字串。原始結果型別會持續可用,直到
下一個外掛 SDK 主要版本。子代理工作階段訊息型別重新命名
子代理工作階段訊息型別重新命名
src/plugins/runtime/types.ts 匯出的兩個舊版型別別名:getSessionMessages,而非已淘汰的執行階段方法
readSession。簽章相同;舊方法會轉呼叫
新方法。已移除的工作階段與逐字稿檔案 API
已移除的工作階段與逐字稿檔案 API
sessions.json 儲存區、JSONL 逐字稿路徑或工作階段檔案清單的
外掛端 API。執行階段外掛應使用工作階段識別資訊與 SDK 執行階段
輔助函式,而非解析或修改使用中的檔案。v2026.7.1-beta.5 發布的官方外掛匯入了上述四個
已淘汰的輔助函式。openclaw/plugin-sdk/session-store-runtime 會原封不動地保留
該橋接至 2026-10-12;新外掛必須使用替代方案。
resolveStorePath(...) 仍是受支援的 SDK 輔助函式,不屬於
此淘汰範圍。openclaw plugins inspect --all --runtime 會回報載入錯誤或
診斷資訊仍參照這些已移除檔案 API 的非內建外掛。
@openclaw/plugin-inspector 諮詢掃描必須使用 0.3.17 或
更新版本,讓外部套件掃描也能在發布前標記完整儲存區工作階段輔助函式、
工作階段檔案路徑輔助函式、舊版逐字稿檔案目標,以及低階
逐字稿輔助函式。runtime.tasks.flow -> runtime.tasks.managedFlows
runtime.tasks.flow -> runtime.tasks.managedFlows
runtime.tasks.flow(單數)會傳回即時的 TaskFlow
存取器。新版:runtime.tasks.managedFlows 保留受管理的 TaskFlow 變更
執行階段,供從流程建立、更新、取消或執行子任務的外掛使用。
當外掛只需要以 DTO 為基礎的讀取功能時,請使用 runtime.tasks.flows。嵌入式擴充功能工廠 -> 代理程式工具結果中介軟體
嵌入式擴充功能工廠 -> 代理程式工具結果中介軟體
api.registerEmbeddedExtensionFactory(...) 路徑,已由
api.registerAgentToolResultMiddleware(...) 取代,並在
contracts.agentToolResultMiddleware 中明確指定執行階段清單。OpenClawSchemaType 別名 -> OpenClawConfig
OpenClawSchemaType 別名 -> OpenClawConfig
OpenClawSchemaType 根 SDK 別名已移除。請使用標準
OpenClawConfig 名稱。extensions/ 下的內建頻道/供應商外掛內)會在其各自的 api.ts 與 runtime-api.ts
匯出入口中追蹤。這些項目不影響第三方外掛合約,因此未列於此處。
如果你直接使用內建外掛的本機匯出入口,升級前請先閱讀該匯出入口中的
棄用註解。Talk 與即時語音遷移
即時語音、電話、會議及瀏覽器 Talk 程式碼共用一個由openclaw/plugin-sdk/realtime-voice 匯出的 Talk 工作階段控制器。此
控制器擁有共用的 Talk 事件封裝、作用中輪次狀態、擷取
狀態、輸出音訊狀態、近期事件歷程及過期輪次拒絕機制。
供應商外掛擁有供應商專屬的即時工作階段。瀏覽器會議外掛
使用 openclaw/plugin-sdk/meeting-runtime 處理工作階段、瀏覽器、音訊、節點主機、
代理程式諮詢及語音通話機制,接著實作 MeetingPlatformAdapter
以處理 URL 規則、DOM 指令碼、手動動作對應、字幕、建立及撥入
方案。平台 REST API、OAuth、成品、選擇器及連線名稱仍保留在
外掛中。瀏覽器權限方案會收到所要求的會議 URL,讓各
平台僅授予其確切支援的來源。工作階段執行階段也必須在確認瀏覽器離開後,
正規化平台專屬的即時健康狀態;
歷史逐字稿欄位可以保留,但離開後字幕與音訊就緒狀態
不得繼續保持作用中。
所有內建介面都在共用控制器上執行:瀏覽器轉送、
受管理房間移交、語音通話即時處理、語音通話串流 STT、Google
Meet 即時處理及原生按下通話。閘道會在 hello-ok.features.events 中公布一個即時 Talk 事件
頻道:talk.event。
除非正在實作低階介接器或測試固定資料,否則新程式碼不應直接呼叫
createTalkEventSequencer(...)。請使用共用控制器,確保
輪次範圍事件無法在沒有輪次 ID 的情況下發出、過期的 turnEnd /
turnCancel 呼叫無法清除較新的作用中輪次,且輸出音訊
生命週期事件在電話、會議、瀏覽器轉送、
受管理房間移交及原生 Talk 用戶端之間保持一致。
公開 API 形式:
talk.client.create,
因為瀏覽器擁有供應商協商與媒體傳輸,而
閘道擁有認證資訊、指示及工具政策。talk.session.* 是
由閘道管理的共用介面,用於閘道轉送即時處理、閘道轉送
轉錄,以及受管理房間的原生 STT/TTS 工作階段。
將即時選擇器與 talk.provider /
talk.providers 並列的舊版設定,應使用 openclaw doctor --fix 修復;Talk 執行階段
不會將語音/TTS 供應商設定重新解讀為即時供應商設定。
支援的 talk.session.create 組合刻意維持精簡:
talk.realtime.* /
talk.transcription.* / talk.handoff.* 系列(均已移除)遷移的讀者參考的方法對照表:
移除時程
pnpm plugins:boundary-report,即可查看你的外掛所使用介面中
哪些相容性記錄最接近到期。