Przejdź do głównej treści

Wtyczki

Wtyczki rozszerzają OpenClaw o nowe możliwości: kanały, dostawców modeli, narzędzia, Skills, mowę, transkrypcję realtime, głos realtime, rozumienie mediów, generowanie obrazów, generowanie wideo, web fetch, web search i wiele więcej. Niektóre wtyczki są główne (dostarczane z OpenClaw), inne są zewnętrzne (publikowane na npm przez społeczność).

Szybki start

1

Zobacz, co jest załadowane

openclaw plugins list
2

Zainstaluj wtyczkę

# Z npm
openclaw plugins install @openclaw/voice-call

# Z lokalnego katalogu lub archiwum
openclaw plugins install ./my-plugin
openclaw plugins install ./my-plugin.tgz
3

Zrestartuj Gateway

openclaw gateway restart
Następnie skonfiguruj ją w plugins.entries.\<id\>.config w swoim pliku konfiguracyjnym.
Jeśli wolisz sterowanie natywne dla czatu, włącz commands.plugins: true i używaj:
/plugin install clawhub:@openclaw/voice-call
/plugin show voice-call
/plugin enable voice-call
Ścieżka instalacji używa tego samego mechanizmu rozwiązywania co CLI: ścieżka/archiwum lokalne, jawne clawhub:<pkg> albo zwykła specyfikacja pakietu (najpierw ClawHub, potem fallback do npm). Jeśli konfiguracja jest nieprawidłowa, instalacja zwykle kończy się bezpieczną odmową i kieruje do openclaw doctor --fix. Jedynym wyjątkiem odzyskiwania jest wąska ścieżka ponownej instalacji dołączonej wtyczki dla wtyczek, które optują do openclaw.install.allowInvalidConfigRecovery.

Typy wtyczek

OpenClaw rozpoznaje dwa formaty wtyczek:
FormatJak działaPrzykłady
Natywnyopenclaw.plugin.json + moduł runtime; wykonuje się w procesieOficjalne wtyczki, pakiety npm społeczności
PakietUkład zgodny z Codex/Claude/Cursor; mapowany na funkcje OpenClaw.codex-plugin/, .claude-plugin/, .cursor-plugin/
Oba pojawiają się pod openclaw plugins list. Szczegóły pakietów znajdziesz w Pakiety wtyczek. Jeśli piszesz natywną wtyczkę, zacznij od Tworzenie wtyczek i Przegląd Plugin SDK.

Oficjalne wtyczki

Instalowalne (npm)

WtyczkaPakietDokumentacja
Matrix@openclaw/matrixMatrix
Microsoft Teams@openclaw/msteamsMicrosoft Teams
Nostr@openclaw/nostrNostr
Voice Call@openclaw/voice-callVoice Call
Zalo@openclaw/zaloZalo
Zalo Personal@openclaw/zalouserZalo Personal

Główne (dostarczane z OpenClaw)

anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google, huggingface, kilocode, kimi-coding, minimax, mistral, qwen, moonshot, nvidia, openai, opencode, opencode-go, openrouter, qianfan, synthetic, together, venice, vercel-ai-gateway, volcengine, xiaomi, zai
  • memory-core — dołączone wyszukiwanie w pamięci (domyślnie przez plugins.slots.memory)
  • memory-lancedb — instalowana na żądanie pamięć długoterminowa z automatycznym przywoływaniem/przechwytywaniem (ustaw plugins.slots.memory = "memory-lancedb")
elevenlabs, microsoft
  • browser — dołączona wtyczka przeglądarki dla narzędzia browser, CLI openclaw browser, metody gateway browser.request, runtime przeglądarki i domyślnej usługi sterowania przeglądarką (włączona domyślnie; wyłącz ją przed zastąpieniem)
  • copilot-proxy — most VS Code Copilot Proxy (domyślnie wyłączony)
Szukasz wtyczek zewnętrznych? Zobacz Wtyczki społeczności.

Konfiguracja

