OpenClaw nie instaluje całego drzewa zależności każdej dołączonej wtyczki podczas instalacji pakietu. Najpierw wyprowadza efektywny plan wtyczek z konfiguracji i metadanych wtyczek, a następnie przygotowuje zależności uruchomieniowe tylko dla dołączonych wtyczek należących do OpenClaw, które plan może faktycznie załadować. Ta strona opisuje spakowane zależności uruchomieniowe dołączonych wtyczek OpenClaw. Wtyczki firm trzecich i niestandardowe ścieżki wtyczek nadal używają jawnych poleceń instalacji wtyczek, takich jakDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw plugins install i openclaw plugins update.
Podział odpowiedzialności
OpenClaw odpowiada za plan i zasady:- które wtyczki są aktywne dla tej konfiguracji
- które katalogi główne zależności są zapisywalne lub tylko do odczytu
- kiedy naprawa jest dozwolona
- które identyfikatory wtyczek są przygotowywane do uruchomienia
- końcowe kontrole przed importem modułów uruchomieniowych wtyczek
- rozwiązywanie grafu pakietów
- obsługę zależności produkcyjnych, opcjonalnych i równorzędnych
- układ
node_modules - integralność pakietów
- metadane blokady i instalacji
pnpm lub npm powinny sprawić, aby system plików odpowiadał tej decyzji.
OpenClaw odpowiada również za blokadę koordynacji dla każdego katalogu głównego instalacji. Menedżery pakietów chronią własną transakcję instalacji, ale nie serializują zapisów manifestu OpenClaw, kopiowania/zmiany nazwy izolowanego etapu, końcowej walidacji ani importu wtyczki względem innego procesu Gateway, doctor lub CLI dotykającego tego samego katalogu głównego zależności uruchomieniowych.
Efektywny plan wtyczek
Efektywny plan wtyczek jest wyprowadzany z konfiguracji oraz wykrytych metadanych wtyczek. Te dane wejściowe mogą aktywować zależności uruchomieniowe dołączonych wtyczek:plugins.entries.<id>.enabledplugins.allow,plugins.denyiplugins.enabled- starsza konfiguracja kanału, taka jak
channels.telegram.enabled - skonfigurowani dostawcy, modele lub odwołania do zaplecza CLI, które wymagają wtyczki
- domyślne wartości dołączonego manifestu, takie jak
enabledByDefault - indeks zainstalowanych wtyczek i metadane dołączonego manifestu
Przepływ uruchamiania
Uruchomienie Gateway analizuje konfigurację i buduje tabelę wyszukiwania wtyczek startowych przed załadowaniem modułów uruchomieniowych wtyczek. Następnie uruchomienie przygotowuje zależności uruchomieniowe tylko dlastartupPluginIds wybranych przez ten plan.
W instalacjach pakietowych przygotowanie zależności jest dozwolone przed importem wtyczek. Po przygotowaniu loader środowiska uruchomieniowego importuje wtyczki startowe z wyłączoną naprawą instalacji; w tym momencie brak materializacji zależności jest traktowany jako błąd ładowania, a nie kolejna pętla naprawy.
Gdy przygotowanie zależności startowych jest odroczone do czasu po powiązaniu HTTP, gotowość Gateway pozostaje zablokowana z powodu plugin-runtime-deps, dopóki zależności wybranych wtyczek startowych nie zostaną zmaterializowane, a środowisko uruchomieniowe wtyczek startowych nie zostanie załadowane.
Kiedy działa naprawa
Naprawa zależności uruchomieniowych powinna zostać uruchomiona, gdy spełniony jest jeden z tych warunków:- efektywny plan wtyczek zmienił się i dodaje dołączone wtyczki wymagające zależności uruchomieniowych
- wygenerowany manifest zależności nie odpowiada już efektywnemu planowi
- oczekiwane znaczniki zainstalowanych pakietów są brakujące lub niekompletne
- zażądano
openclaw doctor --fixlubopenclaw plugins deps --repair
openclaw onboard i openclaw configure robią to automatycznie po pomyślnym zapisaniu konfiguracji, aby następne uruchomienie Gateway nie odkryło brakujących pakietów dołączonych wtyczek już po rozpoczęciu startu. Zdalne onboarding/configure pozostaje tylko do odczytu dla lokalnych zależności uruchomieniowych.
Reguła gorącego przeładowania
Ścieżki gorącego przeładowania, które mogą zmienić aktywne wtyczki, muszą wrócić przez tryb planu wtyczek przed załadowaniem środowiska uruchomieniowego wtyczki. Przeładowanie powinno porównać nowy efektywny plan wtyczek z poprzednim, przygotować brakujące zależności dla nowo aktywnych dołączonych wtyczek, a następnie załadować lub zrestartować dotknięte środowisko uruchomieniowe. Jeśli przeładowanie konfiguracji nie zmienia efektywnego planu wtyczek, nie powinno naprawiać dołączonych zależności uruchomieniowych.Wykonanie menedżera pakietów
OpenClaw zapisuje wygenerowany manifest instalacji dla wybranych dołączonych zależności uruchomieniowych i uruchamia menedżera pakietów w katalogu głównym instalacji zależności uruchomieniowych. Preferujepnpm, gdy jest dostępny, i wraca do dostarczanego z Node runnera npm.
Ścieżka pnpm używa zależności produkcyjnych, wyłącza skrypty cyklu życia, ignoruje workspace i utrzymuje magazyn wewnątrz katalogu głównego instalacji:
npm używa bezpiecznego wrappera instalacji npm z zależnościami produkcyjnymi, wyłączonymi skryptami cyklu życia, wyłączonym trybem workspace, wyłączonym audytem, wyłączonym wyjściem fund, starszym zachowaniem zależności równorzędnych i włączonym wyjściem package-lock dla wygenerowanego katalogu głównego instalacji.
Po instalacji OpenClaw waliduje przygotowane drzewo zależności, zanim udostępni je katalogowi głównemu zależności uruchomieniowych. Izolowany etap jest kopiowany do katalogu głównego zależności uruchomieniowych i ponownie walidowany.
Cała sekcja naprawy/materializacji jest chroniona blokadą katalogu głównego instalacji. Bieżący właściciele blokady zapisują PID, czas startu procesu, gdy jest dostępny, oraz czas utworzenia. Starsze blokady bez dowodu czasu startu procesu lub czasu utworzenia są odzyskiwane wyłącznie na podstawie wieku systemu plików, więc blokady z ponownie użytym Docker PID 1 odzyskują się bez wygaszania zwykłych, długotrwałych bieżących instalacji wyłącznie na podstawie wieku.
Katalogi główne instalacji
Instalacje pakietowe nie mogą modyfikować katalogów pakietów tylko do odczytu. OpenClaw może odczytywać katalogi główne zależności z warstw pakietowych, ale zapisuje wygenerowane zależności uruchomieniowe do zapisywalnego etapu, takiego jak:OPENCLAW_PLUGIN_STAGE_DIR$STATE_DIRECTORY~/.openclaw/plugin-runtime-deps/var/lib/openclaw/plugin-runtime-depsw instalacjach w stylu kontenerowym
node_modules zamiast ponownie uruchamiać menedżera pakietów. Nowy wersjonowany katalog główny nadal otrzymuje własne aktualne lustro środowiska uruchomieniowego pakietu, więc kod wtyczki pochodzi z bieżącego pakietu OpenClaw, a niezmienione drzewa zależności są współdzielone między aktualizacjami. Ponowne użycie pomija poprzednie katalogi główne z aktywną blokadą zależności uruchomieniowych OpenClaw, więc nowy katalog główny nie łączy się z drzewem zależności, które inny proces Gateway, doctor lub CLI właśnie naprawia.
Polecenia doctor i CLI
Użyjplugins deps, aby sprawdzić lub naprawić materializację zależności uruchomieniowych dołączonych wtyczek:
plugins deps i doctor działają na należących do OpenClaw zależnościach uruchomieniowych dołączonych wtyczek wybranych przez efektywny plan wtyczek. Nie są poleceniami instalacji ani aktualizacji wtyczek firm trzecich.
Rozwiązywanie problemów
Jeśli instalacja pakietowa zgłasza brakujące dołączone zależności uruchomieniowe:- Uruchom
openclaw plugins deps --json, aby sprawdzić wybrany plan i brakujące pakiety. - Uruchom
openclaw plugins deps --repairlubopenclaw doctor --fix, aby naprawić zapisywalny etap zależności. - Jeśli katalog główny instalacji jest tylko do odczytu, ustaw
OPENCLAW_PLUGIN_STAGE_DIRna zapisywalną ścieżkę i ponownie uruchom naprawę. - Zrestartuj Gateway po naprawie, jeśli brakująca zależność zablokowała ładowanie wtyczki startowej.
pnpm install w celu naprawy zależności źródłowych, zamiast używać naprawy pakietowych zależności uruchomieniowych jako pierwszego kroku.