跳轉到主要內容

Documentation Index

Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw 會將 Plugin 相依性工作保留在安裝/更新時處理。執行階段載入 不會執行套件管理器、修復相依性樹,或變更 OpenClaw 套件目錄。

責任分工

Plugin 套件擁有自己的相依性圖:
  • 執行階段相依性位於 Plugin 套件的 dependenciesoptionalDependencies
  • SDK/核心匯入是對等相依性,或由 OpenClaw 匯入提供
  • 本機開發 Plugin 會帶入自己已安裝的相依性
  • npm 和 git Plugin 會安裝到 OpenClaw 擁有的套件根目錄
OpenClaw 只負責 Plugin 生命週期:
  • 探索 Plugin 來源
  • 僅在明確要求時安裝或更新套件
  • 記錄安裝中繼資料
  • 載入 Plugin 進入點
  • 在缺少相依性時,以可採取行動的錯誤失敗

安裝根目錄

OpenClaw 使用穩定的每來源根目錄:
  • npm 套件安裝於 ~/.openclaw/npm
  • git 套件複製於 ~/.openclaw/git
  • 本機/路徑/封存安裝會複製或參照,而不修復相依性
npm 安裝會在 npm 根目錄中執行:
cd ~/.openclaw/npm
npm install --omit=dev --omit=peer --legacy-peer-deps --ignore-scripts --no-audit --no-fund
openclaw plugins install npm-pack:<path.tgz> 會對本機 npm-pack tarball 使用相同的受管理 npm 根目錄。OpenClaw 會讀取 tarball 的 npm 中繼資料,將它新增到受管理根目錄中,作為複製的 file: 相依性,執行一般 npm install,然後在信任該 Plugin 前驗證已安裝的 lockfile 中繼資料。這適用於套件驗收與候選發行版本證明,也就是本機 pack 成品應該要像它所模擬的 registry 成品一樣運作。 npm 可能會將傳遞相依性提升到 ~/.openclaw/npm/node_modules,與 Plugin 套件並列。OpenClaw 會在信任安裝前掃描受管理的 npm 根目錄, 並在解除安裝期間使用 npm 移除 npm 管理的套件,因此被提升的執行階段相依性會留在受管理的清理邊界內。 匯入 openclaw/plugin-sdk/* 的 Plugin 會將 openclaw 宣告為對等 相依性。OpenClaw 不允許 npm 將主機套件的獨立 registry 複本安裝到 受管理根目錄中,因為過時的主機套件可能會影響之後 Plugin 安裝期間的 npm 對等解析。受管理的 npm 安裝會略過共用根目錄的 npm 對等解析/具體化, 而 OpenClaw 會在安裝、更新或解除安裝後,針對宣告主機對等相依性的已安裝套件,重新確認 Plugin 本機的 node_modules/openclaw 連結。 git 安裝會複製或重新整理儲存庫,然後執行:
npm install --omit=dev --ignore-scripts --no-audit --no-fund
已安裝的 Plugin 接著會從該套件目錄載入,因此套件本機與父層 node_modules 解析會和一般 Node 套件一樣運作。

本機 Plugin

本機 Plugin 會被視為由開發者控制的目錄。OpenClaw 不會為它們執行 npm installpnpm install 或相依性修復。如果本機 Plugin 有相依性,請先在該 Plugin 中安裝它們,再載入它。 第三方 TypeScript 本機 Plugin 可以使用緊急 Jiti 路徑。已封裝的 JavaScript Plugin 和內建內部 Plugin 會透過原生 import/require 載入,而不是 Jiti。

啟動與重新載入

Gateway 啟動和設定重新載入永遠不會安裝 Plugin 相依性。它們會讀取 Plugin 安裝記錄、計算進入點,並載入它。 如果執行階段缺少相依性,Plugin 會載入失敗,且錯誤應該要指引操作員採取明確修正:
openclaw plugins update <id>
openclaw plugins install <source>
openclaw doctor --fix
doctor --fix 可以清理舊版 OpenClaw 產生的相依性狀態,並在設定參照可下載 Plugin、但本機安裝記錄缺少它們時復原這些 Plugin。Doctor 不會修復已安裝本機 Plugin 的相依性。

內建 Plugin

輕量且核心關鍵的內建 Plugin 會作為 OpenClaw 的一部分出貨。它們應該沒有沉重的執行階段相依性樹,或移出成為 ClawHub/npm 上的可下載套件。 如需目前會隨核心套件出貨、從外部安裝,或維持僅原始碼狀態的 Plugin 產生清單,請參閱 Plugin 清冊 內建 Plugin manifest 不得要求相依性暫存。大型或選用的 Plugin 功能應封裝為一般 Plugin,並透過與第三方 Plugin 相同的 npm/git/ClawHub 路徑安裝。 在原始碼 checkout 中,OpenClaw 會將儲存庫視為 pnpm monorepo。在 pnpm install 之後,內建 Plugin 會從 extensions/<id> 載入,因此套件本機的 workspace 相依性可用,且編輯會直接被接收。原始碼 checkout 開發僅支援 pnpm;在儲存庫根目錄執行一般 npm install 並不是準備內建 Plugin 相依性的受支援方式。
安裝形態內建 Plugin 位置相依性擁有者
npm install -g openclaw套件內建置的執行階段樹OpenClaw 套件與明確的 Plugin 安裝/更新/doctor 流程
Git checkout 加上 pnpm installextensions/<id> workspace 套件pnpm workspace,包含每個 Plugin 套件自己的相依性
openclaw plugins install ...受管理的 npm/git/ClawHub Plugin 根目錄Plugin 安裝/更新流程

舊版清理

較舊的 OpenClaw 版本會在啟動時或 doctor 修復期間產生內建 Plugin 相依性根目錄。目前的 doctor 清理會在使用 --fix 時移除那些過時的目錄和符號連結,包括舊的 plugin-runtime-deps 根目錄、指向已修剪 plugin-runtime-deps 目標的全域 Node-prefix 套件符號連結、.openclaw-runtime-deps* manifest、產生的 Plugin node_modules、安裝暫存目錄,以及套件本機 pnpm stores。已封裝的 postinstall 也會在修剪舊版目標根目錄前移除那些全域符號連結,因此升級不會留下無效的 ESM 套件匯入。 這些路徑只是舊版殘留物。新的安裝不應建立它們。