{
  plugins: {
    enabled: true,
    allow: ["voice-call"],
    deny: ["untrusted-plugin"],
    load: { paths: ["~/Projects/oss/voice-call-extension"] },
    entries: {
      "voice-call": { enabled: true, config: { provider: "twilio" } },
    },
  },
}
PoleOpis
enabledGłówny przełącznik (domyślnie: true)
allowAllowlista wtyczek (opcjonalnie)
denyLista zabronionych wtyczek (opcjonalnie; zabronienie wygrywa)
load.pathsDodatkowe pliki/katalogi wtyczek
slotsSelektory wyłącznych slotów (np. memory, contextEngine)
entries.\<id\>Przełączniki i konfiguracja per-wtyczka
Zmiany konfiguracji wymagają restartu gateway. Jeśli Gateway działa z obserwacją konfiguracji i restartem w procesie (domyślna ścieżka openclaw gateway), ten restart zwykle wykonywany jest automatycznie chwilę po zapisaniu konfiguracji.
  • Wyłączona: wtyczka istnieje, ale reguły włączania ją wyłączyły. Konfiguracja zostaje zachowana.
  • Brakująca: konfiguracja odwołuje się do identyfikatora wtyczki, którego wykrywanie nie znalazło.
  • Nieprawidłowa: wtyczka istnieje, ale jej konfiguracja nie pasuje do zadeklarowanego schematu.

Wykrywanie i priorytet

OpenClaw skanuje w poszukiwaniu wtyczek w tej kolejności (pierwsze dopasowanie wygrywa):
1

Ścieżki konfiguracji

plugins.load.paths — jawne ścieżki do plików lub katalogów.
2

Rozszerzenia obszaru roboczego

\<workspace\>/.openclaw/<plugin-root>/*.ts oraz \<workspace\>/.openclaw/<plugin-root>/*/index.ts.
3

Globalne rozszerzenia

~/.openclaw/<plugin-root>/*.ts oraz ~/.openclaw/<plugin-root>/*/index.ts.
4

Dołączone wtyczki

Dostarczane z OpenClaw. Wiele z nich jest włączonych domyślnie (dostawcy modeli, mowa). Inne wymagają jawnego włączenia.

Reguły włączania

  • plugins.enabled: false wyłącza wszystkie wtyczki
  • plugins.deny zawsze wygrywa nad allow
  • plugins.entries.\<id\>.enabled: false wyłącza tę wtyczkę
  • Wtyczki pochodzące z obszaru roboczego są domyślnie wyłączone (muszą zostać jawnie włączone)
  • Dołączone wtyczki stosują wbudowany zestaw domyślnie włączonych, chyba że został nadpisany
  • Wyłączne sloty mogą wymusić włączenie wybranej wtyczki dla tego slotu

Sloty wtyczek (wyłączne kategorie)

Niektóre kategorie są wyłączne (w danym czasie aktywna może być tylko jedna):
{
  plugins: {
    slots: {
      memory: "memory-core", // lub "none", aby wyłączyć
      contextEngine: "legacy", // lub identyfikator wtyczki
    },
  },
}
SlotCo kontrolujeDomyślnie
memoryAktywna wtyczka pamięcimemory-core
contextEngineAktywny silnik kontekstulegacy (wbudowany)

Dokumentacja CLI

openclaw plugins list                       # skrócony spis
openclaw plugins list --enabled            # tylko załadowane wtyczki
openclaw plugins list --verbose            # szczegółowe linie dla każdej wtyczki
openclaw plugins list --json               # spis czytelny maszynowo
openclaw plugins inspect <id>              # szczegóły
openclaw plugins inspect <id> --json       # format czytelny maszynowo
openclaw plugins inspect --all             # tabela dla całej floty
openclaw plugins info <id>                 # alias inspect
openclaw plugins doctor                    # diagnostyka

openclaw plugins install <package>         # instalacja (najpierw ClawHub, potem npm)
openclaw plugins install clawhub:<pkg>     # instalacja tylko z ClawHub
openclaw plugins install <spec> --force    # nadpisanie istniejącej instalacji
openclaw plugins install <path>            # instalacja z lokalnej ścieżki
openclaw plugins install -l <path>         # podlinkowanie (bez kopiowania) do dev
openclaw plugins install <plugin> --marketplace <source>
openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>
openclaw plugins install <spec> --pin      # zapis dokładnej rozwiązanej specyfikacji npm
openclaw plugins install <spec> --dangerously-force-unsafe-install
openclaw plugins update <id>             # aktualizacja jednej wtyczki
openclaw plugins update <id> --dangerously-force-unsafe-install
openclaw plugins update --all            # aktualizacja wszystkich
openclaw plugins uninstall <id>          # usunięcie rekordów konfiguracji/instalacji
openclaw plugins uninstall <id> --keep-files
openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json

