chore(i18n): refresh pl translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-08 09:50:47 +00:00
parent c27328833b
commit d62407f710
7 changed files with 1312 additions and 1284 deletions

View File

@ -1,30 +1,30 @@
---
read_when:
- Praca nad funkcjami kanału Discord
summary: Status obsługi bota Discord, możliwości i konfiguracja
summary: Stan obsługi bota Discord, możliwości i konfiguracja
title: Discord
x-i18n:
generated_at: "2026-04-06T03:08:43Z"
generated_at: "2026-04-08T09:46:58Z"
model: gpt-5.4
provider: openai
source_hash: 54af2176a1b4fa1681e3f07494def0c652a2730165058848000e71a59e2a9d08
source_hash: 3cd2886fad941ae2129e681911309539e9a65a2352b777b538d7f4686a68f73f
source_path: channels/discord.md
workflow: 15
---
# Discord (Bot API)
Status: gotowy do DM-ów i kanałów serwerowych przez oficjalną bramę Discord.
Stan: gotowy do DM-ów i kanałów serwera za pośrednictwem oficjalnej bramy Discord.
<CardGroup cols={3}>
<Card title="Parowanie" icon="link" href="/pl/channels/pairing">
DM-y Discord domyślnie działają w trybie parowania.
</Card>
<Card title="Polecenia slash" icon="terminal" href="/pl/tools/slash-commands">
Natywne działanie poleceń i katalog poleceń.
<Card title="Polecenia ukośnikowe" icon="terminal" href="/pl/tools/slash-commands">
Natywne zachowanie poleceń i katalog poleceń.
</Card>
<Card title="Rozwiązywanie problemów z kanałem" icon="wrench" href="/pl/channels/troubleshooting">
Diagnostyka i przepływ naprawy między kanałami.
Diagnostyka międzykanałowa i przepływ naprawczy.
</Card>
</CardGroup>
@ -40,8 +40,8 @@ Musisz utworzyć nową aplikację z botem, dodać bota do swojego serwera i spar
</Step>
<Step title="Włącz uprzywilejowane intencje">
Nadal na stronie **Bot**, przewiń w dół do **Privileged Gateway Intents** i włącz:
<Step title="Włącz uprawnione intencje">
Nadal na stronie **Bot** przewiń do sekcji **Privileged Gateway Intents** i włącz:
- **Message Content Intent** (wymagane)
- **Server Members Intent** (zalecane; wymagane dla list dozwolonych ról i dopasowywania nazw do ID)
@ -50,20 +50,20 @@ Musisz utworzyć nową aplikację z botem, dodać bota do swojego serwera i spar
</Step>
<Step title="Skopiuj token bota">
Przewiń z powrotem w górę na stronie **Bot** i kliknij **Reset Token**.
Przewiń z powrotem do góry na stronie **Bot** i kliknij **Reset Token**.
<Note>
Wbrew nazwie spowoduje to wygenerowanie pierwszego tokena — nic nie jest „resetowane”.
Mimo nazwy spowoduje to wygenerowanie Twojego pierwszego tokena — nic nie jest „resetowane”.
</Note>
Skopiuj token i zapisz go w bezpiecznym miejscu. To jest Twój **Bot Token** i będzie potrzebny za chwilę.
Skopiuj token i zapisz go w bezpiecznym miejscu. To jest Twój **Bot Token** i za chwilę będzie potrzebny.
</Step>
<Step title="Wygeneruj URL zaproszenia i dodaj bota do serwera">
Kliknij **OAuth2** na pasku bocznym. Wygenerujesz URL zaproszenia z odpowiednimi uprawnieniami do dodania bota do swojego serwera.
<Step title="Wygeneruj adres URL zaproszenia i dodaj bota do serwera">
Kliknij **OAuth2** na pasku bocznym. Wygenerujesz adres URL zaproszenia z odpowiednimi uprawnieniami do dodania bota do swojego serwera.
Przewiń w dół do **OAuth2 URL Generator** i włącz:
Przewiń do **OAuth2 URL Generator** i włącz:
- `bot`
- `applications.commands`
@ -75,32 +75,32 @@ Musisz utworzyć nową aplikację z botem, dodać bota do swojego serwera i spar
- Read Message History
- Embed Links
- Attach Files
- Add Reactions (opcjonalnie)
- Add Reactions (opcjonalne)
Skopiuj wygenerowany URL na dole, wklej go do przeglądarki, wybierz swój serwer i kliknij **Continue**, aby połączyć. Powinieneś teraz zobaczyć swojego bota na serwerze Discord.
Skopiuj wygenerowany adres URL na dole, wklej go do przeglądarki, wybierz swój serwer i kliknij **Continue**, aby połączyć. Powinieneś teraz zobaczyć swojego bota na serwerze Discord.
</Step>
<Step title="Włącz Developer Mode i zbierz swoje ID">
Po powrocie do aplikacji Discord musisz włączyć Developer Mode, aby móc kopiować wewnętrzne ID.
<Step title="Włącz tryb deweloperski i zbierz swoje ID">
Po powrocie do aplikacji Discord musisz włączyć Developer Mode, aby móc kopiować wewnętrzne identyfikatory.
1. Kliknij **User Settings** (ikona koła zębatego obok awatara) → **Advanced** → włącz **Developer Mode**
2. Kliknij prawym przyciskiem myszy **ikonę serwera** na pasku bocznym → **Copy Server ID**
3. Kliknij prawym przyciskiem myszy **swój awatar** → **Copy User ID**
1. Kliknij **User Settings** (ikona koła zębatego obok avatara) → **Advanced** → włącz **Developer Mode**
2. Kliknij prawym przyciskiem **ikonę serwera** na pasku bocznym → **Copy Server ID**
3. Kliknij prawym przyciskiem własny **avatar** → **Copy User ID**
Zapisz **Server ID** i **User ID** razem z Bot Token — w następnym kroku prześlesz wszystkie trzy do OpenClaw.
Zapisz swoje **Server ID** i **User ID** razem z Bot Token — w następnym kroku przekażesz wszystkie trzy do OpenClaw.
</Step>
<Step title="Zezwól na DM-y od członków serwera">
Aby parowanie działało, Discord musi pozwalać Twojemu botowi wysyłać do Ciebie DM-y. Kliknij prawym przyciskiem myszy **ikonę serwera****Privacy Settings** → włącz **Direct Messages**.
Aby parowanie działało, Discord musi pozwalać Twojemu botowi wysyłać do Ciebie DM-y. Kliknij prawym przyciskiem **ikonę serwera****Privacy Settings** → włącz **Direct Messages**.
Umożliwia to członkom serwera (w tym botom) wysyłanie Ci DM-ów. Pozostaw to włączone, jeśli chcesz używać DM-ów Discord z OpenClaw. Jeśli planujesz używać tylko kanałów serwerowych, możesz wyłączyć DM-y po sparowaniu.
Dzięki temu członkowie serwera (w tym boty) mogą wysyłać Ci DM-y. Pozostaw tę opcję włączoną, jeśli chcesz używać DM-ów Discord z OpenClaw. Jeśli planujesz używać tylko kanałów serwera, możesz wyłączyć DM-y po sparowaniu.
</Step>
<Step title="Ustaw bezpiecznie token bota (nie wysyłaj go na czacie)">
Token bota Discord jest tajny (jak hasło). Ustaw go na maszynie, na której działa OpenClaw, zanim wyślesz wiadomość do swojego agenta.
Token Twojego bota Discord jest sekretem (jak hasło). Ustaw go na maszynie, na której działa OpenClaw, zanim wyślesz wiadomość do agenta.
```bash
export DISCORD_BOT_TOKEN="YOUR_BOT_TOKEN"
@ -110,7 +110,7 @@ openclaw config set channels.discord.enabled true --strict-json
openclaw gateway
```
Jeśli OpenClaw działa już jako usługa w tle, uruchom go ponownie przez aplikację OpenClaw Mac albo przez zatrzymanie i ponowne uruchomienie procesu `openclaw gateway run`.
Jeśli OpenClaw działa już jako usługa w tle, uruchom go ponownie za pomocą aplikacji OpenClaw Mac albo zatrzymaj i uruchom ponownie proces `openclaw gateway run`.
</Step>
@ -118,9 +118,9 @@ openclaw gateway
<Tabs>
<Tab title="Zapytaj swojego agenta">
Porozmawiaj ze swoim agentem OpenClaw na dowolnym istniejącym kanale (np. Telegram) i przekaż mu te informacje. Jeśli Discord jest Twoim pierwszym kanałem, użyj zamiast tego karty CLI / config.
Porozmawiaj ze swoim agentem OpenClaw na dowolnym istniejącym kanale (np. Telegram) i przekaż mu to. Jeśli Discord jest Twoim pierwszym kanałem, zamiast tego użyj karty CLI / config.
> „Mam już ustawiony token bota Discord w konfiguracji. Dokończ proszę konfigurację Discord przy użyciu User ID `<user_id>` i Server ID `<server_id>`.”
> "Ustawiłem już token mojego bota Discord w konfiguracji. Dokończ proszę konfigurację Discord za pomocą User ID `<user_id>` i Server ID `<server_id>`."
</Tab>
<Tab title="CLI / config">
Jeśli wolisz konfigurację opartą na pliku, ustaw:
@ -140,13 +140,13 @@ openclaw gateway
}
```
Fallback env dla konta domyślnego:
Zmienna środowiskowa jako fallback dla konta domyślnego:
```bash
DISCORD_BOT_TOKEN=...
```
Jawne wartości `token` są obsługiwane. Wartości SecretRef są także obsługiwane dla `channels.discord.token` u dostawców env/file/exec. Zobacz [Secrets Management](/pl/gateway/secrets).
Zwykłe tekstowe wartości `token` są obsługiwane. Wartości SecretRef są również obsługiwane dla `channels.discord.token` we wszystkich dostawcach env/file/exec. Zobacz [Zarządzanie sekretami](/pl/gateway/secrets).
</Tab>
</Tabs>
@ -154,13 +154,13 @@ DISCORD_BOT_TOKEN=...
</Step>
<Step title="Zatwierdź pierwsze parowanie DM">
Poczekaj, aż brama będzie działać, a następnie wyślij DM do swojego bota w Discord. Odpowie kodem parowania.
Poczekaj, aż brama zacznie działać, a następnie wyślij DM do swojego bota w Discord. Odpowie kodem parowania.
<Tabs>
<Tab title="Zapytaj swojego agenta">
Wyślij kod parowania do swojego agenta na istniejącym kanale:
> „Zatwierdź ten kod parowania Discord: `<CODE>`
> "Zatwierdź ten kod parowania Discord: `<CODE>`"
</Tab>
<Tab title="CLI">
@ -174,29 +174,29 @@ openclaw pairing approve discord <CODE>
Kody parowania wygasają po 1 godzinie.
Powinieneś teraz móc rozmawiać ze swoim agentem przez DM na Discordzie.
Powinieneś teraz móc rozmawiać ze swoim agentem w Discord przez DM.
</Step>
</Steps>
<Note>
Rozpoznawanie tokena uwzględnia konto. Wartości tokena z konfiguracji mają pierwszeństwo przed fallbackiem env. `DISCORD_BOT_TOKEN` jest używany tylko dla konta domyślnego.
W przypadku zaawansowanych wywołań wychodzących (narzędzie wiadomości/działania kanałowe) jawny `token` na poziomie wywołania jest używany dla tego wywołania. Dotyczy to działań typu send oraz read/probe (na przykład read/search/fetch/thread/pins/permissions). Zasady konta i ustawienia ponawiania pochodzą nadal z wybranego konta w aktywnej migawce środowiska uruchomieniowego.
Rozwiązywanie tokena jest zależne od konta. Wartości tokena w konfiguracji mają pierwszeństwo przed fallbackiem z env. `DISCORD_BOT_TOKEN` jest używany tylko dla konta domyślnego.
W przypadku zaawansowanych wywołań wychodzących (narzędzie wiadomości/działania kanałowe) jawny `token` dla pojedynczego wywołania jest używany tylko dla tego wywołania. Dotyczy to działań typu send oraz read/probe (na przykład read/search/fetch/thread/pins/permissions). Zasady konta i ustawienia ponawiania pochodzą nadal z wybranego konta w aktywnej migawce środowiska wykonawczego.
</Note>
## Zalecane: skonfiguruj przestrzeń roboczą serwera
## Zalecane: skonfiguruj obszar roboczy serwera
Gdy DM-y już działają, możesz skonfigurować swój serwer Discord jako pełną przestrzeń roboczą, w której każdy kanał ma własną sesję agenta z własnym kontekstem. Jest to zalecane dla prywatnych serwerów, gdzie jesteście tylko Ty i Twój bot.
Gdy DM-y już działają, możesz skonfigurować swój serwer Discord jako pełny obszar roboczy, w którym każdy kanał ma własną sesję agenta i własny kontekst. Jest to zalecane w przypadku prywatnych serwerów, na których jesteś tylko Ty i Twój bot.
<Steps>
<Step title="Dodaj swój serwer do listy dozwolonych serwerów">
To umożliwia agentowi odpowiadanie na dowolnym kanale na Twoim serwerze, a nie tylko w DM-ach.
Dzięki temu agent będzie mógł odpowiadać na dowolnym kanale na Twoim serwerze, a nie tylko w DM-ach.
<Tabs>
<Tab title="Zapytaj swojego agenta">
> „Dodaj mój Discord Server ID `<server_id>` do listy dozwolonych serwerów”
> "Dodaj moje Discord Server ID `<server_id>` do listy dozwolonych serwerów"
</Tab>
<Tab title="Config">
<Tab title="Konfiguracja">
```json5
{
@ -219,14 +219,14 @@ Gdy DM-y już działają, możesz skonfigurować swój serwer Discord jako pełn
</Step>
<Step title="Zezwól na odpowiedzi bez @wzmianki">
Domyślnie agent odpowiada na kanałach serwerowych tylko wtedy, gdy zostanie oznaczony przez @mention. W przypadku prywatnego serwera prawdopodobnie chcesz, aby odpowiadał na każdą wiadomość.
<Step title="Zezwól na odpowiedzi bez wzmianki @">
Domyślnie agent odpowiada na kanałach serwera tylko wtedy, gdy zostanie wspomniany przez @mention. Na prywatnym serwerze prawdopodobnie chcesz, aby odpowiadał na każdą wiadomość.
<Tabs>
<Tab title="Zapytaj swojego agenta">
> „Pozwól mojemu agentowi odpowiadać na tym serwerze bez konieczności używania @mention
> "Pozwól mojemu agentowi odpowiadać na tym serwerze bez konieczności używania @mention"
</Tab>
<Tab title="Config">
<Tab title="Konfiguracja">
Ustaw `requireMention: false` w konfiguracji serwera:
```json5
@ -248,35 +248,35 @@ Gdy DM-y już działają, możesz skonfigurować swój serwer Discord jako pełn
</Step>
<Step title="Zaplanuj pamięć dla kanałów serwerowych">
Domyślnie pamięć długoterminowa (`MEMORY.md`) jest ładowana tylko w sesjach DM. Kanały serwerowe nie ładują automatycznie `MEMORY.md`.
<Step title="Zaplanuj użycie pamięci na kanałach serwera">
Domyślnie pamięć długoterminowa (MEMORY.md) jest ładowana tylko w sesjach DM. Kanały serwera nie ładują automatycznie MEMORY.md.
<Tabs>
<Tab title="Zapytaj swojego agenta">
> „Gdy zadaję pytania na kanałach Discord, używaj `memory_search` lub `memory_get`, jeśli potrzebujesz długoterminowego kontekstu z `MEMORY.md`.”
> "Kiedy zadaję pytania na kanałach Discord, używaj memory_search lub memory_get, jeśli potrzebujesz długoterminowego kontekstu z MEMORY.md."
</Tab>
<Tab title="Ręcznie">
Jeśli potrzebujesz współdzielonego kontekstu na każdym kanale, umieść stabilne instrukcje w `AGENTS.md` lub `USER.md` (są wstrzykiwane do każdej sesji). Notatki długoterminowe trzymaj w `MEMORY.md` i uzyskuj do nich dostęp na żądanie za pomocą narzędzi pamięci.
Jeśli potrzebujesz współdzielonego kontekstu na każdym kanale, umieść stałe instrukcje w `AGENTS.md` lub `USER.md` (są wstrzykiwane do każdej sesji). Długoterminowe notatki trzymaj w `MEMORY.md` i uzyskuj do nich dostęp na żądanie za pomocą narzędzi pamięci.
</Tab>
</Tabs>
</Step>
</Steps>
Teraz utwórz kilka kanałów na swoim serwerze Discord i zacznij rozmawiać. Agent widzi nazwę kanału, a każdy kanał otrzymuje własną odizolowaną sesję — możesz więc skonfigurować `#coding`, `#home`, `#research` lub cokolwiek pasuje do Twojego sposobu pracy.
Teraz utwórz kilka kanałów na swoim serwerze Discord i zacznij rozmawiać. Twój agent widzi nazwę kanału, a każdy kanał otrzymuje własną izolowaną sesję — możesz więc skonfigurować `#coding`, `#home`, `#research` lub cokolwiek pasuje do Twojego sposobu pracy.
## Model działania środowiska uruchomieniowego
## Model środowiska wykonawczego
- Brama zarządza połączeniem z Discord.
- Kierowanie odpowiedzi jest deterministyczne: odpowiedzi przychodzące z Discord wracają do Discord.
- Domyślnie (`session.dmScope=main`) bezpośrednie rozmowy współdzielą główną sesję agenta (`agent:main:main`).
- Kanały serwerowe mają odizolowane klucze sesji (`agent:<agentId>:discord:channel:<channelId>`).
- Brama zarządza połączeniem Discord.
- Routing odpowiedzi jest deterministyczny: odpowiedzi przychodzące z Discord wracają do Discord.
- Domyślnie (`session.dmScope=main`) czaty bezpośrednie współdzielą główną sesję agenta (`agent:main:main`).
- Kanały serwera mają izolowane klucze sesji (`agent:<agentId>:discord:channel:<channelId>`).
- Grupowe DM-y są domyślnie ignorowane (`channels.discord.dm.groupEnabled=false`).
- Natywne polecenia slash działają w odizolowanych sesjach poleceń (`agent:<agentId>:discord:slash:<userId>`), nadal przenosząc `CommandTargetSessionKey` do kierowanej sesji rozmowy.
- Natywne polecenia ukośnikowe działają w izolowanych sesjach poleceń (`agent:<agentId>:discord:slash:<userId>`), przy jednoczesnym przenoszeniu `CommandTargetSessionKey` do routowanej sesji rozmowy.
## Kanały forum
Kanały forum i kanały multimedialne Discord akceptują tylko posty w wątkach. OpenClaw obsługuje dwa sposoby ich tworzenia:
Kanały forum i mediów Discord akceptują tylko posty w wątkach. OpenClaw obsługuje dwa sposoby ich tworzenia:
- Wyślij wiadomość do nadrzędnego forum (`channel:<forumId>`), aby automatycznie utworzyć wątek. Tytuł wątku używa pierwszej niepustej linii wiadomości.
- Użyj `openclaw message thread create`, aby utworzyć wątek bezpośrednio. Nie przekazuj `--message-id` dla kanałów forum.
@ -288,36 +288,36 @@ openclaw message send --channel discord --target channel:<forumId> \
--message "Topic title\nBody of the post"
```
Przykład: jawne utworzenie wątku forum
Przykład: jawnie utwórz wątek forum
```bash
openclaw message thread create --channel discord --target channel:<forumId> \
--thread-name "Topic title" --message "Body of the post"
```
Nadrzędne fora nie akceptują komponentów Discord. Jeśli potrzebujesz komponentów, wysyłaj do samego wątku (`channel:<threadId>`).
Nadrzędne fora nie akceptują komponentów Discord. Jeśli potrzebujesz komponentów, wyślij do samego wątku (`channel:<threadId>`).
## Komponenty interaktywne
OpenClaw obsługuje kontenery Discord components v2 dla wiadomości agenta. Użyj narzędzia wiadomości z ładunkiem `components`. Wyniki interakcji są kierowane z powrotem do agenta jako zwykłe wiadomości przychodzące i stosują istniejące ustawienia Discord `replyToMode`.
OpenClaw obsługuje kontenery komponentów Discord v2 dla wiadomości agenta. Użyj narzędzia wiadomości z ładunkiem `components`. Wyniki interakcji są kierowane z powrotem do agenta jako zwykłe wiadomości przychodzące i podlegają istniejącym ustawieniom Discord `replyToMode`.
Obsługiwane bloki:
- `text`, `section`, `separator`, `actions`, `media-gallery`, `file`
- Wiersze akcji pozwalają na maksymalnie 5 przycisków albo jedno menu wyboru
- Wiersze akcji pozwalają na maksymalnie 5 przycisków albo pojedyncze menu wyboru
- Typy wyboru: `string`, `user`, `role`, `mentionable`, `channel`
Domyślnie komponenty są jednorazowe. Ustaw `components.reusable=true`, aby pozwolić na wielokrotne użycie przycisków, selektorów i formularzy aż do ich wygaśnięcia.
Domyślnie komponenty są jednorazowe. Ustaw `components.reusable=true`, aby umożliwić wielokrotne użycie przycisków, list wyboru i formularzy aż do ich wygaśnięcia.
Aby ograniczyć, kto może kliknąć przycisk, ustaw `allowedUsers` na tym przycisku (ID użytkowników Discord, tagi lub `*`). Gdy jest to skonfigurowane, niedopasowani użytkownicy otrzymują efemeryczną odmowę.
Aby ograniczyć, kto może kliknąć przycisk, ustaw `allowedUsers` dla tego przycisku (ID użytkowników Discord, tagi lub `*`). Gdy jest to skonfigurowane, niedopasowani użytkownicy otrzymują efemeryczną odmowę.
Polecenia slash `/model` i `/models` otwierają interaktywny selektor modelu z listami rozwijanymi dostawcy i modelu oraz krokiem Submit. Odpowiedź selektora jest efemeryczna i tylko użytkownik, który wywołał, może z niej korzystać.
Polecenia ukośnikowe `/model` i `/models` otwierają interaktywny wybór modelu z listami rozwijanymi dostawcy i modelu oraz krokiem Submit. Odpowiedź selektora jest efemeryczna i tylko użytkownik, który go wywołał, może z niej korzystać.
Załączniki plików:
- bloki `file` muszą wskazywać na odwołanie do załącznika (`attachment://<filename>`)
- podaj załącznik przez `media`/`path`/`filePath` (pojedynczy plik); użyj `media-gallery` dla wielu plików
- użyj `filename`, aby nadpisać nazwę przesyłanego pliku, gdy ma odpowiadać odwołaniu do załącznika
- bloki `file` muszą wskazywać referencję załącznika (`attachment://<filename>`)
- przekaż załącznik przez `media`/`path`/`filePath` (pojedynczy plik); dla wielu plików użyj `media-gallery`
- użyj `filename`, aby nadpisać nazwę przesyłanego pliku, gdy ma odpowiadać referencji załącznika
Formularze modalne:
@ -383,18 +383,18 @@ Przykład:
<Tabs>
<Tab title="Zasady DM">
`channels.discord.dmPolicy` steruje dostępem do DM-ów (starsza nazwa: `channels.discord.dm.policy`):
`channels.discord.dmPolicy` kontroluje dostęp do DM-ów (starsze: `channels.discord.dm.policy`):
- `pairing` (domyślnie)
- `pairing` (domyślne)
- `allowlist`
- `open` (wymaga, aby `channels.discord.allowFrom` zawierało `"*"`; starsza nazwa: `channels.discord.dm.allowFrom`)
- `open` (wymaga, aby `channels.discord.allowFrom` zawierało `"*"`; starsze: `channels.discord.dm.allowFrom`)
- `disabled`
Jeśli zasady DM nie są otwarte, nieznani użytkownicy są blokowani (lub proszeni o sparowanie w trybie `pairing`).
Priorytet dla wielu kont:
- `channels.discord.accounts.default.allowFrom` ma zastosowanie tylko do konta `default`.
- `channels.discord.accounts.default.allowFrom` dotyczy tylko konta `default`.
- Nazwane konta dziedziczą `channels.discord.allowFrom`, gdy ich własne `allowFrom` nie jest ustawione.
- Nazwane konta nie dziedziczą `channels.discord.accounts.default.allowFrom`.
@ -403,11 +403,11 @@ Przykład:
- `user:<id>`
- wzmianka `<@id>`
Same numeryczne ID są niejednoznaczne i są odrzucane, chyba że podano jawnie rodzaj celu user/channel.
Same numeryczne ID są niejednoznaczne i odrzucane, chyba że podano jawny rodzaj celu użytkownik/kanał.
</Tab>
<Tab title="Zasady serwerów">
<Tab title="Zasady serwera">
Obsługa serwerów jest kontrolowana przez `channels.discord.groupPolicy`:
- `open`
@ -419,11 +419,11 @@ Przykład:
Zachowanie `allowlist`:
- serwer musi pasować do `channels.discord.guilds` (preferowane `id`, akceptowany slug)
- opcjonalne listy dozwolonych nadawców: `users` (zalecane stabilne ID) i `roles` (tylko ID ról); jeśli skonfigurowano którekolwiek z nich, nadawcy są dozwoleni, gdy pasują do `users` LUB `roles`
- opcjonalne listy dozwolonych nadawców: `users` (zalecane stabilne ID) i `roles` (tylko ID ról); jeśli skonfigurowano którąkolwiek z nich, nadawcy są dozwoleni, gdy pasują do `users` LUB `roles`
- bezpośrednie dopasowywanie nazw/tagów jest domyślnie wyłączone; włącz `channels.discord.dangerouslyAllowNameMatching: true` tylko jako tryb zgodności awaryjnej
- nazwy/tagi są obsługiwane dla `users`, ale ID są bezpieczniejsze; `openclaw security audit` ostrzega, gdy używane są wpisy nazwa/tag
- jeśli serwer ma skonfigurowane `channels`, kanały nieuwzględnione na liście są odrzucane
- jeśli serwer nie ma bloku `channels`, wszystkie kanały w tym serwerze z listy dozwolonych są dozwolone
- nazwy/tagi są obsługiwane dla `users`, ale ID są bezpieczniejsze; `openclaw security audit` ostrzega, gdy używane są wpisy nazw/tagów
- jeśli serwer ma skonfigurowane `channels`, kanały spoza listy są odrzucane
- jeśli serwer nie ma bloku `channels`, wszystkie kanały na tym serwerze z listy dozwolonych są dopuszczone
Przykład:
@ -449,20 +449,20 @@ Przykład:
}
```
Jeśli ustawisz tylko `DISCORD_BOT_TOKEN` i nie utworzysz bloku `channels.discord`, fallback środowiska uruchomieniowego będzie `groupPolicy="allowlist"` (z ostrzeżeniem w logach), nawet jeśli `channels.defaults.groupPolicy` ma wartość `open`.
Jeśli ustawisz tylko `DISCORD_BOT_TOKEN` i nie utworzysz bloku `channels.discord`, fallback środowiska wykonawczego to `groupPolicy="allowlist"` (z ostrzeżeniem w logach), nawet jeśli `channels.defaults.groupPolicy` ma wartość `open`.
</Tab>
<Tab title="Wzmianki i grupowe DM-y">
Wiadomości na serwerach są domyślnie bramkowane wzmiankami.
Wiadomości na serwerze są domyślnie ograniczane przez wzmianki.
Wykrywanie wzmianki obejmuje:
- jawną wzmiankę o bocie
- skonfigurowane wzorce wzmianki (`agents.list[].groupChat.mentionPatterns`, fallback `messages.groupChat.mentionPatterns`)
- niejawne zachowanie odpowiedzi-do-bota w obsługiwanych przypadkach
- skonfigurowane wzorce wzmianek (`agents.list[].groupChat.mentionPatterns`, fallback `messages.groupChat.mentionPatterns`)
- niejawne zachowanie odpowiedzi do bota w obsługiwanych przypadkach
`requireMention` jest konfigurowane dla każdego serwera/kanału (`channels.discord.guilds...`).
`requireMention` konfiguruje się dla każdego serwera/kanału osobno (`channels.discord.guilds...`).
`ignoreOtherMentions` opcjonalnie odrzuca wiadomości, które wspominają innego użytkownika/rolę, ale nie bota (z wyłączeniem @everyone/@here).
Grupowe DM-y:
@ -475,7 +475,7 @@ Przykład:
### Routing agenta oparty na rolach
Użyj `bindings[].match.roles`, aby kierować członków serwerów Discord do różnych agentów według ID ról. Powiązania oparte na rolach akceptują tylko ID ról i są oceniane po powiązaniach peer lub parent-peer, a przed powiązaniami tylko-serwerowymi. Jeśli powiązanie ustawia t inne pola dopasowania (na przykład `peer` + `guildId` + `roles`), wszystkie skonfigurowane pola muszą pasować.
Użyj `bindings[].match.roles`, aby kierować członków serwera Discord do różnych agentów według ID roli. Powiązania oparte na rolach akceptują wyłącznie ID ról i są oceniane po powiązaniach peer lub parent-peer, a przed powiązaniami tylko-serwerowymi. Jeśli powiązanie ustawia także inne pola dopasowania (na przykład `peer` + `guildId` + `roles`), wszystkie skonfigurowane pola muszą pasować.
```json5
{
@ -510,7 +510,7 @@ Użyj `bindings[].match.roles`, aby kierować członków serwerów Discord do r
</Accordion>
<Accordion title="Uprzywilejowane intencje">
<Accordion title="Uprawnione intencje">
W **Bot -> Privileged Gateway Intents** włącz:
- Message Content Intent
@ -532,7 +532,7 @@ Użyj `bindings[].match.roles`, aby kierować członków serwerów Discord do r
- Read Message History
- Embed Links
- Attach Files
- Add Reactions (opcjonalnie)
- Add Reactions (opcjonalne)
Unikaj `Administrator`, chyba że jest to wyraźnie potrzebne.
@ -545,61 +545,61 @@ Użyj `bindings[].match.roles`, aby kierować członków serwerów Discord do r
- ID kanału
- ID użytkownika
W konfiguracji OpenClaw preferuj numeryczne ID dla wiarygodnych audytów i testów.
Preferuj numeryczne ID w konfiguracji OpenClaw dla wiarygodnych audytów i testów.
</Accordion>
</AccordionGroup>
## Natywne polecenia i uwierzytelnianie poleceń
## Polecenia natywne i uwierzytelnianie poleceń
- `commands.native` ma domyślnie wartość `"auto"` i jest włączone dla Discord.
- `commands.native` domyślnie ma wartość `"auto"` i jest włączone dla Discord.
- Nadpisanie dla kanału: `channels.discord.commands.native`.
- `commands.native=false` jawnie czyści wcześniej zarejestrowane natywne polecenia Discord.
- Uwierzytelnianie natywnych poleceń używa tych samych list dozwolonych i zasad Discord co zwykła obsługa wiadomości.
- Polecenia mogą być nadal widoczne w interfejsie Discord dla użytkowników bez uprawnień; wykonanie nadal wymusza autoryzację OpenClaw i zwraca „not authorized”.
- `commands.native=false` jawnie usuwa wcześniej zarejestrowane natywne polecenia Discord.
- Uwierzytelnianie natywnych poleceń używa tych samych list dozwolonych/zasad Discord co zwykła obsługa wiadomości.
- Polecenia mogą nadal być widoczne w interfejsie Discord dla użytkowników bez uprawnień; wykonanie nadal wymusza uwierzytelnianie OpenClaw i zwraca „not authorized”.
Zobacz [Slash commands](/pl/tools/slash-commands), aby poznać katalog poleceń i zachowanie.
Zobacz [Polecenia ukośnikowe](/pl/tools/slash-commands), aby poznać katalog poleceń i ich zachowanie.
Domyślne ustawienia poleceń slash:
Domyślne ustawienia poleceń ukośnikowych:
- `ephemeral: true`
## Szczegóły funkcji
<AccordionGroup>
<Accordion title="Znaczniki odpowiedzi i natywne odpowiedzi">
Discord obsługuje znaczniki odpowiedzi w wyjściu agenta:
<Accordion title="Tagi odpowiedzi i natywne odpowiedzi">
Discord obsługuje tagi odpowiedzi w danych wyjściowych agenta:
- `[[reply_to_current]]`
- `[[reply_to:<id>]]`
Sterowane przez `channels.discord.replyToMode`:
Kontrolowane przez `channels.discord.replyToMode`:
- `off` (domyślnie)
- `off` (domyślne)
- `first`
- `all`
- `batched`
Uwaga: `off` wyłącza niejawne wątkowanie odpowiedzi. Jawne znaczniki `[[reply_to_*]]` są nadal respektowane.
Uwaga: `off` wyłącza niejawne wątkowanie odpowiedzi. Jawne tagi `[[reply_to_*]]` są nadal respektowane.
`first` zawsze dołącza niejawną natywną referencję odpowiedzi do pierwszej wychodzącej wiadomości Discord w danej turze.
`batched` dołącza niejawną natywną referencję odpowiedzi Discord tylko wtedy, gdy
tura przychodząca była odroczoną partią wielu wiadomości. Jest to przydatne,
gdy chcesz używać natywnych odpowiedzi głównie przy niejednoznacznych,
gwałtownych seriach czatu, a nie przy każdej turze pojedynczej wiadomości.
gdy chcesz używać natywnych odpowiedzi głównie przy niejednoznacznych, gwałtownych seriach czatu, a nie przy każdej
pojedynczej turze wiadomości.
ID wiadomości są ujawniane w kontekście/historii, dzięki czemu agenci mogą kierować odpowiedzi na konkretne wiadomości.
ID wiadomości są ujawniane w kontekście/historii, dzięki czemu agenci mogą kierować odpowiedzi do konkretnych wiadomości.
</Accordion>
<Accordion title="Podgląd transmisji na żywo">
OpenClaw może strumieniować robocze odpowiedzi, wysyłając tymczasową wiadomość i edytując ją w miarę napływu tekstu.
OpenClaw może strumieniowo wyświetlać szkice odpowiedzi, wysyłając tymczasową wiadomość i edytując ją w miarę napływu tekstu.
- `channels.discord.streaming` steruje strumieniowaniem podglądu (`off` | `partial` | `block` | `progress`, domyślnie: `off`).
- Domyślna wartość pozostaje `off`, ponieważ edycje podglądu w Discord mogą szybko osiągnąć limity szybkości, zwłaszcza gdy wiele botów lub bram współdzieli to samo konto albo ruch serwera.
- `progress` jest akceptowane dla spójności między kanałami i mapuje się na `partial` w Discord.
- `channels.discord.streamMode` jest starszym aliasem i jest migrowane automatycznie.
- `partial` edytuje pojedynczą wiadomość podglądu, gdy napływają tokeny.
- `block` emituje fragmenty wielkości szkicu (użyj `draftChunk`, aby dostroić rozmiar i punkty podziału).
- `channels.discord.streaming` kontroluje podgląd strumieniowy (`off` | `partial` | `block` | `progress`, domyślnie: `off`).
- Domyślnie pozostaje `off`, ponieważ edycje podglądu w Discord mogą szybko natrafić na limity szybkości, zwłaszcza gdy wiele botów lub bram współdzieli to samo konto lub ruch serwera.
- `progress` jest akceptowane dla spójności międzykanałowej i w Discord mapuje się na `partial`.
- `channels.discord.streamMode` to starszy alias i jest automatycznie migrowany.
- `partial` edytuje pojedynczą wiadomość podglądu w miarę napływu tokenów.
- `block` emituje fragmenty o rozmiarze szkicu (użyj `draftChunk`, aby dostroić rozmiar i punkty podziału).
Przykład:
@ -613,7 +613,7 @@ Domyślne ustawienia poleceń slash:
}
```
Domyślne dzielenie na fragmenty w trybie `block` (ograniczane do `channels.discord.textChunkLimit`):
Domyślne fragmentowanie w trybie `block` (ograniczane do `channels.discord.textChunkLimit`):
```json5
{
@ -630,9 +630,9 @@ Domyślne ustawienia poleceń slash:
}
```
Strumieniowanie podglądu dotyczy tylko tekstu; odpowiedzi multimedialne wracają do zwykłego dostarczania.
Podgląd strumieniowy obsługuje tylko tekst; odpowiedzi z mediami wracają do zwykłego dostarczania.
Uwaga: strumieniowanie podglądu jest oddzielne od strumieniowania blokowego. Gdy strumieniowanie blokowe jest jawnie
Uwaga: podgląd strumieniowy jest oddzielny od strumieniowania blokowego. Gdy strumieniowanie blokowe jest jawnie
włączone dla Discord, OpenClaw pomija strumień podglądu, aby uniknąć podwójnego strumieniowania.
</Accordion>
@ -644,33 +644,33 @@ Domyślne ustawienia poleceń slash:
- fallback: `messages.groupChat.historyLimit`
- `0` wyłącza
Ustawienia historii DM:
Kontrola historii DM:
- `channels.discord.dmHistoryLimit`
- `channels.discord.dms["<user_id>"].historyLimit`
Zachowanie wątków:
- wątki Discord są kierowane jako sesje kanałów
- metadane nadrzędnego wątku mogą być używane do połączenia z sesją nadrzędną
- wątki Discord są routowane jako sesje kanałów
- metadane wątku nadrzędnego mogą być używane do powiązania z sesją nadrzędną
- konfiguracja wątku dziedziczy konfigurację kanału nadrzędnego, chyba że istnieje wpis specyficzny dla wątku
Tematy kanałów są wstrzykiwane jako kontekst **niezaufany** (nie jako prompt systemowy).
Kontekst odpowiedzi i cytowanej wiadomości pozostaje obecnie taki, jak został odebrany.
Listy dozwolonych Discord przede wszystkim ograniczają to, kto może wyzwolić agenta, a nie stanowią pełnej granicy redakcji kontekstu uzupełniającego.
Tematy kanałów są wstrzykiwane jako kontekst **niezaufany** (nie jako system prompt).
Kontekst odpowiedzi i cytowanych wiadomości obecnie pozostaje taki, jak został odebrany.
Listy dozwolonych Discord przede wszystkim ograniczają, kto może uruchomić agenta, a nie stanowią pełnej granicy redakcji dodatkowego kontekstu.
</Accordion>
<Accordion title="Sesje powiązane z wątkiem dla subagentów">
Discord może powiązać wątek z celem sesji, aby kolejne wiadomości w tym wątku nadal trafiały do tej samej sesji (w tym sesji subagentów).
Discord może powiązać wątek z celem sesji, tak aby kolejne wiadomości w tym wątku nadal były kierowane do tej samej sesji (w tym sesji subagentów).
Polecenia:
- `/focus <target>` powiąż bieżący/nowy wątek z celem subagenta/sesji
- `/unfocus` usuń bieżące powiązanie wątku
- `/agents` pokaż aktywne uruchomienia i stan powiązań
- `/session idle <duration|off>` sprawdź/zaktualizuj automatyczne odwiązywanie po bezczynności dla powiązań focus
- `/session max-age <duration|off>` sprawdź/zaktualizuj twardy maksymalny wiek dla powiązań focus
- `/session idle <duration|off>` sprawdź/zaktualizuj automatyczne odwiązywanie po bezczynności dla powiązań z fokusem
- `/session max-age <duration|off>` sprawdź/zaktualizuj sztywny maksymalny wiek dla powiązań z fokusem
Konfiguracja:
@ -689,7 +689,7 @@ Domyślne ustawienia poleceń slash:
enabled: true,
idleHours: 24,
maxAgeHours: 0,
spawnSubagentSessions: false, // opt-in
spawnSubagentSessions: false, // opcjonalne
},
},
},
@ -698,18 +698,18 @@ Domyślne ustawienia poleceń slash:
Uwagi:
- `session.threadBindings.*` ustawia globalne wartości domyślne.
- `session.threadBindings.*` ustawia domyślne ustawienia globalne.
- `channels.discord.threadBindings.*` nadpisuje zachowanie Discord.
- `spawnSubagentSessions` musi mieć wartość true, aby automatycznie tworzyć/powiązywać wątki dla `sessions_spawn({ thread: true })`.
- `spawnAcpSessions` musi mieć wartość true, aby automatycznie tworzyć/powiązywać wątki dla ACP (`/acp spawn ... --thread ...` lub `sessions_spawn({ runtime: "acp", thread: true })`).
- Jeśli powiązania wątków są wyłączone dla konta, `/focus` i powiązane operacje na powiązaniach wątków są niedostępne.
- Jeśli powiązania wątków są wyłączone dla konta, `/focus` i powiązane operacje powiązań wątków są niedostępne.
Zobacz [Sub-agents](/pl/tools/subagents), [ACP Agents](/pl/tools/acp-agents) i [Configuration Reference](/pl/gateway/configuration-reference).
Zobacz [Sub-agenci](/pl/tools/subagents), [Agenci ACP](/pl/tools/acp-agents) oraz [Dokumentacja konfiguracji](/pl/gateway/configuration-reference).
</Accordion>
<Accordion title="Trwałe powiązania kanałów ACP">
W przypadku stabilnych, „zawsze aktywnych” przestrzeni roboczych ACP skonfiguruj najwyższego poziomu typowane powiązania ACP wskazujące na rozmowy Discord.
Dla stabilnych, „zawsze aktywnych” obszarów roboczych ACP skonfiguruj najwyższego poziomu typowane powiązania ACP kierowane do rozmów Discord.
Ścieżka konfiguracji:
@ -766,14 +766,14 @@ Domyślne ustawienia poleceń slash:
Uwagi:
- `/acp spawn codex --bind here` wiąże bieżący kanał lub wątek Discord na miejscu i utrzymuje kierowanie przyszłych wiadomości do tej samej sesji ACP.
- Może to nadal oznaczać „uruchom nową sesję Codex ACP”, ale samo w sobie nie tworzy nowego wątku Discord. Istniejący kanał pozostaje powierzchnią czatu.
- Codex może nadal działać we własnym `cwd` lub obszarze roboczym backendu na dysku. Ten obszar roboczy jest stanem środowiska uruchomieniowego, a nie wątkiem Discord.
- Wiadomości w wątku mogą dziedziczyć powiązanie ACP kanału nadrzędnego.
- Nadal może to oznaczać „uruchom świeżą sesję Codex ACP”, ale samo w sobie nie tworzy nowego wątku Discord. Istniejący kanał pozostaje powierzchnią czatu.
- Codex może nadal działać we własnym `cwd` lub obszarze roboczym backendu na dysku. Ten obszar roboczy jest stanem środowiska wykonawczego, a nie wątkiem Discord.
- Wiadomości wątków mogą dziedziczyć powiązanie ACP kanału nadrzędnego.
- W powiązanym kanale lub wątku `/new` i `/reset` resetują tę samą sesję ACP na miejscu.
- Tymczasowe powiązania wątków nadal działają i mogą nadpisywać rozstrzyganie celu, gdy są aktywne.
- Tymczasowe powiązania wątków nadal działają i mogą nadpisywać rozwiązywanie celu, gdy są aktywne.
- `spawnAcpSessions` jest wymagane tylko wtedy, gdy OpenClaw musi utworzyć/powiązać podrzędny wątek przez `--thread auto|here`. Nie jest wymagane dla `/acp spawn ... --bind here` w bieżącym kanale.
Zobacz [ACP Agents](/pl/tools/acp-agents), aby poznać szczegóły zachowania powiązań.
Zobacz [Agenci ACP](/pl/tools/acp-agents), aby poznać szczegóły zachowania powiązań.
</Accordion>
@ -781,18 +781,18 @@ Domyślne ustawienia poleceń slash:
Tryb powiadomień o reakcjach dla każdego serwera:
- `off`
- `own` (domyślnie)
- `own` (domyślne)
- `all`
- `allowlist` (używa `guilds.<id>.users`)
Zdarzenia reakcji są zamieniane na zdarzenia systemowe i dołączane do kierowanej sesji Discord.
Zdarzenia reakcji są zamieniane na zdarzenia systemowe i dołączane do routowanej sesji Discord.
</Accordion>
<Accordion title="Reakcje potwierdzające">
`ackReaction` wysyła emoji potwierdzenia, gdy OpenClaw przetwarza wiadomość przychodzącą.
Kolejność rozstrzygania:
Kolejność rozwiązywania:
- `channels.discord.accounts.<accountId>.ackReaction`
- `channels.discord.ackReaction`
@ -801,7 +801,7 @@ Domyślne ustawienia poleceń slash:
Uwagi:
- Discord akceptuje emoji Unicode lub niestandardowe nazwy emoji.
- Discord akceptuje emoji unicode lub niestandardowe nazwy emoji.
- Użyj `""`, aby wyłączyć reakcję dla kanału lub konta.
</Accordion>
@ -809,7 +809,7 @@ Domyślne ustawienia poleceń slash:
<Accordion title="Zapisy konfiguracji">
Zapisy konfiguracji inicjowane z kanału są domyślnie włączone.
Ma to wpływ na przepływy `/config set|unset` (gdy funkcje poleceń są włączone).
Dotyczy to przepływów `/config set|unset` (gdy funkcje poleceń są włączone).
Wyłącz:
@ -826,7 +826,7 @@ Domyślne ustawienia poleceń slash:
</Accordion>
<Accordion title="Proxy bramy">
Kieruj ruch WebSocket bramy Discord i wyszukiwania REST przy uruchamianiu (ID aplikacji + rozstrzyganie listy dozwolonych) przez proxy HTTP(S) za pomocą `channels.discord.proxy`.
Kieruj ruch WebSocket bramy Discord i zapytania REST przy uruchamianiu (ID aplikacji + rozwiązywanie listy dozwolonych) przez proxy HTTP(S) za pomocą `channels.discord.proxy`.
```json5
{
@ -857,7 +857,7 @@ Domyślne ustawienia poleceń slash:
</Accordion>
<Accordion title="Obsługa PluralKit">
Włącz rozstrzyganie PluralKit, aby mapować wiadomości proxy na tożsamość członka systemu:
Włącz rozwiązywanie PluralKit, aby mapować wiadomości proxy na tożsamość członka systemu:
```json5
{
@ -865,7 +865,7 @@ Domyślne ustawienia poleceń slash:
discord: {
pluralkit: {
enabled: true,
token: "pk_live_...", // optional; needed for private systems
token: "pk_live_...", // opcjonalne; potrzebne dla prywatnych systemów
},
},
},
@ -882,7 +882,7 @@ Domyślne ustawienia poleceń slash:
</Accordion>
<Accordion title="Konfiguracja obecności">
Aktualizacje obecności są stosowane, gdy ustawisz pole statusu lub aktywności albo gdy włączysz auto presence.
Aktualizacje obecności są stosowane, gdy ustawisz pole statusu lub aktywności, albo gdy włączysz automatyczną obecność.
Przykład tylko ze statusem:
@ -932,7 +932,7 @@ Domyślne ustawienia poleceń slash:
- 4: Custom (używa tekstu aktywności jako stanu statusu; emoji jest opcjonalne)
- 5: Competing
Przykład auto presence (sygnał kondycji środowiska uruchomieniowego):
Przykład automatycznej obecności (sygnał kondycji środowiska wykonawczego):
```json5
{
@ -949,7 +949,7 @@ Domyślne ustawienia poleceń slash:
}
```
Auto presence mapuje dostępność środowiska uruchomieniowego na status Discord: healthy => online, degraded lub unknown => idle, exhausted lub unavailable => dnd. Opcjonalne nadpisania tekstu:
Automatyczna obecność mapuje dostępność środowiska wykonawczego na status Discord: healthy => online, degraded lub unknown => idle, exhausted lub unavailable => dnd. Opcjonalne nadpisania tekstu:
- `autoPresence.healthyText`
- `autoPresence.degradedText`
@ -958,43 +958,43 @@ Domyślne ustawienia poleceń slash:
</Accordion>
<Accordion title="Zatwierdzenia w Discord">
Discord obsługuje zatwierdzanie oparte na przyciskach w DM-ach i może opcjonalnie publikować prośby o zatwierdzenie w kanale źródłowym.
Discord obsługuje zatwierdzanie oparte na przyciskach w DM-ach i może opcjonalnie publikować monity o zatwierdzenie w kanale źródłowym.
Ścieżka konfiguracji:
- `channels.discord.execApprovals.enabled`
- `channels.discord.execApprovals.approvers` (opcjonalnie; jeśli to możliwe, fallback do `commands.ownerAllowFrom`)
- `channels.discord.execApprovals.approvers` (opcjonalne; gdy to możliwe, fallback do `commands.ownerAllowFrom`)
- `channels.discord.execApprovals.target` (`dm` | `channel` | `both`, domyślnie: `dm`)
- `agentFilter`, `sessionFilter`, `cleanupAfterResolve`
Discord automatycznie włącza natywne zatwierdzenia exec, gdy `enabled` jest nieustawione lub ma wartość `"auto"` i można rozstrzygnąć co najmniej jednego zatwierdzającego, albo z `execApprovals.approvers`, albo z `commands.ownerAllowFrom`. Discord nie wywodzi zatwierdzających exec z kanałowego `allowFrom`, starszego `dm.allowFrom` ani z bezpośredniego `defaultTo`. Ustaw `enabled: false`, aby jawnie wyłączyć Discord jako natywnego klienta zatwierdzeń.
Discord automatycznie włącza natywne zatwierdzenia exec, gdy `enabled` nie jest ustawione lub ma wartość `"auto"` i można rozwiązać co najmniej jednego zatwierdzającego — albo z `execApprovals.approvers`, albo z `commands.ownerAllowFrom`. Discord nie wywnioskuje zatwierdzających exec z kanałowego `allowFrom`, starszego `dm.allowFrom` ani z `defaultTo` dla wiadomości bezpośrednich. Ustaw `enabled: false`, aby jawnie wyłączyć Discord jako natywnego klienta zatwierdzeń.
Gdy `target` ma wartość `channel` lub `both`, prośba o zatwierdzenie jest widoczna w kanale. Tylko rozstrzygnięci zatwierdzający mogą używać przycisków; inni użytkownicy otrzymują efemeryczną odmowę. Prośby o zatwierdzenie zawierają tekst polecenia, więc włączaj dostarczanie do kanału tylko na zaufanych kanałach. Jeśli nie da się wyprowadzić ID kanału z klucza sesji, OpenClaw wraca do dostarczenia przez DM.
Gdy `target` ma wartość `channel` lub `both`, monit o zatwierdzenie jest widoczny w kanale. Tylko rozwiązani zatwierdzający mogą używać przycisków; inni użytkownicy otrzymują efemeryczną odmowę. Monity o zatwierdzenie zawierają tekst polecenia, dlatego dostarczanie do kanału włączaj tylko na zaufanych kanałach. Jeśli nie można wyprowadzić ID kanału z klucza sesji, OpenClaw wraca do dostarczania przez DM.
Discord renderuje także współdzielone przyciski zatwierdzania używane przez inne kanały czatu. Natywny adapter Discord głównie dodaje routowanie DM dla zatwierdzających oraz rozsyłanie do kanału.
Gdy te przyciski są obecne, stanowią podstawowy interfejs zatwierdzania; OpenClaw
Discord renderuje również współdzielone przyciski zatwierdzania używane przez inne kanały czatu. Natywny adapter Discord głównie dodaje routing DM zatwierdzających i rozsyłanie do kanału.
Gdy te przyciski są obecne, są one podstawowym UX zatwierdzania; OpenClaw
powinien dołączać ręczne polecenie `/approve` tylko wtedy, gdy wynik narzędzia mówi,
że zatwierdzenia na czacie są niedostępne lub ręczne zatwierdzenie jest jedyną ścieżką.
że zatwierdzenia na czacie są niedostępne albo ręczne zatwierdzenie jest jedyną drogą.
Uwierzytelnianie bramy dla tego modułu obsługi używa tego samego współdzielonego kontraktu rozstrzygania poświadczeń co inni klienci Gateway:
Uwierzytelnianie bramy dla tego modułu obsługi używa tego samego współdzielonego kontraktu rozwiązywania poświadczeń co inni klienci Gateway:
- uwierzytelnianie lokalne z pierwszeństwem env (`OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD`, potem `gateway.auth.*`)
- w trybie lokalnym `gateway.remote.*` może być użyte jako fallback tylko wtedy, gdy `gateway.auth.*` nie jest ustawione; skonfigurowane, ale nierozstrzygnięte lokalne SecretRef są zamykane fail-closed
- najpierw lokalne uwierzytelnianie z env (`OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD`, a następnie `gateway.auth.*`)
- w trybie lokalnym `gateway.remote.*` może być używane jako fallback tylko wtedy, gdy `gateway.auth.*` nie jest ustawione; skonfigurowane, ale nierozwiązane lokalne SecretRef kończą się bezpieczną odmową
- obsługa trybu zdalnego przez `gateway.remote.*`, gdy ma zastosowanie
- nadpisania URL są bezpieczne względem nadpisywania: nadpisania CLI nie używają ponownie niejawnych poświadczeń, a nadpisania env używają tylko poświadczeń env
- nadpisania URL są bezpieczne względem nadpisywania: nadpisania CLI nie używają ponownie niejawnych poświadczeń, a nadpisania env używają tylko poświadczeń z env
Zachowanie rozstrzygania zatwierdzeń:
Zachowanie rozwiązywania zatwierdzeń:
- ID z prefiksem `plugin:` są rozstrzygane przez `plugin.approval.resolve`.
- Inne ID są rozstrzygane przez `exec.approval.resolve`.
- Discord nie wykonuje tu dodatkowego kroku fallback z exec do plugin; prefiks
id decyduje, którą metodę bramy wywoła.
- ID z prefiksem `plugin:` są rozwiązywane przez `plugin.approval.resolve`.
- Pozostałe ID są rozwiązywane przez `exec.approval.resolve`.
- Discord nie wykonuje tutaj dodatkowego przejścia fallback exec-to-plugin; prefiks
ID decyduje, którą metodę bramy wywoła.
Zatwierdzenia exec domyślnie wygasają po 30 minutach. Jeśli zatwierdzenia zawodzą z
nieznanymi ID zatwierdzeń, sprawdź rozstrzyganie zatwierdzających, włączenie funkcji oraz
czy dostarczony rodzaj id zatwierdzenia pasuje do oczekującego żądania.
Zatwierdzenia exec domyślnie wygasają po 30 minutach. Jeśli zatwierdzenia kończą się błędem
z nieznanymi ID zatwierdzeń, sprawdź rozwiązywanie zatwierdzających, włączenie funkcji oraz
czy dostarczony rodzaj ID zatwierdzenia pasuje do oczekującego żądania.
Powiązane dokumenty: [Exec approvals](/pl/tools/exec-approvals)
Powiązana dokumentacja: [Zatwierdzenia exec](/pl/tools/exec-approvals)
</Accordion>
</AccordionGroup>
@ -1010,23 +1010,25 @@ Podstawowe przykłady:
- moderacja: `timeout`, `kick`, `ban`
- obecność: `setPresence`
Bramki działań znajdują się pod `channels.discord.actions.*`.
Działanie `event-create` akceptuje opcjonalny parametr `image` (URL lub lokalna ścieżka pliku), aby ustawić obraz okładki zaplanowanego wydarzenia.
Bramki działań znajdują się w `channels.discord.actions.*`.
Domyślne zachowanie bramek:
| Grupa działań | Domyślnie |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| Grupa działań | Domyślnie |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- |
| reactions, messages, threads, pins, polls, search, memberInfo, roleInfo, channelInfo, channels, voiceStatus, events, stickers, emojiUploads, stickerUploads, permissions | włączone |
| roles | wyłączone |
| moderation | wyłączone |
| presence | wyłączone |
| roles | wyłączone |
| moderation | wyłączone |
| presence | wyłączone |
## Components v2 UI
## Interfejs Components v2
OpenClaw używa Discord components v2 do zatwierdzeń exec i znaczników między kontekstami. Działania wiadomości Discord mogą również przyjmować `components` dla niestandardowego interfejsu (zaawansowane; wymaga skonstruowania ładunku komponentu przez narzędzie discord), podczas gdy starsze `embeds` pozostają dostępne, ale nie są zalecane.
OpenClaw używa Discord components v2 do zatwierdzeń exec i znaczników międzykontekstowych. Działania wiadomości Discord mogą również przyjmować `components` dla niestandardowego interfejsu (zaawansowane; wymaga skonstruowania ładunku komponentów za pomocą narzędzia discord), podczas gdy starsze `embeds` nadal są dostępne, ale nie są zalecane.
- `channels.discord.ui.components.accentColor` ustawia kolor akcentu używany przez kontenery komponentów Discord (hex).
- Ustawienie dla konta: `channels.discord.accounts.<id>.ui.components.accentColor`.
- Ustawienie per konto: `channels.discord.accounts.<id>.ui.components.accentColor`.
- `embeds` są ignorowane, gdy obecne są components v2.
Przykład:
@ -1047,15 +1049,15 @@ Przykład:
## Kanały głosowe
OpenClaw może dołączać do kanałów głosowych Discord na potrzeby rozmów w czasie rzeczywistym i ciągłych konwersacji. To jest oddzielne od załączników z wiadomościami głosowymi.
OpenClaw może dołączać do kanałów głosowych Discord, aby prowadzić rozmowy w czasie rzeczywistym i ciągłe. To osobna funkcja, niezależna od załączników z wiadomościami głosowymi.
Wymagania:
- Włącz natywne polecenia (`commands.native` lub `channels.discord.commands.native`).
- Włącz polecenia natywne (`commands.native` lub `channels.discord.commands.native`).
- Skonfiguruj `channels.discord.voice`.
- Bot potrzebuje uprawnień Connect + Speak w docelowym kanale głosowym.
Użyj polecenia natywnego tylko dla Discord `/vc join|leave|status`, aby sterować sesjami. Polecenie używa domyślnego agenta konta i podlega tym samym regułom list dozwolonych i zasad grupowych co inne polecenia Discord.
Użyj polecenia natywnego tylko dla Discord `/vc join|leave|status`, aby kontrolować sesje. Polecenie używa domyślnego agenta konta i podlega tym samym zasadom listy dozwolonych oraz group policy co pozostałe polecenia Discord.
Przykład automatycznego dołączania:
@ -1086,22 +1088,22 @@ Przykład automatycznego dołączania:
Uwagi:
- `voice.tts` nadpisuje `messages.tts` tylko dla odtwarzania głosowego.
- Tury transkrypcji głosowej wyprowadzają status właściciela z Discord `allowFrom` (lub `dm.allowFrom`); mówcy niebędący właścicielami nie mogą uzyskać dostępu do narzędzi tylko dla właściciela (na przykład `gateway` i `cron`).
- Voice jest domyślnie włączone; ustaw `channels.discord.voice.enabled=false`, aby je wyłączyć.
- `voice.daveEncryption` i `voice.decryptionFailureTolerance` są przekazywane do opcji dołączania `@discordjs/voice`.
- Tury transkrypcji głosowej wyprowadzają status właściciela z Discord `allowFrom` (lub `dm.allowFrom`); mówcy niebędący właścicielami nie mogą uzyskiwać dostępu do narzędzi tylko dla właściciela (na przykład `gateway` i `cron`).
- Głos jest domyślnie włączony; ustaw `channels.discord.voice.enabled=false`, aby go wyłączyć.
- `voice.daveEncryption` i `voice.decryptionFailureTolerance` są przekazywane bezpośrednio do opcji dołączania `@discordjs/voice`.
- Domyślne wartości `@discordjs/voice` to `daveEncryption=true` i `decryptionFailureTolerance=24`, jeśli nie są ustawione.
- OpenClaw monitoruje także błędy odszyfrowywania odbioru i automatycznie odzyskuje działanie, opuszczając i ponownie dołączając do kanału głosowego po powtarzających się błędach w krótkim oknie czasu.
- OpenClaw obserwuje również błędy deszyfrowania podczas odbioru i automatycznie odzyskuje połączenie, opuszczając i ponownie dołączając do kanału głosowego po powtarzających się błędach w krótkim oknie czasu.
- Jeśli logi odbioru wielokrotnie pokazują `DecryptionFailed(UnencryptedWhenPassthroughDisabled)`, może to być błąd odbioru upstream `@discordjs/voice` śledzony w [discord.js #11419](https://github.com/discordjs/discord.js/issues/11419).
## Wiadomości głosowe
Wiadomości głosowe Discord pokazują podgląd fali dźwiękowej i wymagają dźwięku OGG/Opus oraz metadanych. OpenClaw generuje falę automatycznie, ale potrzebuje dostępnych `ffmpeg` i `ffprobe` na hoście bramy do sprawdzania i konwersji plików audio.
Wiadomości głosowe Discord pokazują podgląd przebiegu fali i wymagają dźwięku OGG/Opus oraz metadanych. OpenClaw generuje przebieg automatycznie, ale potrzebuje dostępnych `ffmpeg` i `ffprobe` na hoście bramy, aby analizować i konwertować pliki audio.
Wymagania i ograniczenia:
- Podaj **lokalną ścieżkę pliku** (URL-e są odrzucane).
- Pomiń treść tekstową (Discord nie pozwala na tekst + wiadomość głosową w tym samym ładunku).
- Akceptowany jest dowolny format audio; OpenClaw konwertuje do OGG/Opus, gdy jest to potrzebne.
- Podaj **lokalną ścieżkę pliku** (adresy URL są odrzucane).
- Pomiń treść tekstową (Discord nie pozwala na tekst i wiadomość głosową w tym samym ładunku).
- Akceptowany jest dowolny format audio; OpenClaw w razie potrzeby konwertuje go do OGG/Opus.
Przykład:
@ -1112,10 +1114,10 @@ message(action="send", channel="discord", target="channel:123", path="/path/to/a
## Rozwiązywanie problemów
<AccordionGroup>
<Accordion title="Użyto niedozwolonych intencji albo bot nie widzi wiadomości z serwera">
<Accordion title="Użyto niedozwolonych intencji lub bot nie widzi wiadomości z serwera">
- włącz Message Content Intent
- włącz Server Members Intent, gdy zależysz od rozstrzygania użytkowników/członków
- włącz Server Members Intent, jeśli polegasz na rozwiązywaniu użytkowników/członków
- uruchom ponownie bramę po zmianie intencji
</Accordion>
@ -1125,9 +1127,9 @@ message(action="send", channel="discord", target="channel:123", path="/path/to/a
- sprawdź `groupPolicy`
- sprawdź listę dozwolonych serwerów w `channels.discord.guilds`
- jeśli istnieje mapa `channels` dla serwera, dozwolone są tylko wymienione kanały
- sprawdź działanie `requireMention` i wzorce wzmianki
- sprawdź zachowanie `requireMention` i wzorce wzmianek
Przydatne sprawdzenia:
Przydatne polecenia:
```bash
openclaw doctor
@ -1137,16 +1139,16 @@ openclaw logs --follow
</Accordion>
<Accordion title="Require mention false, ale nadal blokowane">
<Accordion title="Require mention ustawione na false, ale nadal jest blokowane">
Typowe przyczyny:
- `groupPolicy="allowlist"` bez pasującej listy dozwolonych serwerów/kanałów
- `requireMention` skonfigurowane w niewłaściwym miejscu (musi być pod `channels.discord.guilds` lub wpisem kanału)
- nadawca zablokowany przez listę dozwolonych `users` serwera/kanału
- `groupPolicy="allowlist"` bez pasującej listy dozwolonych serwera/kanału
- `requireMention` skonfigurowane w niewłaściwym miejscu (musi znajdować się w `channels.discord.guilds` lub we wpisie kanału)
- nadawca zablokowany przez listę dozwolonych `users` dla serwera/kanału
</Accordion>
<Accordion title="Długotrwałe moduły obsługi przekraczają limit czasu albo duplikują odpowiedzi">
<Accordion title="Długotrwale działające handlery kończą się timeoutem lub duplikują odpowiedzi">
Typowe logi:
@ -1156,12 +1158,12 @@ openclaw logs --follow
Parametr budżetu listenera:
- pojedyncze konto: `channels.discord.eventQueue.listenerTimeout`
- jedno konto: `channels.discord.eventQueue.listenerTimeout`
- wiele kont: `channels.discord.accounts.<accountId>.eventQueue.listenerTimeout`
Parametr limitu czasu wykonania workera:
Parametr timeoutu działania workera:
- pojedyncze konto: `channels.discord.inboundWorker.runTimeoutMs`
- jedno konto: `channels.discord.inboundWorker.runTimeoutMs`
- wiele kont: `channels.discord.accounts.<accountId>.inboundWorker.runTimeoutMs`
- domyślnie: `1800000` (30 minut); ustaw `0`, aby wyłączyć
@ -1186,54 +1188,54 @@ openclaw logs --follow
}
```
Użyj `eventQueue.listenerTimeout` dla wolnej konfiguracji listenera, a `inboundWorker.runTimeoutMs`
tylko wtedy, gdy chcesz osobnego bezpiecznika dla kolejkowanych tur agenta.
Użyj `eventQueue.listenerTimeout` dla powolnej konfiguracji listenera, a `inboundWorker.runTimeoutMs`
tylko wtedy, gdy chcesz oddzielny bezpiecznik dla kolejkowanych tur agenta.
</Accordion>
<Accordion title="Niezgodności audytu uprawnień">
<Accordion title="Niezgodności w audycie uprawnień">
Kontrole uprawnień `channels status --probe` działają tylko dla numerycznych ID kanałów.
Jeśli używasz kluczy slug, dopasowanie w środowisku uruchomieniowym nadal może działać, ale test nie może w pełni zweryfikować uprawnień.
Jeśli używasz kluczy slug, dopasowanie w czasie działania nadal może działać, ale test nie może w pełni zweryfikować uprawnień.
</Accordion>
<Accordion title="Problemy z DM i parowaniem">
- DM wyłączone: `channels.discord.dm.enabled=false`
- zasady DM wyłączone: `channels.discord.dmPolicy="disabled"` (starsza nazwa: `channels.discord.dm.policy`)
- zasady DM wyłączone: `channels.discord.dmPolicy="disabled"` (starsze: `channels.discord.dm.policy`)
- oczekiwanie na zatwierdzenie parowania w trybie `pairing`
</Accordion>
<Accordion title="Pętle bot-do-bota">
Domyślnie wiadomości napisane przez boty są ignorowane.
Domyślnie wiadomości autorstwa botów są ignorowane.
Jeśli ustawisz `channels.discord.allowBots=true`, użyj ścisłych reguł wzmianki i list dozwolonych, aby uniknąć zapętlenia.
Preferuj `channels.discord.allowBots="mentions"`, aby akceptować tylko wiadomości od botów, które wspominają bota.
Jeśli ustawisz `channels.discord.allowBots=true`, użyj ścisłych reguł wzmianki i listy dozwolonych, aby uniknąć zapętlenia.
Preferuj `channels.discord.allowBots="mentions"`, aby akceptować tylko wiadomości botów, które wspominają bota.
</Accordion>
<Accordion title="Głosowe STT wypada z DecryptionFailed(...)">
<Accordion title="Głosowe STT gubi dane z DecryptionFailed(...)">
- utrzymuj OpenClaw w aktualnej wersji (`openclaw update`), aby logika odzyskiwania odbioru głosowego Discord była obecna
- potwierdź `channels.discord.voice.daveEncryption=true` (domyślnie)
- utrzymuj OpenClaw w aktualnej wersji (`openclaw update`), aby logika odzyskiwania odbioru głosu Discord była obecna
- potwierdź `channels.discord.voice.daveEncryption=true` (domyślne)
- zacznij od `channels.discord.voice.decryptionFailureTolerance=24` (domyślna wartość upstream) i dostrajaj tylko w razie potrzeby
- obserwuj logi pod kątem:
- `discord voice: DAVE decrypt failures detected`
- `discord voice: repeated decrypt failures; attempting rejoin`
- jeśli błędy utrzymują się po automatycznym ponownym dołączeniu, zbierz logi i porównaj z [discord.js #11419](https://github.com/discordjs/discord.js/issues/11419)
- jeśli błędy utrzymują się po automatycznym ponownym dołączeniu, zbierz logi i porównaj je z [discord.js #11419](https://github.com/discordjs/discord.js/issues/11419)
</Accordion>
</AccordionGroup>
## Wskaźniki do dokumentacji referencyjnej konfiguracji
## Wskaźniki dokumentacji konfiguracji
Główna dokumentacja referencyjna:
Główna dokumentacja:
- [Configuration reference - Discord](/pl/gateway/configuration-reference#discord)
- [Dokumentacja konfiguracji - Discord](/pl/gateway/configuration-reference#discord)
Najważniejsze pola Discord:
Kluczowe pola Discord:
- uruchamianie/uwierzytelnianie: `enabled`, `token`, `accounts.*`, `allowBots`
- zasady: `groupPolicy`, `dm.*`, `guilds.*`, `guilds.*.channels.*`
@ -1247,14 +1249,14 @@ Najważniejsze pola Discord:
- `mediaMaxMb` ogranicza wychodzące przesyłanie do Discord (domyślnie: `100MB`)
- działania: `actions.*`
- obecność: `activity`, `status`, `activityType`, `activityUrl`
- UI: `ui.components.accentColor`
- interfejs: `ui.components.accentColor`
- funkcje: `threadBindings`, najwyższego poziomu `bindings[]` (`type: "acp"`), `pluralkit`, `execApprovals`, `intents`, `agentComponents`, `heartbeat`, `responsePrefix`
## Bezpieczeństwo i operacje
- Traktuj tokeny bota jak sekrety (w środowiskach nadzorowanych preferowany jest `DISCORD_BOT_TOKEN`).
- Nadawaj uprawnienia Discord zgodnie z zasadą najmniejszych uprawnień.
- Jeśli wdrożenie/stan poleceń jest nieaktualny, uruchom ponownie bramę i sprawdź ponownie przez `openclaw channels status --probe`.
- Traktuj tokeny botów jako sekrety (w środowiskach nadzorowanych preferowane `DISCORD_BOT_TOKEN`).
- Przyznawaj minimalne niezbędne uprawnienia Discord.
- Jeśli wdrożenie poleceń lub ich stan są nieaktualne, uruchom ponownie bramę i sprawdź ponownie za pomocą `openclaw channels status --probe`.
## Powiązane
@ -1264,4 +1266,4 @@ Najważniejsze pola Discord:
- [Bezpieczeństwo](/pl/gateway/security)
- [Routing wielu agentów](/pl/concepts/multi-agent)
- [Rozwiązywanie problemów](/pl/channels/troubleshooting)
- [Polecenia slash](/pl/tools/slash-commands)
- [Polecenia ukośnikowe](/pl/tools/slash-commands)

View File

@ -1,66 +1,66 @@
---
read_when:
- Chcesz, aby promowanie pamięci uruchamiało się automatycznie
- Chcesz zrozumieć, co robi każda faza dreaming
- Chcesz zrozumieć, co robi każda faza śnienia
- Chcesz dostroić konsolidację bez zaśmiecania `MEMORY.md`
summary: Konsolidacja pamięci w tle z fazami lekką, głęboką i REM oraz Dziennikiem snów
title: Dreaming (eksperymentalne)
title: Śnienie (eksperymentalne)
x-i18n:
generated_at: "2026-04-06T09:45:35Z"
generated_at: "2026-04-08T09:44:09Z"
model: gpt-5.4
provider: openai
source_hash: 36c4b1e70801d662090dc8ce20608c2f141c23cd7ce53c54e3dcf332c801fd4e
source_hash: 0254f3b0949158264e583c12f36f2b1a83d1b44dc4da01a1b272422d38e8655d
source_path: concepts/dreaming.md
workflow: 15
---
# Dreaming (eksperymentalne)
# Śnienie (eksperymentalne)
Dreaming to system konsolidacji pamięci działający w tle w `memory-core`.
Pomaga OpenClaw przenosić silne sygnały krótkoterminowe do trwałej pamięci, a jednocześnie
utrzymywać ten proces jako zrozumiały i możliwy do przejrzenia.
Śnienie to system konsolidacji pamięci działający w tle w `memory-core`.
Pomaga OpenClaw przenosić silne sygnały pamięci krótkoterminowej do trwałej pamięci,
jednocześnie zachowując przejrzystość i możliwość przeglądu tego procesu.
Dreaming jest funkcją **opcjonalną** i domyślnie jest wyłączone.
Śnienie jest **opcjonalne** i domyślnie wyłączone.
## Co zapisuje dreaming
## Co zapisuje śnienie
Dreaming utrzymuje dwa rodzaje danych wyjściowych:
Śnienie przechowuje dwa rodzaje danych wyjściowych:
- **Stan maszyny** w `memory/.dreams/` (magazyn przypomnień, sygnały faz, punkty kontrolne ingestii, blokady).
- **Dane czytelne dla człowieka** w `DREAMS.md` (lub istniejącym `dreams.md`) oraz opcjonalnych plikach raportów faz w `memory/dreaming/<phase>/YYYY-MM-DD.md`.
- **Stan maszyny** w `memory/.dreams/` (magazyn przywołań, sygnały faz, punkty kontrolne przetwarzania, blokady).
- **Dane czytelne dla człowieka** w `DREAMS.md` (lub istniejącym `dreams.md`) oraz opcjonalne pliki raportów faz w `memory/dreaming/<phase>/YYYY-MM-DD.md`.
Promowanie do pamięci długoterminowej nadal zapisuje dane wyłącznie do `MEMORY.md`.
## Model faz
Dreaming używa trzech współpracujących faz:
Śnienie używa trzech współpracujących faz:
| Faza | Cel | Trwały zapis |
| ----- | ----------------------------------------- | ----------------- |
| Lekka | Sortowanie i przygotowanie niedawnych materiałów krótkoterminowych | Nie |
| Faza | Cel | Trwały zapis |
| ----- | ---------------------------------------- | ----------------- |
| Lekka | Sortowanie i przygotowywanie ostatnich materiałów krótkoterminowych | Nie |
| Głęboka | Ocenianie i promowanie trwałych kandydatów | Tak (`MEMORY.md`) |
| REM | Refleksja nad motywami i powtarzającymi się ideami | Nie |
| REM | Refleksja nad motywami i powracającymi pomysłami | Nie |
Te fazy są wewnętrznymi szczegółami implementacji, a nie osobnymi
konfigurowanymi przez użytkownika „trybami”.
### Faza lekka
Faza lekka pobiera niedawne dzienne sygnały pamięci i ślady przypomnień, usuwa duplikaty
Faza lekka przetwarza ostatnie sygnały dziennej pamięci i ślady przywołań, usuwa duplikaty
i przygotowuje linie kandydatów.
- Odczytuje stan krótkoterminowych przypomnień i niedawne dzienne pliki pamięci.
- Zapisuje zarządzany blok `## Light Sleep`, gdy magazyn zawiera dane wyjściowe inline.
- Rejestruje sygnały wzmacniające do późniejszego głębokiego rankingu.
- Odczytuje stan przywołań krótkoterminowych, ostatnie dzienne pliki pamięci oraz zredagowane transkrypty sesji, jeśli są dostępne.
- Zapisuje zarządzany blok `## Light Sleep`, gdy magazyn zawiera dane wyjściowe osadzone w pliku.
- Rejestruje sygnały wzmocnienia do późniejszego rankingu głębokiego.
- Nigdy nie zapisuje do `MEMORY.md`.
### Faza głęboka
Faza głęboka decyduje, co staje się pamięcią długoterminową.
Faza głęboka decyduje, co trafia do pamięci długoterminowej.
- Nadaje ranking kandydatom za pomocą ważonego punktowania i progów.
- Ustala ranking kandydatów przy użyciu ważonej punktacji i progów.
- Wymaga spełnienia `minScore`, `minRecallCount` oraz `minUniqueQueries`.
- Przed zapisem ponownie odtwarza fragmenty z bieżących plików dziennych, więc nieaktualne lub usunięte fragmenty są pomijane.
- Przed zapisem ponownie pobiera fragmenty z bieżących plików dziennych, więc nieaktualne lub usunięte fragmenty są pomijane.
- Dopisuje promowane wpisy do `MEMORY.md`.
- Zapisuje podsumowanie `## Deep Sleep` w `DREAMS.md` i opcjonalnie zapisuje `memory/dreaming/deep/YYYY-MM-DD.md`.
@ -68,50 +68,57 @@ Faza głęboka decyduje, co staje się pamięcią długoterminową.
Faza REM wyodrębnia wzorce i sygnały refleksyjne.
- Buduje podsumowania motywów i refleksji na podstawie niedawnych śladów krótkoterminowych.
- Zapisuje zarządzany blok `## REM Sleep`, gdy magazyn zawiera dane wyjściowe inline.
- Rejestruje sygnały wzmacniające REM używane przez głęboki ranking.
- Buduje podsumowania motywów i refleksji na podstawie ostatnich śladów krótkoterminowych.
- Zapisuje zarządzany blok `## REM Sleep`, gdy magazyn zawiera dane wyjściowe osadzone w pliku.
- Rejestruje sygnały wzmocnienia REM używane przez ranking głęboki.
- Nigdy nie zapisuje do `MEMORY.md`.
## Przetwarzanie transkryptów sesji
Śnienie może przetwarzać zredagowane transkrypty sesji do korpusu śnienia. Gdy
transkrypty są dostępne, są przekazywane do fazy lekkiej razem z dziennymi
sygnałami pamięci i śladami przywołań. Treści osobiste i wrażliwe są redagowane
przed przetworzeniem.
## Dziennik snów
Dreaming prowadzi także narracyjny **Dziennik snów** w `DREAMS.md`.
Gdy po każdej fazie zgromadzi się wystarczająco dużo materiału, `memory-core` uruchamia
podrzędną turę agenta w tle w trybie best-effort (z użyciem domyślnego modelu środowiska wykonawczego)
Śnienie prowadzi również narracyjny **Dziennik snów** w `DREAMS.md`.
Gdy po każdej fazie zbierze się wystarczająco dużo materiału, `memory-core` uruchamia
w tle, w trybie best-effort, turę podagenta (z użyciem domyślnego modelu runtime)
i dopisuje krótki wpis do dziennika.
Ten dziennik jest przeznaczony do czytania przez ludzi w interfejsie Dreams, a nie jako źródło promocji.
Ten dziennik służy do czytania przez człowieka w interfejsie Dreams, a nie jako źródło promocji.
## Sygnały głębokiego rankingu
## Sygnały rankingu głębokiego
Głęboki ranking używa sześciu ważonych sygnałów bazowych oraz wzmocnienia fazowego:
Ranking głęboki używa sześciu ważonych sygnałów bazowych oraz wzmocnienia faz:
| Sygnał | Waga | Opis |
| Sygnał | Waga | Opis |
| ------------------- | ------ | ------------------------------------------------- |
| Częstotliwość | 0.24 | Ile sygnałów krótkoterminowych zgromadził wpis |
| Trafność | 0.30 | Średnia jakość wyszukiwania dla wpisu |
| Różnorodność zapytań | 0.15 | Odrębne konteksty zapytań/dni, w których wpis się pojawił |
| Aktualność | 0.15 | Wynik świeżości obniżany z upływem czasu |
| Konsolidacja | 0.10 | Siła nawrotu w wielu dniach |
| Bogactwo koncepcyjne | 0.06 | Gęstość tagów pojęciowych na podstawie fragmentu/ścieżki |
| Trafność | 0.30 | Średnia jakość pobierania dla wpisu |
| Różnorodność zapytań | 0.15 | Różne konteksty zapytań/dni, w których się pojawił |
| Aktualność | 0.15 | Wynik świeżości z zanikiem w czasie |
| Konsolidacja | 0.10 | Siła nawrotów w wielu dniach |
| Bogactwo pojęciowe | 0.06 | Gęstość tagów pojęciowych z fragmentu/ścieżki |
Trafienia fazy lekkiej i REM dodają niewielkie wzmocnienie malejące wraz z aktualnością z
Trafienia fazy lekkiej i REM dodają niewielkie wzmocnienie z zanikiem aktualności z
`memory/.dreams/phase-signals.json`.
## Harmonogram
Po włączeniu `memory-core` automatycznie zarządza jednym zadaniem cron dla pełnego
przebiegu dreaming. Każdy przebieg uruchamia fazy w kolejności: light -> REM -> deep.
przebiegu śnienia. Każdy przebieg uruchamia fazy w kolejności: lekka -> REM -> głęboka.
Domyślne zachowanie harmonogramu:
| Ustawienie | Domyślnie |
| Ustawienie | Domyślna wartość |
| -------------------- | ----------- |
| `dreaming.frequency` | `0 3 * * *` |
## Szybki start
Włącz dreaming:
Włącz śnienie:
```json
{
@ -129,7 +136,7 @@ Włącz dreaming:
}
```
Włącz dreaming z niestandardową częstotliwością przebiegu:
Włącz śnienie z niestandardowym harmonogramem przebiegów:
```json
{
@ -149,7 +156,7 @@ Włącz dreaming z niestandardową częstotliwością przebiegu:
}
```
## Komenda ukośnikowa
## Polecenie ukośnikowe
```
/dreaming status
@ -158,9 +165,9 @@ Włącz dreaming z niestandardową częstotliwością przebiegu:
/dreaming help
```
## Workflow CLI
## Przepływ pracy CLI
Użyj promowania w CLI do podglądu lub ręcznego zastosowania:
Użyj promocji w CLI do podglądu lub ręcznego zastosowania:
```bash
openclaw memory promote
@ -169,7 +176,7 @@ openclaw memory promote --limit 5
openclaw memory status --deep
```
Ręczne `memory promote` domyślnie używa progów fazy głębokiej, chyba że zostaną one nadpisane
Ręczne `memory promote` domyślnie używa progów fazy głębokiej, o ile nie zostaną nadpisane
flagami CLI.
Wyjaśnij, dlaczego konkretny kandydat zostałby lub nie zostałby promowany:
@ -179,7 +186,7 @@ openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
```
Podejrzyj refleksje REM, prawdy kandydatów i dane wyjściowe głębokiego promowania bez
Wyświetl podgląd refleksji REM, prawd kandydatów i danych wyjściowych promocji głębokiej bez
zapisywania czegokolwiek:
```bash
@ -189,25 +196,25 @@ openclaw memory rem-harness --json
## Kluczowe wartości domyślne
Wszystkie ustawienia znajdują się pod `plugins.entries.memory-core.config.dreaming`.
Wszystkie ustawienia znajdują się w `plugins.entries.memory-core.config.dreaming`.
| Klucz | Domyślnie |
| Klucz | Domyślna wartość |
| ----------- | ----------- |
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
Polityka faz, progi i zachowanie przechowywania są wewnętrznymi szczegółami implementacji
(i nie są konfigurowane przez użytkownika).
Polityka faz, progi i zachowanie magazynu są wewnętrznymi szczegółami implementacji
(i nie stanowią konfiguracji dostępnej dla użytkownika).
Pełną listę kluczy znajdziesz w [Dokumentacji referencyjnej konfiguracji pamięci](/pl/reference/memory-config#dreaming-experimental).
Pełną listę kluczy znajdziesz w [Dokumentacji konfiguracji pamięci](/pl/reference/memory-config#dreaming-experimental).
## Interfejs Dreams
Po włączeniu karta **Dreams** w Gateway pokazuje:
- bieżący stan włączenia dreaming
- stan na poziomie faz oraz obecność zarządzanego przebiegu
- liczbę wpisów krótkoterminowych, długoterminowych i promowanych dzisiaj
- bieżący stan włączenia śnienia
- stan na poziomie faz i obecność zarządzanego przebiegu
- liczbę elementów krótkoterminowych, długoterminowych i promowanych dzisiaj
- czas następnego zaplanowanego uruchomienia
- rozwijany czytnik Dziennika snów oparty na `doctor.memory.dreamDiary`
@ -216,4 +223,4 @@ Po włączeniu karta **Dreams** w Gateway pokazuje:
- [Pamięć](/pl/concepts/memory)
- [Wyszukiwanie w pamięci](/pl/concepts/memory-search)
- [CLI pamięci](/cli/memory)
- [Dokumentacja referencyjna konfiguracji pamięci](/pl/reference/memory-config)
- [Dokumentacja konfiguracji pamięci](/pl/reference/memory-config)

File diff suppressed because it is too large Load Diff

View File

@ -2,43 +2,45 @@
read_when:
- Widzisz ostrzeżenie OPENCLAW_PLUGIN_SDK_COMPAT_DEPRECATED
- Widzisz ostrzeżenie OPENCLAW_EXTENSION_API_DEPRECATED
- Aktualizujesz plugin do nowoczesnej architektury pluginów OpenClaw
- Aktualizujesz plugin do nowoczesnej architektury pluginów
- Utrzymujesz zewnętrzny plugin OpenClaw
sidebarTitle: Migrate to SDK
summary: Migracja ze starszej warstwy zgodności wstecznej do nowoczesnego Plugin SDK
summary: Przejdź ze starszej warstwy zgodności wstecznej na nowoczesny Plugin SDK
title: Migracja Plugin SDK
x-i18n:
generated_at: "2026-04-08T02:17:46Z"
generated_at: "2026-04-08T09:45:41Z"
model: gpt-5.4
provider: openai
source_hash: 155a8b14bc345319c8516ebdb8a0ccdea2c5f7fa07dad343442996daee21ecad
source_hash: d9a2ce7f5553563516a549ca87e776a6a71e8dd8533a773c5ddbecfae43e7b77
source_path: plugins/sdk-migration.md
workflow: 15
---
# Migracja Plugin SDK
OpenClaw przeszedł od szerokiej warstwy zgodności wstecznej do nowoczesnej architektury
pluginów z ukierunkowanymi, udokumentowanymi importami. Jeśli Twój plugin powstał przed
nową architekturą, ten przewodnik pomoże Ci przeprowadzić migrację.
OpenClaw przeszedł od szerokiej warstwy zgodności wstecznej do nowoczesnej
architektury pluginów z ukierunkowanymi, udokumentowanymi importami. Jeśli
Twój plugin powstał przed wprowadzeniem nowej architektury, ten przewodnik
pomoże Ci przeprowadzić migrację.
## Co się zmienia
Stary system pluginów udostępniał dwie bardzo szerokie powierzchnie, które pozwalały pluginom importować
wszystko, czego potrzebowały, z jednego punktu wejścia:
Stary system pluginów udostępniał dwie szeroko otwarte powierzchnie, które
pozwalały pluginom importować wszystko, czego potrzebowały, z jednego punktu
wejścia:
- **`openclaw/plugin-sdk/compat`** — pojedynczy import, który reeksportował dziesiątki
pomocników. Został wprowadzony po to, aby starsze pluginy oparte na hookach nadal działały
podczas budowy nowej architektury pluginów.
- **`openclaw/extension-api`** — most, który dawał pluginom bezpośredni dostęp do
pomocników po stronie hosta, takich jak osadzony runner agenta.
- **`openclaw/plugin-sdk/compat`** — pojedynczy import, który reeksportował
dziesiątki helperów. Został wprowadzony po to, aby starsze pluginy oparte na
hookach nadal działały, podczas gdy budowano nową architekturę pluginów.
- **`openclaw/extension-api`** — most, który dawał pluginom bezpośredni dostęp
do helperów po stronie hosta, takich jak osadzony runner agenta.
Obie powierzchnie są teraz **przestarzałe**. Nadal działają w czasie działania, ale nowe
pluginy nie mogą ich używać, a istniejące pluginy powinny przeprowadzić migrację przed następnym
głównym wydaniem, które je usunie.
Obie te powierzchnie są teraz **przestarzałe**. Nadal działają w runtime, ale
nowe pluginy nie mogą już z nich korzystać, a istniejące pluginy powinny
przeprowadzić migrację, zanim kolejna główna wersja je usunie.
<Warning>
Warstwa zgodności wstecznej zostanie usunięta w jednym z przyszłych głównych wydań.
Warstwa zgodności wstecznej zostanie usunięta w jednej z przyszłych głównych wersji.
Pluginy, które nadal importują z tych powierzchni, przestaną działać, gdy to nastąpi.
</Warning>
@ -46,85 +48,87 @@ głównym wydaniem, które je usunie.
Stare podejście powodowało problemy:
- **Powolne uruchamianie** — zaimportowanie jednego pomocnika ładowało dziesiątki niepowiązanych modułów
- **Zależności cykliczne** — szerokie reeksporty ułatwiały tworzenie cykli importów
- **Niejasna powierzchnia API** — nie było sposobu, aby odróżnić stabilne eksporty od wewnętrznych
- **Powolne uruchamianie** — zaimportowanie jednego helpera ładowało dziesiątki
niepowiązanych modułów
- **Zależności cykliczne** — szerokie reeksporty ułatwiały tworzenie cykli importu
- **Niejasna powierzchnia API** — nie było sposobu, by stwierdzić, które eksporty
są stabilne, a które wewnętrzne
Nowoczesny Plugin SDK to naprawia: każda ścieżka importu (`openclaw/plugin-sdk/\<subpath\>`)
jest małym, samodzielnym modułem o jasno określonym celu i udokumentowanym kontrakcie.
Nowoczesny Plugin SDK rozwiązuje ten problem: każda ścieżka importu (`openclaw/plugin-sdk/\<subpath\>`)
to mały, samodzielny moduł z jasnym przeznaczeniem i udokumentowanym kontraktem.
Starsze wygodne warstwy dostawców dla dołączonych kanałów również zniknęły. Importy
Starsze wygodne powierzchnie providerów dla wbudowanych kanałów również zostały usunięte. Importy
takie jak `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`,
warstwy pomocnicze oznaczone marką kanału oraz
powierzchnie helperów oznaczone marką kanału oraz
`openclaw/plugin-sdk/telegram-core` były prywatnymi skrótami mono-repo, a nie
stabilnymi kontraktami pluginów. Zamiast tego używaj wąskich, ogólnych podścieżek SDK. Wewnątrz
dołączonego obszaru roboczego pluginów trzymaj pomocniki należące do dostawcy we własnym
stabilnymi kontraktami pluginów. Zamiast nich używaj wąskich, ogólnych podścieżek SDK. Wewnątrz
workspace wbudowanych pluginów przechowuj helpery należące do providera we własnym
`api.ts` lub `runtime-api.ts` tego pluginu.
Aktualne przykłady dołączonych dostawców:
Bieżące przykłady wbudowanych providerów:
- Anthropic przechowuje pomocniki strumieni specyficzne dla Claude we własnej warstwie `api.ts` /
- Anthropic przechowuje helpery strumieni specyficzne dla Claude we własnej powierzchni `api.ts` /
`contract-api.ts`
- OpenAI przechowuje konstruktory dostawców, pomocniki modeli domyślnych i konstruktory dostawców realtime
we własnym `api.ts`
- OpenRouter przechowuje konstruktor dostawcy oraz pomocniki onboardingu/konfiguracji we własnym
- OpenAI przechowuje buildery providerów, helpery modeli domyślnych i buildery providerów
realtime we własnym `api.ts`
- OpenRouter przechowuje builder providera oraz helpery onboardingu/konfiguracji we własnym
`api.ts`
## Jak przeprowadzić migrację
<Steps>
<Step title="Przenieś handlery natywne dla zatwierdzeń na fakty możliwości">
Pluginy kanałów obsługujące zatwierdzenia udostępniają teraz natywne zachowanie zatwierdzeń przez
<Step title="Przenieś handlery natywnych zatwierdzeń do capability facts">
Pluginy kanałów obsługujące zatwierdzanie udostępniają teraz natywne zachowanie zatwierdzania przez
`approvalCapability.nativeRuntime` oraz współdzielony rejestr runtime-context.
Najważniejsze zmiany:
- Zamień `approvalCapability.handler.loadRuntime(...)` na
- Zastąp `approvalCapability.handler.loadRuntime(...)` przez
`approvalCapability.nativeRuntime`
- Przenieś uwierzytelnianie/dostarczanie specyficzne dla zatwierdzeń ze starszego okablowania `plugin.auth` /
`plugin.approvals` na `approvalCapability`
- `ChannelPlugin.approvals` zostało usunięte z publicznego kontraktu pluginów kanałowych;
przenieś pola delivery/native/render do `approvalCapability`
- `plugin.auth` pozostaje tylko dla przepływów logowania/wylogowania kanału; hooki
uwierzytelniania zatwierdzeń nie są już tam odczytywane przez core
- Przenieś uwierzytelnianie i dostarczanie specyficzne dla zatwierdzeń ze starszego powiązania `plugin.auth` /
`plugin.approvals` do `approvalCapability`
- `ChannelPlugin.approvals` zostało usunięte z publicznego kontraktu
pluginu kanału; przenieś pola delivery/native/render do `approvalCapability`
- `plugin.auth` pozostaje wyłącznie dla przepływów logowania/wylogowania kanału; hooki
uwierzytelniania zatwierdzeń w tym miejscu nie są już odczytywane przez core
- Rejestruj obiekty runtime należące do kanału, takie jak klienci, tokeny lub aplikacje
Bolt, przez `openclaw/plugin-sdk/channel-runtime-context`
- Nie wysyłaj komunikatów o przekierowaniu należących do pluginu z natywnych handlerów zatwierdzeń;
core odpowiada teraz za komunikaty „dostarczono gdzie indziej” na podstawie rzeczywistych wyników dostarczenia
core zarządza teraz komunikatami o dostarczeniu w inne miejsce na podstawie rzeczywistych wyników delivery
- Przy przekazywaniu `channelRuntime` do `createChannelManager(...)` podaj
rzeczywistą powierzchnię `createPluginRuntime().channel`. Częściowe stuby są odrzucane.
Zobacz `/plugins/sdk-channel-plugins`, aby poznać bieżący układ
approval capability.
Aktualny układ capability zatwierdzeń znajdziesz w
`/plugins/sdk-channel-plugins`.
</Step>
<Step title="Sprawdź zachowanie zapasowe wrapperów Windows">
Jeśli Twój plugin używa `openclaw/plugin-sdk/windows-spawn`, nierozwiązane wrappery Windows
`.cmd`/`.bat` teraz domyślnie kończą się błędem, chyba że jawnie przekażesz
`.cmd`/`.bat` teraz kończą się bezpieczną porażką, chyba że jawnie przekażesz
`allowShellFallback: true`.
```typescript
// Before
// Przed
const program = applyWindowsSpawnProgramPolicy({ candidate });
// After
// Po
const program = applyWindowsSpawnProgramPolicy({
candidate,
// Only set this for trusted compatibility callers that intentionally
// accept shell-mediated fallback.
// Ustaw to tylko dla zaufanych wywołujących zgodności, którzy świadomie
// akceptują zapasowe wywołanie przez shell.
allowShellFallback: true,
});
```
Jeśli wywołujący nie polega celowo na zapasowym użyciu powłoki, nie ustawiaj
`allowShellFallback`, tylko obsłuż zgłaszany błąd.
Jeśli Twój kod wywołujący nie polega świadomie na zapasowym wywołaniu przez shell, nie ustawiaj
`allowShellFallback` i zamiast tego obsłuż zgłaszany błąd.
</Step>
<Step title="Znajdź przestarzałe importy">
Przeszukaj plugin w poszukiwaniu importów z którejkolwiek z przestarzałych powierzchni:
Przeszukaj plugin pod kątem importów z którejkolwiek z przestarzałych powierzchni:
```bash
grep -r "plugin-sdk/compat" my-plugin/
@ -137,32 +141,32 @@ Aktualne przykłady dołączonych dostawców:
Każdy eksport ze starej powierzchni odpowiada konkretnej nowoczesnej ścieżce importu:
```typescript
// Before (deprecated backwards-compatibility layer)
// Przed (przestarzała warstwa zgodności wstecznej)
import {
createChannelReplyPipeline,
createPluginRuntimeStore,
resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";
// After (modern focused imports)
// Po (nowoczesne ukierunkowane importy)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
```
W przypadku pomocników po stronie hosta używaj wstrzykniętego runtime pluginu zamiast
bezpośredniego importu:
W przypadku helperów po stronie hosta używaj wstrzykniętego runtime pluginu zamiast importować je
bezpośrednio:
```typescript
// Before (deprecated extension-api bridge)
// Przed (przestarzały most extension-api)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });
// After (injected runtime)
// Po (wstrzyknięty runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
```
Ten sam wzorzec dotyczy innych starszych pomocników mostu:
Ten sam wzorzec dotyczy innych starszych helperów mostu:
| Stary import | Nowoczesny odpowiednik |
| --- | --- |
@ -172,7 +176,7 @@ Aktualne przykłady dołączonych dostawców:
| `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
| `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
| `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
| pomocniki magazynu sesji | `api.runtime.agent.session.*` |
| helpery magazynu sesji | `api.runtime.agent.session.*` |
</Step>
@ -184,183 +188,185 @@ Aktualne przykłady dołączonych dostawców:
</Step>
</Steps>
## Dokumentacja ścieżek importu
## Odniesienie do ścieżek importu
<Accordion title="Tabela najczęściej używanych ścieżek importu">
| Import path | Cel | Kluczowe eksporty |
<Accordion title="Tabela typowych ścieżek importu">
| Ścieżka importu | Przeznaczenie | Kluczowe eksporty |
| --- | --- | --- |
| `plugin-sdk/plugin-entry` | Kanoniczny pomocnik punktu wejścia pluginu | `definePluginEntry` |
| `plugin-sdk/core` | Starszy zbiorczy reeksport dla definicji/builderów punktów wejścia kanałów | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Eksport głównego schematu konfiguracji | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | Pomocnik punktu wejścia pojedynczego dostawcy | `defineSingleProviderPluginEntry` |
| `plugin-sdk/channel-core` | Ukierunkowane definicje i buildery punktów wejścia kanałów | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/setup` | Współdzielone pomocniki kreatora konfiguracji | Prompty allowlist, buildery statusu konfiguracji |
| `plugin-sdk/setup-runtime` | Pomocniki runtime na etapie konfiguracji | Bezpieczne importowo adaptery łatek konfiguracji, pomocniki notatek lookup, `promptResolvedAllowFrom`, `splitSetupEntries`, delegowane proxy konfiguracji |
| `plugin-sdk/setup-adapter-runtime` | Pomocniki adaptera konfiguracji | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | Pomocniki narzędzi konfiguracji | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Pomocniki dla wielu kont | Pomocniki list kont/konfiguracji/bram akcji |
| `plugin-sdk/account-id` | Pomocniki identyfikatorów kont | `DEFAULT_ACCOUNT_ID`, normalizacja identyfikatora konta |
| `plugin-sdk/account-resolution` | Pomocniki wyszukiwania kont | Wyszukiwanie konta + pomocniki zapasowego wyboru domyślnego |
| `plugin-sdk/account-helpers` | Wąskie pomocniki kont | Pomocniki list kont/akcji na kontach |
| `plugin-sdk/plugin-entry` | Kanoniczny helper punktu wejścia pluginu | `definePluginEntry` |
| `plugin-sdk/core` | Starszy zbiorczy reeksport definicji/builderów wejść kanałów | `defineChannelPluginEntry`, `createChatChannelPlugin` |
| `plugin-sdk/config-schema` | Eksport schematu głównej konfiguracji | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | Helper punktu wejścia pojedynczego providera | `defineSingleProviderPluginEntry` |
| `plugin-sdk/channel-core` | Ukierunkowane definicje i buildery wejść kanałów | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/setup` | Współdzielone helpery kreatora konfiguracji | Prompty allowlist i buildery statusu konfiguracji |
| `plugin-sdk/setup-runtime` | Helpery runtime dla konfiguracji | Bezpieczne przy imporcie adaptery poprawek konfiguracji, helpery notatek lookup, `promptResolvedAllowFrom`, `splitSetupEntries`, delegowane proxy konfiguracji |
| `plugin-sdk/setup-adapter-runtime` | Helpery adaptera konfiguracji | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | Helpery narzędzi konfiguracji | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Helpery wielu kont | Helpery listy kont/konfiguracji/bramek akcji |
| `plugin-sdk/account-id` | Helpery account-id | `DEFAULT_ACCOUNT_ID`, normalizacja account-id |
| `plugin-sdk/account-resolution` | Helpery wyszukiwania kont | Helpery wyszukiwania kont i domyślnego fallbacku |
| `plugin-sdk/account-helpers` | Wąskie helpery kont | Helpery listy kont/akcji na kontach |
| `plugin-sdk/channel-setup` | Adaptery kreatora konfiguracji | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/channel-pairing` | Prymitywy parowania DM | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | Okablowanie prefiksu odpowiedzi + typing | `createChannelReplyPipeline` |
| `plugin-sdk/channel-reply-pipeline` | Powiązanie prefiksu odpowiedzi i wskaźnika pisania | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | Fabryki adapterów konfiguracji | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Buildery schematów konfiguracji | Typy schematu konfiguracji kanału |
| `plugin-sdk/telegram-command-config` | Pomocniki konfiguracji poleceń Telegram | Normalizacja nazw poleceń, przycinanie opisów, walidacja duplikatów/konfliktów |
| `plugin-sdk/channel-policy` | Rozstrzyganie polityk grup/DM | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | Śledzenie statusu konta | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Pomocniki kopert wejściowych | Współdzielone pomocniki routingu + buildera kopert |
| `plugin-sdk/inbound-reply-dispatch` | Pomocniki odpowiedzi wejściowych | Współdzielone pomocniki zapisu i dispatchu |
| `plugin-sdk/messaging-targets` | Parsowanie celów wiadomości | Pomocniki parsowania/dopasowywania celów |
| `plugin-sdk/outbound-media` | Pomocniki mediów wychodzących | Współdzielone ładowanie mediów wychodzących |
| `plugin-sdk/outbound-runtime` | Pomocniki runtime wychodzącego | Pomocniki tożsamości wychodzącej/delegatów wysyłki |
| `plugin-sdk/thread-bindings-runtime` | Pomocniki powiązań wątków | Cykl życia powiązań wątków i pomocniki adapterów |
| `plugin-sdk/agent-media-payload` | Starsze pomocniki payloadów mediów | Builder payloadu mediów agenta dla starszych układów pól |
| `plugin-sdk/channel-runtime` | Przestarzały shim zgodności | Tylko starsze narzędzia channel runtime |
| `plugin-sdk/channel-config-schema` | Buildery schematu konfiguracji | Typy schematu konfiguracji kanału |
| `plugin-sdk/telegram-command-config` | Helpery konfiguracji poleceń Telegram | Normalizacja nazw poleceń, przycinanie opisów, walidacja duplikatów/konfliktów |
| `plugin-sdk/channel-policy` | Rozwiązywanie polityk grup/DM | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | Śledzenie statusu kont | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Helpery kopert wejściowych | Współdzielone helpery routingu i budowania kopert |
| `plugin-sdk/inbound-reply-dispatch` | Helpery odpowiedzi wejściowych | Współdzielone helpery zapisu i dispatch |
| `plugin-sdk/messaging-targets` | Parsowanie celów wiadomości | Helpery parsowania/dopasowania celów |
| `plugin-sdk/outbound-media` | Helpery mediów wychodzących | Współdzielone ładowanie mediów wychodzących |
| `plugin-sdk/outbound-runtime` | Helpery runtime dla wyjścia | Helpery tożsamości wychodzącej/delegatów wysyłki |
| `plugin-sdk/thread-bindings-runtime` | Helpery powiązań wątków | Helpery cyklu życia powiązań wątków i adapterów |
| `plugin-sdk/agent-media-payload` | Starsze helpery payloadu mediów | Builder payloadu mediów agenta dla starszych układów pól |
| `plugin-sdk/channel-runtime` | Przestarzały shim zgodności | Tylko starsze narzędzia runtime kanału |
| `plugin-sdk/channel-send-result` | Typy wyników wysyłki | Typy wyników odpowiedzi |
| `plugin-sdk/runtime-store` | Trwałe przechowywanie pluginu | `createPluginRuntimeStore` |
| `plugin-sdk/runtime` | Szerokie pomocniki runtime | Pomocniki runtime/logowania/kopii zapasowych/instalacji pluginów |
| `plugin-sdk/runtime-env` | Wąskie pomocniki środowiska runtime | Logger/runtime env, timeout, retry i pomocniki backoff |
| `plugin-sdk/plugin-runtime` | Współdzielone pomocniki runtime pluginów | Pomocniki poleceń/hooków/http/interakcji pluginów |
| `plugin-sdk/hook-runtime` | Pomocniki potoku hooków | Współdzielone pomocniki potoku webhooków/wewnętrznych hooków |
| `plugin-sdk/lazy-runtime` | Pomocniki leniwego runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Pomocniki procesów | Współdzielone pomocniki exec |
| `plugin-sdk/cli-runtime` | Pomocniki runtime CLI | Formatowanie poleceń, oczekiwania, pomocniki wersji |
| `plugin-sdk/gateway-runtime` | Pomocniki gateway | Klient gateway i pomocniki łat statusu kanału |
| `plugin-sdk/config-runtime` | Pomocniki konfiguracji | Pomocniki ładowania/zapisu konfiguracji |
| `plugin-sdk/telegram-command-config` | Pomocniki poleceń Telegram | Pomocniki walidacji poleceń Telegram stabilne jako fallback, gdy powierzchnia kontraktu dołączonego Telegram jest niedostępna |
| `plugin-sdk/approval-runtime` | Pomocniki promptów zatwierdzeń | Payload exec/plugin approval, pomocniki approval capability/profile, natywne pomocniki routingu/runtime zatwierdzeń |
| `plugin-sdk/approval-auth-runtime` | Pomocniki auth zatwierdzeń | Rozstrzyganie osoby zatwierdzającej, uwierzytelnianie akcji w tym samym czacie |
| `plugin-sdk/approval-client-runtime` | Pomocniki klienta zatwierdzeń | Natywne pomocniki profili/filtrów zatwierdzeń exec |
| `plugin-sdk/approval-delivery-runtime` | Pomocniki dostarczania zatwierdzeń | Adaptery natywnych approval capability/delivery |
| `plugin-sdk/approval-gateway-runtime` | Pomocniki gateway zatwierdzeń | Współdzielony pomocnik rozstrzygania approval gateway |
| `plugin-sdk/approval-handler-adapter-runtime` | Pomocniki adaptera zatwierdzeń | Lekkie pomocniki ładowania natywnych adapterów zatwierdzeń dla gorących punktów wejścia kanałów |
| `plugin-sdk/approval-handler-runtime` | Pomocniki handlerów zatwierdzeń | Szersze pomocniki runtime handlerów zatwierdzeń; preferuj węższe warstwy adapter/gateway, gdy wystarczą |
| `plugin-sdk/approval-native-runtime` | Pomocniki celów zatwierdzeń | Pomocniki natywnych powiązań celu/konta zatwierdzeń |
| `plugin-sdk/approval-reply-runtime` | Pomocniki odpowiedzi zatwierdzeń | Pomocniki payloadów odpowiedzi exec/plugin approval |
| `plugin-sdk/channel-runtime-context` | Pomocniki channel runtime-context | Ogólne pomocniki register/get/watch dla channel runtime-context |
| `plugin-sdk/security-runtime` | Pomocniki bezpieczeństwa | Współdzielone pomocniki trust, bramkowania DM, treści zewnętrznych i zbierania sekretów |
| `plugin-sdk/ssrf-policy` | Pomocniki polityki SSRF | Pomocniki allowlist hostów i polityki sieci prywatnych |
| `plugin-sdk/ssrf-runtime` | Pomocniki runtime SSRF | Pinned-dispatcher, guarded fetch, pomocniki polityki SSRF |
| `plugin-sdk/collection-runtime` | Pomocniki ograniczonej pamięci podręcznej | `pruneMapToMaxSize` |
| `plugin-sdk/diagnostic-runtime` | Pomocniki bramkowania diagnostyki | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/error-runtime` | Pomocniki formatowania błędów | `formatUncaughtError`, `isApprovalNotFoundError`, pomocniki grafu błędów |
| `plugin-sdk/fetch-runtime` | Pomocniki opakowanego fetch/proxy | `resolveFetch`, pomocniki proxy |
| `plugin-sdk/host-runtime` | Pomocniki normalizacji hosta | `normalizeHostname`, `normalizeScpRemoteHost` |
| `plugin-sdk/retry-runtime` | Pomocniki retry | `RetryConfig`, `retryAsync`, uruchamiacze polityk |
| `plugin-sdk/runtime` | Szerokie helpery runtime | Helpery runtime/logowania/backupu/instalacji pluginów |
| `plugin-sdk/runtime-env` | Wąskie helpery środowiska runtime | Logger/runtime env, helpery timeoutów, retry i backoff |
| `plugin-sdk/plugin-runtime` | Współdzielone helpery runtime pluginów | Helpery poleceń/hooków/http/interaktywnych funkcji pluginu |
| `plugin-sdk/hook-runtime` | Helpery pipeline hooków | Współdzielone helpery pipeline webhooków/wewnętrznych hooków |
| `plugin-sdk/lazy-runtime` | Helpery lazy runtime | `createLazyRuntimeModule`, `createLazyRuntimeMethod`, `createLazyRuntimeMethodBinder`, `createLazyRuntimeNamedExport`, `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpery procesów | Współdzielone helpery exec |
| `plugin-sdk/cli-runtime` | Helpery runtime CLI | Formatowanie poleceń, oczekiwania, helpery wersji |
| `plugin-sdk/gateway-runtime` | Helpery Gateway | Klient Gateway i helpery poprawek statusu kanału |
| `plugin-sdk/config-runtime` | Helpery konfiguracji | Helpery ładowania/zapisu konfiguracji |
| `plugin-sdk/telegram-command-config` | Helpery poleceń Telegram | Stabilne fallbackowe helpery walidacji poleceń Telegram, gdy powierzchnia kontraktu wbudowanego Telegrama jest niedostępna |
| `plugin-sdk/approval-runtime` | Helpery promptów zatwierdzania | Payload zatwierdzeń exec/pluginu, helpery capability/profile zatwierdzeń, natywny routing/runtime zatwierdzeń |
| `plugin-sdk/approval-auth-runtime` | Helpery uwierzytelniania zatwierdzeń | Rozwiązywanie approvera, autoryzacja akcji w tym samym czacie |
| `plugin-sdk/approval-client-runtime` | Helpery klienta zatwierdzeń | Helpery profilu/filtra natywnych zatwierdzeń exec |
| `plugin-sdk/approval-delivery-runtime` | Helpery dostarczania zatwierdzeń | Adaptery capability/delivery natywnych zatwierdzeń |
| `plugin-sdk/approval-gateway-runtime` | Helpery Gateway dla zatwierdzeń | Współdzielony helper rozwiązywania approval gateway |
| `plugin-sdk/approval-handler-adapter-runtime` | Helpery adaptera zatwierdzeń | Lekkie helpery ładowania natywnych adapterów zatwierdzeń dla gorących punktów wejścia kanałów |
| `plugin-sdk/approval-handler-runtime` | Helpery handlerów zatwierdzeń | Szersze helpery runtime handlerów zatwierdzeń; preferuj węższe powierzchnie adaptera/gateway, gdy są wystarczające |
| `plugin-sdk/approval-native-runtime` | Helpery celu zatwierdzeń | Helpery natywnego celu zatwierdzeń/powiązania kont |
| `plugin-sdk/approval-reply-runtime` | Helpery odpowiedzi zatwierdzeń | Helpery payloadu odpowiedzi zatwierdzeń exec/pluginu |
| `plugin-sdk/channel-runtime-context` | Helpery runtime-context kanału | Ogólne helpery register/get/watch dla runtime-context kanału |
| `plugin-sdk/security-runtime` | Helpery bezpieczeństwa | Współdzielone helpery zaufania, bramek DM, treści zewnętrznych i zbierania sekretów |
| `plugin-sdk/ssrf-policy` | Helpery polityki SSRF | Helpery allowlist hostów i polityki sieci prywatnych |
| `plugin-sdk/ssrf-runtime` | Helpery runtime SSRF | Pinned-dispatcher, guarded fetch, helpery polityki SSRF |
| `plugin-sdk/collection-runtime` | Helpery ograniczonego cache | `pruneMapToMaxSize` |
| `plugin-sdk/diagnostic-runtime` | Helpery bramkowania diagnostyki | `isDiagnosticFlagEnabled`, `isDiagnosticsEnabled` |
| `plugin-sdk/error-runtime` | Helpery formatowania błędów | `formatUncaughtError`, `isApprovalNotFoundError`, helpery grafu błędów |
| `plugin-sdk/fetch-runtime` | Opakowane helpery fetch/proxy | `resolveFetch`, helpery proxy |
| `plugin-sdk/host-runtime` | Helpery normalizacji hosta | `normalizeHostname`, `normalizeScpRemoteHost` |
| `plugin-sdk/retry-runtime` | Helpery retry | `RetryConfig`, `retryAsync`, executory polityk |
| `plugin-sdk/allow-from` | Formatowanie allowlist | `formatAllowFromLowercase` |
| `plugin-sdk/allowlist-resolution` | Mapowanie wejść allowlist | `mapAllowlistResolutionInputs` |
| `plugin-sdk/command-auth` | Bramkowanie poleceń i pomocniki powierzchni poleceń | `resolveControlCommandGate`, pomocniki autoryzacji nadawcy, pomocniki rejestru poleceń |
| `plugin-sdk/secret-input` | Parsowanie tajnych danych wejściowych | Pomocniki secret input |
| `plugin-sdk/webhook-ingress` | Pomocniki żądań webhooków | Narzędzia celu webhooka |
| `plugin-sdk/webhook-request-guards` | Pomocniki guardów żądań webhooków | Pomocniki odczytu/limitowania treści żądań |
| `plugin-sdk/reply-runtime` | Współdzielony runtime odpowiedzi | Inbound dispatch, heartbeat, planner odpowiedzi, chunking |
| `plugin-sdk/reply-dispatch-runtime` | Wąskie pomocniki dispatchu odpowiedzi | Finalizacja + pomocniki dispatchu dostawcy |
| `plugin-sdk/reply-history` | Pomocniki historii odpowiedzi | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/allowlist-resolution` | Mapowanie danych wejściowych allowlist | `mapAllowlistResolutionInputs` |
| `plugin-sdk/command-auth` | Bramkowanie poleceń i helpery powierzchni poleceń | `resolveControlCommandGate`, helpery autoryzacji nadawcy, helpery rejestru poleceń |
| `plugin-sdk/secret-input` | Parsowanie wejścia sekretów | Helpery wejścia sekretów |
| `plugin-sdk/webhook-ingress` | Helpery żądań webhook | Narzędzia celu webhook |
| `plugin-sdk/webhook-request-guards` | Helpery guardów treści webhook | Helpery odczytu/limitów treści żądania |
| `plugin-sdk/reply-runtime` | Współdzielony runtime odpowiedzi | Dispatch wejściowy, heartbeat, planer odpowiedzi, chunking |
| `plugin-sdk/reply-dispatch-runtime` | Wąskie helpery dispatch odpowiedzi | Helpery finalize i dispatch providera |
| `plugin-sdk/reply-history` | Helpery historii odpowiedzi | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | Planowanie referencji odpowiedzi | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Pomocniki dzielenia odpowiedzi | Pomocniki dzielenia tekstu/markdown |
| `plugin-sdk/session-store-runtime` | Pomocniki magazynu sesji | Ścieżka magazynu + pomocniki updated-at |
| `plugin-sdk/state-paths` | Pomocniki ścieżek stanu | Pomocniki katalogów stanu i OAuth |
| `plugin-sdk/routing` | Pomocniki routingu/kluczy sesji | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, pomocniki normalizacji kluczy sesji |
| `plugin-sdk/status-helpers` | Pomocniki statusu kanału | Buildery podsumowań statusu kanału/konta, domyślne stany runtime, pomocniki metadanych problemów |
| `plugin-sdk/target-resolver-runtime` | Pomocniki rozstrzygania celów | Współdzielone pomocniki target resolver |
| `plugin-sdk/string-normalization-runtime` | Pomocniki normalizacji tekstu | Pomocniki normalizacji slugów/ciągów |
| `plugin-sdk/request-url` | Pomocniki URL żądań | Wyodrębnianie URL jako ciągów z danych wejściowych podobnych do żądania |
| `plugin-sdk/run-command` | Pomocniki poleceń z pomiarem czasu | Runner poleceń z normalizowanym stdout/stderr |
| `plugin-sdk/param-readers` | Czytniki parametrów | Typowe czytniki parametrów narzędzi/CLI |
| `plugin-sdk/tool-send` | Wyodrębnianie wysyłki z narzędzia | Wyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzia |
| `plugin-sdk/temp-path` | Pomocniki ścieżek tymczasowych | Współdzielone pomocniki ścieżek tymczasowych pobrań |
| `plugin-sdk/logging-core` | Pomocniki logowania | Logger podsystemu i pomocniki redakcji |
| `plugin-sdk/markdown-table-runtime` | Pomocniki tabel markdown | Pomocniki trybów tabel markdown |
| `plugin-sdk/reply-payload` | Typy payloadów odpowiedzi | Typy payloadów odpowiedzi wiadomości |
| `plugin-sdk/provider-setup` | Dobrane pomocniki konfiguracji lokalnych/samohostowanych dostawców | Pomocniki wykrywania/konfiguracji samohostowanych dostawców |
| `plugin-sdk/self-hosted-provider-setup` | Ukierunkowane pomocniki konfiguracji samohostowanych dostawców zgodnych z OpenAI | Te same pomocniki wykrywania/konfiguracji samohostowanych dostawców |
| `plugin-sdk/provider-auth-runtime` | Pomocniki auth runtime dostawców | Pomocniki rozstrzygania kluczy API runtime |
| `plugin-sdk/provider-auth-api-key` | Pomocniki konfiguracji kluczy API dostawców | Pomocniki onboardingu/zapisu profilu dla kluczy API |
| `plugin-sdk/provider-auth-result` | Pomocniki wyników auth dostawców | Standardowy builder wyniku auth OAuth |
| `plugin-sdk/provider-auth-login` | Pomocniki interaktywnego logowania dostawców | Współdzielone pomocniki interaktywnego logowania |
| `plugin-sdk/provider-env-vars` | Pomocniki zmiennych środowiskowych dostawców | Pomocniki wyszukiwania zmiennych środowiskowych auth dostawców |
| `plugin-sdk/provider-model-shared` | Współdzielone pomocniki modeli/replay dostawców | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone buildery polityk replay, pomocniki endpointów dostawców i normalizacji identyfikatorów modeli |
| `plugin-sdk/provider-catalog-shared` | Współdzielone pomocniki katalogów dostawców | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-onboard` | Łatki onboardingu dostawców | Pomocniki konfiguracji onboardingu |
| `plugin-sdk/provider-http` | Pomocniki HTTP dostawców | Ogólne pomocniki HTTP/możliwości endpointów dostawców |
| `plugin-sdk/provider-web-fetch` | Pomocniki web-fetch dostawców | Pomocniki rejestracji/cache dostawców web-fetch |
| `plugin-sdk/provider-web-search-contract` | Pomocniki kontraktu web-search dostawców | Wąskie pomocniki kontraktu konfiguracji/poświadczeń web-search, takie jak `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` oraz funkcje ustawiania/pobierania poświadczeń o ograniczonym zakresie |
| `plugin-sdk/provider-web-search` | Pomocniki web-search dostawców | Pomocniki rejestracji/cache/runtime dostawców web-search |
| `plugin-sdk/provider-tools` | Pomocniki zgodności narzędzi/schematów dostawców | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematów Gemini + diagnostyka oraz pomocniki zgodności xAI, takie jak `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | Pomocniki użycia dostawców | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` i inne pomocniki użycia dostawców |
| `plugin-sdk/provider-stream` | Pomocniki wrapperów strumieni dostawców | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, typy wrapperów strumieni oraz współdzielone pomocniki wrapperów Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/reply-chunking` | Helpery chunków odpowiedzi | Helpery chunkingu tekstu/markdown |
| `plugin-sdk/session-store-runtime` | Helpery magazynu sesji | Helpery ścieżki magazynu i updated-at |
| `plugin-sdk/state-paths` | Helpery ścieżek stanu | Helpery katalogów stanu i OAuth |
| `plugin-sdk/routing` | Helpery routingu/kluczy sesji | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, helpery normalizacji kluczy sesji |
| `plugin-sdk/status-helpers` | Helpery statusu kanału | Buildery podsumowania statusu kanału/konta, domyślne wartości stanu runtime, helpery metadanych problemów |
| `plugin-sdk/target-resolver-runtime` | Helpery rozwiązywania celu | Współdzielone helpery target resolver |
| `plugin-sdk/string-normalization-runtime` | Helpery normalizacji ciągów | Helpery normalizacji slugów/ciągów |
| `plugin-sdk/request-url` | Helpery URL żądania | Wyodrębnianie URL-i jako stringów z danych wejściowych podobnych do request |
| `plugin-sdk/run-command` | Helpery poleceń z limitem czasu | Uruchamianie poleceń z limitem czasu i znormalizowanym stdout/stderr |
| `plugin-sdk/param-readers` | Odczyt parametrów | Typowe odczyty parametrów narzędzi/CLI |
| `plugin-sdk/tool-payload` | Wyodrębnianie payloadu narzędzi | Wyodrębnianie znormalizowanych payloadów z obiektów wyników narzędzi |
| `plugin-sdk/tool-send` | Wyodrębnianie wysyłki narzędzi | Wyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzi |
| `plugin-sdk/temp-path` | Helpery ścieżek tymczasowych | Współdzielone helpery ścieżek tymczasowego pobierania |
| `plugin-sdk/logging-core` | Helpery logowania | Logger podsystemu i helpery redakcji |
| `plugin-sdk/markdown-table-runtime` | Helpery tabel Markdown | Helpery trybu tabel Markdown |
| `plugin-sdk/reply-payload` | Typy odpowiedzi wiadomości | Typy payloadu odpowiedzi |
| `plugin-sdk/provider-setup` | Kuratorowane helpery konfiguracji lokalnych/samohostowanych providerów | Helpery wykrywania/konfiguracji samohostowanych providerów |
| `plugin-sdk/self-hosted-provider-setup` | Ukierunkowane helpery konfiguracji samohostowanych providerów zgodnych z OpenAI | Te same helpery wykrywania/konfiguracji samohostowanych providerów |
| `plugin-sdk/provider-auth-runtime` | Helpery uwierzytelniania providera w runtime | Helpery rozwiązywania kluczy API w runtime |
| `plugin-sdk/provider-auth-api-key` | Helpery konfiguracji klucza API providera | Helpery onboardingu/zapisu profilu klucza API |
| `plugin-sdk/provider-auth-result` | Helpery wyniku uwierzytelniania providera | Standardowy builder wyniku uwierzytelniania OAuth |
| `plugin-sdk/provider-auth-login` | Helpery interaktywnego logowania providera | Współdzielone helpery interaktywnego logowania |
| `plugin-sdk/provider-env-vars` | Helpery zmiennych środowiskowych providera | Helpery wyszukiwania zmiennych środowiskowych do uwierzytelniania providera |
| `plugin-sdk/provider-model-shared` | Współdzielone helpery modeli/odtwarzania providera | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone buildery polityki replay, helpery endpointów providera i helpery normalizacji model-id |
| `plugin-sdk/provider-catalog-shared` | Współdzielone helpery katalogu providera | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-onboard` | Poprawki onboardingu providera | Helpery konfiguracji onboardingu |
| `plugin-sdk/provider-http` | Helpery HTTP providera | Ogólne helpery HTTP/zdolności endpointów providera |
| `plugin-sdk/provider-web-fetch` | Helpery web-fetch providera | Helpery rejestracji/cache providera web-fetch |
| `plugin-sdk/provider-web-search-config-contract` | Helpery konfiguracji web-search providera | Wąskie helpery konfiguracji/poświadczeń web-search dla providerów, które nie wymagają powiązania włączania pluginu |
| `plugin-sdk/provider-web-search-contract` | Helpery kontraktu web-search providera | Wąskie helpery kontraktu konfiguracji/poświadczeń web-search, takie jak `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` oraz zakresowe settery/gettery poświadczeń |
| `plugin-sdk/provider-web-search` | Helpery web-search providera | Helpery rejestracji/cache/runtime providera web-search |
| `plugin-sdk/provider-tools` | Helpery zgodności narzędzi/schematów providera | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematów Gemini + diagnostyka oraz helpery zgodności xAI, takie jak `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | Helpery użycia providera | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` i inne helpery użycia providera |
| `plugin-sdk/provider-stream` | Helpery opakowań strumienia providera | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, typy opakowań strumienia oraz współdzielone helpery opakowań Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/keyed-async-queue` | Uporządkowana kolejka async | `KeyedAsyncQueue` |
| `plugin-sdk/media-runtime` | Współdzielone pomocniki mediów | Pomocniki pobierania/przekształcania/przechowywania mediów oraz buildery payloadów mediów |
| `plugin-sdk/media-generation-runtime` | Współdzielone pomocniki generowania mediów | Współdzielone pomocniki failover, wyboru kandydatów i komunikatów o braku modeli dla generowania obrazów/wideo/muzyki |
| `plugin-sdk/media-understanding` | Pomocniki media-understanding | Typy dostawców media understanding oraz eksporty pomocników obrazów/audio dla dostawców |
| `plugin-sdk/text-runtime` | Współdzielone pomocniki tekstu | Usuwanie tekstu widocznego dla asystenta, pomocniki renderowania/dzielenia/tabel markdown, redakcji, tagów dyrektyw, bezpiecznego tekstu oraz powiązane pomocniki tekstowe/logowania |
| `plugin-sdk/text-chunking` | Pomocniki dzielenia tekstu | Pomocnik dzielenia tekstu wychodzącego |
| `plugin-sdk/speech` | Pomocniki speech | Typy dostawców speech oraz eksporty pomocników dyrektyw, rejestru i walidacji dla dostawców |
| `plugin-sdk/speech-core` | Współdzielony rdzeń speech | Typy dostawców speech, rejestr, dyrektywy, normalizacja |
| `plugin-sdk/realtime-transcription` | Pomocniki transkrypcji realtime | Typy dostawców i pomocniki rejestru |
| `plugin-sdk/realtime-voice` | Pomocniki głosu realtime | Typy dostawców i pomocniki rejestru |
| `plugin-sdk/image-generation-core` | Współdzielony rdzeń generowania obrazów | Pomocniki typów, failover, auth i rejestru generowania obrazów |
| `plugin-sdk/music-generation` | Pomocniki generowania muzyki | Typy dostawców/żądań/wyników generowania muzyki |
| `plugin-sdk/music-generation-core` | Współdzielony rdzeń generowania muzyki | Pomocniki typów, failover, wyszukiwania dostawców i parsowania model-ref dla generowania muzyki |
| `plugin-sdk/video-generation` | Pomocniki generowania wideo | Typy dostawców/żądań/wyników generowania wideo |
| `plugin-sdk/video-generation-core` | Współdzielony rdzeń generowania wideo | Pomocniki typów, failover, wyszukiwania dostawców i parsowania model-ref dla generowania wideo |
| `plugin-sdk/interactive-runtime` | Pomocniki odpowiedzi interaktywnych | Normalizacja/redukcja payloadów odpowiedzi interaktywnych |
| `plugin-sdk/media-runtime` | Współdzielone helpery mediów | Helpery pobierania/przekształcania/przechowywania mediów oraz buildery payloadów mediów |
| `plugin-sdk/media-generation-runtime` | Współdzielone helpery generowania mediów | Współdzielone helpery failover, wybór kandydatów i komunikaty o brakującym modelu dla generowania obrazów/wideo/muzyki |
| `plugin-sdk/media-understanding` | Helpery rozumienia mediów | Typy providerów rozumienia mediów oraz eksporty helperów obrazów/audio dla providerów |
| `plugin-sdk/text-runtime` | Współdzielone helpery tekstowe | Usuwanie tekstu widocznego dla asystenta, helpery renderowania/chunkingu/tabel markdown, helpery redakcji, helpery tagów dyrektyw, narzędzia bezpiecznego tekstu i pokrewne helpery tekstu/logowania |
| `plugin-sdk/text-chunking` | Helpery chunkingu tekstu | Helper chunkingu tekstu wychodzącego |
| `plugin-sdk/speech` | Helpery mowy | Typy providerów mowy oraz eksporty helperów dyrektyw, rejestru i walidacji dla providerów |
| `plugin-sdk/speech-core` | Współdzielony rdzeń mowy | Typy providerów mowy, rejestr, dyrektywy, normalizacja |
| `plugin-sdk/realtime-transcription` | Helpery transkrypcji realtime | Typy providerów i helpery rejestru |
| `plugin-sdk/realtime-voice` | Helpery głosu realtime | Typy providerów i helpery rejestru |
| `plugin-sdk/image-generation-core` | Współdzielony rdzeń generowania obrazów | Typy generowania obrazów, failover, uwierzytelnianie i helpery rejestru |
| `plugin-sdk/music-generation` | Helpery generowania muzyki | Typy providera/żądania/wyniku generowania muzyki |
| `plugin-sdk/music-generation-core` | Współdzielony rdzeń generowania muzyki | Typy generowania muzyki, helpery failover, wyszukiwanie providera i parsowanie model-ref |
| `plugin-sdk/video-generation` | Helpery generowania wideo | Typy providera/żądania/wyniku generowania wideo |
| `plugin-sdk/video-generation-core` | Współdzielony rdzeń generowania wideo | Typy generowania wideo, helpery failover, wyszukiwanie providera i parsowanie model-ref |
| `plugin-sdk/interactive-runtime` | Helpery interaktywnych odpowiedzi | Normalizacja/redukcja payloadu interaktywnych odpowiedzi |
| `plugin-sdk/channel-config-primitives` | Prymitywy konfiguracji kanału | Wąskie prymitywy channel config-schema |
| `plugin-sdk/channel-config-writes` | Pomocniki zapisu konfiguracji kanału | Pomocniki autoryzacji zapisu konfiguracji kanału |
| `plugin-sdk/channel-plugin-common` | Wspólny prelude kanału | Eksporty wspólnego preludium pluginu kanału |
| `plugin-sdk/channel-status` | Pomocniki statusu kanału | Współdzielone pomocniki snapshotów/podsumowań statusu kanału |
| `plugin-sdk/allowlist-config-edit` | Pomocniki konfiguracji allowlist | Pomocniki edycji/odczytu konfiguracji allowlist |
| `plugin-sdk/group-access` | Pomocniki dostępu grupowego | Współdzielone pomocniki decyzji o dostępie grupowym |
| `plugin-sdk/direct-dm` | Pomocniki bezpośrednich DM | Współdzielone pomocniki auth/guard bezpośrednich DM |
| `plugin-sdk/extension-shared` | Współdzielone pomocniki rozszerzeń | Prymitywy pomocników pasywnego kanału/statusu i ambient proxy |
| `plugin-sdk/webhook-targets` | Pomocniki celów webhooków | Rejestr celów webhooków i pomocniki instalacji tras |
| `plugin-sdk/webhook-path` | Pomocniki ścieżek webhooków | Pomocniki normalizacji ścieżek webhooków |
| `plugin-sdk/web-media` | Współdzielone pomocniki web media | Pomocniki ładowania zdalnych/lokalnych mediów |
| `plugin-sdk/zod` | Reeksport Zod | Reeksport `zod` dla użytkowników Plugin SDK |
| `plugin-sdk/memory-core` | Dołączone pomocniki memory-core | Powierzchnia pomocników menedżera/konfiguracji/plików/CLI pamięci |
| `plugin-sdk/channel-config-writes` | Helpery zapisu konfiguracji kanału | Helpery autoryzacji zapisu konfiguracji kanału |
| `plugin-sdk/channel-plugin-common` | Współdzielone preludium kanału | Współdzielone eksporty preludium pluginu kanału |
| `plugin-sdk/channel-status` | Helpery statusu kanału | Współdzielone helpery snapshotu/podsumowania statusu kanału |
| `plugin-sdk/allowlist-config-edit` | Helpery konfiguracji allowlist | Helpery edycji/odczytu konfiguracji allowlist |
| `plugin-sdk/group-access` | Helpery dostępu do grup | Współdzielone helpery decyzji dostępu do grup |
| `plugin-sdk/direct-dm` | Helpery bezpośrednich DM | Współdzielone helpery autoryzacji/guardów bezpośrednich DM |
| `plugin-sdk/extension-shared` | Współdzielone helpery rozszerzeń | Prymitywy helperów kanałów pasywnych/statusu i ambient proxy |
| `plugin-sdk/webhook-targets` | Helpery celów webhook | Rejestr celów webhook i helpery instalacji rout |
| `plugin-sdk/webhook-path` | Helpery ścieżek webhook | Helpery normalizacji ścieżek webhook |
| `plugin-sdk/web-media` | Współdzielone helpery web media | Helpery ładowania mediów zdalnych/lokalnych |
| `plugin-sdk/zod` | Reeksport zod | Reeksportowany `zod` dla użytkowników Plugin SDK |
| `plugin-sdk/memory-core` | Helpery wbudowanego memory-core | Powierzchnia helperów menedżera pamięci/konfiguracji/plików/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Fasada runtime silnika pamięci | Fasada runtime indeksu/wyszukiwania pamięci |
| `plugin-sdk/memory-core-host-engine-foundation` | Bazowy silnik hosta pamięci | Eksporty bazowego silnika hosta pamięci |
| `plugin-sdk/memory-core-host-engine-embeddings` | Silnik embeddingów hosta pamięci | Eksporty silnika embeddingów hosta pamięci |
| `plugin-sdk/memory-core-host-engine-qmd` | Silnik QMD hosta pamięci | Eksporty silnika QMD hosta pamięci |
| `plugin-sdk/memory-core-host-engine-storage` | Silnik przechowywania hosta pamięci | Eksporty silnika przechowywania hosta pamięci |
| `plugin-sdk/memory-core-host-multimodal` | Wielomodalne pomocniki hosta pamięci | Wielomodalne pomocniki hosta pamięci |
| `plugin-sdk/memory-core-host-query` | Pomocniki zapytań hosta pamięci | Pomocniki zapytań hosta pamięci |
| `plugin-sdk/memory-core-host-secret` | Pomocniki sekretów hosta pamięci | Pomocniki sekretów hosta pamięci |
| `plugin-sdk/memory-core-host-events` | Pomocniki dziennika zdarzeń hosta pamięci | Pomocniki dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-core-host-status` | Pomocniki statusu hosta pamięci | Pomocniki statusu hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-cli` | Runtime CLI hosta pamięci | Pomocniki runtime CLI hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-core` | Runtime core hosta pamięci | Pomocniki runtime core hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-files` | Pomocniki plików/runtime hosta pamięci | Pomocniki plików/runtime hosta pamięci |
| `plugin-sdk/memory-host-core` | Alias runtime core hosta pamięci | Neutralny względem dostawcy alias pomocników runtime core hosta pamięci |
| `plugin-sdk/memory-host-events` | Alias dziennika zdarzeń hosta pamięci | Neutralny względem dostawcy alias pomocników dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-host-files` | Alias plików/runtime hosta pamięci | Neutralny względem dostawcy alias pomocników plików/runtime hosta pamięci |
| `plugin-sdk/memory-host-markdown` | Pomocniki zarządzanego markdown | Współdzielone pomocniki zarządzanego markdown dla pluginów powiązanych z pamięcią |
| `plugin-sdk/memory-host-search` | Fasada aktywnego wyszukiwania pamięci | Leniwa fasada runtime menedżera wyszukiwania aktywnej pamięci |
| `plugin-sdk/memory-host-status` | Alias statusu hosta pamięci | Neutralny względem dostawcy alias pomocników statusu hosta pamięci |
| `plugin-sdk/memory-lancedb` | Dołączone pomocniki memory-lancedb | Powierzchnia pomocników memory-lancedb |
| `plugin-sdk/testing` | Narzędzia testowe | Pomocniki testowe i mocki |
| `plugin-sdk/memory-core-host-engine-foundation` | Silnik hosta foundation dla pamięci | Eksporty silnika hosta foundation dla pamięci |
| `plugin-sdk/memory-core-host-engine-embeddings` | Silnik embeddingów hosta dla pamięci | Eksporty silnika embeddingów hosta dla pamięci |
| `plugin-sdk/memory-core-host-engine-qmd` | Silnik QMD hosta dla pamięci | Eksporty silnika QMD hosta dla pamięci |
| `plugin-sdk/memory-core-host-engine-storage` | Silnik storage hosta dla pamięci | Eksporty silnika storage hosta dla pamięci |
| `plugin-sdk/memory-core-host-multimodal` | Helpery multimodalnego hosta pamięci | Helpery multimodalnego hosta pamięci |
| `plugin-sdk/memory-core-host-query` | Helpery zapytań hosta pamięci | Helpery zapytań hosta pamięci |
| `plugin-sdk/memory-core-host-secret` | Helpery sekretów hosta pamięci | Helpery sekretów hosta pamięci |
| `plugin-sdk/memory-core-host-events` | Helpery dziennika zdarzeń hosta pamięci | Helpery dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-core-host-status` | Helpery statusu hosta pamięci | Helpery statusu hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-cli` | Runtime CLI hosta pamięci | Helpery runtime CLI hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-core` | Główny runtime hosta pamięci | Helpery głównego runtime hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-files` | Helpery plików/runtime hosta pamięci | Helpery plików/runtime hosta pamięci |
| `plugin-sdk/memory-host-core` | Alias głównego runtime hosta pamięci | Neutralny wobec dostawcy alias helperów głównego runtime hosta pamięci |
| `plugin-sdk/memory-host-events` | Alias dziennika zdarzeń hosta pamięci | Neutralny wobec dostawcy alias helperów dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-host-files` | Alias plików/runtime hosta pamięci | Neutralny wobec dostawcy alias helperów plików/runtime hosta pamięci |
| `plugin-sdk/memory-host-markdown` | Helpery zarządzanego markdown | Współdzielone helpery zarządzanego markdown dla pluginów sąsiadujących z pamięcią |
| `plugin-sdk/memory-host-search` | Fasada wyszukiwania aktywnej pamięci | Leniwa fasada runtime menedżera wyszukiwania aktywnej pamięci |
| `plugin-sdk/memory-host-status` | Alias statusu hosta pamięci | Neutralny wobec dostawcy alias helperów statusu hosta pamięci |
| `plugin-sdk/memory-lancedb` | Helpery wbudowanego memory-lancedb | Powierzchnia helperów memory-lancedb |
| `plugin-sdk/testing` | Narzędzia testowe | Helpery testowe i mocki |
</Accordion>
Ta tabela celowo obejmuje wspólny podzbiór do migracji, a nie pełną powierzchnię SDK.
Pełna lista ponad 200 punktów wejścia znajduje się w
Ta tabela celowo zawiera typowy podzbiór migracyjny, a nie pełną
powierzchnię SDK. Pełna lista ponad 200 punktów wejścia znajduje się w
`scripts/lib/plugin-sdk-entrypoints.json`.
Ta lista nadal zawiera niektóre warstwy pomocnicze dołączonych pluginów, takie jak
Ta lista nadal zawiera niektóre powierzchnie helperów wbudowanych pluginów, takie jak
`plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`,
`plugin-sdk/zalo-setup` i `plugin-sdk/matrix*`. Nadal są one eksportowane dla
utrzymania zgodności i konserwacji dołączonych pluginów, ale celowo
pominięto je w tabeli najczęstszych migracji i nie są zalecanym celem dla
`plugin-sdk/zalo-setup` i `plugin-sdk/matrix*`. Pozostają one eksportowane na potrzeby
utrzymania i zgodności wbudowanych pluginów, ale celowo
pominięto je w typowej tabeli migracyjnej i nie są zalecanym celem dla
nowego kodu pluginów.
Ta sama zasada dotyczy innych rodzin dołączonych pomocników, takich jak:
Ta sama zasada dotyczy innych rodzin helperów wbudowanych pluginów, takich jak:
- pomocniki wsparcia przeglądarki: `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support`
- helpery obsługi przeglądarki: `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support`
- Matrix: `plugin-sdk/matrix*`
- LINE: `plugin-sdk/line*`
- IRC: `plugin-sdk/irc*`
- dołączone powierzchnie pomocnicze/pluginów, takie jak `plugin-sdk/googlechat`,
- powierzchnie wbudowanych helperów/pluginów, takie jak `plugin-sdk/googlechat`,
`plugin-sdk/zalouser`, `plugin-sdk/bluebubbles*`,
`plugin-sdk/mattermost*`, `plugin-sdk/msteams`,
`plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`,
@ -370,23 +376,23 @@ Ta sama zasada dotyczy innych rodzin dołączonych pomocników, takich jak:
`plugin-sdk/thread-ownership` i `plugin-sdk/voice-call`
`plugin-sdk/github-copilot-token` obecnie udostępnia wąską
powierzchnię pomocników tokenów `DEFAULT_COPILOT_API_BASE_URL`,
`deriveCopilotApiBaseUrlFromToken` oraz `resolveCopilotApiToken`.
powierzchnię helperów tokenów `DEFAULT_COPILOT_API_BASE_URL`,
`deriveCopilotApiBaseUrlFromToken` i `resolveCopilotApiToken`.
Używaj najwęższego importu, który pasuje do zadania. Jeśli nie możesz znaleźć eksportu,
sprawdź źródło w `src/plugin-sdk/` albo zapytaj na Discord.
sprawdź źródło w `src/plugin-sdk/` lub zapytaj na Discord.
## Harmonogram usunięcia
| Kiedy | Co się dzieje |
| ---------------------- | ----------------------------------------------------------------------- |
| **Teraz** | Przestarzałe powierzchnie emitują ostrzeżenia w czasie działania |
| **Następne główne wydanie** | Przestarzałe powierzchnie zostaną usunięte; pluginy nadal z nich korzystające przestaną działać |
| Kiedy | Co się dzieje |
| ---------------------- | ---------------------------------------------------------------------- |
| **Teraz** | Przestarzałe powierzchnie emitują ostrzeżenia w runtime |
| **Następna główna wersja** | Przestarzałe powierzchnie zostaną usunięte; pluginy nadal z nich korzystające przestaną działać |
Wszystkie główne pluginy zostały już zmigrowane. Zewnętrzne pluginy powinny przeprowadzić migrację
przed następnym głównym wydaniem.
Wszystkie podstawowe pluginy zostały już zmigrowane. Zewnętrzne pluginy powinny
przeprowadzić migrację przed następną główną wersją.
## Tymczasowe wyciszenie ostrzeżeń
## Tymczasowe wyciszanie ostrzeżeń
Ustaw te zmienne środowiskowe podczas pracy nad migracją:
@ -399,9 +405,9 @@ To tymczasowa furtka awaryjna, a nie trwałe rozwiązanie.
## Powiązane
- [Getting Started](/pl/plugins/building-plugins) — zbuduj swój pierwszy plugin
- [SDK Overview](/pl/plugins/sdk-overview) — pełna dokumentacja importów podścieżek
- [Channel Plugins](/pl/plugins/sdk-channel-plugins) — budowanie pluginów kanałów
- [Provider Plugins](/pl/plugins/sdk-provider-plugins) — budowanie pluginów dostawców
- [Plugin Internals](/pl/plugins/architecture) — szczegółowe omówienie architektury
- [Plugin Manifest](/pl/plugins/manifest) — dokumentacja schematu manifestu
- [Pierwsze kroki](/pl/plugins/building-plugins) — zbuduj swój pierwszy plugin
- [Przegląd SDK](/pl/plugins/sdk-overview) — pełne odniesienie do importów podścieżek
- [Pluginy kanałów](/pl/plugins/sdk-channel-plugins) — tworzenie pluginów kanałów
- [Pluginy providerów](/pl/plugins/sdk-provider-plugins) — tworzenie pluginów providerów
- [Wnętrze pluginów](/pl/plugins/architecture) — szczegółowe omówienie architektury
- [Manifest pluginu](/pl/plugins/manifest) — odniesienie do schematu manifestu

View File

@ -1,16 +1,16 @@
---
read_when:
- Musisz wiedzieć, z której ścieżki podrzędnej SDK importować
- Chcesz mieć dokumentację wszystkich metod rejestracji w OpenClawPluginApi
- Chcesz uzyskać dokumentację referencyjną wszystkich metod rejestracji w `OpenClawPluginApi`
- Szukasz konkretnego eksportu SDK
sidebarTitle: SDK Overview
summary: Mapa importów, dokumentacja API rejestracji i architektura SDK
summary: Mapa importów, dokumentacja referencyjna API rejestracji i architektura SDK
title: Przegląd Plugin SDK
x-i18n:
generated_at: "2026-04-08T02:18:20Z"
generated_at: "2026-04-08T09:45:54Z"
model: gpt-5.4
provider: openai
source_hash: c5a41bd82d165dfbb7fbd6e4528cf322e9133a51efe55fa8518a7a0a626d9d30
source_hash: 6e7b420eb0f3faa8916357d52df949f6c9a46f1c843a1e6a0c0b8bb26db6cbff
source_path: plugins/sdk-overview.md
workflow: 15
---
@ -18,16 +18,16 @@ x-i18n:
# Przegląd Plugin SDK
Plugin SDK to typowany kontrakt między pluginami a rdzeniem. Ta strona jest
dokumentacją tego, **co importować** i **co można rejestrować**.
dokumentacją referencyjną dla **tego, co importować** i **co można rejestrować**.
<Tip>
**Szukasz przewodnika krok po kroku?**
- Pierwszy plugin? Zacznij od [Pierwsze kroki](/pl/plugins/building-plugins)
- Pierwszy plugin? Zacznij od [Wprowadzenia](/pl/plugins/building-plugins)
- Plugin kanału? Zobacz [Pluginy kanałów](/pl/plugins/sdk-channel-plugins)
- Plugin dostawcy? Zobacz [Pluginy dostawców](/pl/plugins/sdk-provider-plugins)
</Tip>
## Konwencja importu
## Konwencja importów
Zawsze importuj z konkretnej ścieżki podrzędnej:
@ -36,324 +36,329 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
```
Każda ścieżka podrzędna to mały, samowystarczalny moduł. Dzięki temu uruchamianie pozostaje szybkie
i zapobiega to problemom z zależnościami cyklicznymi. W przypadku pomocników wejścia/budowania specyficznych dla kanału
preferuj `openclaw/plugin-sdk/channel-core`; zachowaj `openclaw/plugin-sdk/core` dla
Każda ścieżka podrzędna to mały, samodzielny moduł. Dzięki temu uruchamianie
jest szybkie i można uniknąć problemów z cyklicznymi zależnościami. W przypadku
pomocników wejścia/budowania specyficznych dla kanałów preferuj
`openclaw/plugin-sdk/channel-core`; zachowaj `openclaw/plugin-sdk/core` dla
szerszej powierzchni parasolowej i współdzielonych helperów, takich jak
`buildChannelConfigSchema`.
Nie dodawaj ani nie polegaj na pomocniczych ścieżkach wygodnych nazwanych od dostawców, takich jak
Nie dodawaj ani nie polegaj na wygodnych warstwach nazwanych od dostawców, takich jak
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp` ani
pomocniczych ścieżkach markowanych kanałami. Wbudowane pluginy powinny składać ogólne
ścieżki podrzędne SDK we własnych barrelach `api.ts` lub `runtime-api.ts`, a rdzeń
powinien używać albo tych lokalnych barrelów pluginu, albo dodać wąski ogólny kontrakt SDK, gdy potrzeba jest rzeczywiście międzykanałowa.
warstwach helperów markowanych kanałem. Zestawione pluginy powinny składać
ogólne ścieżki podrzędne SDK we własnych barrelach `api.ts` lub `runtime-api.ts`, a rdzeń
powinien albo używać tych lokalnych barrelów pluginu, albo dodać wąski ogólny
kontrakt SDK, gdy potrzeba jest rzeczywiście międzykanałowa.
Wygenerowana mapa eksportów nadal zawiera mały zestaw pomocniczych ścieżek dla wbudowanych pluginów,
takich jak `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
Wygenerowana mapa eksportów nadal zawiera mały zestaw warstw helperów
zestawionych pluginów, takich jak `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` i `plugin-sdk/matrix*`. Te
ścieżki podrzędne istnieją wyłącznie dla utrzymania i zgodności wbudowanych pluginów; są
celowo pominięte w poniższej wspólnej tabeli i nie są zalecaną
ścieżką importu dla nowych zewnętrznych pluginów.
ścieżki podrzędne istnieją wyłącznie na potrzeby utrzymania i zgodności zestawionych pluginów;
celowo pominięto je w typowej tabeli poniżej i nie są zalecaną
ścieżką importu dla nowych pluginów zewnętrznych.
## Dokumentacja ścieżek podrzędnych
## Dokumentacja referencyjna ścieżek podrzędnych
Najczęściej używane ścieżki podrzędne, pogrupowane według przeznaczenia. Wygenerowana pełna lista
ponad 200 ścieżek podrzędnych znajduje się w `scripts/lib/plugin-sdk-entrypoints.json`.
Zarezerwowane pomocnicze ścieżki dla wbudowanych pluginów nadal pojawiają się w tej wygenerowanej liście.
Traktuj je jako powierzchnie szczegółów implementacyjnych/zgodności, chyba że strona dokumentacji
jawnie promuje którąś z nich jako publiczną.
Zarezerwowane ścieżki podrzędne helperów zestawionych pluginów nadal pojawiają się na tej wygenerowanej liście.
Traktuj je jako szczegół implementacyjny/powierzchnie zgodności, chyba że dana strona dokumentacji
wyraźnie promuje którąś z nich jako publiczną.
### Wejście pluginu
| Subpath | Kluczowe eksporty |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| Ścieżka podrzędna | Kluczowe eksporty |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
<AccordionGroup>
<Accordion title="Ścieżki podrzędne kanałów">
| Subpath | Kluczowe eksporty |
| Ścieżka podrzędna | Kluczowe eksporty |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Eksport głównego schematu Zod `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, plus `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Współdzielone helpery kreatora konfiguracji, prompty allowlist, konstruktory statusu konfiguracji |
| `plugin-sdk/setup` | Współdzielone helpery kreatora konfiguracji, prompty allowlist i kreatory statusu konfiguracji |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Helpery konfiguracji/wrót akcji dla wielu kont, helpery fallbacku konta domyślnego |
| `plugin-sdk/account-core` | Helpery konfiguracji/wielu kont/bramki akcji oraz helpery awaryjnego wyboru konta domyślnego |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helpery normalizacji identyfikatora konta |
| `plugin-sdk/account-resolution` | Helpery wyszukiwania konta + fallbacku do domyślnego |
| `plugin-sdk/account-helpers` | Wąskie helpery listy kont/akcji na koncie |
| `plugin-sdk/account-resolution` | Helpery wyszukiwania kont i awaryjnego wyboru domyślnego |
| `plugin-sdk/account-helpers` | Wąskie helpery list kont/akcji na kontach |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Typy schematu konfiguracji kanału |
| `plugin-sdk/telegram-command-config` | Helpery normalizacji/walidacji niestandardowych poleceń Telegram z fallbackiem kontraktu wbudowanego |
| `plugin-sdk/telegram-command-config` | Helpery normalizacji/walidacji niestandardowych poleceń Telegram z awaryjną obsługą kontraktu zestawionego |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Współdzielone helpery routingu przychodzącego + budowania kopert |
| `plugin-sdk/inbound-reply-dispatch` | Współdzielone helpery rejestrowania i dispatchu danych przychodzących |
| `plugin-sdk/inbound-envelope` | Współdzielone helpery budowania tras przychodzących i kopert |
| `plugin-sdk/inbound-reply-dispatch` | Współdzielone helpery zapisu i dyspozycji wiadomości przychodzących |
| `plugin-sdk/messaging-targets` | Helpery parsowania/dopasowywania celów |
| `plugin-sdk/outbound-media` | Współdzielone helpery ładowania mediów wychodzących |
| `plugin-sdk/outbound-runtime` | Helpery tożsamości wychodzącej/delegacji wysyłki |
| `plugin-sdk/outbound-runtime` | Helpery tożsamości wychodzącej/delegowania wysyłki |
| `plugin-sdk/thread-bindings-runtime` | Helpery cyklu życia i adapterów powiązań wątków |
| `plugin-sdk/agent-media-payload` | Starszy konstruktor ładunku mediów agenta |
| `plugin-sdk/conversation-runtime` | Helpery powiązań rozmowy/wątku, pairingu i skonfigurowanych powiązań |
| `plugin-sdk/runtime-config-snapshot` | Helper migawki konfiguracji runtime |
| `plugin-sdk/runtime-group-policy` | Helpery rozstrzygania polityki grup w runtime |
| `plugin-sdk/channel-status` | Współdzielone helpery migawki/podsumowania statusu kanału |
| `plugin-sdk/agent-media-payload` | Starszy kreator payloadów mediów agenta |
| `plugin-sdk/conversation-runtime` | Powiązania konwersacji/wątków, parowanie i helpery skonfigurowanych powiązań |
| `plugin-sdk/runtime-config-snapshot` | Helper migawki konfiguracji środowiska wykonawczego |
| `plugin-sdk/runtime-group-policy` | Helpery rozstrzygania zasad grupowych środowiska wykonawczego |
| `plugin-sdk/channel-status` | Współdzielone helpery migawek/podsumowań statusu kanału |
| `plugin-sdk/channel-config-primitives` | Wąskie prymitywy schematu konfiguracji kanału |
| `plugin-sdk/channel-config-writes` | Helpery autoryzacji zapisów konfiguracji kanału |
| `plugin-sdk/channel-plugin-common` | Współdzielone eksporty preambuły pluginów kanałów |
| `plugin-sdk/allowlist-config-edit` | Helpery edycji/odczytu konfiguracji allowlist |
| `plugin-sdk/group-access` | Współdzielone helpery decyzji dostępu grupowego |
| `plugin-sdk/channel-config-writes` | Helpery autoryzacji zapisu konfiguracji kanału |
| `plugin-sdk/channel-plugin-common` | Współdzielone eksporty preludium pluginów kanałów |
| `plugin-sdk/allowlist-config-edit` | Helpery odczytu/edycji konfiguracji allowlist |
| `plugin-sdk/group-access` | Współdzielone helpery decyzji o dostępie grupowym |
| `plugin-sdk/direct-dm` | Współdzielone helpery uwierzytelniania/ochrony bezpośrednich DM |
| `plugin-sdk/interactive-runtime` | Helpery normalizacji/redukcji ładunków odpowiedzi interaktywnych |
| `plugin-sdk/channel-inbound` | Helpery debounce dla wejścia, dopasowywania wzmianek, polityki wzmianek i helpery kopert |
| `plugin-sdk/interactive-runtime` | Helpery normalizacji/redukcji payloadów odpowiedzi interaktywnych |
| `plugin-sdk/channel-inbound` | Pomocniki debounce dla ruchu przychodzącego, dopasowywania wzmianek, zasad wzmianek i helpery kopert |
| `plugin-sdk/channel-send-result` | Typy wyników odpowiedzi |
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
| `plugin-sdk/channel-targets` | Helpery parsowania/dopasowywania celów |
| `plugin-sdk/channel-contract` | Typy kontraktu kanału |
| `plugin-sdk/channel-feedback` | Powiązanie feedbacku/reakcji |
| `plugin-sdk/channel-secret-runtime` | Wąskie helpery kontraktu sekretów, takie jak `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, oraz typy celu sekretu |
| `plugin-sdk/channel-feedback` | Łączenie informacji zwrotnych/reakcji |
| `plugin-sdk/channel-secret-runtime` | Wąskie helpery kontraktu sekretów, takie jak `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment` oraz typy celów sekretów |
</Accordion>
<Accordion title="Ścieżki podrzędne dostawców">
| Subpath | Kluczowe eksporty |
| Ścieżka podrzędna | Kluczowe eksporty |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/provider-setup` | Kuratorowane helpery konfiguracji lokalnych/samodzielnie hostowanych dostawców |
| `plugin-sdk/self-hosted-provider-setup` | Skoncentrowane helpery konfiguracji samodzielnie hostowanego dostawcy zgodnego z OpenAI |
| `plugin-sdk/cli-backend` | Domyślne ustawienia backendu CLI + stałe watchdoga |
| `plugin-sdk/provider-auth-runtime` | Helpery runtime rozstrzygania klucza API dla pluginów dostawców |
| `plugin-sdk/provider-auth-api-key` | Helpery wdrażania/zapisu profilu klucza API, takie jak `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Standardowy konstruktor wyniku uwierzytelniania OAuth |
| `plugin-sdk/provider-setup` | Kuratorowane helpery konfiguracji lokalnych/samohostowanych dostawców |
| `plugin-sdk/self-hosted-provider-setup` | Skoncentrowane helpery konfiguracji samohostowanych dostawców zgodnych z OpenAI |
| `plugin-sdk/cli-backend` | Domyślne ustawienia backendu CLI + stałe watchdog |
| `plugin-sdk/provider-auth-runtime` | Helpery rozstrzygania kluczy API w czasie działania dla pluginów dostawców |
| `plugin-sdk/provider-auth-api-key` | Helpery onboardingu/zapisu profilu klucza API, takie jak `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Standardowy kreator wyniku uwierzytelniania OAuth |
| `plugin-sdk/provider-auth-login` | Współdzielone interaktywne helpery logowania dla pluginów dostawców |
| `plugin-sdk/provider-env-vars` | Helpery wyszukiwania zmiennych środowiskowych uwierzytelniania dostawców |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone konstruktory polityki replay, helpery endpointów dostawców oraz helpery normalizacji identyfikatorów modeli, takie jak `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone kreatory zasad powtórzeń, helpery punktów końcowych dostawców oraz helpery normalizacji identyfikatorów modeli, takie jak `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-http` | Ogólne helpery HTTP/zdolności endpointów dostawców |
| `plugin-sdk/provider-http` | Ogólne helpery HTTP/możliwości punktów końcowych dostawców |
| `plugin-sdk/provider-web-fetch-contract` | Wąskie helpery kontraktu konfiguracji/wyboru web-fetch, takie jak `enablePluginInConfig` i `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Helpery rejestracji/pamięci podręcznej dostawców web-fetch |
| `plugin-sdk/provider-web-search-contract` | Wąskie helpery kontraktu konfiguracji/poświadczeń web-search, takie jak `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` oraz ustawiające/pobierające poświadczenia o ograniczonym zakresie |
| `plugin-sdk/provider-web-search` | Helpery rejestracji/pamięci podręcznej/runtime dostawców web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematu Gemini + diagnostyka oraz helpery zgodności xAI, takie jak `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-web-search-config-contract` | Wąskie helpery konfiguracji/danych uwierzytelniających web-search dla dostawców, którzy nie potrzebują mechanizmu włączania pluginu |
| `plugin-sdk/provider-web-search-contract` | Wąskie helpery kontraktu konfiguracji/danych uwierzytelniających web-search, takie jak `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` oraz zakresowane settery/gettery danych uwierzytelniających |
| `plugin-sdk/provider-web-search` | Helpery rejestracji/pamięci podręcznej/środowiska wykonawczego dostawców web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematów Gemini + diagnostyka oraz helpery zgodności xAI, takie jak `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` i podobne |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, typy wrapperów strumieni oraz współdzielone helpery wrapperów Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Helpery łatek konfiguracji onboardingu |
| `plugin-sdk/global-singleton` | Pomocniki singletonów/map/pamięci podręcznej lokalnych dla procesu |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, typy opakowań strumieni oraz współdzielone helpery opakowań Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Helpery łatania konfiguracji onboardingu |
| `plugin-sdk/global-singleton` | Helpery singletonów/map/pamięci podręcznej lokalnych dla procesu |
</Accordion>
<Accordion title="Ścieżki podrzędne uwierzytelniania i bezpieczeństwa">
| Subpath | Kluczowe eksporty |
| Ścieżka podrzędna | Kluczowe eksporty |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, helpery rejestru poleceń, helpery autoryzacji nadawcy |
| `plugin-sdk/approval-auth-runtime` | Helpery rozstrzygania zatwierdzającego i uwierzytelniania akcji w tym samym czacie |
| `plugin-sdk/approval-client-runtime` | Natywne helpery profilu/filtru zatwierdzeń exec |
| `plugin-sdk/approval-delivery-runtime` | Natywne adaptery zdolności/dostarczania zatwierdzeń |
| `plugin-sdk/approval-gateway-runtime` | Współdzielony helper rozstrzygania gateway zatwierdzeń |
| `plugin-sdk/approval-handler-adapter-runtime` | Lekkie helpery ładowania natywnego adaptera zatwierdzeń dla gorących punktów wejścia kanałów |
| `plugin-sdk/approval-handler-runtime` | Szersze helpery runtime obsługi zatwierdzeń; preferuj węższe ścieżki adapter/gateway, gdy są wystarczające |
| `plugin-sdk/approval-native-runtime` | Natywne helpery celu zatwierdzeń + powiązań kont |
| `plugin-sdk/approval-reply-runtime` | Helpery ładunków odpowiedzi dla zatwierdzeń exec/pluginów |
| `plugin-sdk/command-auth-native` | Natywne uwierzytelnianie poleceń + natywne helpery celu sesji |
| `plugin-sdk/approval-auth-runtime` | Helpery rozstrzygania zatwierdzających i uwierzytelniania akcji w tym samym czacie |
| `plugin-sdk/approval-client-runtime` | Helpery profili/filtrów zatwierdzania dla natywnego wykonania |
| `plugin-sdk/approval-delivery-runtime` | Adaptery możliwości/dostarczania natywnego zatwierdzania |
| `plugin-sdk/approval-gateway-runtime` | Współdzielony helper rozstrzygania bramy zatwierdzania |
| `plugin-sdk/approval-handler-adapter-runtime` | Lekkie helpery ładowania adapterów natywnego zatwierdzania dla gorących punktów wejścia kanałów |
| `plugin-sdk/approval-handler-runtime` | Szersze helpery środowiska wykonawczego obsługi zatwierdzeń; gdy to wystarcza, preferuj węższe warstwy adapter/gateway |
| `plugin-sdk/approval-native-runtime` | Helpery celów natywnego zatwierdzania + powiązań kont |
| `plugin-sdk/approval-reply-runtime` | Helpery payloadów odpowiedzi zatwierdzeń exec/pluginów |
| `plugin-sdk/command-auth-native` | Natywne helpery uwierzytelniania poleceń + helpery celów sesji natywnych |
| `plugin-sdk/command-detection` | Współdzielone helpery wykrywania poleceń |
| `plugin-sdk/command-surface` | Helpery normalizacji treści poleceń i powierzchni poleceń |
| `plugin-sdk/command-surface` | Normalizacja treści poleceń i helpery powierzchni poleceń |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Wąskie helpery zbierania kontraktów sekretów dla powierzchni sekretów kanałów/pluginów |
| `plugin-sdk/secret-ref-runtime` | Wąskie helpery `coerceSecretRef` i typowania SecretRef dla parsowania kontraktów sekretów/konfiguracji |
| `plugin-sdk/security-runtime` | Współdzielone helpery zaufania, bramkowania DM, treści zewnętrznej i zbierania sekretów |
| `plugin-sdk/ssrf-policy` | Helpery allowlist hostów i polityki SSRF dla sieci prywatnych |
| `plugin-sdk/ssrf-runtime` | Helpery pinned-dispatcher, fetch chronionego SSRF i polityki SSRF |
| `plugin-sdk/secret-input` | Helpery parsowania wejścia sekretów |
| `plugin-sdk/webhook-ingress` | Helpery requestów/celów webhooków |
| `plugin-sdk/webhook-request-guards` | Helpery rozmiaru body/timeoutu requestów |
| `plugin-sdk/channel-secret-runtime` | Wąskie helpery zbierania kontraktu sekretów dla powierzchni sekretów kanału/pluginu |
| `plugin-sdk/secret-ref-runtime` | Wąskie helpery `coerceSecretRef` i typowania SecretRef do parsowania kontraktów sekretów/konfiguracji |
| `plugin-sdk/security-runtime` | Współdzielone helpery zaufania, ograniczania DM, treści zewnętrznych i zbierania sekretów |
| `plugin-sdk/ssrf-policy` | Helpery allowlist hostów i zasad SSRF dla sieci prywatnych |
| `plugin-sdk/ssrf-runtime` | Helpery pinned-dispatcher, fetch chronionego przez SSRF i zasad SSRF |
| `plugin-sdk/secret-input` | Helpery parsowania wejść sekretów |
| `plugin-sdk/webhook-ingress` | Helpery żądań/celów webhooków |
| `plugin-sdk/webhook-request-guards` | Helpery rozmiaru treści/timeoutów żądań |
</Accordion>
<Accordion title="Ścieżki podrzędne runtime i storage">
| Subpath | Kluczowe eksporty |
<Accordion title="Ścieżki podrzędne środowiska wykonawczego i przechowywania">
| Ścieżka podrzędna | Kluczowe eksporty |
| --- | --- |
| `plugin-sdk/runtime` | Szerokie helpery runtime/logowania/kopii zapasowych/instalacji pluginów |
| `plugin-sdk/runtime-env` | Wąskie helpery środowiska runtime, loggera, timeoutu, retry i backoff |
| `plugin-sdk/channel-runtime-context` | Ogólne helpery rejestracji i wyszukiwania kontekstu runtime kanału |
| `plugin-sdk/runtime` | Szerokie helpery środowiska wykonawczego/logowania/kopii zapasowych/instalacji pluginów |
| `plugin-sdk/runtime-env` | Wąskie helpery środowiska wykonawczego env, loggera, timeoutów, ponowień i backoff |
| `plugin-sdk/channel-runtime-context` | Ogólne helpery rejestracji i wyszukiwania kontekstu środowiska wykonawczego kanału |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Współdzielone helpery poleceń/hooków/http/interaktywności pluginów |
| `plugin-sdk/hook-runtime` | Współdzielone helpery pipeline webhooków/wewnętrznych hooków |
| `plugin-sdk/lazy-runtime` | Helpery leniwego importu/powiązań runtime, takie jak `createLazyRuntimeModule`, `createLazyRuntimeMethod` i `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpery exec procesów |
| `plugin-sdk/plugin-runtime` | Współdzielone helpery poleceń/hooków/HTTP/interaktywne pluginu |
| `plugin-sdk/hook-runtime` | Współdzielone helpery potoku webhooków/wewnętrznych hooków |
| `plugin-sdk/lazy-runtime` | Helpery opóźnionego importu/powiązań środowiska wykonawczego, takie jak `createLazyRuntimeModule`, `createLazyRuntimeMethod` i `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Helpery wykonywania procesów |
| `plugin-sdk/cli-runtime` | Helpery formatowania CLI, oczekiwania i wersji |
| `plugin-sdk/gateway-runtime` | Helpery klienta gateway i łatek statusu kanałów |
| `plugin-sdk/gateway-runtime` | Helpery klienta gateway i łatania statusu kanału |
| `plugin-sdk/config-runtime` | Helpery ładowania/zapisu konfiguracji |
| `plugin-sdk/telegram-command-config` | Helpery normalizacji nazw/opisów poleceń Telegram i kontroli duplikatów/konfliktów, nawet gdy powierzchnia kontraktu wbudowanego Telegrama jest niedostępna |
| `plugin-sdk/approval-runtime` | Helpery zatwierdzeń exec/pluginów, konstruktory zdolności zatwierdzeń, helpery auth/profili, natywne helpery routingu/runtime |
| `plugin-sdk/reply-runtime` | Współdzielone helpery runtime wejścia/odpowiedzi, chunkingu, dispatchu, heartbeat i planisty odpowiedzi |
| `plugin-sdk/reply-dispatch-runtime` | Wąskie helpery dispatchu/finalizacji odpowiedzi |
| `plugin-sdk/telegram-command-config` | Normalizacja nazw/opisów poleceń Telegram oraz sprawdzanie duplikatów/konfliktów, nawet gdy powierzchnia kontraktu zestawionego Telegram jest niedostępna |
| `plugin-sdk/approval-runtime` | Helpery zatwierdzeń exec/pluginów, kreatory możliwości zatwierdzania, helpery auth/profili, helpery natywnego routingu/środowiska wykonawczego |
| `plugin-sdk/reply-runtime` | Współdzielone helpery środowiska wykonawczego ruchu przychodzącego/odpowiedzi, dzielenia, dyspozycji, heartbeat, planisty odpowiedzi |
| `plugin-sdk/reply-dispatch-runtime` | Wąskie helpery dyspozycji/finalizacji odpowiedzi |
| `plugin-sdk/reply-history` | Współdzielone helpery historii odpowiedzi dla krótkiego okna, takie jak `buildHistoryContext`, `recordPendingHistoryEntry` i `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Wąskie helpery chunkingu tekstu/Markdown |
| `plugin-sdk/session-store-runtime` | Helpery ścieżek magazynu sesji + updated-at |
| `plugin-sdk/reply-chunking` | Wąskie helpery dzielenia tekstu/Markdown |
| `plugin-sdk/session-store-runtime` | Helpery ścieżek magazynu sesji + `updated-at` |
| `plugin-sdk/state-paths` | Helpery ścieżek katalogów stanu/OAuth |
| `plugin-sdk/routing` | Helpery routingu/klucza sesji/powiązania kont, takie jak `resolveAgentRoute`, `buildAgentSessionKey` i `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Współdzielone helpery podsumowań statusu kanałów/kont, domyślne stany runtime i helpery metadanych problemów |
| `plugin-sdk/target-resolver-runtime` | Współdzielone helpery resolvera celów |
| `plugin-sdk/routing` | Helpery tras/kluczy sesji/powiązań kont, takie jak `resolveAgentRoute`, `buildAgentSessionKey` i `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Współdzielone helpery podsumowań statusu kanałów/kont, domyślne stany środowiska wykonawczego i helpery metadanych problemów |
| `plugin-sdk/target-resolver-runtime` | Współdzielone helpery rozstrzygania celów |
| `plugin-sdk/string-normalization-runtime` | Helpery normalizacji slugów/ciągów |
| `plugin-sdk/request-url` | Wyodrębnia ciągi URL z wejść podobnych do fetch/request |
| `plugin-sdk/request-url` | Wyodrębnianie URL-i tekstowych z danych wejściowych typu fetch/request |
| `plugin-sdk/run-command` | Uruchamianie poleceń z limitem czasu i znormalizowanymi wynikami stdout/stderr |
| `plugin-sdk/param-readers` | Typowe czytniki parametrów narzędzi/CLI |
| `plugin-sdk/tool-send` | Wyodrębnia kanoniczne pola celu wysyłki z argumentów narzędzi |
| `plugin-sdk/temp-path` | Współdzielone helpery ścieżek tymczasowych pobrań |
| `plugin-sdk/logging-core` | Logger subsystemu i helpery redakcji |
| `plugin-sdk/tool-payload` | Wyodrębnianie znormalizowanych payloadów z obiektów wyników narzędzi |
| `plugin-sdk/tool-send` | Wyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzi |
| `plugin-sdk/temp-path` | Współdzielone helpery ścieżek tymczasowego pobierania |
| `plugin-sdk/logging-core` | Helpery loggera podsystemu i redakcji |
| `plugin-sdk/markdown-table-runtime` | Helpery trybu tabel Markdown |
| `plugin-sdk/json-store` | Małe helpery odczytu/zapisu stanu JSON |
| `plugin-sdk/file-lock` | Rekurencyjne helpery blokowania plików |
| `plugin-sdk/file-lock` | Helpery re-entrant file-lock |
| `plugin-sdk/persistent-dedupe` | Helpery pamięci podręcznej deduplikacji na dysku |
| `plugin-sdk/acp-runtime` | Helpery runtime/sesji ACP i dispatchu odpowiedzi |
| `plugin-sdk/agent-config-primitives` | Wąskie prymitywy schematu konfiguracji runtime agenta |
| `plugin-sdk/boolean-param` | Elastyczny czytnik parametrów logicznych |
| `plugin-sdk/acp-runtime` | Helpery środowiska wykonawczego/sesji ACP i dyspozycji odpowiedzi |
| `plugin-sdk/agent-config-primitives` | Wąskie prymitywy schematu konfiguracji środowiska wykonawczego agenta |
| `plugin-sdk/boolean-param` | Czytnik parametrów luźnych wartości logicznych |
| `plugin-sdk/dangerous-name-runtime` | Helpery rozstrzygania dopasowań niebezpiecznych nazw |
| `plugin-sdk/device-bootstrap` | Helpery bootstrapu urządzenia i tokenów pairingu |
| `plugin-sdk/device-bootstrap` | Helpery bootstrapu urządzenia i tokenów parowania |
| `plugin-sdk/extension-shared` | Współdzielone prymitywy helperów kanałów pasywnych, statusu i ambient proxy |
| `plugin-sdk/models-provider-runtime` | Helpery odpowiedzi polecenia `/models` / dostawców |
| `plugin-sdk/models-provider-runtime` | Helpery odpowiedzi polecenia `/models` i dostawców |
| `plugin-sdk/skill-commands-runtime` | Helpery listowania poleceń Skills |
| `plugin-sdk/native-command-registry` | Natywne helpery rejestru/budowania/serializacji poleceń |
| `plugin-sdk/provider-zai-endpoint` | Helpery wykrywania endpointów Z.AI |
| `plugin-sdk/native-command-registry` | Helpery rejestru/budowania/serializacji natywnych poleceń |
| `plugin-sdk/provider-zai-endpoint` | Helpery wykrywania punktów końcowych Z.AI |
| `plugin-sdk/infra-runtime` | Helpery zdarzeń systemowych/heartbeat |
| `plugin-sdk/collection-runtime` | Małe helpery ograniczonej pamięci podręcznej |
| `plugin-sdk/diagnostic-runtime` | Helpery flag i zdarzeń diagnostycznych |
| `plugin-sdk/error-runtime` | Graf błędów, formatowanie, współdzielone helpery klasyfikacji błędów, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Opakowany fetch, proxy i helpery pinned lookup |
| `plugin-sdk/host-runtime` | Helpery normalizacji hostname i hosta SCP |
| `plugin-sdk/retry-runtime` | Helpery konfiguracji retry i wykonawcy retry |
| `plugin-sdk/agent-runtime` | Helpery katalogu/tożsamości/obszaru roboczego agenta |
| `plugin-sdk/directory-runtime` | Zapytania o katalog oparte na konfiguracji/deduplikacja |
| `plugin-sdk/host-runtime` | Helpery normalizacji nazw hostów i hostów SCP |
| `plugin-sdk/retry-runtime` | Helpery konfiguracji ponowień i uruchamiania ponowień |
| `plugin-sdk/agent-runtime` | Helpery katalogów/tożsamości/obszarów roboczych agenta |
| `plugin-sdk/directory-runtime` | Zapytania/deduplikacja katalogów na podstawie konfiguracji |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Ścieżki podrzędne capabilities i testów">
| Subpath | Kluczowe eksporty |
<Accordion title="Ścieżki podrzędne możliwości i testowania">
| Ścieżka podrzędna | Kluczowe eksporty |
| --- | --- |
| `plugin-sdk/media-runtime` | Współdzielone helpery pobierania/przekształcania/przechowywania mediów oraz konstruktory ładunków mediów |
| `plugin-sdk/media-runtime` | Współdzielone helpery pobierania/przekształcania/przechowywania mediów oraz kreatory payloadów mediów |
| `plugin-sdk/media-generation-runtime` | Współdzielone helpery failover generowania mediów, wybór kandydatów i komunikaty o brakujących modelach |
| `plugin-sdk/media-understanding` | Typy dostawców rozumienia mediów oraz eksporty helperów obrazu/audio dla dostawców |
| `plugin-sdk/text-runtime` | Współdzielone helpery tekstu/Markdown/logowania, takie jak usuwanie tekstu widocznego dla asystenta, helpery renderowania/chunkingu/tabel Markdown, helpery redakcji, helpery tagów dyrektyw i narzędzia bezpiecznego tekstu |
| `plugin-sdk/text-chunking` | Helper chunkingu tekstu wychodzącego |
| `plugin-sdk/speech` | Typy dostawców mowy oraz eksporty helperów dyrektyw, rejestru i walidacji dla dostawców |
| `plugin-sdk/media-understanding` | Typy dostawców rozumienia mediów oraz eksporty helperów obrazu/audio skierowane do dostawców |
| `plugin-sdk/text-runtime` | Współdzielone helpery tekstu/Markdown/logowania, takie jak usuwanie tekstu widocznego dla asystenta, renderowanie/dzielenie/tabele Markdown, helpery redakcji, helpery tagów dyrektyw i narzędzia bezpiecznego tekstu |
| `plugin-sdk/text-chunking` | Helper dzielenia tekstu wychodzącego |
| `plugin-sdk/speech` | Typy dostawców mowy oraz helpery dyrektyw, rejestru i walidacji skierowane do dostawców |
| `plugin-sdk/speech-core` | Współdzielone typy dostawców mowy, rejestr, dyrektywy i helpery normalizacji |
| `plugin-sdk/realtime-transcription` | Typy dostawców transkrypcji realtime i helpery rejestru |
| `plugin-sdk/realtime-voice` | Typy dostawców głosu realtime i helpery rejestru |
| `plugin-sdk/realtime-transcription` | Typy dostawców transkrypcji w czasie rzeczywistym i helpery rejestru |
| `plugin-sdk/realtime-voice` | Typy dostawców głosu w czasie rzeczywistym i helpery rejestru |
| `plugin-sdk/image-generation` | Typy dostawców generowania obrazów |
| `plugin-sdk/image-generation-core` | Współdzielone typy generowania obrazów, failover, uwierzytelnianie i helpery rejestru |
| `plugin-sdk/music-generation` | Typy dostawców/requestów/wyników generowania muzyki |
| `plugin-sdk/image-generation-core` | Współdzielone typy generowania obrazów, helpery failover, auth i rejestru |
| `plugin-sdk/music-generation` | Typy dostawców/żądań/wyników generowania muzyki |
| `plugin-sdk/music-generation-core` | Współdzielone typy generowania muzyki, helpery failover, wyszukiwanie dostawców i parsowanie model-ref |
| `plugin-sdk/video-generation` | Typy dostawców/requestów/wyników generowania wideo |
| `plugin-sdk/video-generation` | Typy dostawców/żądań/wyników generowania wideo |
| `plugin-sdk/video-generation-core` | Współdzielone typy generowania wideo, helpery failover, wyszukiwanie dostawców i parsowanie model-ref |
| `plugin-sdk/webhook-targets` | Rejestr celów webhooków i helpery instalacji tras |
| `plugin-sdk/webhook-path` | Helpery normalizacji ścieżek webhooków |
| `plugin-sdk/web-media` | Współdzielone helpery ładowania zdalnych/lokalnych mediów |
| `plugin-sdk/zod` | Reeksportowane `zod` dla użytkowników plugin SDK |
| `plugin-sdk/zod` | Reeksport `zod` dla odbiorców Plugin SDK |
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
</Accordion>
<Accordion title="Ścieżki podrzędne pamięci">
| Subpath | Kluczowe eksporty |
| Ścieżka podrzędna | Kluczowe eksporty |
| --- | --- |
| `plugin-sdk/memory-core` | Powierzchnia helperów wbudowanego memory-core dla managera/konfiguracji/plików/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Fasada runtime indeksu/wyszukiwania pamięci |
| `plugin-sdk/memory-core-host-engine-foundation` | Eksporty silnika bazowego hosta pamięci |
| `plugin-sdk/memory-core` | Powierzchnia helperów zestawionego memory-core dla helperów managera/konfiguracji/plików/CLI |
| `plugin-sdk/memory-core-engine-runtime` | Fasada środowiska wykonawczego indeksowania/wyszukiwania pamięci |
| `plugin-sdk/memory-core-host-engine-foundation` | Eksporty silnika fundamentów hosta pamięci |
| `plugin-sdk/memory-core-host-engine-embeddings` | Eksporty silnika embeddingów hosta pamięci |
| `plugin-sdk/memory-core-host-engine-qmd` | Eksporty silnika QMD hosta pamięci |
| `plugin-sdk/memory-core-host-engine-storage` | Eksporty silnika storage hosta pamięci |
| `plugin-sdk/memory-core-host-multimodal` | Helpery multimodalnego hosta pamięci |
| `plugin-sdk/memory-core-host-engine-storage` | Eksporty silnika przechowywania hosta pamięci |
| `plugin-sdk/memory-core-host-multimodal` | Helpery multimodalne hosta pamięci |
| `plugin-sdk/memory-core-host-query` | Helpery zapytań hosta pamięci |
| `plugin-sdk/memory-core-host-secret` | Helpery sekretów hosta pamięci |
| `plugin-sdk/memory-core-host-events` | Helpery dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-core-host-status` | Helpery statusu hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-cli` | Helpery runtime CLI hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-core` | Helpery głównego runtime hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-files` | Helpery plików/runtime hosta pamięci |
| `plugin-sdk/memory-host-core` | Neutralny względem dostawcy alias helperów głównego runtime hosta pamięci |
| `plugin-sdk/memory-host-events` | Neutralny względem dostawcy alias helperów dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-host-files` | Neutralny względem dostawcy alias helperów plików/runtime hosta pamięci |
| `plugin-sdk/memory-host-markdown` | Współdzielone helpery zarządzanego Markdown dla pluginów sąsiadujących z pamięcią |
| `plugin-sdk/memory-host-search` | Aktywna fasada runtime pamięci dla dostępu do menedżera wyszukiwania |
| `plugin-sdk/memory-host-status` | Neutralny względem dostawcy alias helperów statusu hosta pamięci |
| `plugin-sdk/memory-lancedb` | Powierzchnia helperów wbudowanego memory-lancedb |
| `plugin-sdk/memory-core-host-runtime-cli` | Helpery środowiska wykonawczego CLI hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-core` | Helpery głównego środowiska wykonawczego hosta pamięci |
| `plugin-sdk/memory-core-host-runtime-files` | Helpery plików/środowiska wykonawczego hosta pamięci |
| `plugin-sdk/memory-host-core` | Neutralny wobec dostawcy alias dla helperów głównego środowiska wykonawczego hosta pamięci |
| `plugin-sdk/memory-host-events` | Neutralny wobec dostawcy alias dla helperów dziennika zdarzeń hosta pamięci |
| `plugin-sdk/memory-host-files` | Neutralny wobec dostawcy alias dla helperów plików/środowiska wykonawczego hosta pamięci |
| `plugin-sdk/memory-host-markdown` | Współdzielone helpery managed-markdown dla pluginów powiązanych z pamięcią |
| `plugin-sdk/memory-host-search` | Aktywna fasada środowiska wykonawczego pamięci do dostępu do search-manager |
| `plugin-sdk/memory-host-status` | Neutralny wobec dostawcy alias dla helperów statusu hosta pamięci |
| `plugin-sdk/memory-lancedb` | Powierzchnia helperów zestawionego memory-lancedb |
</Accordion>
<Accordion title="Zarezerwowane ścieżki podrzędne wbudowanych helperów">
| Family | Current subpaths | Intended use |
<Accordion title="Zarezerwowane ścieżki podrzędne zestawionych helperów">
| Rodzina | Bieżące ścieżki podrzędne | Zamierzone użycie |
| --- | --- | --- |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Helpery wsparcia wbudowanego pluginu przeglądarki (`browser-support` pozostaje barrelem zgodności) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Powierzchnia helperów/runtime wbudowanego Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Powierzchnia helperów/runtime wbudowanego LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Powierzchnia helperów wbudowanego IRC |
| Channel-specific helpers | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Wbudowane ścieżki zgodności/helperów kanałów |
| Auth/plugin-specific helpers | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Wbudowane ścieżki helperów funkcji/pluginów; `plugin-sdk/github-copilot-token` obecnie eksportuje `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` i `resolveCopilotApiToken` |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Helpery wsparcia zestawionego pluginu browser (`browser-support` pozostaje barrelem zgodności) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Powierzchnia helperów/środowiska wykonawczego zestawionego Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Powierzchnia helperów/środowiska wykonawczego zestawionego LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Powierzchnia helperów zestawionego IRC |
| Helpery specyficzne dla kanałów | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Warstwy zgodności/helperów zestawionych kanałów |
| Helpery specyficzne dla auth/pluginów | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Warstwy helperów zestawionych funkcji/pluginów; `plugin-sdk/github-copilot-token` obecnie eksportuje `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` i `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
## API rejestracji
Callback `register(api)` otrzymuje obiekt `OpenClawPluginApi` z następującymi
Callback `register(api)` otrzymuje obiekt `OpenClawPluginApi` z tymi
metodami:
### Rejestracja capabilities
### Rejestracja możliwości
| Method | What it registers |
| ------------------------------------------------ | -------------------------------- |
| `api.registerProvider(...)` | Wnioskowanie tekstowe (LLM) |
| Metoda | Co rejestruje |
| ------------------------------------------------ | ------------------------------ |
| `api.registerProvider(...)` | Wnioskowanie tekstowe (LLM) |
| `api.registerCliBackend(...)` | Lokalny backend wnioskowania CLI |
| `api.registerChannel(...)` | Kanał wiadomości |
| `api.registerSpeechProvider(...)` | Synteza tekst-na-mowę / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Strumieniowa transkrypcja realtime |
| `api.registerRealtimeVoiceProvider(...)` | Dwukierunkowe sesje głosu realtime |
| `api.registerMediaUnderstandingProvider(...)` | Analiza obrazu/audio/wideo |
| `api.registerImageGenerationProvider(...)` | Generowanie obrazów |
| `api.registerMusicGenerationProvider(...)` | Generowanie muzyki |
| `api.registerVideoGenerationProvider(...)` | Generowanie wideo |
| `api.registerWebFetchProvider(...)` | Dostawca web fetch / scrape |
| `api.registerWebSearchProvider(...)` | Wyszukiwanie w sieci |
| `api.registerChannel(...)` | Kanał wiadomości |
| `api.registerSpeechProvider(...)` | Synteza text-to-speech / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Strumieniowa transkrypcja w czasie rzeczywistym |
| `api.registerRealtimeVoiceProvider(...)` | Dwukierunkowe sesje głosowe w czasie rzeczywistym |
| `api.registerMediaUnderstandingProvider(...)` | Analiza obrazu/audio/wideo |
| `api.registerImageGenerationProvider(...)` | Generowanie obrazów |
| `api.registerMusicGenerationProvider(...)` | Generowanie muzyki |
| `api.registerVideoGenerationProvider(...)` | Generowanie wideo |
| `api.registerWebFetchProvider(...)` | Dostawca web fetch / scrapingu |
| `api.registerWebSearchProvider(...)` | Web search |
### Narzędzia i polecenia
| Method | What it registers |
| Metoda | Co rejestruje |
| ------------------------------- | --------------------------------------------- |
| `api.registerTool(tool, opts?)` | Narzędzie agenta (wymagane lub `{ optional: true }`) |
| `api.registerCommand(def)` | Polecenie niestandardowe (pomija LLM) |
| `api.registerCommand(def)` | Niestandardowe polecenie (omija LLM) |
### Infrastruktura
| Method | What it registers |
| ---------------------------------------------- | --------------------------------------- |
| `api.registerHook(events, handler, opts?)` | Hook zdarzeń |
| `api.registerHttpRoute(params)` | Endpoint HTTP gateway |
| `api.registerGatewayMethod(name, handler)` | Metoda RPC gateway |
| `api.registerCli(registrar, opts?)` | Podpolecenie CLI |
| `api.registerService(service)` | Usługa działająca w tle |
| `api.registerInteractiveHandler(registration)` | Handler interaktywny |
| `api.registerMemoryPromptSupplement(builder)` | Addytywna sekcja promptu sąsiadująca z pamięcią |
| `api.registerMemoryCorpusSupplement(adapter)` | Addytywny korpus wyszukiwania/odczytu pamięci |
| Metoda | Co rejestruje |
| ---------------------------------------------- | -------------------------------- |
| `api.registerHook(events, handler, opts?)` | Hook zdarzeń |
| `api.registerHttpRoute(params)` | Punkt końcowy HTTP gateway |
| `api.registerGatewayMethod(name, handler)` | Metoda RPC gateway |
| `api.registerCli(registrar, opts?)` | Podpolecenie CLI |
| `api.registerService(service)` | Usługa działająca w tle |
| `api.registerInteractiveHandler(registration)` | Handler interaktywny |
| `api.registerMemoryPromptSupplement(builder)` | Dodatkowa sekcja promptu związana z pamięcią |
| `api.registerMemoryCorpusSupplement(adapter)` | Dodatkowy korpus wyszukiwania/odczytu pamięci |
Zarezerwowane przestrzenie nazw administracyjnych rdzenia (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) zawsze pozostają `operator.admin`, nawet jeśli plugin próbuje przypisać
węższy zakres metody gateway. Dla metod należących do pluginów preferuj prefiksy specyficzne dla pluginu.
węższy zakres metod gateway. Dla metod należących do pluginu preferuj
prefiksy specyficzne dla pluginu.
### Metadane rejestracji CLI
`api.registerCli(registrar, opts?)` akceptuje dwa rodzaje metadanych najwyższego poziomu:
`api.registerCli(registrar, opts?)` przyjmuje dwa rodzaje metadanych najwyższego poziomu:
- `commands`: jawne korzenie poleceń należące do rejestratora
- `descriptors`: deskryptory poleceń na etapie parsowania używane do pomocy głównego CLI,
- `descriptors`: deskryptory poleceń w czasie parsowania używane dla głównej pomocy CLI,
routingu i leniwej rejestracji CLI pluginów
Jeśli chcesz, aby polecenie pluginu pozostało ładowane leniwie w zwykłej ścieżce głównego CLI,
podaj `descriptors`, które obejmują każdy korzeń poleceń najwyższego poziomu udostępniany przez ten
Jeśli chcesz, aby polecenie pluginu pozostało ładowane leniwie w normalnej ścieżce głównego CLI,
podaj `descriptors`, które obejmują każdy korzeń polecenia najwyższego poziomu udostępniany przez ten
rejestrator.
```typescript
@ -375,8 +380,8 @@ api.registerCli(
```
Używaj samego `commands` tylko wtedy, gdy nie potrzebujesz leniwej rejestracji głównego CLI.
Ta ścieżka zgodności eager nadal jest obsługiwana, ale nie instaluje
placeholderów opartych na deskryptorach dla leniwego ładowania na etapie parsowania.
Ta ścieżka zgodności z eager loading pozostaje wspierana, ale nie instaluje
placeholderów opartych na descriptorach dla leniwego ładowania w czasie parsowania.
### Rejestracja backendu CLI
@ -386,33 +391,33 @@ backendu CLI AI, takiego jak `codex-cli`.
- `id` backendu staje się prefiksem dostawcy w odwołaniach do modeli, takich jak `codex-cli/gpt-5`.
- `config` backendu używa tego samego kształtu co `agents.defaults.cliBackends.<id>`.
- Konfiguracja użytkownika nadal ma pierwszeństwo. OpenClaw scala `agents.defaults.cliBackends.<id>` z
wartością domyślną pluginu przed uruchomieniem CLI.
- Użyj `normalizeConfig`, gdy backend potrzebuje przeróbek zgodności po scaleniu
domyślną konfiguracją pluginu przed uruchomieniem CLI.
- Użyj `normalizeConfig`, gdy backend potrzebuje przekształceń zgodności po scaleniu
(na przykład normalizacji starych kształtów flag).
### Wyłączne sloty
### Sloty wyłączne
| Method | What it registers |
| ------------------------------------------ | ------------------------------------- |
| `api.registerContextEngine(id, factory)` | Silnik kontekstu (aktywny naraz jest jeden) |
| `api.registerMemoryCapability(capability)` | Ujednolicona capability pamięci |
| `api.registerMemoryPromptSection(builder)` | Konstruktor sekcji promptu pamięci |
| `api.registerMemoryFlushPlan(resolver)` | Resolver planu opróżniania pamięci |
| `api.registerMemoryRuntime(runtime)` | Adapter runtime pamięci |
| Metoda | Co rejestruje |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api.registerContextEngine(id, factory)` | Silnik kontekstu (aktywny tylko jeden naraz). Callback `assemble()` otrzymuje `availableTools` i `citationsMode`, aby silnik mógł dostosować dodatki do promptu. |
| `api.registerMemoryCapability(capability)` | Ujednolicona możliwość pamięci |
| `api.registerMemoryPromptSection(builder)` | Kreator sekcji promptu pamięci |
| `api.registerMemoryFlushPlan(resolver)` | Resolver planu opróżniania pamięci |
| `api.registerMemoryRuntime(runtime)` | Adapter środowiska wykonawczego pamięci |
### Adaptery embeddingów pamięci
| Method | What it registers |
| ---------------------------------------------- | ---------------------------------------------- |
| Metoda | Co rejestruje |
| ---------------------------------------------- | ------------------------------------------ |
| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter embeddingów pamięci dla aktywnego pluginu |
- `registerMemoryCapability` to preferowane wyłączne API pluginów pamięci.
- `registerMemoryCapability` może t udostępniać `publicArtifacts.listArtifacts(...)`,
aby pluginy towarzyszące mogły używać eksportowanych artefaktów pamięci przez
`openclaw/plugin-sdk/memory-host-core` zamiast sięgać do prywatnego układu
konkretnego pluginu pamięci.
- `registerMemoryCapability` może także udostępniać `publicArtifacts.listArtifacts(...)`,
aby pluginy towarzyszące mogły korzystać z eksportowanych artefaktów pamięci przez
`openclaw/plugin-sdk/memory-host-core` zamiast sięgać do prywatnego
układu konkretnego pluginu pamięci.
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` i
`registerMemoryRuntime` to zgodne wstecz, wyłączne API starszych pluginów pamięci.
`registerMemoryRuntime` to starsze, nadal zgodne wyłączne API pluginów pamięci.
- `registerMemoryEmbeddingProvider` pozwala aktywnemu pluginowi pamięci zarejestrować jeden
lub więcej identyfikatorów adapterów embeddingów (na przykład `openai`, `gemini` lub własny identyfikator zdefiniowany przez plugin).
- Konfiguracja użytkownika, taka jak `agents.defaults.memorySearch.provider` i
@ -421,48 +426,48 @@ backendu CLI AI, takiego jak `codex-cli`.
### Zdarzenia i cykl życia
| Method | What it does |
| Metoda | Co robi |
| -------------------------------------------- | ----------------------------- |
| `api.on(hookName, handler, opts?)` | Typowany hook cyklu życia |
| `api.onConversationBindingResolved(handler)` | Callback rozstrzygnięcia powiązania rozmowy |
| `api.onConversationBindingResolved(handler)` | Callback rozwiązania powiązania konwersacji |
### Semantyka decyzji hooków
- `before_tool_call`: zwrócenie `{ block: true }` jest ostateczne. Gdy dowolny handler to ustawi, handlery o niższym priorytecie są pomijane.
- `before_tool_call`: zwrócenie `{ block: true }` jest końcowe. Gdy którykolwiek handler to ustawi, handlery o niższym priorytecie są pomijane.
- `before_tool_call`: zwrócenie `{ block: false }` jest traktowane jako brak decyzji (tak samo jak pominięcie `block`), a nie jako nadpisanie.
- `before_install`: zwrócenie `{ block: true }` jest ostateczne. Gdy dowolny handler to ustawi, handlery o niższym priorytecie są pomijane.
- `before_install`: zwrócenie `{ block: true }` jest końcowe. Gdy którykolwiek handler to ustawi, handlery o niższym priorytecie są pomijane.
- `before_install`: zwrócenie `{ block: false }` jest traktowane jako brak decyzji (tak samo jak pominięcie `block`), a nie jako nadpisanie.
- `reply_dispatch`: zwrócenie `{ handled: true, ... }` jest ostateczne. Gdy dowolny handler przejmie dispatch, handlery o niższym priorytecie i domyślna ścieżka dispatchu modelu są pomijane.
- `message_sending`: zwrócenie `{ cancel: true }` jest ostateczne. Gdy dowolny handler to ustawi, handlery o niższym priorytecie są pomijane.
- `reply_dispatch`: zwrócenie `{ handled: true, ... }` jest końcowe. Gdy którykolwiek handler przejmie dyspozycję, handlery o niższym priorytecie i domyślna ścieżka dyspozycji modelu są pomijane.
- `message_sending`: zwrócenie `{ cancel: true }` jest końcowe. Gdy którykolwiek handler to ustawi, handlery o niższym priorytecie są pomijane.
- `message_sending`: zwrócenie `{ cancel: false }` jest traktowane jako brak decyzji (tak samo jak pominięcie `cancel`), a nie jako nadpisanie.
### Pola obiektu API
| Field | Type | Description |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | Identyfikator pluginu |
| `api.name` | `string` | Nazwa wyświetlana |
| `api.version` | `string?` | Wersja pluginu (opcjonalnie) |
| `api.description` | `string?` | Opis pluginu (opcjonalnie) |
| `api.source` | `string` | Ścieżka źródłowa pluginu |
| `api.rootDir` | `string?` | Katalog główny pluginu (opcjonalnie) |
| `api.config` | `OpenClawConfig` | Bieżąca migawka konfiguracji (aktywna migawka runtime w pamięci, gdy jest dostępna) |
| `api.pluginConfig` | `Record<string, unknown>` | Konfiguracja specyficzna dla pluginu z `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Helpery runtime](/pl/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger o ograniczonym zakresie (`debug`, `info`, `warn`, `error`) |
| Pole | Typ | Opis |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------ |
| `api.id` | `string` | Identyfikator pluginu |
| `api.name` | `string` | Nazwa wyświetlana |
| `api.version` | `string?` | Wersja pluginu (opcjonalna) |
| `api.description` | `string?` | Opis pluginu (opcjonalny) |
| `api.source` | `string` | Ścieżka źródłowa pluginu |
| `api.rootDir` | `string?` | Katalog główny pluginu (opcjonalny) |
| `api.config` | `OpenClawConfig` | Bieżąca migawka konfiguracji (aktywna migawka środowiska wykonawczego w pamięci, gdy jest dostępna) |
| `api.pluginConfig` | `Record<string, unknown>` | Konfiguracja specyficzna dla pluginu z `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Helpery środowiska wykonawczego](/pl/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger z zakresem (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Bieżący tryb ładowania; `"setup-runtime"` to lekkie okno uruchamiania/konfiguracji przed pełnym wejściem |
| `api.resolvePath(input)` | `(string) => string` | Rozstrzyga ścieżkę względem katalogu głównego pluginu |
| `api.resolvePath(input)` | `(string) => string` | Rozwiązywanie ścieżki względem katalogu głównego pluginu |
## Konwencja modułów wewnętrznych
## Wewnętrzna konwencja modułów
Wewnątrz pluginu używaj lokalnych plików barrel do importów wewnętrznych:
Wewnątrz pluginu używaj lokalnych plików barrel dla importów wewnętrznych:
```
my-plugin/
api.ts # Publiczne eksporty dla odbiorców zewnętrznych
runtime-api.ts # Eksporty runtime tylko do użytku wewnętrznego
index.ts # Punkt wejścia pluginu
setup-entry.ts # Lekki punkt wejścia tylko do konfiguracji (opcjonalnie)
api.ts # Public exports for external consumers
runtime-api.ts # Internal-only runtime exports
index.ts # Plugin entry point
setup-entry.ts # Lightweight setup-only entry (optional)
```
<Warning>
@ -471,37 +476,37 @@ my-plugin/
`./runtime-api.ts`. Ścieżka SDK jest wyłącznie kontraktem zewnętrznym.
</Warning>
Publiczne powierzchnie wbudowanych pluginów ładowane przez fasadę (`api.ts`, `runtime-api.ts`,
Powierzchnie publiczne zestawionych pluginów ładowane przez fasady (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` i podobne publiczne pliki wejściowe) teraz preferują
aktywną migawkę konfiguracji runtime, gdy OpenClaw już działa. Jeśli migawka runtime
jeszcze nie istnieje, wracają do rozstrzygniętego pliku konfiguracji na dysku.
aktywną migawkę konfiguracji środowiska wykonawczego, gdy OpenClaw już działa. Jeśli migawka środowiska
wykonawczego jeszcze nie istnieje, wracają do rozstrzygniętego pliku konfiguracji na dysku.
Pluginy dostawców mogą także udostępniać wąski lokalny barrel kontraktu pluginu, gdy
helper jest celowo specyficzny dla dostawcy i jeszcze nie należy do ogólnej ścieżki podrzędnej SDK.
Aktualny wbudowany przykład: dostawca Anthropic przechowuje helpery strumienia Claude
we własnej publicznej ścieżce `api.ts` / `contract-api.ts` zamiast promować logikę
nagłówka beta Anthropic i `service_tier` do ogólnego kontraktu
Pluginy dostawców mogą również udostępniać wąski lokalny barrel kontraktu pluginu, gdy helper
jest celowo specyficzny dla dostawcy i jeszcze nie należy do ogólnej ścieżki podrzędnej SDK.
Bieżący zestawiony przykład: dostawca Anthropic przechowuje helpery strumieni Claude
we własnej publicznej warstwie `api.ts` / `contract-api.ts`, zamiast promować logikę
nagłówków beta Anthropic i `service_tier` do ogólnego kontraktu
`plugin-sdk/*`.
Inne aktualne wbudowane przykłady:
Inne bieżące zestawione przykłady:
- `@openclaw/openai-provider`: `api.ts` eksportuje konstruktory dostawców,
helpery modeli domyślnych i konstruktory dostawców realtime
- `@openclaw/openrouter-provider`: `api.ts` eksportuje konstruktor dostawcy oraz
- `@openclaw/openai-provider`: `api.ts` eksportuje kreatory dostawców,
helpery modeli domyślnych i kreatory dostawców realtime
- `@openclaw/openrouter-provider`: `api.ts` eksportuje kreator dostawcy oraz
helpery onboardingu/konfiguracji
<Warning>
Kod produkcyjny rozszerzeń powinien też unikać importów `openclaw/plugin-sdk/<other-plugin>`.
Kod produkcyjny rozszerzeń powinien również unikać importów `openclaw/plugin-sdk/<other-plugin>`.
Jeśli helper jest rzeczywiście współdzielony, przenieś go do neutralnej ścieżki podrzędnej SDK,
takiej jak `openclaw/plugin-sdk/speech`, `.../provider-model-shared` lub innej
powierzchni zorientowanej na capability, zamiast sprzęgać dwa pluginy ze sobą.
powierzchni zorientowanej na możliwości, zamiast wiązać dwa pluginy ze sobą.
</Warning>
## Powiązane
- [Punkty wejścia](/pl/plugins/sdk-entrypoints) — opcje `definePluginEntry` i `defineChannelPluginEntry`
- [Helpery runtime](/pl/plugins/sdk-runtime) — pełna dokumentacja przestrzeni nazw `api.runtime`
- [Helpery środowiska wykonawczego](/pl/plugins/sdk-runtime) — pełna dokumentacja referencyjna przestrzeni nazw `api.runtime`
- [Konfiguracja i config](/pl/plugins/sdk-setup) — pakowanie, manifesty, schematy konfiguracji
- [Testowanie](/pl/plugins/sdk-testing) — narzędzia testowe i reguły lint
- [Migracja SDK](/pl/plugins/sdk-migration) — migracja ze zdeprecjonowanych powierzchni
- [Wnętrze pluginów](/pl/plugins/architecture) — szczegółowa architektura i model capabilities
- [Migracja SDK](/pl/plugins/sdk-migration) — migracja z przestarzałych powierzchni
- [Wnętrze pluginów](/pl/plugins/architecture) — szczegółowa architektura i model możliwości

View File

@ -1,22 +1,22 @@
---
read_when:
- Chcesz używać modeli Google Gemini z OpenClaw
- Potrzebujesz przepływu uwierzytelniania za pomocą klucza API lub OAuth
summary: Konfiguracja Google Gemini (klucz API + OAuth, generowanie obrazów, rozumienie mediów, wyszukiwanie w sieci)
- Potrzebujesz klucza API lub przepływu uwierzytelniania OAuth
summary: Konfiguracja Google Gemini (klucz API + OAuth, generowanie obrazów, rozumienie multimediów, wyszukiwanie w sieci)
title: Google (Gemini)
x-i18n:
generated_at: "2026-04-07T09:49:04Z"
generated_at: "2026-04-08T09:44:16Z"
model: gpt-5.4
provider: openai
source_hash: e9e558f5ce35c853e0240350be9a1890460c5f7f7fd30b05813a656497dee516
source_hash: fad2ff68987301bd86145fa6e10de8c7b38d5bd5dbcd13db9c883f7f5b9a4e01
source_path: providers/google.md
workflow: 15
---
# Google (Gemini)
Wtyczka Google zapewnia dostęp do modeli Gemini przez Google AI Studio, a także
do generowania obrazów, rozumienia mediów (obraz/dźwięk/wideo) oraz wyszukiwania w sieci przez
Plugin Google zapewnia dostęp do modeli Gemini przez Google AI Studio, a także
generowanie obrazów, rozumienie multimediów (obraz/audio/wideo) oraz wyszukiwanie w sieci przez
Gemini Grounding.
- Dostawca: `google`
@ -55,13 +55,13 @@ openclaw onboard --non-interactive \
## OAuth (Gemini CLI)
Alternatywny dostawca `google-gemini-cli` używa OAuth PKCE zamiast klucza API.
To nieoficjalna integracja; niektórzy użytkownicy zgłaszają ograniczenia
konta. Używasz na własne ryzyko.
Alternatywny dostawca `google-gemini-cli` używa PKCE OAuth zamiast klucza API.
Jest to nieoficjalna integracja; niektórzy użytkownicy zgłaszają
ograniczenia konta. Używasz na własne ryzyko.
- Model domyślny: `google-gemini-cli/gemini-3-flash-preview`
- Alias: `gemini-cli`
- Wymaganie instalacyjne: lokalnie dostępny Gemini CLI jako `gemini`
- Wymaganie instalacyjne: lokalne Gemini CLI dostępne jako `gemini`
- Homebrew: `brew install gemini-cli`
- npm: `npm install -g @google/gemini-cli`
- Logowanie:
@ -77,45 +77,48 @@ Zmienne środowiskowe:
(Lub warianty `GEMINI_CLI_*`.)
Jeśli żądania OAuth Gemini CLI kończą się błędem po zalogowaniu, ustaw
`GOOGLE_CLOUD_PROJECT` lub `GOOGLE_CLOUD_PROJECT_ID` na hoście gateway i
Jeśli żądania OAuth Gemini CLI nie działają po zalogowaniu, ustaw
`GOOGLE_CLOUD_PROJECT` lub `GOOGLE_CLOUD_PROJECT_ID` na hoście gatewaya i
spróbuj ponownie.
Jeśli logowanie kończy się błędem przed rozpoczęciem przepływu w przeglądarce, upewnij się, że lokalne polecenie `gemini`
Jeśli logowanie nie powiedzie się przed rozpoczęciem przepływu w przeglądarce, upewnij się, że lokalne polecenie `gemini`
jest zainstalowane i dostępne w `PATH`. OpenClaw obsługuje zarówno instalacje Homebrew,
jak i globalne instalacje npm, w tym typowe układy Windows/npm.
Uwagi dotyczące użycia JSON przez Gemini CLI:
Uwagi dotyczące użycia JSON w Gemini CLI:
- Tekst odpowiedzi pochodzi z pola `response` w JSON CLI.
- Tekst odpowiedzi pochodzi z pola JSON `response` CLI.
- Użycie przełącza się awaryjnie na `stats`, gdy CLI pozostawia `usage` puste.
- `stats.cached` jest normalizowane do OpenClaw `cacheRead`.
- Jeśli `stats.input` nie istnieje, OpenClaw wyprowadza liczbę tokenów wejściowych z
- Jeśli brakuje `stats.input`, OpenClaw wylicza tokeny wejściowe z
`stats.input_tokens - stats.cached`.
## Możliwości
| Możliwość | Obsługiwane |
| --------------------- | ------------------ |
| Uzupełnianie czatu | Tak |
| Generowanie obrazów | Tak |
| Generowanie muzyki | Tak |
| Rozumienie obrazów | Tak |
| Transkrypcja audio | Tak |
| Rozumienie wideo | Tak |
| Wyszukiwanie w sieci (Grounding) | Tak |
| Thinking/reasoning | Tak (Gemini 3.1+) |
| Możliwość | Obsługiwane |
| --------------------- | ----------------- |
| Uzupełnianie czatu | Tak |
| Generowanie obrazów | Tak |
| Generowanie muzyki | Tak |
| Rozumienie obrazów | Tak |
| Transkrypcja audio | Tak |
| Rozumienie wideo | Tak |
| Wyszukiwanie w sieci (Grounding) | Tak |
| Thinking/reasoning | Tak (Gemini 3.1+) |
| Modele Gemma 4 | Tak |
## Bezpośrednie ponowne użycie cache Gemini
Modele Gemma 4 (na przykład `gemma-4-26b-a4b-it`) obsługują tryb thinking. OpenClaw przepisuje `thinkingBudget` na obsługiwane przez Google `thinkingLevel` dla Gemma 4. Ustawienie thinking na `off` zachowuje wyłączony thinking zamiast mapowania na `MINIMAL`.
Dla bezpośrednich uruchomień API Gemini (`api: "google-generative-ai"`), OpenClaw
przekazuje teraz skonfigurowany uchwyt `cachedContent` dalej do żądań Gemini.
## Bezpośrednie ponowne użycie pamięci podręcznej Gemini
- Skonfiguruj parametry per model lub globalnie za pomocą
Dla bezpośrednich uruchomień Gemini API (`api: "google-generative-ai"`), OpenClaw teraz
przekazuje skonfigurowany uchwyt `cachedContent` do żądań Gemini.
- Skonfiguruj parametry dla modelu lub globalne za pomocą
`cachedContent` albo starszego `cached_content`
- Jeśli obecne są oba, `cachedContent` ma pierwszeństwo
- Przykładowa wartość: `cachedContents/prebuilt-context`
- Użycie przy trafieniu do cache Gemini jest normalizowane do OpenClaw `cacheRead` z
- Użycie trafienia pamięci podręcznej Gemini jest normalizowane do OpenClaw `cacheRead` z
nadrzędnego `cachedContentTokenCount`
Przykład:
@ -144,10 +147,10 @@ Dołączony dostawca generowania obrazów `google` domyślnie używa
- Obsługuje także `google/gemini-3-pro-image-preview`
- Generowanie: do 4 obrazów na żądanie
- Tryb edycji: włączony, do 5 obrazów wejściowych
- Sterowanie geometrią: `size`, `aspectRatio` i `resolution`
- Kontrola geometrii: `size`, `aspectRatio` i `resolution`
Dostawca `google-gemini-cli`, dostępny tylko przez OAuth, to oddzielna powierzchnia
wnioskowania tekstowego. Generowanie obrazów, rozumienie mediów i Gemini Grounding pozostają przy
Dostawca `google-gemini-cli`, dostępny tylko przez OAuth, jest osobną powierzchnią
inferencji tekstowej. Generowanie obrazów, rozumienie multimediów i Gemini Grounding pozostają na
identyfikatorze dostawcy `google`.
Aby używać Google jako domyślnego dostawcy obrazów:
@ -165,17 +168,17 @@ Aby używać Google jako domyślnego dostawcy obrazów:
```
Zobacz [Generowanie obrazów](/pl/tools/image-generation), aby poznać wspólne
parametry narzędzia, wybór dostawcy i zachowanie failover.
parametry narzędzia, wybór dostawcy i zachowanie awaryjne.
## Generowanie wideo
Dołączona wtyczka `google` rejestruje także generowanie wideo przez wspólne
Dołączony plugin `google` rejestruje także generowanie wideo przez współdzielone
narzędzie `video_generate`.
- Domyślny model wideo: `google/veo-3.1-fast-generate-preview`
- Tryby: text-to-video, image-to-video i przepływy z referencją pojedynczego wideo
- Tryby: tekst-na-wideo, obraz-na-wideo oraz przepływy z odniesieniem do pojedynczego wideo
- Obsługuje `aspectRatio`, `resolution` i `audio`
- Bieżące ograniczenie długości: **od 4 do 8 sekund**
- Bieżące ograniczenie czasu trwania: **od 4 do 8 sekund**
Aby używać Google jako domyślnego dostawcy wideo:
@ -192,19 +195,19 @@ Aby używać Google jako domyślnego dostawcy wideo:
```
Zobacz [Generowanie wideo](/pl/tools/video-generation), aby poznać wspólne
parametry narzędzia, wybór dostawcy i zachowanie failover.
parametry narzędzia, wybór dostawcy i zachowanie awaryjne.
## Generowanie muzyki
Dołączona wtyczka `google` rejestruje także generowanie muzyki przez wspólne
Dołączony plugin `google` rejestruje także generowanie muzyki przez współdzielone
narzędzie `music_generate`.
- Domyślny model muzyczny: `google/lyria-3-clip-preview`
- Domyślny model muzyki: `google/lyria-3-clip-preview`
- Obsługuje także `google/lyria-3-pro-preview`
- Sterowanie promptem: `lyrics` i `instrumental`
- Format wyjściowy: domyślnie `mp3`, a także `wav` dla `google/lyria-3-pro-preview`
- Kontrolki promptu: `lyrics` i `instrumental`
- Format wyjściowy: domyślnie `mp3`, a także `wav` w `google/lyria-3-pro-preview`
- Wejścia referencyjne: do 10 obrazów
- Uruchomienia oparte na sesji są odłączane przez wspólny przepływ zadanie/status, w tym `action: "status"`
- Uruchomienia oparte na sesji są odłączane przez współdzielony przepływ zadań/statusu, w tym `action: "status"`
Aby używać Google jako domyślnego dostawcy muzyki:
@ -221,10 +224,10 @@ Aby używać Google jako domyślnego dostawcy muzyki:
```
Zobacz [Generowanie muzyki](/pl/tools/music-generation), aby poznać wspólne
parametry narzędzia, wybór dostawcy i zachowanie failover.
parametry narzędzia, wybór dostawcy i zachowanie awaryjne.
## Uwaga dotycząca środowiska
Jeśli Gateway działa jako demon (launchd/systemd), upewnij się, że `GEMINI_API_KEY`
jest dostępne dla tego procesu (na przykład w `~/.openclaw/.env` lub przez
jest dostępny dla tego procesu (na przykład w `~/.openclaw/.env` lub przez
`env.shellEnv`).

View File

@ -1,31 +1,31 @@
---
read_when:
- Chcesz uruchamiać OpenClaw z modelami chmurowymi lub lokalnymi przez Ollama
- Potrzebujesz wskazówek dotyczących konfiguracji i ustawi Ollama
- Potrzebujesz wskazówek dotyczących konfiguracji i ustawiania Ollama
summary: Uruchamianie OpenClaw z Ollama (modele chmurowe i lokalne)
title: Ollama
x-i18n:
generated_at: "2026-04-08T02:17:58Z"
generated_at: "2026-04-08T09:44:32Z"
model: gpt-5.4
provider: openai
source_hash: 222ec68f7d4bb29cc7796559ddef1d5059f5159e7a51e2baa3a271ddb3abb716
source_hash: d3295a7c879d3636a2ffdec05aea6e670e54a990ef52bd9b0cae253bc24aa3f7
source_path: providers/ollama.md
workflow: 15
---
# Ollama
Ollama to lokalne środowisko uruchomieniowe LLM, które ułatwia uruchamianie modeli open source na Twoim komputerze. OpenClaw integruje się z natywnym API Ollama (`/api/chat`), obsługuje streaming i wywoływanie narzędzi oraz może automatycznie wykrywać lokalne modele Ollama, gdy włączysz to przez `OLLAMA_API_KEY` (lub profil uwierzytelniania) i nie zdefiniujesz jawnego wpisu `models.providers.ollama`.
Ollama to lokalne środowisko uruchomieniowe LLM, które ułatwia uruchamianie modeli open source na Twoim komputerze. OpenClaw integruje się z natywnym API Ollama (`/api/chat`), obsługuje strumieniowanie i wywoływanie narzędzi oraz może automatycznie wykrywać lokalne modele Ollama, gdy włączysz tę opcję za pomocą `OLLAMA_API_KEY` (lub profilu uwierzytelniania) i nie zdefiniujesz jawnego wpisu `models.providers.ollama`.
<Warning>
**Użytkownicy zdalnego Ollama**: Nie używaj zgodnego z OpenAI adresu URL `/v1` (`http://host:11434/v1`) z OpenClaw. Powoduje to uszkodzenie wywoływania narzędzi, a modele mogą zwracać surowy JSON narzędzi jako zwykły tekst. Zamiast tego użyj natywnego adresu URL API Ollama: `baseUrl: "http://host:11434"` (bez `/v1`).
**Użytkownicy zdalnego Ollama**: Nie używaj adresu URL zgodnego z OpenAI `/v1` (`http://host:11434/v1`) z OpenClaw. Powoduje to problemy z wywoływaniem narzędzi, a modele mogą zwracać surowy JSON narzędzi jako zwykły tekst. Zamiast tego użyj natywnego adresu URL API Ollama: `baseUrl: "http://host:11434"` (bez `/v1`).
</Warning>
## Szybki start
### Onboarding (zalecane)
Najszybszym sposobem konfiguracji Ollama jest onboarding:
Najszybszym sposobem konfiguracji Ollama jest użycie onboardingu:
```bash
openclaw onboard
@ -33,13 +33,13 @@ openclaw onboard
Wybierz **Ollama** z listy dostawców. Onboarding:
1. Poprosi o podstawowy adres URL Ollama, pod którym Twoja instancja jest dostępna (domyślnie `http://127.0.0.1:11434`).
1. Poprosi o bazowy adres URL Ollama, pod którym Twoja instancja jest osiągalna (domyślnie `http://127.0.0.1:11434`).
2. Pozwoli wybrać **Cloud + Local** (modele chmurowe i lokalne) lub **Local** (tylko modele lokalne).
3. Otworzy w przeglądarce przepływ logowania, jeśli wybierzesz **Cloud + Local** i nie jesteś zalogowany do ollama.com.
3. Otworzy w przeglądarce proces logowania, jeśli wybierzesz **Cloud + Local** i nie jesteś zalogowany w ollama.com.
4. Wykryje dostępne modele i zasugeruje wartości domyślne.
5. Automatycznie pobierze wybrany model, jeśli nie jest dostępny lokalnie.
Obsługiwany jest również tryb nieinteraktywny:
Obsługiwany jest także tryb nieinteraktywny:
```bash
openclaw onboard --non-interactive \
@ -47,7 +47,7 @@ openclaw onboard --non-interactive \
--accept-risk
```
Opcjonalnie podaj niestandardowy podstawowy adres URL lub model:
Opcjonalnie możesz podać własny bazowy adres URL lub model:
```bash
openclaw onboard --non-interactive \
@ -61,7 +61,7 @@ openclaw onboard --non-interactive \
1. Zainstaluj Ollama: [https://ollama.com/download](https://ollama.com/download)
2. Pobierz lokalny model, jeśli chcesz korzystać z inferencji lokalnej:
2. Pobierz model lokalny, jeśli chcesz używać inferencji lokalnej:
```bash
ollama pull gemma4
@ -71,7 +71,7 @@ ollama pull gpt-oss:20b
ollama pull llama3.3
```
3. Jeśli chcesz korzystać także z modeli chmurowych, zaloguj się:
3. Jeśli chcesz także używać modeli chmurowych, zaloguj się:
```bash
ollama signin
@ -89,8 +89,8 @@ openclaw onboard
OpenClaw obecnie sugeruje:
- domyślny model lokalny: `gemma4`
- domyślne modele chmurowe: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`
- lokalna wartość domyślna: `gemma4`
- chmurowe wartości domyślne: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`
5. Jeśli wolisz konfigurację ręczną, włącz Ollama bezpośrednio dla OpenClaw (dowolna wartość działa; Ollama nie wymaga prawdziwego klucza):
@ -102,14 +102,14 @@ export OLLAMA_API_KEY="ollama-local"
openclaw config set models.providers.ollama.apiKey "ollama-local"
```
6. Sprawdź dostępne modele lub przełącz model:
6. Wyświetl modele lub przełącz model:
```bash
openclaw models list
openclaw models set ollama/gemma4
```
7. Albo ustaw domyślny model w konfiguracji:
7. Lub ustaw domyślny model w konfiguracji:
```json5
{
@ -121,17 +121,18 @@ openclaw models set ollama/gemma4
}
```
## Wykrywanie modeli (dostawca niejawny)
## Wykrywanie modeli (provider niejawny)
Gdy ustawisz `OLLAMA_API_KEY` (lub profil uwierzytelniania) i **nie** zdefiniujesz `models.providers.ollama`, OpenClaw wykryje modele z lokalnej instancji Ollama pod adresem `http://127.0.0.1:11434`:
Gdy ustawisz `OLLAMA_API_KEY` (lub profil uwierzytelniania) i **nie** zdefiniujesz `models.providers.ollama`, OpenClaw wykrywa modele z lokalnej instancji Ollama pod adresem `http://127.0.0.1:11434`:
- Odpytuje `/api/tags`
- Używa najlepszego możliwego wyszukiwania `/api/show`, aby odczytać `contextWindow`, gdy jest dostępne
- Oznacza `reasoning` za pomocą heurystyki nazwy modelu (`r1`, `reasoning`, `think`)
- Używa wywołań `/api/show` w trybie best-effort, aby odczytać `contextWindow` i wykrywać możliwości modelu (w tym vision), gdy są dostępne
- Modele z możliwością `vision` zgłoszoną przez `/api/show` są oznaczane jako obsługujące obrazy (`input: ["text", "image"]`), dzięki czemu OpenClaw automatycznie wstrzykuje obrazy do promptu dla tych modeli
- Oznacza `reasoning` na podstawie heurystyki nazwy modelu (`r1`, `reasoning`, `think`)
- Ustawia `maxTokens` na domyślny limit maksymalnej liczby tokenów Ollama używany przez OpenClaw
- Ustawia wszystkie koszty na `0`
Pozwala to uniknąć ręcznego wpisywania modeli, jednocześnie utrzymując katalog zgodny z lokalną instancją Ollama.
Pozwala to uniknąć ręcznego definiowania modeli, a jednocześnie utrzymać katalog zgodny z lokalną instancją Ollama.
Aby zobaczyć, jakie modele są dostępne:
@ -148,21 +149,21 @@ ollama pull mistral
Nowy model zostanie automatycznie wykryty i będzie dostępny do użycia.
Jeśli jawnie ustawisz `models.providers.ollama`, automatyczne wykrywanie zostanie pominięte i musisz zdefiniować modele ręcznie (zobacz poniżej).
Jeśli jawnie ustawisz `models.providers.ollama`, automatyczne wykrywanie zostanie pominięte i musisz zdefiniować modele ręcznie (patrz niżej).
## Konfiguracja
### Podstawowa konfiguracja (wykrywanie niejawne)
Najprostszym sposobem włączenia Ollama jest użycie zmiennej środowiskowej:
Najprostszy sposób włączenia Ollama to użycie zmiennej środowiskowej:
```bash
export OLLAMA_API_KEY="ollama-local"
```
### Konfiguracja jawna (ręczne modele)
### Konfiguracja jawna (modele ręczne)
Używaj jawnej konfiguracji, gdy:
Użyj konfiguracji jawnej, gdy:
- Ollama działa na innym hoście lub porcie.
- Chcesz wymusić określone okna kontekstu lub listy modeli.
@ -193,11 +194,11 @@ Używaj jawnej konfiguracji, gdy:
}
```
Jeśli ustawiono `OLLAMA_API_KEY`, możesz pominąć `apiKey` we wpisie dostawcy, a OpenClaw uzupełni je na potrzeby sprawdzania dostępności.
Jeśli ustawiono `OLLAMA_API_KEY`, możesz pominąć `apiKey` we wpisie providera, a OpenClaw uzupełni go na potrzeby kontroli dostępności.
### Niestandardowy podstawowy adres URL (konfiguracja jawna)
### Niestandardowy bazowy adres URL (konfiguracja jawna)
Jeśli Ollama działa na innym hoście lub porcie (jawna konfiguracja wyłącza automatyczne wykrywanie, więc modele trzeba zdefiniować ręcznie):
Jeśli Ollama działa na innym hoście lub porcie (konfiguracja jawna wyłącza automatyczne wykrywanie, więc zdefiniuj modele ręcznie):
```json5
{
@ -214,12 +215,12 @@ Jeśli Ollama działa na innym hoście lub porcie (jawna konfiguracja wyłącza
```
<Warning>
Nie dodawaj `/v1` do adresu URL. Ścieżka `/v1` używa trybu zgodnego z OpenAI, w którym wywoływanie narzędzi nie jest niezawodne. Używaj podstawowego adresu URL Ollama bez sufiksu ścieżki.
Nie dodawaj `/v1` do adresu URL. Ścieżka `/v1` używa trybu zgodnego z OpenAI, w którym wywoływanie narzędzi nie jest niezawodne. Użyj bazowego adresu URL Ollama bez sufiksu ścieżki.
</Warning>
### Wybór modelu
Po skonfigurowaniu wszystkie modele Ollama są dostępne:
Po skonfigurowaniu wszystkie Twoje modele Ollama są dostępne:
```json5
{
@ -238,22 +239,19 @@ Po skonfigurowaniu wszystkie modele Ollama są dostępne:
Modele chmurowe pozwalają uruchamiać modele hostowane w chmurze (na przykład `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) obok modeli lokalnych.
Aby używać modeli chmurowych, wybierz tryb **Cloud + Local** podczas konfiguracji. Kreator sprawdza, czy jesteś zalogowany, i w razie potrzeby otwiera w przeglądarce przepływ logowania. Jeśli nie można zweryfikować uwierzytelnienia, kreator przechodzi do domyślnych modeli lokalnych.
Aby używać modeli chmurowych, wybierz tryb **Cloud + Local** podczas konfiguracji. Kreator sprawdza, czy jesteś zalogowany, i w razie potrzeby otwiera w przeglądarce proces logowania. Jeśli nie można zweryfikować uwierzytelnienia, kreator przełącza się na domyślne ustawienia modeli lokalnych.
Możesz też zalogować się bezpośrednio na [ollama.com/signin](https://ollama.com/signin).
## Ollama Web Search
OpenClaw obsługuje także **Ollama Web Search** jako dołączonego dostawcę
`web_search`.
OpenClaw obsługuje także **Ollama Web Search** jako wbudowany provider `web_search`.
- Używa skonfigurowanego hosta Ollama (`models.providers.ollama.baseUrl`, jeśli
jest ustawione, w przeciwnym razie `http://127.0.0.1:11434`).
- Używa skonfigurowanego hosta Ollama (`models.providers.ollama.baseUrl`, jeśli jest ustawiony, w przeciwnym razie `http://127.0.0.1:11434`).
- Nie wymaga klucza.
- Wymaga uruchomionego Ollama i zalogowania przez `ollama signin`.
Wybierz **Ollama Web Search** podczas `openclaw onboard` lub
`openclaw configure --section web`, albo ustaw:
Wybierz **Ollama Web Search** podczas `openclaw onboard` lub `openclaw configure --section web`, albo ustaw:
```json5
{
@ -267,13 +265,13 @@ Wybierz **Ollama Web Search** podczas `openclaw onboard` lub
}
```
Pełną konfigurację i szczegóły działania znajdziesz w [Ollama Web Search](/pl/tools/ollama-search).
Pełne informacje o konfiguracji i szczegółach działania znajdziesz w [Ollama Web Search](/pl/tools/ollama-search).
## Zaawansowane
### Modele reasoning
OpenClaw domyślnie traktuje modele o nazwach takich jak `deepseek-r1`, `reasoning` lub `think` jako zdolne do reasoning:
OpenClaw domyślnie traktuje modele o nazwach takich jak `deepseek-r1`, `reasoning` lub `think` jako obsługujące reasoning:
```bash
ollama pull deepseek-r1:32b
@ -281,11 +279,11 @@ ollama pull deepseek-r1:32b
### Koszty modeli
Ollama jest darmowe i działa lokalnie, więc wszystkie koszty modeli są ustawione na $0.
Ollama jest bezpłatne i działa lokalnie, więc wszystkie koszty modeli są ustawione na $0.
### Konfiguracja streamingu
### Konfiguracja strumieniowania
Integracja OpenClaw z Ollama domyślnie używa **natywnego API Ollama** (`/api/chat`), które w pełni obsługuje jednocześnie streaming i wywoływanie narzędzi. Nie jest potrzebna żadna specjalna konfiguracja.
Integracja Ollama w OpenClaw domyślnie używa **natywnego API Ollama** (`/api/chat`), które w pełni obsługuje jednocześnie strumieniowanie i wywoływanie narzędzi. Nie jest wymagana żadna specjalna konfiguracja.
#### Starszy tryb zgodny z OpenAI
@ -293,7 +291,7 @@ Integracja OpenClaw z Ollama domyślnie używa **natywnego API Ollama** (`/api/c
**Wywoływanie narzędzi nie jest niezawodne w trybie zgodnym z OpenAI.** Używaj tego trybu tylko wtedy, gdy potrzebujesz formatu OpenAI dla proxy i nie polegasz na natywnym zachowaniu wywoływania narzędzi.
</Warning>
Jeśli zamiast tego musisz używać punktu końcowego zgodnego z OpenAI (np. za proxy, które obsługuje tylko format OpenAI), ustaw jawnie `api: "openai-completions"`:
Jeśli zamiast tego musisz użyć punktu końcowego zgodnego z OpenAI (np. za proxy obsługującym tylko format OpenAI), ustaw jawnie `api: "openai-completions"`:
```json5
{
@ -311,9 +309,9 @@ Jeśli zamiast tego musisz używać punktu końcowego zgodnego z OpenAI (np. za
}
```
Ten tryb może nie obsługiwać jednocześnie streamingu i wywoływania narzędzi. Może być konieczne wyłączenie streamingu za pomocą `params: { streaming: false }` w konfiguracji modelu.
Ten tryb może nie obsługiwać jednocześnie strumieniowania i wywoływania narzędzi. Może być konieczne wyłączenie strumieniowania za pomocą `params: { streaming: false }` w konfiguracji modelu.
Gdy `api: "openai-completions"` jest używane z Ollama, OpenClaw domyślnie wstrzykuje `options.num_ctx`, aby Ollama nie przechodziło po cichu na okno kontekstu 4096. Jeśli Twoje proxy/upstream odrzuca nieznane pola `options`, wyłącz to zachowanie:
Gdy `api: "openai-completions"` jest używane z Ollama, OpenClaw domyślnie wstrzykuje `options.num_ctx`, aby Ollama nie przełączało się po cichu na okno kontekstu 4096. Jeśli Twoje proxy/upstream odrzuca nieznane pola `options`, wyłącz to zachowanie:
```json5
{
@ -333,19 +331,19 @@ Gdy `api: "openai-completions"` jest używane z Ollama, OpenClaw domyślnie wstr
### Okna kontekstu
Dla modeli wykrytych automatycznie OpenClaw używa okna kontekstu zgłaszanego przez Ollama, jeśli jest dostępne, w przeciwnym razie przechodzi na domyślne okno kontekstu Ollama używane przez OpenClaw. Możesz nadpisać `contextWindow` i `maxTokens` w jawnej konfiguracji dostawcy.
W przypadku modeli wykrywanych automatycznie OpenClaw używa okna kontekstu zgłaszanego przez Ollama, gdy jest dostępne, a w przeciwnym razie przechodzi do domyślnego okna kontekstu Ollama używanego przez OpenClaw. Możesz zastąpić `contextWindow` i `maxTokens` w jawnej konfiguracji providera.
## Rozwiązywanie problemów
### Nie wykryto Ollama
### Ollama nie zostało wykryte
Upewnij się, że Ollama działa, że ustawiono `OLLAMA_API_KEY` (lub profil uwierzytelniania) i że **nie** zdefiniowano jawnego wpisu `models.providers.ollama`:
Upewnij się, że Ollama jest uruchomione, że ustawiono `OLLAMA_API_KEY` (lub profil uwierzytelniania) i że **nie** zdefiniowano jawnego wpisu `models.providers.ollama`:
```bash
ollama serve
```
Oraz że API jest dostępne:
I że API jest dostępne:
```bash
curl http://localhost:11434/api/tags
@ -353,9 +351,9 @@ curl http://localhost:11434/api/tags
### Brak dostępnych modeli
Jeśli Twojego modelu nie ma na liście, zrób jedno z poniższych:
Jeśli Twojego modelu nie ma na liście, wykonaj jedną z tych czynności:
- Pobierz model lokalnie, lub
- Pobierz model lokalnie, albo
- Zdefiniuj model jawnie w `models.providers.ollama`.
Aby dodać modele:
@ -367,7 +365,7 @@ ollama pull gpt-oss:20b
ollama pull llama3.3 # Lub inny model
```
### Odmowa połączenia
### Połączenie odrzucone
Sprawdź, czy Ollama działa na właściwym porcie:
@ -375,12 +373,12 @@ Sprawdź, czy Ollama działa na właściwym porcie:
# Sprawdź, czy Ollama działa
ps aux | grep ollama
# Lub uruchom ponownie Ollama
# Lub uruchom Ollama ponownie
ollama serve
```
## Zobacz także
- [Dostawcy modeli](/pl/concepts/model-providers) - Przegląd wszystkich dostawców
- [Wybór modeli](/pl/concepts/models) - Jak wybierać modele
- [Konfiguracja](/pl/gateway/configuration) - Pełna dokumentacja konfiguracji
- [Model Providers](/pl/concepts/model-providers) - Przegląd wszystkich providerów
- [Model Selection](/pl/concepts/models) - Jak wybierać modele
- [Configuration](/pl/gateway/configuration) - Pełna dokumentacja konfiguracji