From d62407f71091e50f12c318bbfe99f4e6d51d3151 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Wed, 8 Apr 2026 09:50:47 +0000 Subject: [PATCH] chore(i18n): refresh pl translations --- docs/pl/channels/discord.md | 430 +++++----- docs/pl/concepts/dreaming.md | 125 +-- docs/pl/gateway/configuration-reference.md | 867 +++++++++++---------- docs/pl/plugins/sdk-migration.md | 466 +++++------ docs/pl/plugins/sdk-overview.md | 503 ++++++------ docs/pl/providers/google.md | 95 +-- docs/pl/providers/ollama.md | 110 ++- 7 files changed, 1312 insertions(+), 1284 deletions(-) diff --git a/docs/pl/channels/discord.md b/docs/pl/channels/discord.md index ead4a68c0..e42a6395c 100644 --- a/docs/pl/channels/discord.md +++ b/docs/pl/channels/discord.md @@ -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. DM-y Discord domyślnie działają w trybie parowania. - - Natywne działanie poleceń i katalog poleceń. + + Natywne zachowanie poleceń i katalog poleceń. - Diagnostyka i przepływ naprawy między kanałami. + Diagnostyka międzykanałowa i przepływ naprawczy. @@ -40,8 +40,8 @@ Musisz utworzyć nową aplikację z botem, dodać bota do swojego serwera i spar - - Nadal na stronie **Bot**, przewiń w dół do **Privileged Gateway Intents** i włącz: + + 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 - 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**. - Wbrew nazwie spowoduje to wygenerowanie pierwszego tokena — nic nie jest „resetowane”. + Mimo nazwy spowoduje to wygenerowanie Twojego pierwszego tokena — nic nie jest „resetowane”. - 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. - - Kliknij **OAuth2** na pasku bocznym. Wygenerujesz URL zaproszenia z odpowiednimi uprawnieniami do dodania bota do swojego 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. - - Po powrocie do aplikacji Discord musisz włączyć Developer Mode, aby móc kopiować wewnętrzne 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. - 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. - 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`. @@ -118,9 +118,9 @@ openclaw gateway - 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 `` i Server ID ``.” + > "Ustawiłem już token mojego bota Discord w konfiguracji. Dokończ proszę konfigurację Discord za pomocą User ID `` i Server ID ``." 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). @@ -154,13 +154,13 @@ DISCORD_BOT_TOKEN=... - 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. Wyślij kod parowania do swojego agenta na istniejącym kanale: - > „Zatwierdź ten kod parowania Discord: ``” + > "Zatwierdź ten kod parowania Discord: ``" @@ -174,29 +174,29 @@ openclaw pairing approve discord 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. -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. -## 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. - 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. - > „Dodaj mój Discord Server ID `` do listy dozwolonych serwerów” + > "Dodaj moje Discord Server ID `` do listy dozwolonych serwerów" - + ```json5 { @@ -219,14 +219,14 @@ Gdy DM-y już działają, możesz skonfigurować swój serwer Discord jako pełn - - 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ść. + + 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ść. - > „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" - + 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 - - Domyślnie pamięć długoterminowa (`MEMORY.md`) jest ładowana tylko w sesjach DM. Kanały serwerowe nie ładują automatycznie `MEMORY.md`. + + Domyślnie pamięć długoterminowa (MEMORY.md) jest ładowana tylko w sesjach DM. Kanały serwera nie ładują automatycznie MEMORY.md. - > „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." - 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. -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::discord:channel:`). +- 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::discord:channel:`). - Grupowe DM-y są domyślnie ignorowane (`channels.discord.dm.groupEnabled=false`). -- Natywne polecenia slash działają w odizolowanych sesjach poleceń (`agent::discord:slash:`), nadal przenosząc `CommandTargetSessionKey` do kierowanej sesji rozmowy. +- Natywne polecenia ukośnikowe działają w izolowanych sesjach poleceń (`agent::discord:slash:`), 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:`), 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: \ --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: \ --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:`). +Nadrzędne fora nie akceptują komponentów Discord. Jeśli potrzebujesz komponentów, wyślij do samego wątku (`channel:`). ## 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 ją 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://`) -- 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://`) +- 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: - `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:` - 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ł. - + 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`. - 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 też 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 - + 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. -## 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 - - Discord obsługuje znaczniki odpowiedzi w wyjściu agenta: + + Discord obsługuje tagi odpowiedzi w danych wyjściowych agenta: - `[[reply_to_current]]` - `[[reply_to:]]` - 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. - 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. @@ -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[""].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. - 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 ` 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 ` sprawdź/zaktualizuj automatyczne odwiązywanie po bezczynności dla powiązań focus - - `/session max-age ` sprawdź/zaktualizuj twardy maksymalny wiek dla powiązań focus + - `/session idle ` sprawdź/zaktualizuj automatyczne odwiązywanie po bezczynności dla powiązań z fokusem + - `/session max-age ` 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). - 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ń. @@ -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..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. `ackReaction` wysyła emoji potwierdzenia, gdy OpenClaw przetwarza wiadomość przychodzącą. - Kolejność rozstrzygania: + Kolejność rozwiązywania: - `channels.discord.accounts..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. @@ -809,7 +809,7 @@ Domyślne ustawienia poleceń slash: 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: - 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: - 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: - 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: - 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) @@ -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..ui.components.accentColor`. +- Ustawienie per konto: `channels.discord.accounts..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 - + - 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 @@ -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 - + 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 - + 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..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..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. - + 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ń. - 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` - 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. - + - - 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) -## 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) diff --git a/docs/pl/concepts/dreaming.md b/docs/pl/concepts/dreaming.md index a6d7759fe..ef708543a 100644 --- a/docs/pl/concepts/dreaming.md +++ b/docs/pl/concepts/dreaming.md @@ -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//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//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) diff --git a/docs/pl/gateway/configuration-reference.md b/docs/pl/gateway/configuration-reference.md index 3b5746230..599524774 100644 --- a/docs/pl/gateway/configuration-reference.md +++ b/docs/pl/gateway/configuration-reference.md @@ -1,70 +1,70 @@ --- read_when: - - Potrzebujesz dokładnej semantyki konfiguracji lub wartości domyślnych na poziomie pól + - Potrzebujesz dokładnej semantyki pól konfiguracji lub wartości domyślnych - Weryfikujesz bloki konfiguracji kanałów, modeli, gateway lub narzędzi -summary: Dokumentacja referencyjna konfiguracji Gateway dla podstawowych kluczy OpenClaw, wartości domyślnych i odnośników do dedykowanych referencji podsystemów -title: Dokumentacja referencyjna konfiguracji +summary: Odwołanie do konfiguracji Gateway dla podstawowych kluczy OpenClaw, wartości domyślnych i linków do dedykowanych odwołań podsystemów +title: Odwołanie do konfiguracji x-i18n: - generated_at: "2026-04-08T06:06:31Z" + generated_at: "2026-04-08T09:50:46Z" model: gpt-5.4 provider: openai - source_hash: 2f9ab34fb56897a77cb038d95bea21e8530d8f0402b66d1ee97c73822a1e8fd4 + source_hash: fd5f69050455e610fc7c825d95f546a16aa867b8a9c0d692a48de36419b0afc2 source_path: gateway/configuration-reference.md workflow: 15 --- -# Dokumentacja referencyjna konfiguracji +# Odwołanie do konfiguracji -Podstawowa dokumentacja referencyjna konfiguracji dla `~/.openclaw/openclaw.json`. Aby zobaczyć omówienie zorientowane na zadania, przejdź do [Configuration](/pl/gateway/configuration). +Podstawowe odwołanie do konfiguracji dla `~/.openclaw/openclaw.json`. Przegląd zorientowany na zadania znajdziesz w [Configuration](/pl/gateway/configuration). -Ta strona obejmuje główne powierzchnie konfiguracji OpenClaw i odsyła dalej, gdy podsystem ma własną, bardziej szczegółową dokumentację referencyjną. **Nie** próbuje umieszczać na jednej stronie pełnego katalogu poleceń należących do kanałów/pluginów ani wszystkich szczegółowych ustawień memory/QMD. +Ta strona opisuje główne powierzchnie konfiguracji OpenClaw i odsyła dalej, gdy podsystem ma własne, bardziej szczegółowe odwołanie. **Nie** próbuje umieszczać w jednym miejscu każdego katalogu poleceń należącego do kanału/pluginu ani każdej zaawansowanej opcji pamięci/QMD. -Prawda w kodzie: +Źródło prawdy w kodzie: -- `openclaw config schema` wypisuje bieżący JSON Schema używany do walidacji i Control UI, z dołączonymi metadanymi bundled/plugin/channel, gdy są dostępne -- `config.schema.lookup` zwraca jeden węzeł schematu ograniczony do ścieżki dla narzędzi do szczegółowej eksploracji +- `openclaw config schema` wypisuje aktywny JSON Schema używany do walidacji i Control UI, z dołączonymi metadanymi bundled/plugin/channel, gdy są dostępne +- `config.schema.lookup` zwraca pojedynczy węzeł schematu ograniczony do ścieżki dla narzędzi do szczegółowej analizy - `pnpm config:docs:check` / `pnpm config:docs:gen` weryfikują skrót bazowy dokumentacji konfiguracji względem bieżącej powierzchni schematu -Dedykowane szczegółowe dokumentacje referencyjne: +Dedykowane szczegółowe odwołania: -- [Memory configuration reference](/pl/reference/memory-config) dla `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` oraz konfiguracji dreaming w `plugins.entries.memory-core.config.dreaming` +- [Odwołanie do konfiguracji pamięci](/pl/reference/memory-config) dla `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` oraz konfiguracji dreaming w `plugins.entries.memory-core.config.dreaming` - [Slash Commands](/pl/tools/slash-commands) dla bieżącego katalogu wbudowanych + bundled poleceń -- strony właścicieli kanałów/pluginów dla powierzchni poleceń specyficznych dla kanałów +- strony właściciela kanału/pluginu dla powierzchni poleceń specyficznych dla kanału -Format konfiguracji to **JSON5** (dozwolone komentarze + przecinki końcowe). Wszystkie pola są opcjonalne — OpenClaw używa bezpiecznych wartości domyślnych, gdy są pominięte. +Format konfiguracji to **JSON5** (dozwolone komentarze + przecinki końcowe). Wszystkie pola są opcjonalne — OpenClaw używa bezpiecznych wartości domyślnych, gdy zostały pominięte. --- ## Kanały -Każdy kanał uruchamia się automatycznie, gdy istnieje jego sekcja konfiguracji (chyba że `enabled: false`). +Każdy kanał uruchamia się automatycznie, gdy jego sekcja konfiguracji istnieje (chyba że `enabled: false`). -### Dostęp do wiadomości prywatnych i grup +### Dostęp do DM i grup -Wszystkie kanały obsługują zasady dla wiadomości prywatnych i grup: +Wszystkie kanały obsługują zasady DM i zasady grup: -| Zasada DM | Zachowanie | -| ------------------- | --------------------------------------------------------------- | -| `pairing` (domyślne) | Nieznani nadawcy otrzymują jednorazowy kod parowania; właściciel musi zatwierdzić | -| `allowlist` | Tylko nadawcy z `allowFrom` (lub sparowanego magazynu dozwolonych) | -| `open` | Zezwól na wszystkie przychodzące wiadomości prywatne (wymaga `allowFrom: ["*"]`) | -| `disabled` | Ignoruj wszystkie przychodzące wiadomości prywatne | +| Zasada DM | Zachowanie | +| ------------------- | -------------------------------------------------------------- | +| `pairing` (domyślna) | Nieznani nadawcy otrzymują jednorazowy kod parowania; właściciel musi zatwierdzić | +| `allowlist` | Tylko nadawcy z `allowFrom` (lub sparowanego magazynu zezwoleń) | +| `open` | Zezwalaj na wszystkie przychodzące DM (wymaga `allowFrom: ["*"]`) | +| `disabled` | Ignoruj wszystkie przychodzące DM | -| Zasada grup | Zachowanie | -| -------------------- | ------------------------------------------------------ | -| `allowlist` (domyślne) | Tylko grupy pasujące do skonfigurowanej listy dozwolonych | -| `open` | Pomija listy dozwolonych dla grup (nadal obowiązuje wymóg wzmianki) | -| `disabled` | Blokuje wszystkie wiadomości grupowe/pokojowe | +| Zasada grupy | Zachowanie | +| --------------------- | ----------------------------------------------------- | +| `allowlist` (domyślna) | Tylko grupy pasujące do skonfigurowanej listy zezwoleń | +| `open` | Pomijaj listy zezwoleń grup (nadal obowiązuje wymóg wzmianki) | +| `disabled` | Blokuj wszystkie wiadomości grupowe/pokojów | `channels.defaults.groupPolicy` ustawia wartość domyślną, gdy `groupPolicy` dostawcy nie jest ustawione. -Kody parowania wygasają po 1 godzinie. Oczekujące żądania parowania DM są ograniczone do **3 na kanał**. -Jeśli blok dostawcy całkowicie nie istnieje (`channels.` jest nieobecne), zasada grup w czasie działania wraca do `allowlist` (fail-closed) z ostrzeżeniem przy uruchamianiu. +Kody parowania wygasają po 1 godzinie. Oczekujące prośby o parowanie DM są ograniczone do **3 na kanał**. +Jeśli blok dostawcy całkowicie nie istnieje (`channels.` nieobecne), zasada grupy w czasie działania wraca do `allowlist` (fail-closed) z ostrzeżeniem przy uruchamianiu. ### Nadpisania modelu dla kanałów -Użyj `channels.modelByChannel`, aby przypiąć określone identyfikatory kanałów do modelu. Wartości akceptują `provider/model` lub skonfigurowane aliasy modeli. Mapowanie kanałów jest stosowane, gdy sesja nie ma już nadpisania modelu (na przykład ustawionego przez `/model`). +Użyj `channels.modelByChannel`, aby przypiąć określone identyfikatory kanałów do modelu. Wartości akceptują `provider/model` lub skonfigurowane aliasy modeli. Mapowanie kanałów ma zastosowanie, gdy sesja nie ma już nadpisania modelu (na przykład ustawionego przez `/model`). ```json5 { @@ -87,7 +87,7 @@ Użyj `channels.modelByChannel`, aby przypiąć określone identyfikatory kanał ### Domyślne ustawienia kanałów i heartbeat -Użyj `channels.defaults` dla współdzielonego zachowania zasad grup i heartbeat we wszystkich dostawcach: +Użyj `channels.defaults` dla współdzielonych zasad grup i zachowania heartbeat między dostawcami: ```json5 { @@ -106,10 +106,10 @@ Użyj `channels.defaults` dla współdzielonego zachowania zasad grup i heartbea ``` - `channels.defaults.groupPolicy`: zapasowa zasada grup, gdy `groupPolicy` na poziomie dostawcy nie jest ustawione. -- `channels.defaults.contextVisibility`: domyślny tryb widoczności kontekstu uzupełniającego dla wszystkich kanałów. Wartości: `all` (domyślnie, uwzględnij cały cytowany/wątkowy/historyczny kontekst), `allowlist` (uwzględnij kontekst tylko od nadawców z listy dozwolonych), `allowlist_quote` (jak allowlist, ale zachowuje jawny kontekst cytatu/odpowiedzi). Nadpisanie per kanał: `channels..contextVisibility`. -- `channels.defaults.heartbeat.showOk`: uwzględniaj zdrowe statusy kanałów w wynikach heartbeat. -- `channels.defaults.heartbeat.showAlerts`: uwzględniaj statusy obniżonej sprawności/błędów w wynikach heartbeat. -- `channels.defaults.heartbeat.useIndicator`: renderuj zwięzłe wyniki heartbeat w stylu wskaźnika. +- `channels.defaults.contextVisibility`: domyślny tryb widoczności uzupełniającego kontekstu dla wszystkich kanałów. Wartości: `all` (domyślnie, uwzględnij cały kontekst cytatów/wątków/historii), `allowlist` (uwzględnij tylko kontekst od nadawców z listy zezwoleń), `allowlist_quote` (jak allowlist, ale zachowaj jawny kontekst cytatu/odpowiedzi). Nadpisanie per kanał: `channels..contextVisibility`. +- `channels.defaults.heartbeat.showOk`: uwzględnij zdrowe statusy kanałów w wyjściu heartbeat. +- `channels.defaults.heartbeat.showAlerts`: uwzględnij pogorszone/błędne statusy kanałów w wyjściu heartbeat. +- `channels.defaults.heartbeat.useIndicator`: renderuj kompaktowe wyjście heartbeat w stylu wskaźnika. ### WhatsApp @@ -165,8 +165,8 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa ``` - Polecenia wychodzące domyślnie używają konta `default`, jeśli istnieje; w przeciwnym razie pierwszego skonfigurowanego identyfikatora konta (posortowanego). -- Opcjonalne `channels.whatsapp.defaultAccount` nadpisuje ten domyślny wybór zapasowy, gdy odpowiada skonfigurowanemu identyfikatorowi konta. -- Starszy katalog uwierzytelniania Baileys dla pojedynczego konta jest migrowany przez `openclaw doctor` do `whatsapp/default`. +- Opcjonalne `channels.whatsapp.defaultAccount` nadpisuje ten domyślny wybór zapasowego konta, gdy pasuje do skonfigurowanego identyfikatora konta. +- Starszy katalog autoryzacji Baileys dla pojedynczego konta jest migrowany przez `openclaw doctor` do `whatsapp/default`. - Nadpisania per konto: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`. @@ -185,7 +185,7 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa "*": { requireMention: true }, "-1001234567890": { allowFrom: ["@admin"], - systemPrompt: "Odpowiedzi mają być krótkie.", + systemPrompt: "Zachowuj zwięzłość odpowiedzi.", topics: { "99": { requireMention: false, @@ -202,7 +202,7 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa historyLimit: 50, replyToMode: "first", // off | first | all | batched linkPreview: true, - streaming: "partial", // off | partial | block | progress (domyślnie: off; włącz jawnie, aby uniknąć limitów edycji podglądu) + streaming: "partial", // off | partial | block | progress (domyślnie: off; włącz jawnie, aby uniknąć limitów szybkości podglądu-edycji) actions: { reactions: true, sendMessage: true }, reactionNotifications: "own", // off | own | all mediaMaxMb: 100, @@ -225,12 +225,12 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa } ``` -- Token bota: `channels.telegram.botToken` lub `channels.telegram.tokenFile` (tylko zwykły plik; dowiązania symboliczne są odrzucane), z `TELEGRAM_BOT_TOKEN` jako wartością zapasową dla konta domyślnego. -- Opcjonalne `channels.telegram.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. -- W konfiguracjach wielokontowych (2+ identyfikatory kont) ustaw jawne domyślne (`channels.telegram.defaultAccount` lub `channels.telegram.accounts.default`), aby uniknąć routingu zapasowego; `openclaw doctor` ostrzega, gdy tego brakuje lub jest nieprawidłowe. +- Token bota: `channels.telegram.botToken` lub `channels.telegram.tokenFile` (tylko zwykły plik; symlinki są odrzucane), z `TELEGRAM_BOT_TOKEN` jako wartością zapasową dla konta domyślnego. +- Opcjonalne `channels.telegram.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. +- W konfiguracjach wielokontowych (2+ identyfikatory kont) ustaw jawne konto domyślne (`channels.telegram.defaultAccount` lub `channels.telegram.accounts.default`), aby uniknąć routingu zapasowego; `openclaw doctor` ostrzega, gdy tego brakuje lub jest nieprawidłowe. - `configWrites: false` blokuje zapisy konfiguracji inicjowane z Telegrama (migracje identyfikatorów supergrup, `/config set|unset`). - Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` konfigurują trwałe powiązania ACP dla tematów forum (użyj kanonicznego `chatId:topic:topicId` w `match.peer.id`). Semantyka pól jest współdzielona w [ACP Agents](/pl/tools/acp-agents#channel-specific-settings). -- Podglądy streamingu w Telegramie używają `sendMessage` + `editMessageText` (działa w czatach prywatnych i grupowych). +- Podglądy strumieni Telegram używają `sendMessage` + `editMessageText` (działa w czatach bezpośrednich i grupowych). - Zasady ponawiania: zobacz [Retry policy](/pl/concepts/retry). ### Discord @@ -334,35 +334,35 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa ``` - Token: `channels.discord.token`, z `DISCORD_BOT_TOKEN` jako wartością zapasową dla konta domyślnego. -- Bezpośrednie wywołania wychodzące, które podają jawny `token` Discorda, używają tego tokena do wywołania; ustawienia retry/policy konta nadal pochodzą z wybranego konta w aktywnym snapshotcie czasu działania. -- Opcjonalne `channels.discord.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. -- Używaj `user:` (DM) lub `channel:` (kanał serwera) jako celów dostarczania; same identyfikatory liczbowe są odrzucane. -- Slugi serwerów są pisane małymi literami, a spacje zastępowane przez `-`; klucze kanałów używają wersji slug nazwy (bez `#`). Preferuj identyfikatory serwerów. -- Wiadomości autorstwa botów są domyślnie ignorowane. `allowBots: true` włącza je; użyj `allowBots: "mentions"`, aby akceptować tylko wiadomości botów, które wspominają bota (własne wiadomości są nadal filtrowane). -- `channels.discord.guilds..ignoreOtherMentions` (oraz nadpisania na poziomie kanału) odrzuca wiadomości, które wspominają innego użytkownika lub rolę, ale nie bota (z wyłączeniem @everyone/@here). +- Bezpośrednie wywołania wychodzące, które podają jawny `token` Discorda, używają tego tokenu do wywołania; ustawienia ponawiania/polityk konta nadal pochodzą z wybranego konta w aktywnej migawce runtime. +- Opcjonalne `channels.discord.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. +- Używaj `user:` (DM) lub `channel:` (kanał guild); same identyfikatory numeryczne są odrzucane. +- Slugi guild są pisane małymi literami, a spacje zastępowane przez `-`; klucze kanałów używają wersji slug nazwy (bez `#`). Preferuj identyfikatory guild. +- Wiadomości napisane przez boty są domyślnie ignorowane. `allowBots: true` je włącza; użyj `allowBots: "mentions"`, aby akceptować tylko wiadomości od botów, które wzmiankują bota (własne wiadomości nadal są filtrowane). +- `channels.discord.guilds..ignoreOtherMentions` (oraz nadpisania kanałów) odrzuca wiadomości, które wzmiankują innego użytkownika lub rolę, ale nie bota (z wyłączeniem @everyone/@here). - `maxLinesPerMessage` (domyślnie 17) dzieli wysokie wiadomości nawet wtedy, gdy mają mniej niż 2000 znaków. -- `channels.discord.threadBindings` kontroluje routing powiązany z wątkami Discorda: - - `enabled`: nadpisanie Discorda dla funkcji sesji powiązanych z wątkami (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` oraz dostarczanie/routing związane z powiązaniami) - - `idleHours`: nadpisanie Discorda dla automatycznego odwiązywania z powodu bezczynności w godzinach (`0` wyłącza) - - `maxAgeHours`: nadpisanie Discorda dla twardego maksymalnego wieku w godzinach (`0` wyłącza) - - `spawnSubagentSessions`: przełącznik opt-in dla automatycznego tworzenia/powiązywania wątków przez `sessions_spawn({ thread: true })` +- `channels.discord.threadBindings` steruje routingiem powiązanym z wątkami Discorda: + - `enabled`: nadpisanie Discorda dla funkcji sesji powiązanych z wątkiem (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` oraz powiązane dostarczanie/routing) + - `idleHours`: nadpisanie Discorda dla automatycznego odpinania po bezczynności w godzinach (`0` wyłącza) + - `maxAgeHours`: nadpisanie Discorda dla sztywnego maksymalnego wieku w godzinach (`0` wyłącza) + - `spawnSubagentSessions`: przełącznik opt-in dla automatycznego tworzenia/powiązania wątku przez `sessions_spawn({ thread: true })` - Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` konfigurują trwałe powiązania ACP dla kanałów i wątków (użyj identyfikatora kanału/wątku w `match.peer.id`). Semantyka pól jest współdzielona w [ACP Agents](/pl/tools/acp-agents#channel-specific-settings). -- `channels.discord.ui.components.accentColor` ustawia kolor akcentu dla kontenerów komponentów Discord v2. -- `channels.discord.voice` włącza rozmowy głosowe na kanałach Discorda oraz opcjonalne automatyczne dołączanie + nadpisania TTS. +- `channels.discord.ui.components.accentColor` ustawia kolor akcentu dla kontenerów Discord components v2. +- `channels.discord.voice` włącza rozmowy głosowe w kanałach Discorda oraz opcjonalne automatyczne dołączanie + nadpisania TTS. - `channels.discord.voice.daveEncryption` i `channels.discord.voice.decryptionFailureTolerance` są przekazywane do opcji DAVE `@discordjs/voice` (domyślnie `true` i `24`). -- OpenClaw dodatkowo próbuje odzyskać odbiór głosu przez opuszczenie i ponowne dołączenie do sesji głosowej po powtarzających się błędach odszyfrowania. -- `channels.discord.streaming` to kanoniczny klucz trybu streamingu. Starsze wartości `streamMode` oraz logiczne `streaming` są automatycznie migrowane. -- `channels.discord.autoPresence` mapuje dostępność czasu działania na obecność bota (healthy => online, degraded => idle, exhausted => dnd) i pozwala na opcjonalne nadpisania tekstu statusu. +- OpenClaw dodatkowo próbuje odzyskać odbiór głosu przez opuszczenie i ponowne dołączenie do sesji głosowej po wielokrotnych błędach odszyfrowania. +- `channels.discord.streaming` to kanoniczny klucz trybu strumieniowania. Starsze wartości `streamMode` i boolowskie `streaming` są automatycznie migrowane. +- `channels.discord.autoPresence` mapuje dostępność runtime na obecność bota (healthy => online, degraded => idle, exhausted => dnd) i umożliwia opcjonalne nadpisania tekstu statusu. - `channels.discord.dangerouslyAllowNameMatching` ponownie włącza dopasowywanie po zmiennej nazwie/tagu (tryb zgodności break-glass). -- `channels.discord.execApprovals`: natywne dla Discorda dostarczanie zatwierdzeń `exec` i autoryzacja zatwierdzających. - - `enabled`: `true`, `false` lub `"auto"` (domyślnie). W trybie auto zatwierdzenia `exec` aktywują się, gdy zatwierdzający mogą zostać rozwiązani z `approvers` lub `commands.ownerAllowFrom`. - - `approvers`: identyfikatory użytkowników Discorda, którzy mogą zatwierdzać żądania `exec`. Gdy pominięte, używa `commands.ownerAllowFrom`. - - `agentFilter`: opcjonalna lista dozwolonych identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów. +- `channels.discord.execApprovals`: natywne dla Discorda dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających. + - `enabled`: `true`, `false` lub `"auto"` (domyślnie). W trybie auto zatwierdzenia exec aktywują się, gdy zatwierdzających można rozwiązać z `approvers` lub `commands.ownerAllowFrom`. + - `approvers`: identyfikatory użytkowników Discorda uprawnionych do zatwierdzania żądań exec. Gdy pominięte, używane jest `commands.ownerAllowFrom`. + - `agentFilter`: opcjonalna lista zezwoleń identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów. - `sessionFilter`: opcjonalne wzorce kluczy sesji (podciąg lub regex). - - `target`: gdzie wysyłać prompty zatwierdzenia. `"dm"` (domyślnie) wysyła do wiadomości prywatnych zatwierdzających, `"channel"` wysyła do kanału źródłowego, `"both"` wysyła do obu. Gdy target zawiera `"channel"`, przyciski mogą być używane tylko przez rozwiązanych zatwierdzających. - - `cleanupAfterResolve`: gdy `true`, usuwa wiadomości prywatne z zatwierdzeniami po zatwierdzeniu, odmowie lub przekroczeniu czasu. + - `target`: gdzie wysyłać prompty zatwierdzeń. `"dm"` (domyślnie) wysyła do DM zatwierdzających, `"channel"` wysyła do kanału źródłowego, `"both"` wysyła do obu. Gdy target obejmuje `"channel"`, przyciski mogą być używane tylko przez rozpoznanych zatwierdzających. + - `cleanupAfterResolve`: gdy `true`, usuwa DM zatwierdzeń po zatwierdzeniu, odrzuceniu lub przekroczeniu czasu. -**Tryby powiadomień o reakcjach:** `off` (brak), `own` (wiadomości bota, domyślnie), `all` (wszystkie wiadomości), `allowlist` (z `guilds..users` dla wszystkich wiadomości). +**Tryby powiadomień o reakcjach:** `off` (brak), `own` (wiadomości bota, domyślnie), `all` (wszystkie wiadomości), `allowlist` (od `guilds..users` we wszystkich wiadomościach). ### Google Chat @@ -393,11 +393,11 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa } ``` -- JSON konta usługi: inline (`serviceAccount`) lub plikowo (`serviceAccountFile`). -- Obsługiwany jest również SecretRef dla konta usługi (`serviceAccountRef`). -- Wartości zapasowe z env: `GOOGLE_CHAT_SERVICE_ACCOUNT` lub `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. +- JSON konta usługi: inline (`serviceAccount`) lub z pliku (`serviceAccountFile`). +- Obsługiwany jest także SecretRef konta usługi (`serviceAccountRef`). +- Zapasowe wartości z env: `GOOGLE_CHAT_SERVICE_ACCOUNT` lub `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. - Używaj `spaces/` lub `users/` jako celów dostarczania. -- `channels.googlechat.dangerouslyAllowNameMatching` ponownie włącza dopasowywanie po zmiennym principalu e-mail (tryb zgodności break-glass). +- `channels.googlechat.dangerouslyAllowNameMatching` ponownie włącza dopasowywanie po zmiennym principalu email (tryb zgodności break-glass). ### Slack @@ -449,7 +449,7 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa chunkMode: "length", streaming: { mode: "partial", // off | partial | block | progress - nativeTransport: true, // używaj natywnego API streamingu Slacka, gdy mode=partial + nativeTransport: true, // używaj natywnego API strumieniowania Slacka, gdy mode=partial }, mediaMaxMb: 20, execApprovals: { @@ -464,30 +464,35 @@ WhatsApp działa przez kanał web gateway (`Baileys Web`). Uruchamia się automa } ``` -- **Tryb socket** wymaga zarówno `botToken`, jak i `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` jako zapas z env dla konta domyślnego). +- **Tryb Socket** wymaga zarówno `botToken`, jak i `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` jako zapasowe wartości env dla konta domyślnego). - **Tryb HTTP** wymaga `botToken` oraz `signingSecret` (na poziomie głównym lub per konto). -- `botToken`, `appToken`, `signingSecret` i `userToken` akceptują zwykłe ciągi tekstowe lub obiekty SecretRef. -- Snapshoty kont Slacka udostępniają pola źródła/statusu dla poszczególnych poświadczeń, takie jak `botTokenSource`, `botTokenStatus`, `appTokenStatus` oraz, w trybie HTTP, `signingSecretStatus`. `configured_unavailable` oznacza, że konto jest skonfigurowane przez SecretRef, ale bieżąca ścieżka polecenia/czasu działania nie mogła rozwiązać wartości sekretu. +- `botToken`, `appToken`, `signingSecret` i `userToken` akceptują zwykłe + ciągi znaków lub obiekty SecretRef. +- Migawki kont Slacka udostępniają pola źródła/statusu per poświadczenie, takie jak + `botTokenSource`, `botTokenStatus`, `appTokenStatus` oraz, w trybie HTTP, + `signingSecretStatus`. `configured_unavailable` oznacza, że konto jest + skonfigurowane przez SecretRef, ale bieżąca ścieżka polecenia/runtime nie mogła + rozwiązać wartości sekretu. - `configWrites: false` blokuje zapisy konfiguracji inicjowane ze Slacka. -- Opcjonalne `channels.slack.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. -- `channels.slack.streaming.mode` to kanoniczny klucz trybu streamingu Slacka. `channels.slack.streaming.nativeTransport` kontroluje natywny transport streamingu Slacka. Starsze wartości `streamMode`, logiczne `streaming` i `nativeStreaming` są automatycznie migrowane. +- Opcjonalne `channels.slack.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. +- `channels.slack.streaming.mode` to kanoniczny klucz trybu strumieniowania Slacka. `channels.slack.streaming.nativeTransport` steruje natywnym transportem strumieniowania Slacka. Starsze wartości `streamMode`, boolowskie `streaming` i `nativeStreaming` są automatycznie migrowane. - Używaj `user:` (DM) lub `channel:` jako celów dostarczania. **Tryby powiadomień o reakcjach:** `off`, `own` (domyślnie), `all`, `allowlist` (z `reactionAllowlist`). -**Izolacja sesji w wątkach:** `thread.historyScope` jest per wątek (domyślnie) lub współdzielone w całym kanale. `thread.inheritParent` kopiuje transkrypt kanału nadrzędnego do nowych wątków. +**Izolacja sesji wątków:** `thread.historyScope` jest per wątek (domyślnie) lub współdzielone w ramach kanału. `thread.inheritParent` kopiuje transkrypt kanału nadrzędnego do nowych wątków. -- Natywny streaming Slacka oraz status w stylu asystenta Slacka „pisze...” w wątku wymagają celu odpowiedzi w wątku. Wiadomości prywatne najwyższego poziomu domyślnie pozostają poza wątkiem, więc używają `typingReaction` lub zwykłego dostarczania zamiast podglądu w stylu wątku. -- `typingReaction` dodaje tymczasową reakcję do przychodzącej wiadomości Slacka, gdy odpowiedź jest przetwarzana, a następnie usuwa ją po zakończeniu. Użyj skrótu emoji Slacka, na przykład `"hourglass_flowing_sand"`. -- `channels.slack.execApprovals`: natywne dla Slacka dostarczanie zatwierdzeń `exec` i autoryzacja zatwierdzających. Ten sam schemat co Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (identyfikatory użytkowników Slacka), `agentFilter`, `sessionFilter` oraz `target` (`"dm"`, `"channel"` lub `"both"`). +- Natywne strumieniowanie Slacka oraz status wątku Slacka w stylu „is typing...” wymagają docelowego wątku odpowiedzi. DM najwyższego poziomu domyślnie pozostają poza wątkiem, więc używają `typingReaction` lub zwykłego dostarczania zamiast podglądu w stylu wątku. +- `typingReaction` dodaje tymczasową reakcję do przychodzącej wiadomości Slacka podczas generowania odpowiedzi, a następnie usuwa ją po zakończeniu. Użyj shortcode emoji Slacka, na przykład `"hourglass_flowing_sand"`. +- `channels.slack.execApprovals`: natywne dla Slacka dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających. Ten sam schemat co Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (identyfikatory użytkowników Slacka), `agentFilter`, `sessionFilter` i `target` (`"dm"`, `"channel"` lub `"both"`). -| Grupa akcji | Domyślnie | Uwagi | -| ----------- | --------- | --------------------- | +| Grupa akcji | Domyślnie | Uwagi | +| ----------- | --------- | ---------------------- | | reactions | włączone | Reagowanie + lista reakcji | | messages | włączone | Odczyt/wysyłanie/edycja/usuwanie | -| pins | włączone | Przypinanie/odpinanie/listowanie | -| memberInfo | włączone | Informacje o członku | -| emojiList | włączone | Lista własnych emoji | +| pins | włączone | Przypnij/odepnij/lista | +| memberInfo | włączone | Informacje o członku | +| emojiList | włączone | Lista niestandardowych emoji | ### Mattermost @@ -526,14 +531,18 @@ Tryby czatu: `oncall` (odpowiada na wzmiankę @, domyślnie), `onmessage` (każd Gdy natywne polecenia Mattermost są włączone: - `commands.callbackPath` musi być ścieżką (na przykład `/api/channels/mattermost/command`), a nie pełnym URL. -- `commands.callbackUrl` musi wskazywać endpoint Gateway OpenClaw i być osiągalny z serwera Mattermost. -- Natywne wywołania slash callback są uwierzytelniane za pomocą tokenów per polecenie zwracanych przez Mattermost podczas rejestracji poleceń slash. Jeśli rejestracja się nie powiedzie lub żadne polecenia nie zostaną aktywowane, OpenClaw odrzuci callbacki z komunikatem `Unauthorized: invalid command token.` -- Dla prywatnych/tailnet/wewnętrznych hostów callbacków Mattermost może wymagać, aby `ServiceSettings.AllowedUntrustedInternalConnections` zawierało host/domenę callbacku. - Używaj wartości host/domena, a nie pełnych URL. -- `channels.mattermost.configWrites`: zezwalaj lub zabraniaj zapisów konfiguracji inicjowanych z Mattermost. -- `channels.mattermost.requireMention`: wymagaj `@mention` przed odpowiedzią w kanałach. +- `commands.callbackUrl` musi wskazywać endpoint OpenClaw gateway i być osiągalny z serwera Mattermost. +- Natywne wywołania slash callback są uwierzytelniane przy użyciu tokenów per polecenie zwracanych + przez Mattermost podczas rejestracji poleceń slash. Jeśli rejestracja się nie powiedzie lub żadne + polecenia nie zostaną aktywowane, OpenClaw odrzuci callbacki z komunikatem + `Unauthorized: invalid command token.` +- Dla prywatnych/tailnet/wewnętrznych hostów callback Mattermost może wymagać, + aby `ServiceSettings.AllowedUntrustedInternalConnections` zawierało host/domenę callbacku. + Używaj wartości host/domena, a nie pełnych URL-i. +- `channels.mattermost.configWrites`: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych z Mattermost. +- `channels.mattermost.requireMention`: wymagaj `@mention` przed odpowiedzią na kanałach. - `channels.mattermost.groups..requireMention`: nadpisanie wymogu wzmianki per kanał (`"*"` dla domyślnego). -- Opcjonalne `channels.mattermost.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. +- Opcjonalne `channels.mattermost.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. ### Signal @@ -556,13 +565,13 @@ Gdy natywne polecenia Mattermost są włączone: **Tryby powiadomień o reakcjach:** `off`, `own` (domyślnie), `all`, `allowlist` (z `reactionAllowlist`). -- `channels.signal.account`: przypnij uruchamianie kanału do konkretnej tożsamości konta Signal. -- `channels.signal.configWrites`: zezwalaj lub zabraniaj zapisów konfiguracji inicjowanych z Signal. -- Opcjonalne `channels.signal.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. +- `channels.signal.account`: przypina uruchomienie kanału do określonej tożsamości konta Signal. +- `channels.signal.configWrites`: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych z Signal. +- Opcjonalne `channels.signal.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. ### BlueBubbles -BlueBubbles to zalecana ścieżka iMessage (wspierana przez plugin, konfigurowana w `channels.bluebubbles`). +BlueBubbles to zalecana ścieżka iMessage (oparta na pluginie, konfigurowana w `channels.bluebubbles`). ```json5 { @@ -577,14 +586,14 @@ BlueBubbles to zalecana ścieżka iMessage (wspierana przez plugin, konfigurowan } ``` -- Główne ścieżki kluczy opisane tutaj: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`. -- Opcjonalne `channels.bluebubbles.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. -- Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` mogą wiązać konwersacje BlueBubbles z trwałymi sesjami ACP. Użyj uchwytu BlueBubbles lub ciągu docelowego (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) w `match.peer.id`. Współdzielona semantyka pól: [ACP Agents](/pl/tools/acp-agents#channel-specific-settings). +- Podstawowe ścieżki kluczy opisane tutaj: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`. +- Opcjonalne `channels.bluebubbles.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. +- Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` mogą wiązać rozmowy BlueBubbles z trwałymi sesjami ACP. Użyj uchwytu BlueBubbles lub ciągu docelowego (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) w `match.peer.id`. Współdzielona semantyka pól: [ACP Agents](/pl/tools/acp-agents#channel-specific-settings). - Pełna konfiguracja kanału BlueBubbles jest opisana w [BlueBubbles](/pl/channels/bluebubbles). ### iMessage -OpenClaw uruchamia `imsg rpc` (JSON-RPC przez stdio). Nie wymaga demona ani portu. +OpenClaw uruchamia `imsg rpc` (JSON-RPC przez stdio). Nie jest wymagany daemon ani port. ```json5 { @@ -608,15 +617,15 @@ OpenClaw uruchamia `imsg rpc` (JSON-RPC przez stdio). Nie wymaga demona ani port } ``` -- Opcjonalne `channels.imessage.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. +- Opcjonalne `channels.imessage.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. - Wymaga Full Disk Access do bazy danych Messages. - Preferuj cele `chat_id:`. Użyj `imsg chats --limit 20`, aby wyświetlić listę czatów. - `cliPath` może wskazywać na wrapper SSH; ustaw `remoteHost` (`host` lub `user@host`) dla pobierania załączników przez SCP. - `attachmentRoots` i `remoteAttachmentRoots` ograniczają ścieżki przychodzących załączników (domyślnie: `/Users/*/Library/Messages/Attachments`). - SCP używa ścisłego sprawdzania klucza hosta, więc upewnij się, że klucz hosta pośredniczącego już istnieje w `~/.ssh/known_hosts`. -- `channels.imessage.configWrites`: zezwalaj lub zabraniaj zapisów konfiguracji inicjowanych z iMessage. -- Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` mogą wiązać konwersacje iMessage z trwałymi sesjami ACP. Użyj znormalizowanego uchwytu lub jawnego celu czatu (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) w `match.peer.id`. Współdzielona semantyka pól: [ACP Agents](/pl/tools/acp-agents#channel-specific-settings). +- `channels.imessage.configWrites`: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych z iMessage. +- Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` mogą wiązać rozmowy iMessage z trwałymi sesjami ACP. Użyj znormalizowanego uchwytu lub jawnego celu czatu (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) w `match.peer.id`. Współdzielona semantyka pól: [ACP Agents](/pl/tools/acp-agents#channel-specific-settings). @@ -629,7 +638,7 @@ exec ssh -T gateway-host imsg "$@" ### Matrix -Matrix jest wspierany przez rozszerzenie i konfigurowany w `channels.matrix`. +Matrix jest rozszerzeniem i jest konfigurowany w `channels.matrix`. ```json5 { @@ -661,23 +670,23 @@ Matrix jest wspierany przez rozszerzenie i konfigurowany w `channels.matrix`. - Uwierzytelnianie tokenem używa `accessToken`; uwierzytelnianie hasłem używa `userId` + `password`. - `channels.matrix.proxy` kieruje ruch HTTP Matrix przez jawny proxy HTTP(S). Nazwane konta mogą to nadpisać przez `channels.matrix.accounts..proxy`. -- `channels.matrix.network.dangerouslyAllowPrivateNetwork` zezwala na prywatne/wewnętrzne homeserwery. `proxy` i to ustawienie sieciowe opt-in są niezależnymi kontrolkami. +- `channels.matrix.network.dangerouslyAllowPrivateNetwork` pozwala na prywatne/wewnętrzne homeservery. `proxy` i to opt-in sieciowe są niezależnymi kontrolami. - `channels.matrix.defaultAccount` wybiera preferowane konto w konfiguracjach wielokontowych. - `channels.matrix.autoJoin` domyślnie ma wartość `off`, więc zaproszone pokoje i nowe zaproszenia w stylu DM są ignorowane, dopóki nie ustawisz `autoJoin: "allowlist"` z `autoJoinAllowlist` lub `autoJoin: "always"`. -- `channels.matrix.execApprovals`: natywne dla Matrix dostarczanie zatwierdzeń `exec` i autoryzacja zatwierdzających. - - `enabled`: `true`, `false` lub `"auto"` (domyślnie). W trybie auto zatwierdzenia `exec` aktywują się, gdy zatwierdzający mogą zostać rozwiązani z `approvers` lub `commands.ownerAllowFrom`. - - `approvers`: identyfikatory użytkowników Matrix (np. `@owner:example.org`) uprawnionych do zatwierdzania żądań `exec`. - - `agentFilter`: opcjonalna lista dozwolonych identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów. +- `channels.matrix.execApprovals`: natywne dla Matrix dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających. + - `enabled`: `true`, `false` lub `"auto"` (domyślnie). W trybie auto zatwierdzenia exec aktywują się, gdy zatwierdzających można rozwiązać z `approvers` lub `commands.ownerAllowFrom`. + - `approvers`: identyfikatory użytkowników Matrix (np. `@owner:example.org`) uprawnionych do zatwierdzania żądań exec. + - `agentFilter`: opcjonalna lista zezwoleń identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów. - `sessionFilter`: opcjonalne wzorce kluczy sesji (podciąg lub regex). - - `target`: gdzie wysyłać prompty zatwierdzenia. `"dm"` (domyślnie), `"channel"` (pokój źródłowy) lub `"both"`. + - `target`: gdzie wysyłać prompty zatwierdzeń. `"dm"` (domyślnie), `"channel"` (pokój źródłowy) lub `"both"`. - Nadpisania per konto: `channels.matrix.accounts..execApprovals`. -- `channels.matrix.dm.sessionScope` kontroluje, jak wiadomości prywatne Matrix są grupowane w sesje: `per-user` (domyślnie) współdzieli po routowanym peera, a `per-room` izoluje każdy pokój DM. -- Sondy statusu Matrix i wyszukiwania w katalogu na żywo używają tej samej polityki proxy co ruch czasu działania. -- Pełna konfiguracja Matrix, reguły kierowania i przykłady konfiguracji są opisane w [Matrix](/pl/channels/matrix). +- `channels.matrix.dm.sessionScope` steruje tym, jak DM Matrix grupują się w sesje: `per-user` (domyślnie) współdzieli według routowanego peer, podczas gdy `per-room` izoluje każdy pokój DM. +- Sondy statusu Matrix i wyszukiwania katalogowe na żywo używają tych samych zasad proxy co ruch runtime. +- Pełna konfiguracja Matrix, zasady kierowania i przykłady konfiguracji są opisane w [Matrix](/pl/channels/matrix). ### Microsoft Teams -Microsoft Teams jest wspierany przez rozszerzenie i konfigurowany w `channels.msteams`. +Microsoft Teams jest rozszerzeniem i jest konfigurowany w `channels.msteams`. ```json5 { @@ -685,19 +694,19 @@ Microsoft Teams jest wspierany przez rozszerzenie i konfigurowany w `channels.ms msteams: { enabled: true, configWrites: true, - // appId, appPassword, tenantId, webhook, zasady team/channel: + // appId, appPassword, tenantId, webhook, zasady zespołu/kanału: // zobacz /channels/msteams }, }, } ``` -- Główne ścieżki kluczy opisane tutaj: `channels.msteams`, `channels.msteams.configWrites`. -- Pełna konfiguracja Teams (poświadczenia, webhook, zasady DM/grup, nadpisania per team/per kanał) jest opisana w [Microsoft Teams](/pl/channels/msteams). +- Podstawowe ścieżki kluczy opisane tutaj: `channels.msteams`, `channels.msteams.configWrites`. +- Pełna konfiguracja Teams (poświadczenia, webhook, zasady DM/grup, nadpisania per zespół/per kanał) jest opisana w [Microsoft Teams](/pl/channels/msteams). ### IRC -IRC jest wspierany przez rozszerzenie i konfigurowany w `channels.irc`. +IRC jest rozszerzeniem i jest konfigurowany w `channels.irc`. ```json5 { @@ -718,9 +727,9 @@ IRC jest wspierany przez rozszerzenie i konfigurowany w `channels.irc`. } ``` -- Główne ścieżki kluczy opisane tutaj: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`. -- Opcjonalne `channels.irc.defaultAccount` nadpisuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. -- Pełna konfiguracja kanału IRC (host/port/TLS/kanały/listy dozwolonych/wymóg wzmianki) jest opisana w [IRC](/pl/channels/irc). +- Podstawowe ścieżki kluczy opisane tutaj: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`. +- Opcjonalne `channels.irc.defaultAccount` nadpisuje domyślny wybór konta, gdy pasuje do skonfigurowanego identyfikatora konta. +- Pełna konfiguracja kanału IRC (host/port/TLS/kanały/listy zezwoleń/wymóg wzmianki) jest opisana w [IRC](/pl/channels/irc). ### Wiele kont (wszystkie kanały) @@ -746,26 +755,26 @@ Uruchamiaj wiele kont na kanał (każde z własnym `accountId`): ``` - `default` jest używane, gdy `accountId` jest pominięte (CLI + routing). -- Tokeny z env mają zastosowanie tylko do konta **default**. +- Tokeny env dotyczą tylko konta **default**. - Bazowe ustawienia kanału mają zastosowanie do wszystkich kont, chyba że zostaną nadpisane per konto. - Użyj `bindings[].match.accountId`, aby kierować każde konto do innego agenta. -- Jeśli dodasz konto inne niż domyślne przez `openclaw channels add` (lub onboarding kanału), gdy nadal używasz jednokontowej konfiguracji kanału na poziomie głównym, OpenClaw najpierw promuje wartości jednokontowe z najwyższego poziomu, ograniczone do konta, do mapy kont kanału, aby oryginalne konto nadal działało. Większość kanałów przenosi je do `channels..accounts.default`; Matrix może zamiast tego zachować istniejący pasujący nazwany/domyslny cel. -- Istniejące powiązania tylko dla kanału (bez `accountId`) nadal będą pasować do konta domyślnego; powiązania ograniczone do konta pozostają opcjonalne. -- `openclaw doctor --fix` także naprawia mieszane kształty, przenosząc wartości jednokontowe z najwyższego poziomu, ograniczone do konta, do promowanego konta wybranego dla tego kanału. Większość kanałów używa `accounts.default`; Matrix może zachować istniejący pasujący nazwany/domyslny cel. +- Jeśli dodasz konto inne niż domyślne przez `openclaw channels add` (lub onboarding kanału), gdy nadal masz konfigurację kanału najwyższego poziomu dla pojedynczego konta, OpenClaw najpierw promuje wartości najwyższego poziomu dotyczące pojedynczego konta do mapy kont kanału, aby oryginalne konto nadal działało. Większość kanałów przenosi je do `channels..accounts.default`; Matrix może zamiast tego zachować istniejący pasujący nazwany/domyslny cel. +- Istniejące powiązania tylko kanałowe (bez `accountId`) nadal będą pasować do konta domyślnego; powiązania zakresowane kontem pozostają opcjonalne. +- `openclaw doctor --fix` również naprawia mieszane kształty, przenosząc wartości najwyższego poziomu dotyczące pojedynczego konta do promowanego konta wybranego dla tego kanału. Większość kanałów używa `accounts.default`; Matrix może zamiast tego zachować istniejący pasujący nazwany/domyslny cel. ### Inne kanały rozszerzeń -Wiele kanałów rozszerzeń jest konfigurowanych jako `channels.` i opisanych na dedykowanych stronach kanałów (na przykład Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat i Twitch). +Wiele kanałów rozszerzeń jest konfigurowanych jako `channels.` i opisanych na ich dedykowanych stronach kanałów (na przykład Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat i Twitch). Zobacz pełny indeks kanałów: [Channels](/pl/channels). ### Wymóg wzmianki w czatach grupowych -Wiadomości grupowe domyślnie **wymagają wzmianki** (metadane wzmianki lub bezpieczne wzorce regex). Dotyczy WhatsApp, Telegram, Discord, Google Chat i czatów grupowych iMessage. +Wiadomości grupowe domyślnie **wymagają wzmianki** (wzmianka z metadanych lub bezpieczne wzorce regex). Dotyczy WhatsApp, Telegram, Discord, Google Chat i czatów grupowych iMessage. **Typy wzmianek:** -- **Wzmianki w metadanych**: Natywne wzmianki @ platformy. Ignorowane w trybie self-chat WhatsApp. -- **Wzorce tekstowe**: Bezpieczne wzorce regex w `agents.list[].groupChat.mentionPatterns`. Nieprawidłowe wzorce i niebezpieczne zagnieżdżone powtórzenia są ignorowane. +- **Wzmianki z metadanych**: natywne wzmianki @ platformy. Ignorowane w trybie self-chat WhatsApp. +- **Wzorce tekstowe**: bezpieczne wzorce regex w `agents.list[].groupChat.mentionPatterns`. Nieprawidłowe wzorce i niebezpieczne zagnieżdżone powtórzenia są ignorowane. - Wymóg wzmianki jest egzekwowany tylko wtedy, gdy wykrycie jest możliwe (natywne wzmianki lub co najmniej jeden wzorzec). ```json5 @@ -779,7 +788,7 @@ Wiadomości grupowe domyślnie **wymagają wzmianki** (metadane wzmianki lub bez } ``` -`messages.groupChat.historyLimit` ustawia globalną wartość domyślną. Kanały mogą ją nadpisać przez `channels..historyLimit` (lub per konto). Ustaw `0`, aby wyłączyć. +`messages.groupChat.historyLimit` ustawia globalną wartość domyślną. Kanały mogą to nadpisać przez `channels..historyLimit` (lub per konto). Ustaw `0`, aby wyłączyć. #### Limity historii DM @@ -796,7 +805,7 @@ Wiadomości grupowe domyślnie **wymagają wzmianki** (metadane wzmianki lub bez } ``` -Rozwiązywanie: nadpisanie per DM → domyślne dostawcy → brak limitu (zachowywane wszystko). +Rozwiązywanie: nadpisanie per DM → domyślne dostawcy → brak limitu (zachowaj wszystko). Obsługiwane: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`. @@ -823,13 +832,13 @@ Dodaj własny numer do `allowFrom`, aby włączyć tryb self-chat (ignoruje naty } ``` -### Commands (obsługa poleceń w czacie) +### Commands (obsługa poleceń na czacie) ```json5 { commands: { native: "auto", // rejestruj natywne polecenia, gdy są obsługiwane - nativeSkills: "auto", // rejestruj natywne polecenia skill, gdy są obsługiwane + nativeSkills: "auto", // rejestruj natywne polecenia Skills, gdy są obsługiwane text: true, // analizuj /commands w wiadomościach czatu bash: false, // zezwól na ! (alias: /bash) bashForegroundMs: 2000, @@ -853,27 +862,27 @@ Dodaj własny numer do `allowFrom`, aby włączyć tryb self-chat (ignoruje naty - Ten blok konfiguruje powierzchnie poleceń. Bieżący katalog wbudowanych + bundled poleceń znajdziesz w [Slash Commands](/pl/tools/slash-commands). -- Ta strona to **dokumentacja referencyjna kluczy konfiguracji**, a nie pełny katalog poleceń. Polecenia należące do kanałów/pluginów, takie jak QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` i Talk `/voice`, są opisane na stronach kanałów/pluginów oraz w [Slash Commands](/pl/tools/slash-commands). -- Polecenia tekstowe muszą być **samodzielnymi** wiadomościami zaczynającymi się od `/`. +- Ta strona jest **odwołaniem do kluczy konfiguracji**, a nie pełnym katalogiem poleceń. Polecenia należące do kanału/pluginu, takie jak QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` i Talk `/voice`, są opisane na ich stronach kanałów/pluginów oraz w [Slash Commands](/pl/tools/slash-commands). +- Polecenia tekstowe muszą być **samodzielnymi** wiadomościami z wiodącym `/`. - `native: "auto"` włącza natywne polecenia dla Discord/Telegram, pozostawia Slack wyłączony. -- `nativeSkills: "auto"` włącza natywne polecenia skill dla Discord/Telegram, pozostawia Slack wyłączony. +- `nativeSkills: "auto"` włącza natywne polecenia Skills dla Discord/Telegram, pozostawia Slack wyłączony. - Nadpisanie per kanał: `channels.discord.commands.native` (bool lub `"auto"`). `false` czyści wcześniej zarejestrowane polecenia. -- Nadpisz rejestrację natywnych skill per kanał przez `channels..commands.nativeSkills`. +- Nadpisz rejestrację natywnych poleceń Skills per kanał przez `channels..commands.nativeSkills`. - `channels.telegram.customCommands` dodaje dodatkowe wpisy menu bota Telegram. -- `bash: true` włącza `! ` dla powłoki hosta. Wymaga `tools.elevated.enabled` oraz nadawcy w `tools.elevated.allowFrom.`. -- `config: true` włącza `/config` (odczyt/zapis `openclaw.json`). Dla klientów gateway `chat.send` trwałe zapisy `/config set|unset` wymagają również `operator.admin`; tylko do odczytu `/config show` pozostaje dostępne dla zwykłych klientów operatora z uprawnieniem zapisu. -- `mcp: true` włącza `/mcp` dla konfiguracji serwera MCP zarządzanego przez OpenClaw w `mcp.servers`. -- `plugins: true` włącza `/plugins` dla wykrywania pluginów, instalacji oraz sterowania włączaniem/wyłączaniem. +- `bash: true` włącza `! ` dla powłoki hosta. Wymaga `tools.elevated.enabled` i nadawcy w `tools.elevated.allowFrom.`. +- `config: true` włącza `/config` (odczyt/zapis `openclaw.json`). Dla klientów gateway `chat.send` trwałe zapisy `/config set|unset` wymagają także `operator.admin`; tylko do odczytu `/config show` pozostaje dostępne dla zwykłych klientów operatora z zakresem zapisu. +- `mcp: true` włącza `/mcp` dla konfiguracji serwera MCP zarządzanej przez OpenClaw w `mcp.servers`. +- `plugins: true` włącza `/plugins` dla wykrywania pluginów, instalacji i sterowania włączaniem/wyłączaniem. - `channels..configWrites` steruje mutacjami konfiguracji per kanał (domyślnie: true). -- Dla kanałów wielokontowych `channels..accounts..configWrites` także steruje zapisami kierowanymi na to konto (na przykład `/allowlist --config --account ` lub `/config set channels..accounts....`). -- `restart: false` wyłącza `/restart` oraz akcje narzędzia restartu gateway. Domyślnie: `true`. -- `ownerAllowFrom` to jawna lista dozwolonych właściciela dla poleceń/narzędzi tylko dla właściciela. Jest oddzielna od `allowFrom`. -- `ownerDisplay: "hash"` hashuje identyfikatory właściciela w system prompt. Ustaw `ownerDisplaySecret`, aby kontrolować hashowanie. -- `allowFrom` jest per dostawca. Gdy jest ustawione, jest to **jedyne** źródło autoryzacji (listy dozwolonych/parowanie kanału i `useAccessGroups` są ignorowane). -- `useAccessGroups: false` pozwala poleceniom omijać polityki grup dostępu, gdy `allowFrom` nie jest ustawione. +- Dla kanałów wielokontowych `channels..accounts..configWrites` także steruje zapisami kierowanymi do tego konta (na przykład `/allowlist --config --account ` lub `/config set channels..accounts....`). +- `restart: false` wyłącza `/restart` i akcje narzędzia restartu gateway. Domyślnie: `true`. +- `ownerAllowFrom` to jawna lista zezwoleń właściciela dla poleceń/narzędzi tylko dla właściciela. Jest oddzielna od `allowFrom`. +- `ownerDisplay: "hash"` hashuje identyfikatory właściciela w system prompt. Ustaw `ownerDisplaySecret`, aby sterować hashowaniem. +- `allowFrom` jest per dostawca. Gdy jest ustawione, jest **jedynym** źródłem autoryzacji (listy zezwoleń/parowanie kanału oraz `useAccessGroups` są ignorowane). +- `useAccessGroups: false` pozwala poleceniom omijać zasady grup dostępu, gdy `allowFrom` nie jest ustawione. - Mapa dokumentacji poleceń: - - katalog wbudowanych + bundled: [Slash Commands](/pl/tools/slash-commands) - - powierzchnie poleceń specyficzne dla kanałów: [Channels](/pl/channels) + - wbudowany + bundled katalog: [Slash Commands](/pl/tools/slash-commands) + - powierzchnie poleceń specyficzne dla kanału: [Channels](/pl/channels) - polecenia QQ Bot: [QQ Bot](/pl/channels/qqbot) - polecenia parowania: [Pairing](/pl/channels/pairing) - polecenie karty LINE: [LINE](/pl/channels/line) @@ -897,7 +906,7 @@ Domyślnie: `~/.openclaw/workspace`. ### `agents.defaults.repoRoot` -Opcjonalny katalog główny repozytorium wyświetlany w wierszu Runtime system prompt. Jeśli nie jest ustawiony, OpenClaw wykrywa go automatycznie, przechodząc w górę od workspace. +Opcjonalny katalog główny repozytorium pokazywany w wierszu Runtime w system prompt. Jeśli nie jest ustawiony, OpenClaw wykrywa go automatycznie, idąc w górę od workspace. ```json5 { @@ -907,7 +916,7 @@ Opcjonalny katalog główny repozytorium wyświetlany w wierszu Runtime system p ### `agents.defaults.skills` -Opcjonalna domyślna lista dozwolonych Skills dla agentów, które nie ustawiają +Opcjonalna domyślna lista zezwoleń Skills dla agentów, które nie ustawiają `agents.list[].skills`. ```json5 @@ -916,17 +925,18 @@ Opcjonalna domyślna lista dozwolonych Skills dla agentów, które nie ustawiaj defaults: { skills: ["github", "weather"] }, list: [ { id: "writer" }, // dziedziczy github, weather - { id: "docs", skills: ["docs-search"] }, // zastępuje domyślne - { id: "locked-down", skills: [] }, // bez skills + { id: "docs", skills: ["docs-search"] }, // zastępuje wartości domyślne + { id: "locked-down", skills: [] }, // bez Skills ], }, } ``` - Pomiń `agents.defaults.skills`, aby domyślnie nie ograniczać Skills. -- Pomiń `agents.list[].skills`, aby dziedziczyć ustawienia domyślne. -- Ustaw `agents.list[].skills: []`, aby nie używać żadnych skills. -- Niepusta lista `agents.list[].skills` jest ostatecznym zestawem dla tego agenta; nie łączy się z ustawieniami domyślnymi. +- Pomiń `agents.list[].skills`, aby dziedziczyć wartości domyślne. +- Ustaw `agents.list[].skills: []`, aby nie mieć żadnych Skills. +- Niepusta lista `agents.list[].skills` jest ostatecznym zbiorem dla tego agenta; nie + łączy się z wartościami domyślnymi. ### `agents.defaults.skipBootstrap` @@ -942,7 +952,7 @@ Wyłącza automatyczne tworzenie plików bootstrap workspace (`AGENTS.md`, `SOUL Steruje tym, kiedy pliki bootstrap workspace są wstrzykiwane do system prompt. Domyślnie: `"always"`. -- `"continuation-skip"`: bezpieczne tury kontynuacji (po zakończonej odpowiedzi asystenta) pomijają ponowne wstrzyknięcie bootstrap workspace, zmniejszając rozmiar promptu. Uruchomienia heartbeat i ponowne próby po kompaktowaniu nadal przebudowują kontekst. +- `"continuation-skip"`: bezpieczne tury kontynuacji (po zakończonej odpowiedzi asystenta) pomijają ponowne wstrzykiwanie bootstrap workspace, zmniejszając rozmiar promptu. Uruchomienia heartbeat i ponowne próby po kompaktowaniu nadal odbudowują kontekst. ```json5 { @@ -972,10 +982,10 @@ Maksymalna łączna liczba znaków wstrzykiwanych ze wszystkich plików bootstra ### `agents.defaults.bootstrapPromptTruncationWarning` -Steruje tekstem ostrzeżenia widocznym dla agenta, gdy kontekst bootstrap jest obcięty. +Steruje widocznym dla agenta tekstem ostrzegawczym, gdy kontekst bootstrap zostanie obcięty. Domyślnie: `"once"`. -- `"off"`: nigdy nie wstrzykuj tekstu ostrzeżenia do system prompt. +- `"off"`: nigdy nie wstrzykuj tekstu ostrzegawczego do system prompt. - `"once"`: wstrzyknij ostrzeżenie raz dla każdej unikalnej sygnatury obcięcia (zalecane). - `"always"`: wstrzykuj ostrzeżenie przy każdym uruchomieniu, gdy istnieje obcięcie. @@ -987,10 +997,10 @@ Domyślnie: `"once"`. ### `agents.defaults.imageMaxDimensionPx` -Maksymalny rozmiar w pikselach dłuższego boku obrazu w blokach obrazów transkryptu/narzędzi przed wywołaniami dostawcy. +Maksymalny rozmiar w pikselach dłuższego boku obrazu w blokach obrazu transkryptu/narzędzi przed wywołaniami dostawcy. Domyślnie: `1200`. -Niższe wartości zwykle zmniejszają użycie tokenów vision i rozmiar ładunku żądania przy przebiegach z wieloma zrzutami ekranu. +Niższe wartości zwykle zmniejszają użycie vision-tokenów i rozmiar ładunku żądania dla przebiegów z dużą liczbą zrzutów ekranu. Wyższe wartości zachowują więcej szczegółów wizualnych. ```json5 @@ -1001,7 +1011,7 @@ Wyższe wartości zachowują więcej szczegółów wizualnych. ### `agents.defaults.userTimezone` -Strefa czasowa dla kontekstu system prompt (nie znaczników czasu wiadomości). Wartość zapasowa pochodzi ze strefy czasowej hosta. +Strefa czasowa dla kontekstu system prompt (nie dla znaczników czasu wiadomości). Wartość zapasowa to strefa czasowa hosta. ```json5 { @@ -1011,7 +1021,7 @@ Strefa czasowa dla kontekstu system prompt (nie znaczników czasu wiadomości). ### `agents.defaults.timeFormat` -Format czasu w system prompt. Domyślnie: `auto` (preferencja systemu operacyjnego). +Format czasu w system prompt. Domyślnie: `auto` (preferencja systemu). ```json5 { @@ -1064,43 +1074,43 @@ Format czasu w system prompt. Domyślnie: `auto` (preferencja systemu operacyjne } ``` -- `model`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). +- `model`: akceptuje ciąg (`"provider/model"`) albo obiekt (`{ primary, fallbacks }`). - Forma ciągu ustawia tylko model główny. - - Forma obiektu ustawia model główny oraz uporządkowane modele zapasowe. -- `imageModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). + - Forma obiektu ustawia model główny oraz uporządkowane modele failover. +- `imageModel`: akceptuje ciąg (`"provider/model"`) albo obiekt (`{ primary, fallbacks }`). - Używany przez ścieżkę narzędzia `image` jako konfiguracja modelu vision. - - Używany także jako routing zapasowy, gdy wybrany/domyslny model nie może przyjąć obrazu na wejściu. -- `imageGenerationModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). - - Używany przez współdzieloną możliwość generowania obrazów oraz wszelkie przyszłe powierzchnie narzędzi/pluginów generujące obrazy. - - Typowe wartości: `google/gemini-3.1-flash-image-preview` dla natywnego generowania obrazów przez Gemini, `fal/fal-ai/flux/dev` dla fal lub `openai/gpt-image-1` dla OpenAI Images. - - Jeśli wybierzesz bezpośrednio `provider/model`, skonfiguruj także odpowiednie uwierzytelnienie/klucz API dostawcy (na przykład `GEMINI_API_KEY` lub `GOOGLE_API_KEY` dla `google/*`, `OPENAI_API_KEY` dla `openai/*`, `FAL_KEY` dla `fal/*`). - - Jeśli pominięte, `image_generate` nadal może wywnioskować domyślnego dostawcę na podstawie uwierzytelnienia. Najpierw próbuje bieżącego domyślnego dostawcy, potem pozostałych zarejestrowanych dostawców generowania obrazów w kolejności identyfikatorów dostawców. -- `musicGenerationModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). - - Używany przez współdzieloną możliwość generowania muzyki i wbudowane narzędzie `music_generate`. + - Używany także jako routing zapasowy, gdy wybrany/domyslny model nie może przyjąć wejścia obrazowego. +- `imageGenerationModel`: akceptuje ciąg (`"provider/model"`) albo obiekt (`{ primary, fallbacks }`). + - Używany przez współdzieloną funkcję generowania obrazów oraz każdą przyszłą powierzchnię narzędzia/pluginu generującą obrazy. + - Typowe wartości: `google/gemini-3.1-flash-image-preview` dla natywnego generowania obrazów Gemini, `fal/fal-ai/flux/dev` dla fal lub `openai/gpt-image-1` dla OpenAI Images. + - Jeśli wybierzesz bezpośrednio `provider/model`, skonfiguruj też pasujące uwierzytelnienie/klucz API dostawcy (na przykład `GEMINI_API_KEY` lub `GOOGLE_API_KEY` dla `google/*`, `OPENAI_API_KEY` dla `openai/*`, `FAL_KEY` dla `fal/*`). + - Jeśli pominięte, `image_generate` nadal może wywnioskować domyślny dostawca oparty na auth. Najpierw próbuje bieżącego domyślnego dostawcy, a potem pozostałych zarejestrowanych dostawców generowania obrazów w kolejności identyfikatorów dostawców. +- `musicGenerationModel`: akceptuje ciąg (`"provider/model"`) albo obiekt (`{ primary, fallbacks }`). + - Używany przez współdzieloną funkcję generowania muzyki oraz wbudowane narzędzie `music_generate`. - Typowe wartości: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` lub `minimax/music-2.5+`. - - Jeśli pominięte, `music_generate` nadal może wywnioskować domyślnego dostawcę na podstawie uwierzytelnienia. Najpierw próbuje bieżącego domyślnego dostawcy, potem pozostałych zarejestrowanych dostawców generowania muzyki w kolejności identyfikatorów dostawców. - - Jeśli wybierzesz bezpośrednio `provider/model`, skonfiguruj także odpowiednie uwierzytelnienie/klucz API dostawcy. -- `videoGenerationModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). - - Używany przez współdzieloną możliwość generowania wideo i wbudowane narzędzie `video_generate`. + - Jeśli pominięte, `music_generate` nadal może wywnioskować domyślny dostawca oparty na auth. Najpierw próbuje bieżącego domyślnego dostawcy, a potem pozostałych zarejestrowanych dostawców generowania muzyki w kolejności identyfikatorów dostawców. + - Jeśli wybierzesz bezpośrednio `provider/model`, skonfiguruj też pasujące uwierzytelnienie/klucz API dostawcy. +- `videoGenerationModel`: akceptuje ciąg (`"provider/model"`) albo obiekt (`{ primary, fallbacks }`). + - Używany przez współdzieloną funkcję generowania wideo oraz wbudowane narzędzie `video_generate`. - Typowe wartości: `qwen/wan2.6-t2v`, `qwen/wan2.6-i2v`, `qwen/wan2.6-r2v`, `qwen/wan2.6-r2v-flash` lub `qwen/wan2.7-r2v`. - - Jeśli pominięte, `video_generate` nadal może wywnioskować domyślnego dostawcę na podstawie uwierzytelnienia. Najpierw próbuje bieżącego domyślnego dostawcy, potem pozostałych zarejestrowanych dostawców generowania wideo w kolejności identyfikatorów dostawców. - - Jeśli wybierzesz bezpośrednio `provider/model`, skonfiguruj także odpowiednie uwierzytelnienie/klucz API dostawcy. - - Bundled dostawca generowania wideo Qwen obsługuje obecnie maksymalnie 1 wynikowe wideo, 1 obraz wejściowy, 4 wideo wejściowe, czas trwania 10 sekund oraz opcje na poziomie dostawcy `size`, `aspectRatio`, `resolution`, `audio` i `watermark`. -- `pdfModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). - - Używany przez narzędzie `pdf` do routingu modeli. - - Jeśli pominięte, narzędzie PDF wraca do `imageModel`, a następnie do rozwiązanego modelu sesji/domyslnego. + - Jeśli pominięte, `video_generate` nadal może wywnioskować domyślny dostawca oparty na auth. Najpierw próbuje bieżącego domyślnego dostawcy, a potem pozostałych zarejestrowanych dostawców generowania wideo w kolejności identyfikatorów dostawców. + - Jeśli wybierzesz bezpośrednio `provider/model`, skonfiguruj też pasujące uwierzytelnienie/klucz API dostawcy. + - Bundled dostawca generowania wideo Qwen obecnie obsługuje maksymalnie 1 wyjściowe wideo, 1 wejściowy obraz, 4 wejściowe wideo, czas trwania 10 sekund oraz opcje na poziomie dostawcy `size`, `aspectRatio`, `resolution`, `audio` i `watermark`. +- `pdfModel`: akceptuje ciąg (`"provider/model"`) albo obiekt (`{ primary, fallbacks }`). + - Używany przez narzędzie `pdf` do routingu modelu. + - Jeśli pominięte, narzędzie PDF wraca do `imageModel`, a potem do rozwiązanego modelu sesji/domyslnego. - `pdfMaxBytesMb`: domyślny limit rozmiaru PDF dla narzędzia `pdf`, gdy `maxBytesMb` nie jest przekazane przy wywołaniu. -- `pdfMaxPages`: domyślna maksymalna liczba stron uwzględnianych przez tryb zapasowej ekstrakcji w narzędziu `pdf`. +- `pdfMaxPages`: domyślna maksymalna liczba stron brana pod uwagę przez tryb zapasowej ekstrakcji w narzędziu `pdf`. - `verboseDefault`: domyślny poziom verbose dla agentów. Wartości: `"off"`, `"on"`, `"full"`. Domyślnie: `"off"`. -- `elevatedDefault`: domyślny poziom danych elevated dla agentów. Wartości: `"off"`, `"on"`, `"ask"`, `"full"`. Domyślnie: `"on"`. -- `model.primary`: format `provider/model` (np. `openai/gpt-5.4`). Jeśli pominiesz dostawcę, OpenClaw najpierw próbuje aliasu, potem jednoznacznego dopasowania dokładnego identyfikatora modelu do skonfigurowanego dostawcy, a dopiero potem wraca do skonfigurowanego dostawcy domyślnego (przestarzałe zachowanie zgodności, więc preferuj jawne `provider/model`). Jeśli ten dostawca nie udostępnia już skonfigurowanego modelu domyślnego, OpenClaw wraca do pierwszego skonfigurowanego dostawcy/modelu zamiast eksponować przestarzałą wartość domyślną usuniętego dostawcy. -- `models`: skonfigurowany katalog modeli i lista dozwolonych dla `/model`. Każdy wpis może zawierać `alias` (skrót) i `params` (specyficzne dla dostawcy, np. `temperature`, `maxTokens`, `cacheRetention`, `context1m`). +- `elevatedDefault`: domyślny poziom wyjścia elevated dla agentów. Wartości: `"off"`, `"on"`, `"ask"`, `"full"`. Domyślnie: `"on"`. +- `model.primary`: format `provider/model` (np. `openai/gpt-5.4`). Jeśli pominiesz dostawcę, OpenClaw najpierw próbuje aliasu, następnie unikalnego dopasowania skonfigurowanego dostawcy dla dokładnego identyfikatora modelu, a dopiero potem wraca do skonfigurowanego domyślnego dostawcy (przestarzałe zachowanie zgodności, więc preferuj jawne `provider/model`). Jeśli ten dostawca nie udostępnia już skonfigurowanego modelu domyślnego, OpenClaw wraca do pierwszego skonfigurowanego dostawcy/modelu zamiast zgłaszać nieaktualny domyślny model usuniętego dostawcy. +- `models`: skonfigurowany katalog modeli i lista zezwoleń dla `/model`. Każdy wpis może zawierać `alias` (skrót) i `params` (specyficzne dla dostawcy, np. `temperature`, `maxTokens`, `cacheRetention`, `context1m`). - `params`: globalne domyślne parametry dostawcy stosowane do wszystkich modeli. Ustawiane w `agents.defaults.params` (np. `{ cacheRetention: "long" }`). -- Priorytet scalania `params` (konfiguracja): `agents.defaults.params` (globalna baza) jest nadpisywane przez `agents.defaults.models["provider/model"].params` (per model), a następnie `agents.list[].params` (pasujący identyfikator agenta) nadpisuje po kluczu. Zobacz [Prompt Caching](/pl/reference/prompt-caching), aby uzyskać szczegóły. -- Narzędzia zapisujące konfigurację, które modyfikują te pola (na przykład `/models set`, `/models set-image` oraz polecenia dodawania/usuwania fallbacków), zapisują kanoniczną formę obiektową i w miarę możliwości zachowują istniejące listy fallbacków. -- `maxConcurrent`: maksymalna liczba równoległych uruchomień agentów między sesjami (każda sesja nadal jest serializowana). Domyślnie: 4. +- Priorytet scalania `params` (konfiguracja): `agents.defaults.params` (globalna baza) jest nadpisywane przez `agents.defaults.models["provider/model"].params` (per model), a następnie `agents.list[].params` (pasujący identyfikator agenta) nadpisuje po kluczu. Szczegóły znajdziesz w [Prompt Caching](/pl/reference/prompt-caching). +- Zapisywacze konfiguracji mutujące te pola (na przykład `/models set`, `/models set-image` oraz polecenia dodawania/usuwania fallbacków) zapisują kanoniczną formę obiektu i w miarę możliwości zachowują istniejące listy fallbacków. +- `maxConcurrent`: maksymalna liczba równoległych przebiegów agentów między sesjami (każda sesja nadal jest serializowana). Domyślnie: 4. -**Wbudowane skróty aliasów** (mają zastosowanie tylko wtedy, gdy model znajduje się w `agents.defaults.models`): +**Wbudowane skróty aliasów** (działają tylko wtedy, gdy model znajduje się w `agents.defaults.models`): | Alias | Model | | ------------------- | -------------------------------------- | @@ -1116,12 +1126,12 @@ Format czasu w system prompt. Domyślnie: `auto` (preferencja systemu operacyjne Twoje skonfigurowane aliasy zawsze mają pierwszeństwo przed domyślnymi. Modele Z.AI GLM-4.x automatycznie włączają tryb thinking, chyba że ustawisz `--thinking off` lub samodzielnie zdefiniujesz `agents.defaults.models["zai/"].params.thinking`. -Modele Z.AI domyślnie włączają `tool_stream` do streamingu wywołań narzędzi. Ustaw `agents.defaults.models["zai/"].params.tool_stream` na `false`, aby to wyłączyć. +Modele Z.AI domyślnie włączają `tool_stream` dla strumieniowania wywołań narzędzi. Ustaw `agents.defaults.models["zai/"].params.tool_stream` na `false`, aby to wyłączyć. Modele Anthropic Claude 4.6 domyślnie używają thinking `adaptive`, gdy nie ustawiono jawnego poziomu thinking. ### `agents.defaults.cliBackends` -Opcjonalne backendy CLI dla zapasowych uruchomień tylko tekstowych (bez wywołań narzędzi). Przydatne jako kopia zapasowa, gdy dostawcy API zawodzą. +Opcjonalne backendy CLI dla zapasowych przebiegów tylko tekstowych (bez wywołań narzędzi). Przydatne jako kopia zapasowa, gdy dostawcy API zawodzą. ```json5 { @@ -1149,9 +1159,23 @@ Opcjonalne backendy CLI dla zapasowych uruchomień tylko tekstowych (bez wywoła } ``` -- Backendy CLI są ukierunkowane na tekst; narzędzia są zawsze wyłączone. +- Backendy CLI są nastawione na tekst; narzędzia są zawsze wyłączone. - Sesje są obsługiwane, gdy ustawiono `sessionArg`. -- Przekazywanie obrazów jest obsługiwane, gdy `imageArg` akceptuje ścieżki plików. +- Przekazywanie obrazów jest obsługiwane, gdy `imageArg` akceptuje ścieżki do plików. + +### `agents.defaults.systemPromptOverride` + +Zastępuje cały system prompt złożony przez OpenClaw stałym ciągiem. Ustaw na poziomie domyślnym (`agents.defaults.systemPromptOverride`) lub per agent (`agents.list[].systemPromptOverride`). Wartości per agent mają pierwszeństwo; pusta lub zawierająca tylko białe znaki wartość jest ignorowana. Przydatne do kontrolowanych eksperymentów z promptami. + +```json5 +{ + agents: { + defaults: { + systemPromptOverride: "Jesteś pomocnym asystentem.", + }, + }, +} +``` ### `agents.defaults.heartbeat` @@ -1165,13 +1189,14 @@ Okresowe uruchomienia heartbeat. every: "30m", // 0m wyłącza model: "openai/gpt-5.4-mini", includeReasoning: false, + includeSystemPromptSection: true, // domyślnie: true; false pomija sekcję Heartbeat w system prompt lightContext: false, // domyślnie: false; true zachowuje tylko HEARTBEAT.md z plików bootstrap workspace isolatedSession: false, // domyślnie: false; true uruchamia każdy heartbeat w świeżej sesji (bez historii rozmowy) session: "main", to: "+15555550123", directPolicy: "allow", // allow (domyślnie) | block target: "none", // domyślnie: none | opcje: last | whatsapp | telegram | discord | ... - prompt: "Odczytaj HEARTBEAT.md, jeśli istnieje...", + prompt: "Przeczytaj HEARTBEAT.md, jeśli istnieje...", ackMaxChars: 300, suppressToolErrorWarnings: false, }, @@ -1181,12 +1206,13 @@ Okresowe uruchomienia heartbeat. ``` - `every`: ciąg czasu trwania (ms/s/m/h). Domyślnie: `30m` (uwierzytelnianie kluczem API) lub `1h` (uwierzytelnianie OAuth). Ustaw `0m`, aby wyłączyć. -- `suppressToolErrorWarnings`: gdy true, ukrywa ładunki ostrzeżeń o błędach narzędzi podczas uruchomień heartbeat. -- `directPolicy`: zasada dostarczania bezpośredniego/DM. `allow` (domyślnie) zezwala na dostarczanie do celów bezpośrednich. `block` blokuje dostarczanie do celów bezpośrednich i emituje `reason=dm-blocked`. -- `lightContext`: gdy true, uruchomienia heartbeat używają lekkiego kontekstu bootstrap i zachowują tylko `HEARTBEAT.md` z plików bootstrap workspace. -- `isolatedSession`: gdy true, każde uruchomienie heartbeat działa w świeżej sesji bez wcześniejszej historii rozmowy. Ten sam wzorzec izolacji co cron `sessionTarget: "isolated"`. Zmniejsza koszt tokenów na heartbeat z około 100K do około 2-5K tokenów. -- Per agent: ustaw `agents.list[].heartbeat`. Gdy dowolny agent definiuje `heartbeat`, heartbeat uruchamiają **tylko ci agenci**. -- Heartbeat uruchamia pełne tury agenta — krótsze interwały zużywają więcej tokenów. +- `includeSystemPromptSection`: gdy false, pomija sekcję Heartbeat w system prompt i pomija wstrzykiwanie `HEARTBEAT.md` do kontekstu bootstrap. Domyślnie: `true`. +- `suppressToolErrorWarnings`: gdy true, tłumi ładunki ostrzeżeń o błędach narzędzi podczas przebiegów heartbeat. +- `directPolicy`: zasada dostarczania bezpośredniego/DM. `allow` (domyślnie) zezwala na dostarczanie do celu bezpośredniego. `block` tłumi dostarczanie do celu bezpośredniego i emituje `reason=dm-blocked`. +- `lightContext`: gdy true, przebiegi heartbeat używają lekkiego kontekstu bootstrap i zachowują tylko `HEARTBEAT.md` z plików bootstrap workspace. +- `isolatedSession`: gdy true, każdy heartbeat działa w świeżej sesji bez wcześniejszej historii rozmowy. Taki sam wzorzec izolacji jak `sessionTarget: "isolated"` w cron. Zmniejsza koszt tokenów per heartbeat z ~100K do ~2-5K tokenów. +- Per agent: ustaw `agents.list[].heartbeat`. Gdy którykolwiek agent definiuje `heartbeat`, heartbeaty uruchamiają **tylko ci agenci**. +- Heartbeaty wykonują pełne tury agenta — krótsze interwały spalają więcej tokenów. ### `agents.defaults.compaction` @@ -1196,18 +1222,18 @@ Okresowe uruchomienia heartbeat. defaults: { compaction: { mode: "safeguard", // default | safeguard - provider: "my-provider", // id zarejestrowanego pluginu dostawcy compaction (opcjonalne) + provider: "my-provider", // id zarejestrowanego pluginu dostawcy kompaktowania (opcjonalne) timeoutSeconds: 900, reserveTokensFloor: 24000, identifierPolicy: "strict", // strict | off | custom - identifierInstructions: "Zachowaj dokładnie identyfikatory wdrożeń, identyfikatory zgłoszeń i pary host:port.", // używane gdy identifierPolicy=custom - postCompactionSections: ["Session Startup", "Red Lines"], // [] wyłącza ponowne wstrzyknięcie - model: "openrouter/anthropic/claude-sonnet-4-6", // opcjonalne nadpisanie modelu tylko dla compaction - notifyUser: true, // wyślij krótkie powiadomienie po rozpoczęciu compaction (domyślnie: false) + identifierInstructions: "Zachowaj identyfikatory wdrożeń, identyfikatory ticketów i pary host:port dokładnie.", // używane gdy identifierPolicy=custom + postCompactionSections: ["Session Startup", "Red Lines"], // [] wyłącza ponowne wstrzykiwanie + model: "openrouter/anthropic/claude-sonnet-4-6", // opcjonalne nadpisanie modelu tylko dla kompaktowania + notifyUser: true, // wyślij krótkie powiadomienie, gdy zaczyna się kompaktowanie (domyślnie: false) memoryFlush: { enabled: true, softThresholdTokens: 6000, - systemPrompt: "Sesja zbliża się do compaction. Zapisz trwałe wspomnienia teraz.", + systemPrompt: "Sesja zbliża się do kompaktowania. Zapisz teraz trwałe wspomnienia.", prompt: "Zapisz wszelkie trwałe notatki do memory/YYYY-MM-DD.md; odpowiedz dokładnym cichym tokenem NO_REPLY, jeśli nie ma nic do zapisania.", }, }, @@ -1217,18 +1243,18 @@ Okresowe uruchomienia heartbeat. ``` - `mode`: `default` lub `safeguard` (sumaryzacja fragmentami dla długich historii). Zobacz [Compaction](/pl/concepts/compaction). -- `provider`: identyfikator zarejestrowanego pluginu dostawcy compaction. Gdy ustawiony, `summarize()` dostawcy jest wywoływane zamiast wbudowanej sumaryzacji LLM. W przypadku błędu wraca do wbudowanej. Ustawienie dostawcy wymusza `mode: "safeguard"`. Zobacz [Compaction](/pl/concepts/compaction). -- `timeoutSeconds`: maksymalna liczba sekund dozwolona dla pojedynczej operacji compaction, zanim OpenClaw ją przerwie. Domyślnie: `900`. -- `identifierPolicy`: `strict` (domyślnie), `off` lub `custom`. `strict` dodaje wbudowane instrukcje zachowania nieprzezroczystych identyfikatorów podczas sumaryzacji compaction. +- `provider`: identyfikator zarejestrowanego pluginu dostawcy kompaktowania. Gdy ustawiony, `summarize()` dostawcy jest wywoływane zamiast wbudowanej sumaryzacji LLM. W razie awarii wraca do wbudowanej. Ustawienie dostawcy wymusza `mode: "safeguard"`. Zobacz [Compaction](/pl/concepts/compaction). +- `timeoutSeconds`: maksymalna liczba sekund dozwolona dla pojedynczej operacji kompaktowania, po której OpenClaw ją przerywa. Domyślnie: `900`. +- `identifierPolicy`: `strict` (domyślnie), `off` lub `custom`. `strict` dodaje wbudowane wskazówki zachowania nieprzezroczystych identyfikatorów podczas sumaryzacji kompaktowania. - `identifierInstructions`: opcjonalny własny tekst zachowania identyfikatorów używany, gdy `identifierPolicy=custom`. -- `postCompactionSections`: opcjonalne nazwy sekcji H2/H3 z AGENTS.md do ponownego wstrzyknięcia po compaction. Domyślnie `["Session Startup", "Red Lines"]`; ustaw `[]`, aby wyłączyć ponowne wstrzyknięcie. Gdy nieustawione lub jawnie ustawione na tę domyślną parę, starsze nagłówki `Every Session`/`Safety` są nadal akceptowane jako zapas zgodności. -- `model`: opcjonalne nadpisanie `provider/model-id` tylko dla sumaryzacji compaction. Użyj tego, gdy główna sesja powinna zachować jeden model, ale podsumowania compaction powinny działać na innym; gdy nieustawione, compaction używa głównego modelu sesji. -- `notifyUser`: gdy `true`, wysyła użytkownikowi krótkie powiadomienie, gdy compaction się rozpoczyna (na przykład „Compacting context...”). Domyślnie wyłączone, aby compaction pozostawał cichy. -- `memoryFlush`: cicha tura agentowa przed automatycznym compaction do zapisania trwałych wspomnień. Pomijana, gdy workspace jest tylko do odczytu. +- `postCompactionSections`: opcjonalne nazwy sekcji H2/H3 z AGENTS.md do ponownego wstrzyknięcia po kompaktowaniu. Domyślnie `["Session Startup", "Red Lines"]`; ustaw `[]`, aby wyłączyć ponowne wstrzykiwanie. Gdy nieustawione lub jawnie ustawione na tę domyślną parę, starsze nagłówki `Every Session`/`Safety` są także akceptowane jako starszy fallback. +- `model`: opcjonalne nadpisanie `provider/model-id` tylko dla sumaryzacji kompaktowania. Użyj tego, gdy główna sesja ma pozostać przy jednym modelu, ale podsumowania kompaktowania mają działać na innym; gdy nieustawione, kompaktowanie używa głównego modelu sesji. +- `notifyUser`: gdy `true`, wysyła krótkie powiadomienie do użytkownika, gdy zaczyna się kompaktowanie (na przykład „Compacting context...”). Domyślnie wyłączone, aby kompaktowanie pozostawało ciche. +- `memoryFlush`: cicha tura agentowa przed automatycznym kompaktowaniem w celu zapisania trwałych wspomnień. Pomijana, gdy workspace jest tylko do odczytu. ### `agents.defaults.contextPruning` -Przycina **stare wyniki narzędzi** z kontekstu w pamięci przed wysłaniem do LLM. **Nie** modyfikuje historii sesji na dysku. +Przycina **stare wyniki narzędzi** z kontekstu w pamięci przed wysłaniem do LLM. **Nie** modyfikuje historii sesji zapisanej na dysku. ```json5 { @@ -1242,7 +1268,7 @@ Przycina **stare wyniki narzędzi** z kontekstu w pamięci przed wysłaniem do L hardClearRatio: 0.5, minPrunableToolChars: 50000, softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 }, - hardClear: { enabled: true, placeholder: "[Stara zawartość wyniku narzędzia została wyczyszczona]" }, + hardClear: { enabled: true, placeholder: "[Zawartość starego wyniku narzędzia wyczyszczona]" }, tools: { deny: ["browser", "canvas"] }, }, }, @@ -1253,24 +1279,24 @@ Przycina **stare wyniki narzędzi** z kontekstu w pamięci przed wysłaniem do L - `mode: "cache-ttl"` włącza przebiegi przycinania. -- `ttl` steruje, jak często przycinanie może zostać uruchomione ponownie (po ostatnim dotknięciu cache). -- Przycinanie najpierw miękko przycina zbyt duże wyniki narzędzi, a następnie twardo czyści starsze wyniki narzędzi, jeśli to potrzebne. +- `ttl` steruje tym, jak często przycinanie może uruchomić się ponownie (po ostatnim dotknięciu cache). +- Przycinanie najpierw miękko przycina zbyt duże wyniki narzędzi, a potem w razie potrzeby twardo czyści starsze wyniki narzędzi. -**Soft-trim** zachowuje początek + koniec i wstawia `...` pośrodku. +**Miękkie przycięcie** zachowuje początek + koniec i wstawia `...` pośrodku. -**Hard-clear** zastępuje cały wynik narzędzia placeholderem. +**Twarde czyszczenie** zastępuje cały wynik narzędzia placeholderem. Uwagi: - Bloki obrazów nigdy nie są przycinane/czyszczone. -- Proporcje są oparte na znakach (przybliżenie), a nie dokładnej liczbie tokenów. +- Współczynniki są oparte na znakach (w przybliżeniu), a nie dokładnej liczbie tokenów. - Jeśli istnieje mniej niż `keepLastAssistants` wiadomości asystenta, przycinanie jest pomijane. -Zobacz [Session Pruning](/pl/concepts/session-pruning), aby poznać szczegóły zachowania. +Szczegóły zachowania znajdziesz w [Session Pruning](/pl/concepts/session-pruning). -### Block streaming +### Strumieniowanie blokowe ```json5 { @@ -1287,10 +1313,10 @@ Zobacz [Session Pruning](/pl/concepts/session-pruning), aby poznać szczegóły ``` - Kanały inne niż Telegram wymagają jawnego `*.blockStreaming: true`, aby włączyć odpowiedzi blokowe. -- Nadpisania kanałów: `channels..blockStreamingCoalesce` (oraz warianty per konto). Signal/Slack/Discord/Google Chat domyślnie używają `minChars: 1500`. +- Nadpisania kanału: `channels..blockStreamingCoalesce` (oraz warianty per konto). Signal/Slack/Discord/Google Chat domyślnie używają `minChars: 1500`. - `humanDelay`: losowa pauza między odpowiedziami blokowymi. `natural` = 800–2500 ms. Nadpisanie per agent: `agents.list[].humanDelay`. -Zobacz [Streaming](/pl/concepts/streaming), aby poznać zachowanie i szczegóły fragmentacji. +Szczegóły zachowania + chunkowania znajdziesz w [Streaming](/pl/concepts/streaming). ### Wskaźniki pisania @@ -1305,7 +1331,7 @@ Zobacz [Streaming](/pl/concepts/streaming), aby poznać zachowanie i szczegóły } ``` -- Domyślne: `instant` dla czatów bezpośrednich/wzmianek, `message` dla niewzmiankowanych czatów grupowych. +- Domyślnie: `instant` dla czatów bezpośrednich/wzmianek, `message` dla niewzmiankowanych czatów grupowych. - Nadpisania per sesja: `session.typingMode`, `session.typingIntervalSeconds`. Zobacz [Typing Indicators](/pl/concepts/typing-indicators). @@ -1314,7 +1340,7 @@ Zobacz [Typing Indicators](/pl/concepts/typing-indicators). ### `agents.defaults.sandbox` -Opcjonalne sandboxing dla osadzonego agenta. Zobacz [Sandboxing](/pl/gateway/sandboxing), aby poznać pełny przewodnik. +Opcjonalny sandboxing dla osadzonego agenta. Pełny przewodnik znajdziesz w [Sandboxing](/pl/gateway/sandboxing). ```json5 { @@ -1360,7 +1386,7 @@ Opcjonalne sandboxing dla osadzonego agenta. Zobacz [Sandboxing](/pl/gateway/san identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", - // Obsługiwane są także SecretRef / zawartości inline: + // Obsługiwane są też SecretRefs / zawartości inline: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, @@ -1413,11 +1439,11 @@ Opcjonalne sandboxing dla osadzonego agenta. Zobacz [Sandboxing](/pl/gateway/san **Backend:** -- `docker`: lokalne środowisko Docker (domyślne) -- `ssh`: ogólne zdalne środowisko oparte na SSH -- `openshell`: środowisko OpenShell +- `docker`: lokalny runtime Docker (domyślny) +- `ssh`: ogólny zdalny runtime oparty na SSH +- `openshell`: runtime OpenShell -Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska są przenoszone do +Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla runtime przenoszą się do `plugins.entries.openshell.config`. **Konfiguracja backendu SSH:** @@ -1426,7 +1452,7 @@ Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska - `command`: polecenie klienta SSH (domyślnie: `ssh`) - `workspaceRoot`: absolutny zdalny katalog główny używany dla workspace per zakres - `identityFile` / `certificateFile` / `knownHostsFile`: istniejące lokalne pliki przekazywane do OpenSSH -- `identityData` / `certificateData` / `knownHostsData`: zawartości inline lub SecretRefs, które OpenClaw materializuje do plików tymczasowych w czasie działania +- `identityData` / `certificateData` / `knownHostsData`: zawartości inline lub SecretRefs, które OpenClaw materializuje do plików tymczasowych podczas działania - `strictHostKeyChecking` / `updateHostKeys`: ustawienia polityki kluczy hosta OpenSSH **Priorytet uwierzytelniania SSH:** @@ -1434,27 +1460,27 @@ Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska - `identityData` ma pierwszeństwo przed `identityFile` - `certificateData` ma pierwszeństwo przed `certificateFile` - `knownHostsData` ma pierwszeństwo przed `knownHostsFile` -- Wartości `*Data` wspierane przez SecretRef są rozwiązywane z aktywnego snapshotu środowiska sekretów przed rozpoczęciem sesji sandbox +- Wartości `*Data` oparte na SecretRef są rozwiązywane z aktywnej migawki runtime sekretów przed rozpoczęciem sesji sandbox **Zachowanie backendu SSH:** -- zasiewa zdalny workspace raz po utworzeniu lub odtworzeniu +- inicjuje zdalny workspace raz po utworzeniu lub odtworzeniu - następnie utrzymuje zdalny workspace SSH jako kanoniczny - kieruje `exec`, narzędzia plikowe i ścieżki mediów przez SSH -- nie synchronizuje automatycznie zdalnych zmian z powrotem do hosta +- nie synchronizuje automatycznie zdalnych zmian z powrotem na hosta - nie obsługuje kontenerów przeglądarki sandbox **Dostęp do workspace:** -- `none`: sandbox workspace per zakres w `~/.openclaw/sandboxes` -- `ro`: sandbox workspace w `/workspace`, workspace agenta montowany tylko do odczytu w `/agent` +- `none`: workspace sandbox per zakres w `~/.openclaw/sandboxes` +- `ro`: workspace sandbox w `/workspace`, workspace agenta montowany tylko do odczytu w `/agent` - `rw`: workspace agenta montowany do odczytu/zapisu w `/workspace` **Zakres:** - `session`: kontener + workspace per sesja -- `agent`: jeden kontener + workspace na agenta (domyślnie) -- `shared`: współdzielony kontener i workspace (brak izolacji między sesjami) +- `agent`: jeden kontener + workspace per agent (domyślnie) +- `shared`: współdzielony kontener i workspace (bez izolacji między sesjami) **Konfiguracja pluginu OpenShell:** @@ -1484,30 +1510,30 @@ Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska **Tryb OpenShell:** -- `mirror`: zasiej zdalne środowisko z lokalnego przed exec, synchronizuj z powrotem po exec; lokalny workspace pozostaje kanoniczny -- `remote`: zasiej zdalne środowisko raz przy tworzeniu sandbox, a następnie utrzymuj zdalny workspace jako kanoniczny +- `mirror`: zasil zdalne z lokalnego przed exec, zsynchronizuj z powrotem po exec; lokalny workspace pozostaje kanoniczny +- `remote`: zasil zdalne raz przy tworzeniu sandbox, a potem utrzymuj zdalny workspace jako kanoniczny -W trybie `remote` lokalne edycje hosta wykonane poza OpenClaw nie są automatycznie synchronizowane do sandbox po etapie zasiania. -Transportem jest SSH do sandbox OpenShell, ale plugin zarządza cyklem życia sandbox oraz opcjonalną synchronizacją mirror. +W trybie `remote` edycje lokalnego hosta wykonane poza OpenClaw nie są automatycznie synchronizowane do sandbox po kroku zasilenia. +Transport odbywa się przez SSH do sandbox OpenShell, ale plugin zarządza cyklem życia sandbox oraz opcjonalną synchronizacją mirror. -**`setupCommand`** uruchamia się raz po utworzeniu kontenera (przez `sh -lc`). Wymaga wychodzącego dostępu do sieci, zapisywalnego root i użytkownika root. +**`setupCommand`** uruchamia się raz po utworzeniu kontenera (przez `sh -lc`). Wymaga wychodzącego dostępu do sieci, zapisywalnego katalogu głównego i użytkownika root. -**Kontenery domyślnie używają `network: "none"`** — ustaw `"bridge"` (lub własną sieć bridge), jeśli agent potrzebuje dostępu wychodzącego. +**Kontenery domyślnie mają `network: "none"`** — ustaw `"bridge"` (lub własną sieć bridge), jeśli agent potrzebuje dostępu wychodzącego. `"host"` jest blokowane. `"container:"` jest domyślnie blokowane, chyba że jawnie ustawisz `sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (break-glass). -**Załączniki przychodzące** są umieszczane tymczasowo w `media/inbound/*` w aktywnym workspace. +**Przychodzące załączniki** są umieszczane tymczasowo w `media/inbound/*` w aktywnym workspace. -**`docker.binds`** montuje dodatkowe katalogi hosta; globalne i per-agent binds są łączone. +**`docker.binds`** montuje dodatkowe katalogi hosta; globalne i per-agent binds są scalane. -**Przeglądarka sandboxowana** (`sandbox.browser.enabled`): Chromium + CDP w kontenerze. URL noVNC jest wstrzykiwany do system prompt. Nie wymaga `browser.enabled` w `openclaw.json`. +**Sandboxowana przeglądarka** (`sandbox.browser.enabled`): Chromium + CDP w kontenerze. URL noVNC jest wstrzykiwany do system prompt. Nie wymaga `browser.enabled` w `openclaw.json`. Dostęp obserwatora noVNC domyślnie używa uwierzytelniania VNC, a OpenClaw emituje URL z krótkotrwałym tokenem (zamiast ujawniać hasło we współdzielonym URL). -- `allowHostControl: false` (domyślnie) blokuje sesjom sandboxowanym kierowanie do przeglądarki hosta. -- `network` domyślnie ma wartość `openclaw-sandbox-browser` (dedykowana sieć bridge). Ustaw `bridge` tylko wtedy, gdy jawnie chcesz globalnej łączności bridge. -- `cdpSourceRange` opcjonalnie ogranicza wejście CDP na granicy kontenera do zakresu CIDR (na przykład `172.21.0.1/32`). -- `sandbox.browser.binds` montuje dodatkowe katalogi hosta tylko do kontenera przeglądarki sandbox. Gdy jest ustawione (w tym `[]`), zastępuje `docker.binds` dla kontenera przeglądarki. -- Domyślne ustawienia uruchomienia są zdefiniowane w `scripts/sandbox-browser-entrypoint.sh` i dostrojone pod hosty kontenerowe: +- `allowHostControl: false` (domyślnie) blokuje sandboxowanym sesjom kierowanie do przeglądarki hosta. +- `network` domyślnie to `openclaw-sandbox-browser` (dedykowana sieć bridge). Ustaw `bridge` tylko wtedy, gdy jawnie chcesz globalną łączność bridge. +- `cdpSourceRange` opcjonalnie ogranicza ruch przychodzący CDP na krawędzi kontenera do zakresu CIDR (na przykład `172.21.0.1/32`). +- `sandbox.browser.binds` montuje dodatkowe katalogi hosta tylko w kontenerze sandboxowanej przeglądarki. Gdy ustawione (w tym `[]`), zastępuje `docker.binds` dla kontenera przeglądarki. +- Domyślne parametry uruchomienia są zdefiniowane w `scripts/sandbox-browser-entrypoint.sh` i dostrojone dla hostów kontenerowych: - `--remote-debugging-address=127.0.0.1` - `--remote-debugging-port=` - `--user-data-dir=${HOME}/.chrome` @@ -1528,18 +1554,18 @@ Dostęp obserwatora noVNC domyślnie używa uwierzytelniania VNC, a OpenClaw emi - `--disable-3d-apis`, `--disable-software-rasterizer` i `--disable-gpu` są domyślnie włączone i można je wyłączyć przez `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0`, jeśli użycie WebGL/3D tego wymaga. - - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` ponownie włącza rozszerzenia, jeśli twój workflow - ich wymaga. + - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` ponownie włącza rozszerzenia, jeśli od nich + zależy Twój przepływ pracy. - `--renderer-process-limit=2` można zmienić przez `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=`; ustaw `0`, aby użyć domyślnego limitu procesów Chromium. - - plus `--no-sandbox` i `--disable-setuid-sandbox`, gdy `noSandbox` jest włączone. + - oraz `--no-sandbox` i `--disable-setuid-sandbox`, gdy włączone jest `noSandbox`. - Domyślne ustawienia są bazą obrazu kontenera; użyj własnego obrazu przeglądarki z własnym entrypointem, aby zmienić domyślne ustawienia kontenera. -Sandboxing przeglądarki oraz `sandbox.docker.binds` są obecnie dostępne tylko dla Dockera. +Sandboxing przeglądarki i `sandbox.docker.binds` są obecnie dostępne tylko dla Docker. Budowanie obrazów: @@ -1563,7 +1589,7 @@ scripts/sandbox-browser-setup.sh # opcjonalny obraz przeglądarki model: "anthropic/claude-opus-4-6", // lub { primary, fallbacks } thinkingDefault: "high", // nadpisanie poziomu thinking per agent reasoningDefault: "on", // nadpisanie widoczności reasoning per agent - fastModeDefault: false, // nadpisanie trybu fast per agent + fastModeDefault: false, // nadpisanie fast mode per agent params: { cacheRetention: "none" }, // nadpisuje pasujące defaults.models params po kluczu skills: ["docs-search"], // zastępuje agents.defaults.skills, gdy ustawione identity: { @@ -1597,25 +1623,25 @@ scripts/sandbox-browser-setup.sh # opcjonalny obraz przeglądarki ``` - `id`: stabilny identyfikator agenta (wymagany). -- `default`: gdy ustawiono wiele, wygrywa pierwszy (zapisywane jest ostrzeżenie). Jeśli nie ustawiono żadnego, domyślny jest pierwszy wpis listy. +- `default`: gdy ustawionych jest wiele, wygrywa pierwszy (zapisywane jest ostrzeżenie). Jeśli żaden nie jest ustawiony, domyślny jest pierwszy wpis listy. - `model`: forma ciągu nadpisuje tylko `primary`; forma obiektu `{ primary, fallbacks }` nadpisuje oba (`[]` wyłącza globalne fallbacki). Zadania cron, które nadpisują tylko `primary`, nadal dziedziczą domyślne fallbacki, chyba że ustawisz `fallbacks: []`. -- `params`: parametry stream per agent scalane nad wybranym wpisem modelu w `agents.defaults.models`. Użyj tego dla nadpisań specyficznych dla agenta, takich jak `cacheRetention`, `temperature` lub `maxTokens`, bez duplikowania całego katalogu modeli. -- `skills`: opcjonalna lista dozwolonych Skills per agent. Jeśli pominięta, agent dziedziczy `agents.defaults.skills`, gdy jest ustawione; jawna lista zastępuje domyślne zamiast je scalać, a `[]` oznacza brak skills. +- `params`: parametry strumienia per agent scalane na wybrany wpis modelu w `agents.defaults.models`. Użyj tego dla nadpisań specyficznych dla agenta, takich jak `cacheRetention`, `temperature` lub `maxTokens`, bez duplikowania całego katalogu modeli. +- `skills`: opcjonalna lista zezwoleń Skills per agent. Jeśli pominięta, agent dziedziczy `agents.defaults.skills`, gdy są ustawione; jawna lista zastępuje wartości domyślne zamiast je scalać, a `[]` oznacza brak Skills. - `thinkingDefault`: opcjonalny domyślny poziom thinking per agent (`off | minimal | low | medium | high | xhigh | adaptive`). Nadpisuje `agents.defaults.thinkingDefault` dla tego agenta, gdy nie ustawiono nadpisania per wiadomość lub sesję. -- `reasoningDefault`: opcjonalna domyślna widoczność reasoning per agent (`on | off | stream`). Ma zastosowanie, gdy nie ustawiono nadpisania reasoning per wiadomość lub sesję. -- `fastModeDefault`: opcjonalna wartość domyślna trybu fast per agent (`true | false`). Ma zastosowanie, gdy nie ustawiono nadpisania trybu fast per wiadomość lub sesję. -- `runtime`: opcjonalny deskryptor runtime per agent. Użyj `type: "acp"` z ustawieniami domyślnymi `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), gdy agent ma domyślnie korzystać z sesji harness ACP. +- `reasoningDefault`: opcjonalna domyślna widoczność reasoning per agent (`on | off | stream`). Obowiązuje, gdy nie ustawiono nadpisania reasoning per wiadomość lub sesję. +- `fastModeDefault`: opcjonalna domyślna wartość fast mode per agent (`true | false`). Obowiązuje, gdy nie ustawiono nadpisania fast mode per wiadomość lub sesję. +- `runtime`: opcjonalny deskryptor runtime per agent. Użyj `type: "acp"` z wartościami domyślnymi `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), gdy agent ma domyślnie używać sesji harness ACP. - `identity.avatar`: ścieżka względem workspace, URL `http(s)` lub URI `data:`. - `identity` wyprowadza wartości domyślne: `ackReaction` z `emoji`, `mentionPatterns` z `name`/`emoji`. -- `subagents.allowAgents`: lista dozwolonych identyfikatorów agentów dla `sessions_spawn` (`["*"]` = dowolny; domyślnie: tylko ten sam agent). -- Ochrona dziedziczenia sandbox: jeśli sesja żądająca jest sandboxowana, `sessions_spawn` odrzuca cele, które działałyby bez sandbox. +- `subagents.allowAgents`: lista zezwoleń identyfikatorów agentów dla `sessions_spawn` (`["*"]` = dowolny; domyślnie: tylko ten sam agent). +- Ochrona dziedziczenia sandbox: jeśli sesja żądająca jest w sandboxie, `sessions_spawn` odrzuca cele, które działałyby bez sandboxa. - `subagents.requireAgentId`: gdy true, blokuje wywołania `sessions_spawn`, które pomijają `agentId` (wymusza jawny wybór profilu; domyślnie: false). --- -## Routing wieloagentowy +## Routing wielu agentów -Uruchamiaj wielu izolowanych agentów w jednej Gateway. Zobacz [Multi-Agent](/pl/concepts/multi-agent). +Uruchamiaj wielu izolowanych agentów w jednym Gateway. Zobacz [Multi-Agent](/pl/concepts/multi-agent). ```json5 { @@ -1634,12 +1660,12 @@ Uruchamiaj wielu izolowanych agentów w jednej Gateway. Zobacz [Multi-Agent](/pl ### Pola dopasowania powiązań -- `type` (opcjonalne): `route` dla zwykłego routingu (brak `type` domyślnie oznacza route), `acp` dla trwałych powiązań konwersacji ACP. +- `type` (opcjonalne): `route` dla normalnego routingu (brak typu domyślnie oznacza route), `acp` dla trwałych powiązań rozmów ACP. - `match.channel` (wymagane) - `match.accountId` (opcjonalne; `*` = dowolne konto; pominięte = konto domyślne) - `match.peer` (opcjonalne; `{ kind: direct|group|channel, id }`) - `match.guildId` / `match.teamId` (opcjonalne; specyficzne dla kanału) -- `acp` (opcjonalne; tylko dla wpisów `type: "acp"`): `{ mode, label, cwd, backend }` +- `acp` (opcjonalne; tylko dla `type: "acp"`): `{ mode, label, cwd, backend }` **Deterministyczna kolejność dopasowania:** @@ -1647,12 +1673,12 @@ Uruchamiaj wielu izolowanych agentów w jednej Gateway. Zobacz [Multi-Agent](/pl 2. `match.guildId` 3. `match.teamId` 4. `match.accountId` (dokładne, bez peer/guild/team) -5. `match.accountId: "*"` (na cały kanał) +5. `match.accountId: "*"` (dla całego kanału) 6. Agent domyślny -W obrębie każdego poziomu wygrywa pierwszy pasujący wpis `bindings`. +W ramach każdego poziomu wygrywa pierwszy pasujący wpis `bindings`. -Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości konwersacji (`match.channel` + konto + `match.peer.id`) i nie używa powyższej kolejności poziomów powiązań routingu. +Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości rozmowy (`match.channel` + konto + `match.peer.id`) i nie używa powyższej kolejności poziomów powiązań routingu. ### Profile dostępu per agent @@ -1674,7 +1700,7 @@ Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości konwer - + ```json5 { @@ -1703,7 +1729,7 @@ Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości konwer - + ```json5 { @@ -1749,7 +1775,7 @@ Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości konwer -Zobacz [Multi-Agent Sandbox & Tools](/pl/tools/multi-agent-sandbox-tools), aby poznać szczegóły priorytetów. +Szczegóły priorytetów znajdziesz w [Multi-Agent Sandbox & Tools](/pl/tools/multi-agent-sandbox-tools). --- @@ -1775,22 +1801,22 @@ Zobacz [Multi-Agent Sandbox & Tools](/pl/tools/multi-agent-sandbox-tools), aby p }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", - parentForkMaxTokens: 100000, // pomiń rozwidlenie z wątku nadrzędnego powyżej tej liczby tokenów (0 wyłącza) + parentForkMaxTokens: 100000, // pomiń rozwidlenie wątku nadrzędnego powyżej tej liczby tokenów (0 wyłącza) maintenance: { mode: "warn", // warn | enforce pruneAfter: "30d", maxEntries: 500, rotateBytes: "10mb", resetArchiveRetention: "30d", // czas trwania lub false - maxDiskBytes: "500mb", // opcjonalny twardy budżet + maxDiskBytes: "500mb", // opcjonalny sztywny budżet highWaterBytes: "400mb", // opcjonalny cel czyszczenia }, threadBindings: { enabled: true, - idleHours: 24, // domyślny auto-unfocus z powodu bezczynności w godzinach (`0` wyłącza) - maxAgeHours: 0, // domyślny twardy maksymalny wiek w godzinach (`0` wyłącza) + idleHours: 24, // domyślna automatyczna dezaktywacja po bezczynności w godzinach (`0` wyłącza) + maxAgeHours: 0, // domyślny sztywny maksymalny wiek w godzinach (`0` wyłącza) }, - mainKey: "main", // legacy (runtime zawsze używa "main") + mainKey: "main", // starsze (runtime zawsze używa "main") agentToAgent: { maxPingPongTurns: 5 }, sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], @@ -1803,34 +1829,34 @@ Zobacz [Multi-Agent Sandbox & Tools](/pl/tools/multi-agent-sandbox-tools), aby p - **`scope`**: bazowa strategia grupowania sesji dla kontekstów czatów grupowych. - - `per-sender` (domyślnie): każdy nadawca otrzymuje izolowaną sesję w kontekście kanału. - - `global`: wszyscy uczestnicy w kontekście kanału współdzielą jedną sesję (używaj tylko wtedy, gdy intencją jest współdzielony kontekst). -- **`dmScope`**: sposób grupowania wiadomości prywatnych. - - `main`: wszystkie wiadomości prywatne współdzielą główną sesję. + - `per-sender` (domyślnie): każdy nadawca otrzymuje izolowaną sesję w obrębie kontekstu kanału. + - `global`: wszyscy uczestnicy w kontekście kanału współdzielą jedną sesję (używaj tylko wtedy, gdy zamierzony jest współdzielony kontekst). +- **`dmScope`**: sposób grupowania DM. + - `main`: wszystkie DM współdzielą główną sesję. - `per-peer`: izolacja według identyfikatora nadawcy między kanałami. - - `per-channel-peer`: izolacja per kanał + nadawca (zalecane dla skrzynek wieloużytkownikowych). + - `per-channel-peer`: izolacja per kanał + nadawca (zalecane dla wieloużytkownikowych skrzynek odbiorczych). - `per-account-channel-peer`: izolacja per konto + kanał + nadawca (zalecane dla wielu kont). -- **`identityLinks`**: mapuje identyfikatory kanoniczne do peerów z prefiksem dostawcy dla współdzielenia sesji między kanałami. -- **`reset`**: główna polityka resetu. `daily` resetuje o `atHour` czasu lokalnego; `idle` resetuje po `idleMinutes`. Gdy skonfigurowano oba, wygrywa to, które wygaśnie wcześniej. -- **`resetByType`**: nadpisania per typ (`direct`, `group`, `thread`). Starsze `dm` akceptowane jako alias `direct`. -- **`parentForkMaxTokens`**: maksymalna dozwolona wartość `totalTokens` sesji nadrzędnej przy tworzeniu rozwidlonej sesji wątku (domyślnie `100000`). - - Jeśli `totalTokens` rodzica jest wyższe niż ta wartość, OpenClaw rozpoczyna świeżą sesję wątku zamiast dziedziczyć historię transkryptu sesji nadrzędnej. - - Ustaw `0`, aby wyłączyć ten bezpiecznik i zawsze zezwalać na rozwidlanie z rodzica. -- **`mainKey`**: pole legacy. Runtime zawsze używa teraz `"main"` dla głównego zasobnika czatu bezpośredniego. -- **`agentToAgent.maxPingPongTurns`**: maksymalna liczba tur odpowiedzi zwrotnej między agentami podczas wymian agent-do-agenta (liczba całkowita, zakres: `0`–`5`). `0` wyłącza łańcuchy ping-pong. -- **`sendPolicy`**: dopasowanie po `channel`, `chatType` (`direct|group|channel`, ze starszym aliasem `dm`), `keyPrefix` lub `rawKeyPrefix`. Pierwsze deny wygrywa. -- **`maintenance`**: kontrola czyszczenia + retencji magazynu sesji. +- **`identityLinks`**: mapuje identyfikatory kanoniczne do peerów z prefiksem dostawcy w celu współdzielenia sesji między kanałami. +- **`reset`**: podstawowa zasada resetu. `daily` resetuje o `atHour` czasu lokalnego; `idle` resetuje po `idleMinutes`. Gdy skonfigurowane są oba, wygrywa to, które wygaśnie pierwsze. +- **`resetByType`**: nadpisania per typ (`direct`, `group`, `thread`). Starsze `dm` jest akceptowane jako alias dla `direct`. +- **`parentForkMaxTokens`**: maksymalna liczba `totalTokens` sesji nadrzędnej dozwolona przy tworzeniu rozwidlonej sesji wątku (domyślnie `100000`). + - Jeśli `totalTokens` rodzica przekracza tę wartość, OpenClaw uruchamia świeżą sesję wątku zamiast dziedziczyć historię transkryptu sesji nadrzędnej. + - Ustaw `0`, aby wyłączyć to zabezpieczenie i zawsze zezwalać na rozwidlenie od rodzica. +- **`mainKey`**: starsze pole. Runtime teraz zawsze używa `"main"` dla głównego koszyka czatu bezpośredniego. +- **`agentToAgent.maxPingPongTurns`**: maksymalna liczba tur odpowiedzi zwrotnej między agentami podczas wymiany agent-agent (liczba całkowita, zakres: `0`–`5`). `0` wyłącza łańcuch ping-pong. +- **`sendPolicy`**: dopasowuje po `channel`, `chatType` (`direct|group|channel`, ze starszym aliasem `dm`), `keyPrefix` lub `rawKeyPrefix`. Pierwsze deny wygrywa. +- **`maintenance`**: czyszczenie magazynu sesji + kontrola retencji. - `mode`: `warn` emituje tylko ostrzeżenia; `enforce` stosuje czyszczenie. - - `pruneAfter`: próg wieku dla przestarzałych wpisów (domyślnie `30d`). + - `pruneAfter`: granica wieku dla nieaktualnych wpisów (domyślnie `30d`). - `maxEntries`: maksymalna liczba wpisów w `sessions.json` (domyślnie `500`). - - `rotateBytes`: obraca `sessions.json`, gdy przekroczy ten rozmiar (domyślnie `10mb`). - - `resetArchiveRetention`: retencja dla archiwów transkryptów `*.reset.`. Domyślnie wartość z `pruneAfter`; ustaw `false`, aby wyłączyć. - - `maxDiskBytes`: opcjonalny budżet dyskowy katalogu sesji. W trybie `warn` zapisuje ostrzeżenia; w trybie `enforce` najpierw usuwa najstarsze artefakty/sesje. + - `rotateBytes`: rotuj `sessions.json`, gdy przekroczy ten rozmiar (domyślnie `10mb`). + - `resetArchiveRetention`: retencja dla archiwów transkryptów `*.reset.`. Domyślnie odpowiada `pruneAfter`; ustaw `false`, aby wyłączyć. + - `maxDiskBytes`: opcjonalny budżet miejsca na dysku dla katalogu sesji. W trybie `warn` zapisuje ostrzeżenia; w trybie `enforce` najpierw usuwa najstarsze artefakty/sesje. - `highWaterBytes`: opcjonalny cel po czyszczeniu budżetu. Domyślnie `80%` z `maxDiskBytes`. -- **`threadBindings`**: globalne wartości domyślne dla funkcji sesji powiązanych z wątkami. - - `enabled`: główny domyślny przełącznik (dostawcy mogą nadpisać; Discord używa `channels.discord.threadBindings.enabled`) - - `idleHours`: domyślny auto-unfocus z powodu bezczynności w godzinach (`0` wyłącza; dostawcy mogą nadpisać) - - `maxAgeHours`: domyślny twardy maksymalny wiek w godzinach (`0` wyłącza; dostawcy mogą nadpisać) +- **`threadBindings`**: globalne domyślne ustawienia funkcji sesji powiązanych z wątkiem. + - `enabled`: główny domyślny przełącznik (dostawcy mogą nadpisywać; Discord używa `channels.discord.threadBindings.enabled`) + - `idleHours`: domyślna automatyczna dezaktywacja po bezczynności w godzinach (`0` wyłącza; dostawcy mogą nadpisywać) + - `maxAgeHours`: domyślny sztywny maksymalny wiek w godzinach (`0` wyłącza; dostawcy mogą nadpisywać) @@ -1874,13 +1900,13 @@ Rozwiązywanie (wygrywa najbardziej szczegółowe): konto → kanał → globaln **Zmienne szablonu:** -| Zmienna | Opis | Przykład | -| ---------------- | ---------------------- | --------------------------- | -| `{model}` | Krótka nazwa modelu | `claude-opus-4-6` | +| Zmienna | Opis | Przykład | +| ---------------- | --------------------- | --------------------------- | +| `{model}` | Krótka nazwa modelu | `claude-opus-4-6` | | `{modelFull}` | Pełny identyfikator modelu | `anthropic/claude-opus-4-6` | -| `{provider}` | Nazwa dostawcy | `anthropic` | +| `{provider}` | Nazwa dostawcy | `anthropic` | | `{thinkingLevel}` | Bieżący poziom thinking | `high`, `low`, `off` | -| `{identity.name}` | Nazwa tożsamości agenta | (to samo co `"auto"`) | +| `{identity.name}` | Nazwa tożsamości agenta | (to samo co `"auto"`) | Zmienne są niewrażliwe na wielkość liter. `{think}` jest aliasem dla `{thinkingLevel}`. @@ -1888,16 +1914,16 @@ Zmienne są niewrażliwe na wielkość liter. `{think}` jest aliasem dla `{think - Domyślnie używa `identity.emoji` aktywnego agenta, w przeciwnym razie `"👀"`. Ustaw `""`, aby wyłączyć. - Nadpisania per kanał: `channels..ackReaction`, `channels..accounts..ackReaction`. -- Kolejność rozwiązywania: konto → kanał → `messages.ackReaction` → wartość zapasowa z identity. +- Kolejność rozwiązywania: konto → kanał → `messages.ackReaction` → fallback tożsamości. - Zakres: `group-mentions` (domyślnie), `group-all`, `direct`, `all`. -- `removeAckAfterReply`: usuwa ack po odpowiedzi w Slack, Discord i Telegram. -- `messages.statusReactions.enabled`: włącza reakcje statusowe cyklu życia w Slack, Discord i Telegram. - W Slack i Discord brak ustawienia zachowuje reakcje statusowe włączone, gdy aktywne są reakcje ack. - W Telegram ustaw jawnie `true`, aby włączyć reakcje statusowe cyklu życia. +- `removeAckAfterReply`: usuwa ack po odpowiedzi na Slack, Discord i Telegram. +- `messages.statusReactions.enabled`: włącza reakcje statusu cyklu życia na Slack, Discord i Telegram. + Na Slack i Discord brak ustawienia pozostawia reakcje statusu włączone, gdy aktywne są reakcje ack. + Na Telegram ustaw jawnie `true`, aby włączyć reakcje statusu cyklu życia. -### Debounce wejścia +### Debounce przychodzących wiadomości -Grupuje szybkie wiadomości tekstowe od tego samego nadawcy w jedną turę agenta. Media/załączniki wymuszają natychmiastowe opróżnienie. Polecenia sterujące omijają debounce. +Łączy szybkie wiadomości tekstowe od tego samego nadawcy w jedną turę agenta. Media/załączniki opróżniają kolejkę natychmiast. Polecenia sterujące omijają debounce. ### TTS (text-to-speech) @@ -1940,18 +1966,18 @@ Grupuje szybkie wiadomości tekstowe od tego samego nadawcy w jedną turę agent } ``` -- `auto` steruje domyślnym trybem auto-TTS: `off`, `always`, `inbound` lub `tagged`. `/tts on|off` może nadpisać lokalne preferencje, a `/tts status` pokazuje skuteczny stan. +- `auto` steruje domyślnym trybem auto-TTS: `off`, `always`, `inbound` lub `tagged`. `/tts on|off` może nadpisać lokalne preferencje, a `/tts status` pokazuje stan efektywny. - `summaryModel` nadpisuje `agents.defaults.model.primary` dla automatycznego podsumowania. - `modelOverrides` jest domyślnie włączone; `modelOverrides.allowProvider` domyślnie ma wartość `false` (opt-in). - Klucze API mają wartości zapasowe `ELEVENLABS_API_KEY`/`XI_API_KEY` oraz `OPENAI_API_KEY`. -- `openai.baseUrl` nadpisuje endpoint OpenAI TTS. Kolejność rozwiązywania to konfiguracja, potem `OPENAI_TTS_BASE_URL`, potem `https://api.openai.com/v1`. +- `openai.baseUrl` nadpisuje endpoint OpenAI TTS. Kolejność rozwiązywania to konfiguracja, następnie `OPENAI_TTS_BASE_URL`, a potem `https://api.openai.com/v1`. - Gdy `openai.baseUrl` wskazuje na endpoint inny niż OpenAI, OpenClaw traktuje go jako serwer TTS zgodny z OpenAI i łagodzi walidację modelu/głosu. --- ## Talk -Domyślne ustawienia trybu Talk (macOS/iOS/Android). +Ustawienia domyślne dla trybu Talk (macOS/iOS/Android). ```json5 { @@ -1975,13 +2001,13 @@ Domyślne ustawienia trybu Talk (macOS/iOS/Android). } ``` -- `talk.provider` musi odpowiadać kluczowi w `talk.providers`, gdy skonfigurowano wielu dostawców Talk. -- Starsze płaskie klucze Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) są przeznaczone tylko do zgodności i są automatycznie migrowane do `talk.providers.`. +- `talk.provider` musi pasować do klucza w `talk.providers`, gdy skonfigurowano wielu dostawców Talk. +- Starsze płaskie klucze Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) są obsługiwane wyłącznie dla zgodności i są automatycznie migrowane do `talk.providers.`. - Identyfikatory głosów mają wartości zapasowe `ELEVENLABS_VOICE_ID` lub `SAG_VOICE_ID`. -- `providers.*.apiKey` akceptuje zwykłe ciągi tekstowe lub obiekty SecretRef. -- Wartość zapasowa `ELEVENLABS_API_KEY` ma zastosowanie tylko wtedy, gdy nie skonfigurowano klucza API Talk. +- `providers.*.apiKey` akceptuje zwykłe ciągi znaków lub obiekty SecretRef. +- Zapasowa wartość `ELEVENLABS_API_KEY` ma zastosowanie tylko wtedy, gdy nie skonfigurowano klucza API Talk. - `providers.*.voiceAliases` pozwala dyrektywom Talk używać przyjaznych nazw. -- `silenceTimeoutMs` określa, jak długo tryb Talk czeka po ciszy użytkownika, zanim wyśle transkrypt. Brak ustawienia zachowuje domyślne okno pauzy platformy (`700 ms w macOS i Android, 900 ms w iOS`). +- `silenceTimeoutMs` steruje tym, jak długo tryb Talk czeka po ciszy użytkownika, zanim wyśle transkrypt. Brak ustawienia zachowuje domyślne okno pauzy platformy (`700 ms na macOS i Androidzie, 900 ms na iOS`). --- @@ -1989,37 +2015,37 @@ Domyślne ustawienia trybu Talk (macOS/iOS/Android). ### Profile narzędzi -`tools.profile` ustawia bazową listę dozwolonych przed `tools.allow`/`tools.deny`: +`tools.profile` ustawia bazową listę zezwoleń przed `tools.allow`/`tools.deny`: -Lokalny onboarding domyślnie ustawia nowe lokalne konfiguracje na `tools.profile: "coding"`, gdy brak ustawienia (istniejące jawne profile są zachowywane). +Lokalny onboarding domyślnie ustawia nowe lokalne konfiguracje na `tools.profile: "coding"`, gdy nie jest ustawione (istniejące jawne profile są zachowywane). -| Profil | Zawiera | -| ----------- | ------------------------------------------------------------------------------------------------------------------------------- | -| `minimal` | tylko `session_status` | +| Profil | Obejmuje | +| ----------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `minimal` | tylko `session_status` | | `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` | | `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` | -| `full` | Bez ograniczeń (to samo co brak ustawienia) | +| `full` | Brak ograniczeń (to samo co brak ustawienia) | ### Grupy narzędzi -| Grupa | Narzędzia | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| `group:runtime` | `exec`, `process`, `code_execution` (`bash` jest akceptowany jako alias dla `exec`) | -| `group:fs` | `read`, `write`, `edit`, `apply_patch` | -| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` | -| `group:memory` | `memory_search`, `memory_get` | -| `group:web` | `web_search`, `x_search`, `web_fetch` | -| `group:ui` | `browser`, `canvas` | -| `group:automation` | `cron`, `gateway` | -| `group:messaging` | `message` | -| `group:nodes` | `nodes` | -| `group:agents` | `agents_list` | -| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | -| `group:openclaw` | Wszystkie wbudowane narzędzia (bez pluginów dostawców) | +| Grupa | Narzędzia | +| ------------------ | -------------------------------------------------------------------------------------------------------------------------- | +| `group:runtime` | `exec`, `process`, `code_execution` (`bash` jest akceptowany jako alias dla `exec`) | +| `group:fs` | `read`, `write`, `edit`, `apply_patch` | +| `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` | +| `group:memory` | `memory_search`, `memory_get` | +| `group:web` | `web_search`, `x_search`, `web_fetch` | +| `group:ui` | `browser`, `canvas` | +| `group:automation` | `cron`, `gateway` | +| `group:messaging` | `message` | +| `group:nodes` | `nodes` | +| `group:agents` | `agents_list` | +| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | +| `group:openclaw` | Wszystkie wbudowane narzędzia (wyklucza pluginy dostawców) | ### `tools.allow` / `tools.deny` -Globalna polityka zezwalania/zabraniania narzędzi (deny wygrywa). Niewrażliwa na wielkość liter, obsługuje wildcardy `*`. Stosowana nawet wtedy, gdy sandbox Docker jest wyłączony. +Globalna polityka zezwalania/odmawiania narzędzi (deny wygrywa). Niewrażliwa na wielkość liter, obsługuje wildcardy `*`. Stosowana nawet wtedy, gdy sandbox Docker jest wyłączony. ```json5 { @@ -2045,7 +2071,7 @@ Dodatkowo ogranicza narzędzia dla określonych dostawców lub modeli. Kolejnoś ### `tools.elevated` -Steruje dostępem elevated `exec` poza sandbox: +Steruje podniesionym dostępem exec poza sandboxem: ```json5 { @@ -2062,8 +2088,8 @@ Steruje dostępem elevated `exec` poza sandbox: ``` - Nadpisanie per agent (`agents.list[].tools.elevated`) może tylko dodatkowo ograniczać. -- `/elevated on|off|ask|full` zapisuje stan per sesja; dyrektywy inline mają zastosowanie do pojedynczej wiadomości. -- Elevated `exec` omija sandboxing i używa skonfigurowanej ścieżki ucieczki (`gateway` domyślnie, lub `node`, gdy celem `exec` jest `node`). +- `/elevated on|off|ask|full` zapisuje stan per sesja; dyrektywy inline dotyczą pojedynczej wiadomości. +- Podniesione `exec` omija sandboxing i używa skonfigurowanej ścieżki ucieczki (`gateway` domyślnie albo `node`, gdy celem exec jest `node`). ### `tools.exec` @@ -2109,13 +2135,13 @@ Ustawienia można zdefiniować globalnie w `tools.loopDetection` i nadpisać per } ``` -- `historySize`: maksymalna historia wywołań narzędzi przechowywana do analizy pętli. -- `warningThreshold`: próg ostrzeżeń dla powtarzających się wzorców bez postępu. -- `criticalThreshold`: wyższy próg blokowania krytycznych pętli. -- `globalCircuitBreakerThreshold`: próg twardego zatrzymania dla dowolnego przebiegu bez postępu. -- `detectors.genericRepeat`: ostrzega o powtarzanych wywołaniach tego samego narzędzia z tymi samymi argumentami. -- `detectors.knownPollNoProgress`: ostrzega/blokuje znane narzędzia poll (`process.poll`, `command_status` itd.). -- `detectors.pingPong`: ostrzega/blokuje naprzemienne wzorce par bez postępu. +- `historySize`: maksymalna historia wywołań narzędzi zachowywana do analizy pętli. +- `warningThreshold`: próg powtarzającego się wzorca bez postępu dla ostrzeżeń. +- `criticalThreshold`: wyższy próg powtarzania do blokowania krytycznych pętli. +- `globalCircuitBreakerThreshold`: twardy próg zatrzymania dla każdego przebiegu bez postępu. +- `detectors.genericRepeat`: ostrzegaj o powtarzanych wywołaniach tego samego narzędzia/z tymi samymi argumentami. +- `detectors.knownPollNoProgress`: ostrzegaj/blokuj znane narzędzia poll (`process.poll`, `command_status` itd.). +- `detectors.pingPong`: ostrzegaj/blokuj naprzemienne wzorce par bez postępu. - Jeśli `warningThreshold >= criticalThreshold` lub `criticalThreshold >= globalCircuitBreakerThreshold`, walidacja kończy się błędem. ### `tools.web` @@ -2133,7 +2159,7 @@ Ustawienia można zdefiniować globalnie w `tools.loopDetection` i nadpisać per }, fetch: { enabled: true, - provider: "firecrawl", // opcjonalne; pomiń dla automatycznego wykrywania + provider: "firecrawl", // opcjonalne; pomiń dla auto-detect maxChars: 50000, maxCharsCap: 50000, maxResponseBytes: 2000000, @@ -2150,7 +2176,7 @@ Ustawienia można zdefiniować globalnie w `tools.loopDetection` i nadpisać per ### `tools.media` -Konfiguruje rozumienie mediów przychodzących (obraz/audio/wideo): +Konfiguruje rozumienie przychodzących mediów (obraz/audio/wideo): ```json5 { @@ -2182,7 +2208,7 @@ Konfiguruje rozumienie mediów przychodzących (obraz/audio/wideo): } ``` - + **Wpis dostawcy** (`type: "provider"` lub pominięte): @@ -2192,10 +2218,10 @@ Konfiguruje rozumienie mediów przychodzących (obraz/audio/wideo): **Wpis CLI** (`type: "cli"`): -- `command`: wykonywalny program do uruchomienia -- `args`: parametry szablonowe (obsługuje `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` itd.) +- `command`: wykonywalne polecenie do uruchomienia +- `args`: argumenty szablonowe (obsługuje `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` itd.) -**Pola wspólne:** +**Wspólne pola:** - `capabilities`: opcjonalna lista (`image`, `audio`, `video`). Domyślnie: `openai`/`anthropic`/`minimax` → image, `google` → image+audio+video, `groq` → audio. - `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: nadpisania per wpis. @@ -2205,9 +2231,9 @@ Uwierzytelnianie dostawcy używa standardowej kolejności: `auth-profiles.json` **Pola asynchronicznego ukończenia:** -- `asyncCompletion.directSend`: gdy `true`, ukończone zadania asynchroniczne `music_generate` +- `asyncCompletion.directSend`: gdy `true`, ukończone asynchroniczne zadania `music_generate` i `video_generate` najpierw próbują bezpośredniego dostarczenia do kanału. Domyślnie: `false` - (starsza ścieżka wybudzania sesji żądającego/dostarczania przez model). + (starsza ścieżka budzenia sesji żądającej/dostarczania modelu). @@ -2226,9 +2252,9 @@ Uwierzytelnianie dostawcy używa standardowej kolejności: `auth-profiles.json` ### `tools.sessions` -Steruje tym, które sesje mogą być wskazywane przez narzędzia sesji (`sessions_list`, `sessions_history`, `sessions_send`). +Steruje tym, które sesje mogą być celem narzędzi sesji (`sessions_list`, `sessions_history`, `sessions_send`). -Domyślnie: `tree` (bieżąca sesja + sesje uruchomione przez nią, takie jak subagenci). +Domyślnie: `tree` (bieżąca sesja + sesje utworzone przez nią, takie jak subagenci). ```json5 { @@ -2244,10 +2270,10 @@ Domyślnie: `tree` (bieżąca sesja + sesje uruchomione przez nią, takie jak su Uwagi: - `self`: tylko bieżący klucz sesji. -- `tree`: bieżąca sesja + sesje uruchomione przez bieżącą sesję (subagenci). -- `agent`: dowolna sesja należąca do bieżącego identyfikatora agenta (może obejmować innych użytkowników, jeśli używasz sesji per nadawca pod tym samym identyfikatorem agenta). +- `tree`: bieżąca sesja + sesje utworzone przez bieżącą sesję (subagenci). +- `agent`: dowolna sesja należąca do bieżącego identyfikatora agenta (może obejmować innych użytkowników, jeśli uruchamiasz sesje per nadawca pod tym samym identyfikatorem agenta). - `all`: dowolna sesja. Kierowanie między agentami nadal wymaga `tools.agentToAgent`. -- Ograniczenie sandbox: gdy bieżąca sesja jest sandboxowana i `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, widoczność jest wymuszana na `tree`, nawet jeśli `tools.sessions.visibility="all"`. +- Ograniczenie sandbox: gdy bieżąca sesja jest w sandboxie, a `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, widoczność jest wymuszana do `tree`, nawet jeśli `tools.sessions.visibility="all"`. ### `tools.sessions_spawn` @@ -2262,7 +2288,7 @@ Steruje obsługą załączników inline dla `sessions_spawn`. maxTotalBytes: 5242880, // 5 MB łącznie dla wszystkich plików maxFiles: 50, maxFileBytes: 1048576, // 1 MB na plik - retainOnSessionKeep: false, // zachowaj załączniki, gdy cleanup="keep" + retainOnSessionKeep: false, // zachowuj załączniki, gdy cleanup="keep" }, }, }, @@ -2272,15 +2298,15 @@ Steruje obsługą załączników inline dla `sessions_spawn`. Uwagi: - Załączniki są obsługiwane tylko dla `runtime: "subagent"`. Runtime ACP je odrzuca. -- Pliki są materializowane w workspace potomnym pod `.openclaw/attachments//` z `.manifest.json`. -- Zawartość załączników jest automatycznie redagowana z trwałego zapisu transkryptu. -- Dane wejściowe base64 są walidowane przy użyciu ścisłych sprawdzeń alfabetu/dopełnienia i ochrony rozmiaru przed dekodowaniem. +- Pliki są materializowane w workspace dziecka pod `.openclaw/attachments//` z `.manifest.json`. +- Zawartość załączników jest automatycznie redagowana z trwałości transkryptu. +- Wejścia base64 są walidowane z rygorystycznym sprawdzaniem alfabetu/dopełnienia i zabezpieczeniem rozmiaru przed dekodowaniem. - Uprawnienia plików to `0700` dla katalogów i `0600` dla plików. - Czyszczenie podąża za polityką `cleanup`: `delete` zawsze usuwa załączniki; `keep` zachowuje je tylko, gdy `retainOnSessionKeep: true`. ### `tools.experimental` -Eksperymentalne flagi wbudowanych narzędzi. Domyślnie wyłączone, chyba że ma zastosowanie specyficzna dla runtime reguła automatycznego włączenia. +Eksperymentalne flagi wbudowanych narzędzi. Domyślnie wyłączone, chyba że obowiązuje reguła automatycznego włączania specyficzna dla runtime. ```json5 { @@ -2295,8 +2321,8 @@ Eksperymentalne flagi wbudowanych narzędzi. Domyślnie wyłączone, chyba że m Uwagi: - `planTool`: włącza strukturalne narzędzie `update_plan` do śledzenia nietrywialnej pracy wieloetapowej. -- Domyślnie: `false` dla dostawców innych niż OpenAI. Uruchomienia OpenAI i OpenAI Codex automatycznie je włączają, gdy brak ustawienia; ustaw `false`, aby wyłączyć to automatyczne włączenie. -- Gdy włączone, system prompt dodaje także wskazówki użycia, aby model używał go tylko do istotnej pracy i utrzymywał najwyżej jeden krok `in_progress`. +- Domyślnie: `false` dla dostawców innych niż OpenAI. Przebiegi OpenAI i OpenAI Codex włączają je automatycznie, gdy nie jest ustawione; ustaw `false`, aby wyłączyć automatyczne włączanie. +- Gdy jest włączone, system prompt dodaje także wskazówki użycia, aby model używał go tylko do istotnej pracy i utrzymywał najwyżej jeden krok `in_progress`. ### `agents.defaults.subagents` @@ -2316,14 +2342,14 @@ Uwagi: } ``` -- `model`: domyślny model dla uruchamianych subagentów. Jeśli pominięty, subagenci dziedziczą model wywołującego. -- `allowAgents`: domyślna lista dozwolonych identyfikatorów agentów docelowych dla `sessions_spawn`, gdy agent żądający nie ustawia własnego `subagents.allowAgents` (`["*"]` = dowolny; domyślnie: tylko ten sam agent). -- `runTimeoutSeconds`: domyślny limit czasu (sekundy) dla `sessions_spawn`, gdy wywołanie narzędzia pomija `runTimeoutSeconds`. `0` oznacza brak limitu. +- `model`: domyślny model dla tworzonych subagentów. Jeśli pominięty, subagenci dziedziczą model wywołującego. +- `allowAgents`: domyślna lista zezwoleń identyfikatorów agentów docelowych dla `sessions_spawn`, gdy agent żądający nie ustawia własnego `subagents.allowAgents` (`["*"]` = dowolny; domyślnie: tylko ten sam agent). +- `runTimeoutSeconds`: domyślny timeout (sekundy) dla `sessions_spawn`, gdy wywołanie narzędzia pomija `runTimeoutSeconds`. `0` oznacza brak timeoutu. - Polityka narzędzi per subagent: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`. --- -## Własni dostawcy i base URLs +## Własni dostawcy i base URL OpenClaw używa wbudowanego katalogu modeli. Dodaj własnych dostawców przez `models.providers` w konfiguracji lub `~/.openclaw/agents//agent/models.json`. @@ -2359,40 +2385,40 @@ OpenClaw używa wbudowanego katalogu modeli. Dodaj własnych dostawców przez `m - Priorytet scalania dla pasujących identyfikatorów dostawców: - Niepuste wartości `baseUrl` z agenta w `models.json` mają pierwszeństwo. - Niepuste wartości `apiKey` z agenta mają pierwszeństwo tylko wtedy, gdy ten dostawca nie jest zarządzany przez SecretRef w bieżącym kontekście config/auth-profile. - - Wartości `apiKey` dostawców zarządzanych przez SecretRef są odświeżane z markerów źródłowych (`ENV_VAR_NAME` dla odwołań env, `secretref-managed` dla odwołań file/exec) zamiast utrwalać rozwiązane sekrety. - - Wartości nagłówków dostawców zarządzanych przez SecretRef są odświeżane z markerów źródłowych (`secretref-env:ENV_VAR_NAME` dla odwołań env, `secretref-managed` dla odwołań file/exec). - - Puste lub brakujące `apiKey`/`baseUrl` z agenta wracają do `models.providers` w konfiguracji. - - Dla pasujących modeli `contextWindow`/`maxTokens` używana jest wyższa wartość spośród jawnej konfiguracji i niejawnych wartości katalogu. - - Dla pasujących modeli `contextTokens` zachowuje jawny limit runtime, jeśli istnieje; użyj go, aby ograniczyć efektywny kontekst bez zmiany natywnych metadanych modelu. - - Użyj `models.mode: "replace"`, jeśli chcesz, aby konfiguracja całkowicie nadpisała `models.json`. - - Trwałość markerów jest autorytatywna względem źródła: markery są zapisywane z aktywnego snapshotu konfiguracji źródłowej (przed rozwiązaniem), a nie z rozwiązanych wartości sekretów runtime. + - Wartości `apiKey` dostawców zarządzanych przez SecretRef są odświeżane ze znaczników źródła (`ENV_VAR_NAME` dla odwołań env, `secretref-managed` dla odwołań file/exec) zamiast utrwalać rozwiązane sekrety. + - Wartości nagłówków dostawców zarządzanych przez SecretRef są odświeżane ze znaczników źródła (`secretref-env:ENV_VAR_NAME` dla odwołań env, `secretref-managed` dla odwołań file/exec). + - Puste lub brakujące `apiKey`/`baseUrl` po stronie agenta wracają do `models.providers` w konfiguracji. + - Pasujące `contextWindow`/`maxTokens` modelu używają wyższej wartości między jawną konfiguracją a niejawnymi wartościami katalogu. + - Pasujące `contextTokens` modelu zachowuje jawny limit runtime, gdy jest obecny; użyj go, aby ograniczyć efektywny kontekst bez zmiany natywnych metadanych modelu. + - Użyj `models.mode: "replace"`, gdy chcesz, by konfiguracja całkowicie nadpisała `models.json`. + - Trwałość znaczników jest autorytatywna względem źródła: znaczniki są zapisywane z aktywnej migawki konfiguracji źródłowej (przed rozwiązaniem), a nie z rozwiązanych wartości sekretów runtime. ### Szczegóły pól dostawcy - `models.mode`: zachowanie katalogu dostawców (`merge` lub `replace`). - `models.providers`: mapa własnych dostawców kluczowana identyfikatorem dostawcy. -- `models.providers.*.api`: adapter żądań (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` itd.). -- `models.providers.*.apiKey`: poświadczenie dostawcy (preferuj podstawienie SecretRef/env). +- `models.providers.*.api`: adapter żądań (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` itd). +- `models.providers.*.apiKey`: poświadczenie dostawcy (preferuj podstawianie SecretRef/env). - `models.providers.*.auth`: strategia uwierzytelniania (`api-key`, `token`, `oauth`, `aws-sdk`). -- `models.providers.*.injectNumCtxForOpenAICompat`: dla Ollama + `openai-completions`, wstrzyknij `options.num_ctx` do żądań (domyślnie: `true`). +- `models.providers.*.injectNumCtxForOpenAICompat`: dla Ollama + `openai-completions`, wstrzykuj `options.num_ctx` do żądań (domyślnie: `true`). - `models.providers.*.authHeader`: wymuś transport poświadczenia w nagłówku `Authorization`, gdy jest wymagany. - `models.providers.*.baseUrl`: bazowy URL upstream API. -- `models.providers.*.headers`: dodatkowe statyczne nagłówki dla routingu proxy/najemcy. -- `models.providers.*.request`: nadpisania transportu dla żądań HTTP dostawcy modeli. - - `request.headers`: dodatkowe nagłówki (łączone z domyślnymi dostawcy). Wartości akceptują SecretRef. - - `request.auth`: nadpisanie strategii uwierzytelniania. Tryby: `"provider-default"` (użyj wbudowanego uwierzytelniania dostawcy), `"authorization-bearer"` (z `token`), `"header"` (z `headerName`, `value`, opcjonalnie `prefix`). +- `models.providers.*.headers`: dodatkowe statyczne nagłówki dla routingu proxy/dzierżawy. +- `models.providers.*.request`: nadpisania transportu dla żądań HTTP dostawcy modelu. + - `request.headers`: dodatkowe nagłówki (scalane z domyślnymi dostawcy). Wartości akceptują SecretRef. + - `request.auth`: nadpisanie strategii uwierzytelniania. Tryby: `"provider-default"` (użyj wbudowanego uwierzytelniania dostawcy), `"authorization-bearer"` (z `token`), `"header"` (z `headerName`, `value`, opcjonalnym `prefix`). - `request.proxy`: nadpisanie proxy HTTP. Tryby: `"env-proxy"` (użyj zmiennych env `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (z `url`). Oba tryby akceptują opcjonalny pod-obiekt `tls`. - `request.tls`: nadpisanie TLS dla połączeń bezpośrednich. Pola: `ca`, `cert`, `key`, `passphrase` (wszystkie akceptują SecretRef), `serverName`, `insecureSkipVerify`. - `models.providers.*.models`: jawne wpisy katalogu modeli dostawcy. - `models.providers.*.models.*.contextWindow`: natywne metadane okna kontekstu modelu. - `models.providers.*.models.*.contextTokens`: opcjonalny limit kontekstu runtime. Użyj tego, gdy chcesz mniejszy efektywny budżet kontekstu niż natywne `contextWindow` modelu. -- `models.providers.*.models.*.compat.supportsDeveloperRole`: opcjonalna wskazówka zgodności. Dla `api: "openai-completions"` z niepustym, nienatywnym `baseUrl` (host nie jest `api.openai.com`), OpenClaw wymusza w runtime `false`. Pusty/pominięty `baseUrl` zachowuje domyślne zachowanie OpenAI. -- `models.providers.*.models.*.compat.requiresStringContent`: opcjonalna wskazówka zgodności dla zgodnych z OpenAI endpointów chat obsługujących tylko ciągi. Gdy `true`, OpenClaw spłaszcza czysto tekstowe tablice `messages[].content` do zwykłych ciągów przed wysłaniem żądania. -- `plugins.entries.amazon-bedrock.config.discovery`: katalog główny ustawień auto-discovery Bedrock. -- `plugins.entries.amazon-bedrock.config.discovery.enabled`: włącz/wyłącz niejawne wykrywanie. -- `plugins.entries.amazon-bedrock.config.discovery.region`: region AWS do wykrywania. -- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: opcjonalny filtr identyfikatorów dostawców do ukierunkowanego wykrywania. -- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: interwał odświeżania wykrywania. +- `models.providers.*.models.*.compat.supportsDeveloperRole`: opcjonalna wskazówka zgodności. Dla `api: "openai-completions"` z niepustym, nienatywnym `baseUrl` (host nie jest `api.openai.com`), OpenClaw wymusza w runtime `false`. Puste/pominięte `baseUrl` zachowuje domyślne zachowanie OpenAI. +- `models.providers.*.models.*.compat.requiresStringContent`: opcjonalna wskazówka zgodności dla endpointów czatu zgodnych z OpenAI obsługujących tylko ciągi. Gdy `true`, OpenClaw spłaszcza czysto tekstowe tablice `messages[].content` do zwykłych ciągów przed wysłaniem żądania. +- `plugins.entries.amazon-bedrock.config.discovery`: główny katalog ustawień auto-discovery Bedrock. +- `plugins.entries.amazon-bedrock.config.discovery.enabled`: włącz/wyłącz niejawne discovery. +- `plugins.entries.amazon-bedrock.config.discovery.region`: region AWS dla discovery. +- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: opcjonalny filtr identyfikatorów dostawców dla celowanego discovery. +- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: interwał odpytywania odświeżania discovery. - `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: zapasowe okno kontekstu dla wykrytych modeli. - `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: zapasowa maksymalna liczba tokenów wyjściowych dla wykrytych modeli. @@ -2469,7 +2495,7 @@ Ustaw `OPENCODE_API_KEY` (lub `OPENCODE_ZEN_API_KEY`). Używaj odwołań `openco Ustaw `ZAI_API_KEY`. `z.ai/*` i `z-ai/*` są akceptowanymi aliasami. Skrót: `openclaw onboard --auth-choice zai-api-key`. - Ogólny endpoint: `https://api.z.ai/api/paas/v4` -- Endpoint coding (domyślny): `https://api.z.ai/api/coding/paas/v4` +- Endpoint do programowania (domyślny): `https://api.z.ai/api/coding/paas/v4` - Dla ogólnego endpointu zdefiniuj własnego dostawcę z nadpisaniem base URL. @@ -2509,11 +2535,11 @@ Ustaw `ZAI_API_KEY`. `z.ai/*` i `z-ai/*` są akceptowanymi aliasami. Skrót: `op } ``` -Dla endpointu w Chinach: `baseUrl: "https://api.moonshot.cn/v1"` lub `openclaw onboard --auth-choice moonshot-api-key-cn`. +Dla endpointu China: `baseUrl: "https://api.moonshot.cn/v1"` lub `openclaw onboard --auth-choice moonshot-api-key-cn`. -Natywne endpointy Moonshot deklarują zgodność użycia streamingu na współdzielonym -transporcie `openai-completions`, a OpenClaw opiera to teraz na możliwościach -endpointu, a nie wyłącznie na wbudowanym identyfikatorze dostawcy. +Natywne endpointy Moonshot deklarują zgodność użycia strumieniowania na współdzielonym +transporcie `openai-completions`, a OpenClaw teraz opiera to na możliwościach endpointu, +a nie wyłącznie na wbudowanym identyfikatorze dostawcy. @@ -2524,23 +2550,4 @@ endpointu, a nie wyłącznie na wbudowanym identyfikatorze dostawcy. env: { KIMI_API_KEY: "sk-..." }, agents: { defaults: { - model: { primary: "kimi/kimi-code" }, - models: { "kimi/kimi-code": { alias: "Kimi Code" } }, - }, - }, -} -``` - -Zgodny z Anthropic, wbudowany dostawca. Skrót: `openclaw onboard --auth-choice kimi-code-api-key`. - - - - - -```json5 -{ - env: { SYNTHETIC_API_KEY: "sk-..." }, - agents: { - defaults: { - model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" }, - models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias \ No newline at end of file + model: { primary: "kimi/kimi-code" }, \ No newline at end of file diff --git a/docs/pl/plugins/sdk-migration.md b/docs/pl/plugins/sdk-migration.md index a6167ab35..85de99b8a 100644 --- a/docs/pl/plugins/sdk-migration.md +++ b/docs/pl/plugins/sdk-migration.md @@ -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. - 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. @@ -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/\`) -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/\`) +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ę - - Pluginy kanałów obsługujące zatwierdzenia udostępniają teraz natywne zachowanie zatwierdzeń przez + + 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`. 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. - 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.*` | @@ -184,183 +188,185 @@ Aktualne przykłady dołączonych dostawców: -## Dokumentacja ścieżek importu +## Odniesienie do ścieżek importu - - | Import path | Cel | Kluczowe eksporty | + + | Ś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 | -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 diff --git a/docs/pl/plugins/sdk-overview.md b/docs/pl/plugins/sdk-overview.md index b4c535129..6d4e39250 100644 --- a/docs/pl/plugins/sdk-overview.md +++ b/docs/pl/plugins/sdk-overview.md @@ -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ć**. **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) -## 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` | - | 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 | - | 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 | - | 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ń | - - | Subpath | Kluczowe eksporty | + + | Ś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` | - - | Subpath | Kluczowe eksporty | + + | Ś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` | - | 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 | - - | Family | Current subpaths | Intended use | + + | 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` | ## 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.`. - Konfiguracja użytkownika nadal ma pierwszeństwo. OpenClaw scala `agents.defaults.cliBackends.` 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 też 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` | Konfiguracja specyficzna dla pluginu z `plugins.entries..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` | Konfiguracja specyficzna dla pluginu z `plugins.entries..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) ``` @@ -471,37 +476,37 @@ my-plugin/ `./runtime-api.ts`. Ścieżka SDK jest wyłącznie kontraktem zewnętrznym. -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 - Kod produkcyjny rozszerzeń powinien też unikać importów `openclaw/plugin-sdk/`. + Kod produkcyjny rozszerzeń powinien również unikać importów `openclaw/plugin-sdk/`. 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ą. ## 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 diff --git a/docs/pl/providers/google.md b/docs/pl/providers/google.md index abc2a3602..6f489da23 100644 --- a/docs/pl/providers/google.md +++ b/docs/pl/providers/google.md @@ -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`). diff --git a/docs/pl/providers/ollama.md b/docs/pl/providers/ollama.md index 5f75a3825..b28a330b8 100644 --- a/docs/pl/providers/ollama.md +++ b/docs/pl/providers/ollama.md @@ -1,31 +1,31 @@ --- read_when: - Chcesz uruchamiać OpenClaw z modelami chmurowymi lub lokalnymi przez Ollama - - Potrzebujesz wskazówek dotyczących konfiguracji i ustawień 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`. -**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`). ## 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 ``` -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. ### 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. -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