openclaw plugins enable <id>
openclaw plugins disable <id>
Dołączone wtyczki są dostarczane z OpenClaw. Wiele z nich jest włączonych domyślnie (na przykład dołączeni dostawcy modeli, dołączeni dostawcy mowy i dołączona wtyczka browser). Inne dołączone wtyczki nadal wymagają openclaw plugins enable <id>. --force nadpisuje istniejącą zainstalowaną wtyczkę lub pakiet hooków w miejscu. Nie jest obsługiwane razem z --link, które używa ścieżki źródłowej zamiast kopiowania do zarządzanego celu instalacji. --pin jest dostępne tylko dla npm. Nie jest obsługiwane z --marketplace, ponieważ instalacje z marketplace zapisują metadane źródła marketplace zamiast specyfikacji npm. --dangerously-force-unsafe-install to awaryjne obejście dla fałszywych alarmów wbudowanego skanera niebezpiecznego kodu. Pozwala kontynuować instalacje i aktualizacje wtyczek mimo wbudowanych ustaleń critical, ale nadal nie omija blokad polityki before_install ani blokowania przy błędzie skanowania. Ta flaga CLI dotyczy tylko przepływów instalacji/aktualizacji wtyczek. Instalacje zależności Skills obsługiwane przez gateway używają zamiast tego odpowiadającego nadpisania żądania dangerouslyForceUnsafeInstall, podczas gdy openclaw skills install pozostaje osobnym przepływem pobierania/instalacji Skills przez ClawHub. Zgodne pakiety uczestniczą w tym samym przepływie list/inspect/enable/disable wtyczek. Obecna obsługa runtime obejmuje Skills z pakietów, command-skills Claude, domyślne ustawienia settings.json Claude, domyślne ustawienia Claude .lsp.json i deklarowane w manifescie lspServers, command-skills Cursor oraz zgodne katalogi hooków Codex. openclaw plugins inspect <id> raportuje też wykryte możliwości pakietu oraz obsługiwane lub nieobsługiwane wpisy serwerów MCP i LSP dla wtyczek opartych na pakietach. Źródła marketplace mogą być znaną nazwą marketplace Claude z ~/.claude/plugins/known_marketplaces.json, lokalnym katalogiem marketplace lub ścieżką marketplace.json, skrótem GitHub w postaci owner/repo, adresem URL repozytorium GitHub albo adresem URL git. W przypadku zdalnych marketplace wpisy wtyczek muszą pozostać wewnątrz sklonowanego repozytorium marketplace i używać wyłącznie względnych źródeł ścieżek. Pełne szczegóły znajdziesz w dokumentacji CLI openclaw plugins.

Przegląd API wtyczek

Natywne wtyczki eksportują obiekt wejściowy udostępniający register(api). Starsze wtyczki mogą nadal używać activate(api) jako starszego aliasu, ale nowe wtyczki powinny używać register.
export default definePluginEntry({
  id: "my-plugin",
  name: "My Plugin",
  register(api) {
    api.registerProvider({
      /* ... */
    });
    api.registerTool({
      /* ... */
    });
    api.registerChannel({
      /* ... */
    });
  },
});
OpenClaw ładuje obiekt wejściowy i wywołuje register(api) podczas aktywacji wtyczki. Loader nadal przechodzi awaryjnie do activate(api) dla starszych wtyczek, ale dołączone wtyczki i nowe zewnętrzne wtyczki powinny traktować register jako publiczny kontrakt. Typowe metody rejestracji:
MetodaCo rejestruje
registerProviderDostawcę modelu (LLM)
registerChannelKanał czatu
registerToolNarzędzie agenta
registerHook / on(...)Hooki cyklu życia
registerSpeechProviderZamianę tekstu na mowę / STT
registerRealtimeTranscriptionProviderStrumieniowe STT
registerRealtimeVoiceProviderDwukierunkowy głos realtime
registerMediaUnderstandingProviderAnalizę obrazu/audio
registerImageGenerationProviderGenerowanie obrazów
registerVideoGenerationProviderGenerowanie wideo
registerWebFetchProviderDostawcę web fetch / scrape
registerWebSearchProviderWeb search
registerHttpRouteEndpoint HTTP
registerCommand / registerCliPolecenia CLI
registerContextEngineSilnik kontekstu
registerServiceUsługę działającą w tle
Zachowanie hook guard dla typowanych hooków cyklu życia:
  • before_tool_call: { block: true } jest końcowe; handlery o niższym priorytecie są pomijane.
  • before_tool_call: { block: false } nic nie robi i nie usuwa wcześniejszej blokady.
  • before_install: { block: true } jest końcowe; handlery o niższym priorytecie są pomijane.
  • before_install: { block: false } nic nie robi i nie usuwa wcześniejszej blokady.
  • message_sending: { cancel: true } jest końcowe; handlery o niższym priorytecie są pomijane.
  • message_sending: { cancel: false } nic nie robi i nie usuwa wcześniejszego anulowania.
Pełne zachowanie typowanych hooków znajdziesz w Przegląd SDK.

Powiązane