Plugin SDK 影響評估
結合當前 ClawHub 庫存與每個綁定 OpenClaw 外掛(包括未上架 ClawHub 者)的原始碼掃描,以輔助相容性決策。靜態用量識別依賴關係,但不證明實際執行或對特定行為的依賴。請遵循 SDK 邊界指南 中的核准與棄用規則,以其為權威依據。
調查
-
從原始碼中識別每個受影響的公開表面,包括替代的 SDK 匯出與執行時期路徑。請根據定義與已知呼叫者驗證拼寫;錯誤的鍵可能回傳看似無誤的零。同時追蹤分組的 Facade、SDK 輔助函式與註冊讀取器:一個平面別名可能沒有直接的外掛呼叫,但卻實作了一個受支援的分組方法。
-
使用 Plugin Inspector 的靜態原始碼分析,在一個乾淨的 OpenClaw 檢出目錄中掃描每個綁定外掛。請重複使用已安裝的 Inspector 0.4.3 或更新版本;否則請在一個獨立的暫存目錄中安裝,不執行生命週期腳本:
inspector_dir=$(mktemp -d) npm install --prefix "$inspector_dir" --ignore-scripts @openclaw/[email protected] node {baseDir}/scripts/scan-bundled.mjs \ --inspector "$inspector_dir/node_modules/@openclaw/plugin-inspector" \ --out /tmp/openclaw-bundled-sdk-usage.json掃描器預設使用此技能的檢出目錄;
--root <checkout>可選擇其他目錄。它會發現extensions/*/openclaw.plugin.json,從不執行外掛程式碼,並記錄提交記錄、輸入指紋、Inspector 版本、每個外掛以及不完整的分析。失敗或超時的掃描仍視為缺口。沒有宣告進入點的外掛也會造成覆蓋缺口,因為 Inspector 可能遺漏隱含的進入點。中斷的語料庫掃描不能用作完整的庫存。在原始碼不變的前提下,可以重複使用同一個報告進行多次查詢。已變更的提交記錄、外掛清單或未提交的原始碼會使報告失效;請重新掃描,而非編輯收據。 -
使用兩個來源查詢每個規範鍵:
node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.json若要查詢「過去三個月內更新」,請加上
--months 3。這表示最新的符合資格公開版本是在現在時間的三個日曆月內上傳,以 UTC 為準(月份結尾會被截斷)。清單編輯與重新掃描不計為更新。儲存的版本日期是其建立/上傳時間;公開核准可能發生在之後。--since 2026-07-16T12:00:00Z接受明確的截止日期。請報告來自releaseWindow的精確包含截止日期,而非猜測的日期。公開消費者和覆蓋率在每個頁面上都使用相同的時間範圍。綁定原始碼沒有可比較的上傳日期:請將其分開報告,不經篩選,即使是針對近期版本的問題。合併計數是該公開版本時間範圍與當前綁定原始碼的聯集,而非近期版本的計數。輔助函式會追蹤所有使用量和覆蓋頁面,包括空的中間頁面。計數和覆蓋率包含每個結果;
items、gaps和warnings包含有限的範例,省略的計數在output.omitted中。混合引用同時計入運行時和類型總數。對於需要每個消費者或缺口的調查,請將--full輸出儲存到檔案,並分段讀取:node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \ --bundled /tmp/openclaw-bundled-sdk-usage.json --full > sdk-usage.json--help會記錄本地端點和遍歷限制。 -
檢查比對到的證據是否與提議的變更相關。方法呼叫可能並未使用到正在變更的行為。僅有類型的消費者對於類型/匯出的移除仍然重要。請分別查詢相關成員;模組匯入並不能證明使用了每個匯出。外掛中的重複引用計為一個消費者。
-
對於用量計數問題,請報告鍵、查詢時間、確切的版本時間範圍(如有要求)、ClawHub 和綁定計數、它們的合併計數、綁定提交記錄,以及兩者的覆蓋缺口。頂層的
distinctPlugins和coverage僅限於 ClawHub;bundled描述原始碼結果;combined一次性合併確切的套件身分。有些綁定外掛沒有套件名稱:當它們可能與公開結果重疊時,combined.distinctPlugins為 null,而distinctPluginBounds會報告可能的範圍。observedPluginIdentities在該不確定重疊之前計算原始碼身分。請報告範圍,而非將其上限當作精確計數。不同名稱保持不同;切勿從顯示名稱猜測別名。缺少綁定證據會導致無法取得合併影響。 對於提議的 SDK 變更,也請報告比對的證據、間接呼叫者以及您的相容性建議。以維護者的決定來結束變更調查:保留行為、棄用並提供遷移路徑,或根據現有政策繼續進行。切勿從計數推斷權限。
規範鍵
| 表面 | 範例 |
|---|---|
| SDK 模組 | sdk-module:openclaw/plugin-sdk/core |
| 具名 SDK 匯出 | sdk-export:openclaw/plugin-sdk/core#OpenClawPluginApi |
| 外掛 API 方法 | api-member:api.registerTool |
| 主機運行時成員 | runtime-member:runtime.channel.reply.dispatchReplyFromConfig |
| 具名掛鉤 | hook:hook.before_agent_start |
| 清單合約 | manifest-contract:manifest.contracts.tools:example_tool |
鍵描述的是 SDK 身分,而非本地別名。api.runtime 成員會標準化為 runtime.*。庫存包含受支援和已棄用的參考;非空的 deprecationCodes 會選取與現有警告相關的條目。每個外掛的檢查可在 https://clawhub.ai/api/v1/sdk-usage/plugin?package=<encoded-name> 取得;請追蹤其 nextCursor 直到 null 以取得完整庫存。
解讀結果
| 結果 | 報告 |
|---|---|
| 有觀察到消費者 | 分別報告公開、綁定和合併計數及其各自的範圍。在判斷行為變更前檢查證據。 |
| 無觀察到消費者,覆蓋率完整 | 「在 N 個公開/綁定外掛身分中未檢測到靜態參考。」需要兩次掃描;排除私有非綁定外掛和未綁定的依賴項。不表示沒有人使用該 API。 |
| 部分、失敗、缺少、不相容或未解析的分析 | 陳述觀察到的比對、缺口計數和代表性缺口。零比對表示影響未知。 |
| 空的語料庫 | 未觀察到符合資格的外掛;這不提供生態系統保證。 |
| 端點不可用、結果格式錯誤或遍歷不完整 | 影響未知。請保留錯誤訊息並使用本地證據;切勿用零替代。 |
覆蓋率與當前的版本/工件和分析版本相關。符合資格的 ClawHub 報告具有 inputKind: "artifact";綁定報告使用 "source"。原始碼檢出基準無法確定已發布的套件包含什麼。僅原始碼的類型參考對於 SDK 類型和匯出移除仍然重要;請保留每個比對的來源。舊的掃描時間戳本身並不能使不可變工件過時。證據是取樣取得;每個掃描都會報告其證據/未知限制。頁面是即時讀取,而非單一快照:如果在調查期間版本或可見性發生變化,請重新執行。輔助函式會標記它觀察到的變化,但無法建立交易範圍的快照。
請不要因為未觀察到消費者就忽視安全問題。請描述使用證據如何影響相容性風險;安全性和 SDK 所有者仍然決定修復方案以及對正常遷移時間範圍的任何例外。