From 4ce94be648b262f5fd50a92b178b43d6dd8763e4 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Mon, 6 Apr 2026 09:50:58 +0000 Subject: [PATCH] chore(i18n): refresh pl translations --- docs/pl/channels/matrix.md | 591 ++++++------- docs/pl/channels/slack.md | 362 +++++--- docs/pl/concepts/dreaming.md | 113 +-- docs/pl/gateway/configuration-reference.md | 933 +++++++++++---------- docs/pl/plugins/sdk-migration.md | 380 +++++---- docs/pl/plugins/sdk-overview.md | 591 ++++++------- docs/pl/tools/image-generation.md | 100 ++- docs/pl/tools/video-generation.md | 162 ++-- 8 files changed, 1687 insertions(+), 1545 deletions(-) diff --git a/docs/pl/channels/matrix.md b/docs/pl/channels/matrix.md index 0bed7b749..0747bcaff 100644 --- a/docs/pl/channels/matrix.md +++ b/docs/pl/channels/matrix.md @@ -1,29 +1,29 @@ --- read_when: - Konfigurowanie Matrix w OpenClaw - - Konfigurowanie E2EE i weryfikacji Matrix + - Konfigurowanie Matrix E2EE i weryfikacji summary: Stan obsługi Matrix, konfiguracja i przykłady ustawień title: Matrix x-i18n: - generated_at: "2026-04-06T03:08:38Z" + generated_at: "2026-04-06T09:48:06Z" model: gpt-5.4 provider: openai - source_hash: 3e2d84c08d7d5b96db14b914e54f08d25334401cdd92eb890bc8dfb37b0ca2dc + source_hash: 06f833bf0ede81bad69f140994c32e8cc5d1635764f95fc5db4fc5dc25f2b85e source_path: channels/matrix.md workflow: 15 --- # Matrix -Matrix to dołączona w pakiecie wtyczka kanału Matrix dla OpenClaw. -Korzysta z oficjalnego `matrix-js-sdk` i obsługuje wiadomości prywatne, pokoje, wątki, multimedia, reakcje, ankiety, lokalizację oraz E2EE. +Matrix to dołączony plugin kanału Matrix dla OpenClaw. +Korzysta z oficjalnego `matrix-js-sdk` i obsługuje wiadomości DM, pokoje, wątki, multimedia, reakcje, ankiety, lokalizację oraz E2EE. -## Dołączona wtyczka +## Dołączony plugin -Matrix jest dostarczany jako dołączona wtyczka w bieżących wydaniach OpenClaw, więc zwykłe -spakowane buildy nie wymagają osobnej instalacji. +Matrix jest dostarczany jako dołączony plugin w aktualnych wydaniach OpenClaw, więc zwykłe +spakowane kompilacje nie wymagają osobnej instalacji. -Jeśli używasz starszego buildu lub niestandardowej instalacji, która nie zawiera Matrix, zainstaluj +Jeśli używasz starszej kompilacji lub niestandardowej instalacji, która nie zawiera Matrix, zainstaluj go ręcznie: Instalacja z npm: @@ -38,21 +38,21 @@ Instalacja z lokalnego checkoutu: openclaw plugins install ./path/to/local/matrix-plugin ``` -Zobacz [Wtyczki](/pl/tools/plugin), aby poznać zachowanie wtyczek i zasady instalacji. +Zobacz [Plugins](/pl/tools/plugin), aby poznać zachowanie pluginów i zasady instalacji. ## Konfiguracja -1. Upewnij się, że wtyczka Matrix jest dostępna. - - Jest już dołączona do obecnych spakowanych wydań OpenClaw. - - Starsze/niestandardowe instalacje mogą dodać ją ręcznie za pomocą powyższych poleceń. +1. Upewnij się, że plugin Matrix jest dostępny. + - Aktualne spakowane wydania OpenClaw już go zawierają. + - Starsze/niestandardowe instalacje mogą dodać go ręcznie za pomocą powyższych poleceń. 2. Utwórz konto Matrix na swoim homeserverze. -3. Skonfiguruj `channels.matrix`, używając jednego z wariantów: +3. Skonfiguruj `channels.matrix`, używając jednej z opcji: - `homeserver` + `accessToken`, lub - `homeserver` + `userId` + `password`. -4. Uruchom ponownie gateway. -5. Rozpocznij wiadomość prywatną z botem lub zaproś go do pokoju. +4. Uruchom ponownie bramę. +5. Rozpocznij wiadomość DM z botem albo zaproś go do pokoju. -Ścieżki konfiguracji interaktywnej: +Interaktywne ścieżki konfiguracji: ```bash openclaw channels add @@ -63,19 +63,19 @@ O co dokładnie pyta kreator Matrix: - URL homeservera - metoda uwierzytelniania: token dostępu lub hasło -- identyfikator użytkownika tylko wtedy, gdy wybierzesz uwierzytelnianie hasłem +- ID użytkownika tylko wtedy, gdy wybierzesz uwierzytelnianie hasłem - opcjonalna nazwa urządzenia - czy włączyć E2EE - czy skonfigurować teraz dostęp do pokoi Matrix -Istotne zachowanie kreatora: +Ważne zachowanie kreatora: -- Jeśli zmienne środowiskowe uwierzytelniania Matrix już istnieją dla wybranego konta, a to konto nie ma jeszcze zapisanego uwierzytelniania w konfiguracji, kreator oferuje skrót ze zmiennymi środowiskowymi i zapisuje dla tego konta tylko `enabled: true`. -- Gdy interaktywnie dodajesz kolejne konto Matrix, wpisana nazwa konta jest normalizowana do identyfikatora konta używanego w konfiguracji i zmiennych środowiskowych. Na przykład `Ops Bot` staje się `ops-bot`. -- Podpowiedzi allowlisty wiadomości prywatnych od razu akceptują pełne wartości `@user:server`. Nazwy wyświetlane działają tylko wtedy, gdy wyszukiwanie w katalogu na żywo znajdzie dokładnie jedno dopasowanie; w przeciwnym razie kreator poprosi o ponowną próbę z pełnym identyfikatorem Matrix. -- Podpowiedzi allowlisty pokoi akceptują bezpośrednio identyfikatory pokoi i aliasy. Mogą też rozpoznawać nazwy dołączonych pokoi na żywo, ale nierozpoznane nazwy są podczas konfiguracji zachowywane tylko w wpisanej postaci i później ignorowane przez rozpoznawanie allowlisty w czasie działania. Preferuj `!room:server` lub `#alias:server`. -- Tożsamość pokoju/sesji w czasie działania używa stabilnego identyfikatora pokoju Matrix. Aliasy zadeklarowane w pokoju są używane tylko jako dane wejściowe wyszukiwania, a nie jako długoterminowy klucz sesji ani stabilna tożsamość grupy. -- Aby rozpoznać nazwy pokoi przed ich zapisaniem, użyj `openclaw channels resolve --channel matrix "Project Room"`. +- Jeśli zmienne środowiskowe uwierzytelniania Matrix już istnieją dla wybranego konta, a to konto nie ma jeszcze zapisanego uwierzytelniania w konfiguracji, kreator oferuje skrót przez zmienne środowiskowe i zapisuje tylko `enabled: true` dla tego konta. +- Gdy interaktywnie dodajesz kolejne konto Matrix, wprowadzona nazwa konta jest normalizowana do ID konta używanego w konfiguracji i zmiennych środowiskowych. Na przykład `Ops Bot` staje się `ops-bot`. +- Monity allowlist dla DM od razu akceptują pełne wartości `@user:server`. Nazwy wyświetlane działają tylko wtedy, gdy wyszukiwanie w katalogu na żywo znajdzie jedno dokładne dopasowanie; w przeciwnym razie kreator poprosi o ponowną próbę z pełnym ID Matrix. +- Monity allowlist dla pokoi akceptują bezpośrednio ID pokoi i aliasy. Mogą też na żywo rozwiązywać nazwy dołączonych pokoi, ale nierozwiązane nazwy są zachowywane tylko tak, jak zostały wpisane podczas konfiguracji, i są później ignorowane przez rozwiązywanie allowlist w runtime. Preferuj `!room:server` lub `#alias:server`. +- Tożsamość pokoju/sesji w runtime używa stabilnego ID pokoju Matrix. Aliasy zadeklarowane w pokoju są używane wyłącznie jako dane wejściowe do wyszukiwania, a nie jako długoterminowy klucz sesji lub stabilna tożsamość grupy. +- Aby rozwiązać nazwy pokoi przed ich zapisaniem, użyj `openclaw channels resolve --channel matrix "Project Room"`. Minimalna konfiguracja oparta na tokenie: @@ -108,11 +108,11 @@ Konfiguracja oparta na haśle (token jest buforowany po zalogowaniu): } ``` -Matrix przechowuje zbuforowane poświadczenia w `~/.openclaw/credentials/matrix/`. +Matrix przechowuje buforowane dane uwierzytelniające w `~/.openclaw/credentials/matrix/`. Konto domyślne używa `credentials.json`; nazwane konta używają `credentials-.json`. -Gdy istnieją tam zbuforowane poświadczenia, OpenClaw traktuje Matrix jako skonfigurowany na potrzeby konfiguracji, doctor oraz wykrywania stanu kanału, nawet jeśli bieżące uwierzytelnianie nie jest ustawione bezpośrednio w konfiguracji. +Gdy istnieją tam buforowane dane uwierzytelniające, OpenClaw traktuje Matrix jako skonfigurowany dla potrzeb setupu, doctora i wykrywania statusu kanału, nawet jeśli bieżące uwierzytelnianie nie jest ustawione bezpośrednio w konfiguracji. -Odpowiedniki w zmiennych środowiskowych (używane, gdy klucz konfiguracyjny nie jest ustawiony): +Odpowiedniki zmiennych środowiskowych (używane, gdy klucz konfiguracyjny nie jest ustawiony): - `MATRIX_HOMESERVER` - `MATRIX_ACCESS_TOKEN` @@ -121,7 +121,7 @@ Odpowiedniki w zmiennych środowiskowych (używane, gdy klucz konfiguracyjny nie - `MATRIX_DEVICE_ID` - `MATRIX_DEVICE_NAME` -Dla kont innych niż domyślne użyj zmiennych środowiskowych przypisanych do konta: +Dla kont innych niż domyślne używaj zmiennych środowiskowych z zakresem konta: - `MATRIX__HOMESERVER` - `MATRIX__ACCESS_TOKEN` @@ -135,19 +135,19 @@ Przykład dla konta `ops`: - `MATRIX_OPS_HOMESERVER` - `MATRIX_OPS_ACCESS_TOKEN` -Dla znormalizowanego identyfikatora konta `ops-bot` użyj: +Dla znormalizowanego ID konta `ops-bot` użyj: - `MATRIX_OPS_X2D_BOT_HOMESERVER` - `MATRIX_OPS_X2D_BOT_ACCESS_TOKEN` -Matrix ucieka znaki interpunkcyjne w identyfikatorach kont, aby uniknąć kolizji zmiennych środowiskowych przypisanych do kont. +Matrix ucieka znaki interpunkcyjne w ID kont, aby uniknąć kolizji zmiennych środowiskowych z zakresem. Na przykład `-` staje się `_X2D_`, więc `ops-prod` mapuje się na `MATRIX_OPS_X2D_PROD_*`. -Interaktywny kreator oferuje skrót ze zmiennymi środowiskowymi tylko wtedy, gdy te zmienne uwierzytelniania są już obecne, a wybrane konto nie ma jeszcze zapisanego uwierzytelniania Matrix w konfiguracji. +Interaktywny kreator oferuje skrót przez zmienne środowiskowe tylko wtedy, gdy te zmienne uwierzytelniania są już obecne, a wybrane konto nie ma jeszcze zapisanego uwierzytelniania Matrix w konfiguracji. ## Przykład konfiguracji -To praktyczna bazowa konfiguracja z parowaniem wiadomości prywatnych, allowlistą pokoi i włączonym E2EE: +To praktyczna konfiguracja bazowa z parowaniem DM, allowlist pokoi i włączonym E2EE: ```json5 { @@ -182,13 +182,17 @@ To praktyczna bazowa konfiguracja z parowaniem wiadomości prywatnych, allowlist } ``` -## Podglądy strumieniowania +`autoJoin` dotyczy zaproszeń Matrix ogólnie, nie tylko zaproszeń do pokoi/grup. +Obejmuje to świeże zaproszenia w stylu DM. W momencie zaproszenia OpenClaw nie wie jeszcze wiarygodnie, czy +zaproszony pokój zostanie ostatecznie potraktowany jako DM czy grupa, więc wszystkie zaproszenia przechodzą najpierw przez tę samą decyzję `autoJoin`. `dm.policy` nadal obowiązuje po dołączeniu bota i sklasyfikowaniu pokoju +jako DM, więc `autoJoin` kontroluje zachowanie przy dołączaniu, a `dm.policy` kontroluje zachowanie odpowiedzi/dostępu. -Strumieniowanie odpowiedzi Matrix jest opcjonalne. +## Podglądy strumieniowe -Ustaw `channels.matrix.streaming` na `"partial"`, jeśli chcesz, aby OpenClaw wysłał pojedynczą podglądową -odpowiedź na żywo, edytował ten podgląd w miejscu podczas generowania tekstu przez model, a następnie sfinalizował go po -zakończeniu odpowiedzi: +Strumieniowanie odpowiedzi w Matrix jest opcjonalne. + +Ustaw `channels.matrix.streaming` na `"partial"`, jeśli chcesz, aby OpenClaw wysyłał pojedynczą odpowiedź +podglądu na żywo, edytował ten podgląd na miejscu podczas generowania tekstu przez model, a następnie finalizował go po zakończeniu odpowiedzi: ```json5 { @@ -200,38 +204,38 @@ zakończeniu odpowiedzi: } ``` -- `streaming: "off"` jest ustawieniem domyślnym. OpenClaw czeka na końcową odpowiedź i wysyła ją jednorazowo. -- `streaming: "partial"` tworzy jedną edytowalną wiadomość podglądu dla bieżącego bloku odpowiedzi asystenta przy użyciu zwykłych wiadomości tekstowych Matrix. Zachowuje to starsze zachowanie Matrix polegające na powiadamianiu najpierw o podglądzie, więc standardowe klienty mogą powiadamiać na podstawie pierwszego strumieniowanego tekstu podglądu zamiast gotowego bloku. -- `streaming: "quiet"` tworzy jeden edytowalny cichy podgląd-notice dla bieżącego bloku odpowiedzi asystenta. Używaj tego tylko wtedy, gdy skonfigurujesz także reguły push odbiorców dla sfinalizowanych edycji podglądu. -- `blockStreaming: true` włącza osobne komunikaty postępu Matrix. Gdy strumieniowanie podglądu jest włączone, Matrix zachowuje bieżący szkic dla aktualnego bloku i pozostawia ukończone bloki jako osobne wiadomości. -- Gdy podgląd strumieniowania jest włączony, a `blockStreaming` jest wyłączone, Matrix edytuje szkic na żywo w miejscu i finalizuje to samo zdarzenie po zakończeniu bloku lub całej tury. -- Jeśli podgląd przestanie mieścić się w jednym zdarzeniu Matrix, OpenClaw zatrzymuje strumieniowanie podglądu i wraca do zwykłego końcowego dostarczenia. -- Odpowiedzi multimedialne nadal wysyłają załączniki normalnie. Jeśli nie można już bezpiecznie ponownie użyć starego podglądu, OpenClaw redaguje go przed wysłaniem końcowej odpowiedzi multimedialnej. -- Edycje podglądu powodują dodatkowe wywołania API Matrix. Pozostaw strumieniowanie wyłączone, jeśli chcesz zachować najbardziej konserwatywne zachowanie względem limitów szybkości. +- `streaming: "off"` to ustawienie domyślne. OpenClaw czeka na końcową odpowiedź i wysyła ją raz. +- `streaming: "partial"` tworzy jedną edytowalną wiadomość podglądu dla bieżącego bloku odpowiedzi asystenta przy użyciu zwykłych wiadomości tekstowych Matrix. Zachowuje to starsze zachowanie Matrix polegające na powiadamianiu najpierw o podglądzie, więc standardowe klienty mogą powiadamiać o pierwszym strumieniowanym tekście podglądu zamiast o ukończonym bloku. +- `streaming: "quiet"` tworzy jedną edytowalną, cichą informację o podglądzie dla bieżącego bloku odpowiedzi asystenta. Używaj tego tylko wtedy, gdy skonfigurujesz także reguły push odbiorców dla finalizowanych edycji podglądu. +- `blockStreaming: true` włącza osobne wiadomości postępu Matrix. Gdy strumieniowanie podglądu jest włączone, Matrix utrzymuje wersję roboczą na żywo dla bieżącego bloku i zachowuje ukończone bloki jako osobne wiadomości. +- Gdy podgląd strumieniowy jest włączony, a `blockStreaming` wyłączone, Matrix edytuje wersję roboczą na żywo na miejscu i finalizuje to samo zdarzenie po zakończeniu bloku lub tury. +- Jeśli podgląd przestanie mieścić się w jednym zdarzeniu Matrix, OpenClaw zatrzymuje strumieniowanie podglądu i wraca do normalnego końcowego dostarczenia. +- Odpowiedzi multimedialne nadal wysyłają załączniki w standardowy sposób. Jeśli nieaktualnego podglądu nie da się już bezpiecznie użyć ponownie, OpenClaw redaguje go przed wysłaniem końcowej odpowiedzi multimedialnej. +- Edycje podglądu generują dodatkowe wywołania API Matrix. Pozostaw strumieniowanie wyłączone, jeśli chcesz najbardziej zachowawczego zachowania względem limitów szybkości. -Samo `blockStreaming` nie włącza szkiców podglądu. -Użyj `streaming: "partial"` lub `streaming: "quiet"` do edycji podglądu; następnie dodaj `blockStreaming: true` tylko wtedy, gdy chcesz również, aby ukończone bloki asystenta pozostały widoczne jako osobne komunikaty postępu. +`blockStreaming` samo w sobie nie włącza wersji roboczych podglądu. +Użyj `streaming: "partial"` lub `streaming: "quiet"` do edycji podglądu; następnie dodaj `blockStreaming: true` tylko wtedy, gdy chcesz także, aby ukończone bloki asystenta pozostawały widoczne jako osobne wiadomości postępu. -Jeśli potrzebujesz standardowych powiadomień Matrix bez niestandardowych reguł push, użyj `streaming: "partial"` dla zachowania „najpierw podgląd” albo pozostaw `streaming` wyłączone dla dostarczania tylko gotowej odpowiedzi. Gdy `streaming: "off"`: +Jeśli potrzebujesz standardowych powiadomień Matrix bez niestandardowych reguł push, użyj `streaming: "partial"` dla zachowania „najpierw podgląd” albo pozostaw `streaming` wyłączone dla dostarczania wyłącznie finalnej odpowiedzi. Przy `streaming: "off"`: - `blockStreaming: true` wysyła każdy ukończony blok jako zwykłą powiadamiającą wiadomość Matrix. - `blockStreaming: false` wysyła tylko końcową ukończoną odpowiedź jako zwykłą powiadamiającą wiadomość Matrix. -### Samohostowane reguły push dla cichych sfinalizowanych podglądów +### Samodzielnie hostowane reguły push dla cichych finalizowanych podglądów -Jeśli używasz własnej infrastruktury Matrix i chcesz, aby ciche podglądy powiadamiały tylko wtedy, gdy blok lub -końcowa odpowiedź są gotowe, ustaw `streaming: "quiet"` i dodaj regułę push per użytkownik dla sfinalizowanych edycji podglądu. +Jeśli utrzymujesz własną infrastrukturę Matrix i chcesz, aby ciche podglądy wysyłały powiadomienie dopiero po zakończeniu bloku lub +końcowej odpowiedzi, ustaw `streaming: "quiet"` i dodaj regułę push per użytkownik dla finalizowanych edycji podglądu. Zwykle jest to konfiguracja po stronie użytkownika-odbiorcy, a nie globalna zmiana konfiguracji homeservera: Szybka mapa przed rozpoczęciem: -- użytkownik odbiorca = osoba, która powinna otrzymać powiadomienie -- użytkownik bot = konto Matrix OpenClaw wysyłające odpowiedź -- do poniższych wywołań API użyj tokenu dostępu użytkownika odbiorcy -- w regule push dopasuj `sender` do pełnego MXID użytkownika bota +- użytkownik odbiorca = osoba, która ma otrzymać powiadomienie +- użytkownik bota = konto Matrix OpenClaw, które wysyła odpowiedź +- do poniższych wywołań API użyj tokena dostępu użytkownika odbiorcy +- dopasuj `sender` w regule push do pełnego MXID użytkownika bota -1. Skonfiguruj OpenClaw tak, aby używał cichych podglądów: +1. Skonfiguruj OpenClaw do używania cichych podglądów: ```json5 { @@ -247,9 +251,9 @@ Szybka mapa przed rozpoczęciem: działają tylko wtedy, gdy ten użytkownik ma już działające pushery/urządzenia. 3. Pobierz token dostępu użytkownika odbiorcy. - - Użyj tokenu użytkownika odbierającego, a nie tokenu bota. - - Najłatwiej jest zwykle użyć ponownie tokenu istniejącej sesji klienta. - - Jeśli potrzebujesz wygenerować nowy token, możesz zalogować się przez standardowe API Client-Server Matrix: + - Użyj tokena użytkownika odbierającego, a nie tokena bota. + - Ponowne użycie tokena istniejącej sesji klienta jest zwykle najprostsze. + - Jeśli musisz wygenerować nowy token, możesz zalogować się przez standardowe API Matrix Client-Server: ```bash curl -sS -X POST \ @@ -273,10 +277,10 @@ curl -sS \ "https://matrix.example.org/_matrix/client/v3/pushers" ``` -Jeśli to zwróci brak aktywnych pusherów/urządzeń, najpierw napraw zwykłe powiadomienia Matrix, a dopiero potem dodaj +Jeśli to zwróci brak aktywnych pusherów/urządzeń, najpierw napraw zwykłe powiadomienia Matrix, zanim dodasz poniższą regułę OpenClaw. -OpenClaw oznacza sfinalizowane edycje podglądu zawierające wyłącznie tekst za pomocą: +OpenClaw oznacza finalizowane edycje podglądu zawierające wyłącznie tekst jako: ```json { @@ -284,7 +288,7 @@ OpenClaw oznacza sfinalizowane edycje podglądu zawierające wyłącznie tekst z } ``` -5. Utwórz regułę push override dla każdego konta odbiorcy, które ma otrzymywać te powiadomienia: +5. Utwórz regułę push typu override dla każdego konta odbiorcy, które ma otrzymywać te powiadomienia: ```bash curl -sS -X PUT \ @@ -314,18 +318,18 @@ curl -sS -X PUT \ }' ``` -Zastąp te wartości przed uruchomieniem polecenia: +Przed uruchomieniem polecenia podmień te wartości: - `https://matrix.example.org`: podstawowy URL twojego homeservera - `$USER_ACCESS_TOKEN`: token dostępu użytkownika odbierającego -- `openclaw-finalized-preview-botname`: identyfikator reguły unikalny dla tego bota i tego użytkownika odbierającego +- `openclaw-finalized-preview-botname`: ID reguły unikalne dla tego bota i tego użytkownika odbierającego - `@bot:example.org`: MXID twojego bota Matrix OpenClaw, a nie MXID użytkownika odbierającego -Ważne w konfiguracjach z wieloma botami: +Ważne przy konfiguracjach z wieloma botami: -- Reguły push są kluczowane przez `ruleId`. Ponowne wykonanie `PUT` dla tego samego identyfikatora reguły aktualizuje tę jedną regułę. -- Jeśli jeden użytkownik odbierający ma otrzymywać powiadomienia od wielu kont botów Matrix OpenClaw, utwórz jedną regułę na bota z unikalnym identyfikatorem reguły dla każdego dopasowania nadawcy. -- Prosty wzorzec to `openclaw-finalized-preview-`, na przykład `openclaw-finalized-preview-ops` lub `openclaw-finalized-preview-support`. +- Reguły push są kluczowane przez `ruleId`. Ponowne uruchomienie `PUT` dla tego samego ID reguły aktualizuje tę jedną regułę. +- Jeśli jeden użytkownik odbierający ma otrzymywać powiadomienia od wielu kont botów Matrix OpenClaw, utwórz jedną regułę na bota z unikalnym ID reguły dla każdego dopasowania nadawcy. +- Prostym wzorcem jest `openclaw-finalized-preview-`, na przykład `openclaw-finalized-preview-ops` lub `openclaw-finalized-preview-support`. Reguła jest oceniana względem nadawcy zdarzenia: @@ -340,10 +344,10 @@ curl -sS \ "https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" ``` -7. Przetestuj strumieniowaną odpowiedź. W trybie cichym pokój powinien pokazywać cichy szkic podglądu, a końcowa - edycja w miejscu powinna wysłać powiadomienie po zakończeniu bloku lub tury. +7. Przetestuj strumieniowaną odpowiedź. W trybie cichym pokój powinien pokazać cichy podgląd wersji roboczej, a końcowa + edycja na miejscu powinna wysłać powiadomienie po zakończeniu bloku lub tury. -Jeśli później trzeba będzie usunąć regułę, usuń ten sam identyfikator reguły przy użyciu tokenu użytkownika odbierającego: +Jeśli później chcesz usunąć regułę, usuń to samo ID reguły przy użyciu tokena użytkownika odbierającego: ```bash curl -sS -X DELETE \ @@ -353,37 +357,37 @@ curl -sS -X DELETE \ Uwagi: -- Utwórz regułę przy użyciu tokenu dostępu użytkownika odbierającego, a nie tokenu bota. -- Nowe zdefiniowane przez użytkownika reguły `override` są wstawiane przed domyślnymi regułami wyciszającymi, więc nie jest potrzebny dodatkowy parametr kolejności. -- Dotyczy to tylko edycji podglądu zawierających wyłącznie tekst, które OpenClaw może bezpiecznie sfinalizować w miejscu. Fallbacki dla multimediów i fallbacki dla starych podglądów nadal używają zwykłego dostarczania Matrix. -- Jeśli `GET /_matrix/client/v3/pushers` nie pokazuje żadnych pusherów, użytkownik nie ma jeszcze działającego dostarczania powiadomień push Matrix dla tego konta/urządzenia. +- Utwórz regułę przy użyciu tokena dostępu użytkownika odbierającego, a nie tokena bota. +- Nowe reguły `override` zdefiniowane przez użytkownika są wstawiane przed domyślnymi regułami wyciszającymi, więc nie jest potrzebny dodatkowy parametr kolejności. +- Dotyczy to tylko edycji podglądu zawierających wyłącznie tekst, które OpenClaw może bezpiecznie sfinalizować na miejscu. Fallbacki dla multimediów i fallbacki dla nieaktualnego podglądu nadal używają zwykłego dostarczania Matrix. +- Jeśli `GET /_matrix/client/v3/pushers` nie pokazuje żadnych pusherów, użytkownik nie ma jeszcze działającego dostarczania push Matrix dla tego konta/urządzenia. #### Synapse W przypadku Synapse powyższa konfiguracja zwykle sama w sobie wystarcza: -- Nie jest wymagana żadna specjalna zmiana `homeserver.yaml` dla sfinalizowanych powiadomień podglądu OpenClaw. -- Jeśli twoje wdrożenie Synapse już wysyła zwykłe powiadomienia push Matrix, token użytkownika + wywołanie `pushrules` powyżej to główny krok konfiguracji. +- Nie jest wymagana specjalna zmiana `homeserver.yaml` dla finalizowanych powiadomień o podglądzie OpenClaw. +- Jeśli wdrożenie Synapse już wysyła zwykłe powiadomienia push Matrix, głównym krokiem konfiguracji jest token użytkownika + powyższe wywołanie `pushrules`. - Jeśli uruchamiasz Synapse za reverse proxy lub workerami, upewnij się, że `/_matrix/client/.../pushrules/` poprawnie trafia do Synapse. -- Jeśli używasz workerów Synapse, upewnij się, że pushery działają prawidłowo. Dostarczanie push jest obsługiwane przez proces główny albo `synapse.app.pusher` / skonfigurowane workery pusherów. +- Jeśli używasz workerów Synapse, upewnij się, że pushery są sprawne. Dostarczanie push jest obsługiwane przez główny proces albo przez `synapse.app.pusher` / skonfigurowane workery pusherów. #### Tuwunel W przypadku Tuwunel użyj tego samego przepływu konfiguracji i wywołania API `pushrules`, które pokazano powyżej: -- Nie jest wymagana żadna konfiguracja specyficzna dla Tuwunel dla samego znacznika sfinalizowanego podglądu. -- Jeśli zwykłe powiadomienia Matrix już działają dla tego użytkownika, token użytkownika + wywołanie `pushrules` powyżej to główny krok konfiguracji. -- Jeśli wygląda na to, że powiadomienia znikają, gdy użytkownik jest aktywny na innym urządzeniu, sprawdź, czy włączono `suppress_push_when_active`. Tuwunel dodał tę opcję w Tuwunel 1.4.2 12 września 2025 r. i może ona celowo wyciszać powiadomienia push na innych urządzeniach, gdy jedno urządzenie jest aktywne. +- Nie jest wymagana konfiguracja specyficzna dla Tuwunel dla samego znacznika finalizowanego podglądu. +- Jeśli zwykłe powiadomienia Matrix już działają dla tego użytkownika, głównym krokiem konfiguracji jest token użytkownika + powyższe wywołanie `pushrules`. +- Jeśli wydaje się, że powiadomienia znikają, gdy użytkownik jest aktywny na innym urządzeniu, sprawdź, czy włączone jest `suppress_push_when_active`. Tuwunel dodał tę opcję w Tuwunel 1.4.2 12 września 2025 r. i może ona celowo wyciszać powiadomienia na innych urządzeniach, gdy jedno urządzenie jest aktywne. ## Szyfrowanie i weryfikacja -W zaszyfrowanych pokojach (E2EE) wychodzące zdarzenia obrazów używają `thumbnail_file`, dzięki czemu podglądy obrazów są szyfrowane razem z pełnym załącznikiem. Niezaszyfrowane pokoje nadal używają zwykłego `thumbnail_url`. Nie jest wymagana żadna konfiguracja — wtyczka automatycznie wykrywa stan E2EE. +W zaszyfrowanych pokojach (E2EE) wychodzące zdarzenia obrazów używają `thumbnail_file`, dzięki czemu podglądy obrazów są szyfrowane razem z pełnym załącznikiem. Pokoje nieszyfrowane nadal używają zwykłego `thumbnail_url`. Nie jest wymagana żadna konfiguracja — plugin automatycznie wykrywa stan E2EE. -### Pokoje bot-do-bot +### Pokoje bot-bot Domyślnie wiadomości Matrix od innych skonfigurowanych kont Matrix OpenClaw są ignorowane. -Użyj `allowBots`, jeśli celowo chcesz zezwolić na ruch Matrix między agentami: +Użyj `allowBots`, jeśli celowo chcesz dopuścić ruch Matrix między agentami: ```json5 { @@ -400,13 +404,13 @@ Użyj `allowBots`, jeśli celowo chcesz zezwolić na ruch Matrix między agentam } ``` -- `allowBots: true` akceptuje wiadomości od innych skonfigurowanych kont botów Matrix w dozwolonych pokojach i wiadomościach prywatnych. -- `allowBots: "mentions"` akceptuje te wiadomości tylko wtedy, gdy w pokojach wyraźnie wspominają tego bota. Wiadomości prywatne są nadal dozwolone. +- `allowBots: true` akceptuje wiadomości z innych skonfigurowanych kont botów Matrix w dozwolonych pokojach i wiadomościach DM. +- `allowBots: "mentions"` akceptuje te wiadomości tylko wtedy, gdy w pokojach wyraźnie wspominają tego bota. DM są nadal dozwolone. - `groups..allowBots` nadpisuje ustawienie na poziomie konta dla jednego pokoju. -- OpenClaw nadal ignoruje wiadomości od tego samego identyfikatora użytkownika Matrix, aby uniknąć pętli odpowiedzi do samego siebie. -- Matrix nie udostępnia tu natywnej flagi bota; OpenClaw traktuje „autorstwo bota” jako „wysłane przez inne skonfigurowane konto Matrix na tym gateway OpenClaw”. +- OpenClaw nadal ignoruje wiadomości z tego samego ID użytkownika Matrix, aby uniknąć pętli samoodpowiedzi. +- Matrix nie udostępnia tu natywnej flagi bota; OpenClaw traktuje „napisane przez bota” jako „wysłane przez inne skonfigurowane konto Matrix na tej bramie OpenClaw”. -Włączając ruch bot-do-bot we współdzielonych pokojach, używaj ścisłych allowlist pokoi i wymogów wzmianki. +Przy włączaniu ruchu bot-bot w współdzielonych pokojach używaj ścisłych allowlist pokoi i wymagań wzmianki. Włącz szyfrowanie: @@ -424,45 +428,45 @@ Włącz szyfrowanie: } ``` -Sprawdź stan weryfikacji: +Sprawdź status weryfikacji: ```bash openclaw matrix verify status ``` -Szczegółowy stan (pełna diagnostyka): +Szczegółowy status (pełna diagnostyka): ```bash openclaw matrix verify status --verbose ``` -Uwzględnij zapisany klucz odzyskiwania w danych wyjściowych czytelnych maszynowo: +Dołącz zapisany klucz odzyskiwania w wyjściu czytelnym maszynowo: ```bash openclaw matrix verify status --include-recovery-key --json ``` -Zainicjuj cross-signing i stan weryfikacji: +Zainicjalizuj cross-signing i stan weryfikacji: ```bash openclaw matrix verify bootstrap ``` -Obsługa wielu kont: użyj `channels.matrix.accounts` z poświadczeniami per konto i opcjonalnym `name`. Zobacz [Dokumentacja konfiguracji](/pl/gateway/configuration-reference#multi-account-all-channels), aby poznać wspólny wzorzec. +Obsługa wielu kont: użyj `channels.matrix.accounts` z poświadczeniami per konto i opcjonalnym `name`. Zobacz [Configuration reference](/pl/gateway/configuration-reference#multi-account-all-channels), aby poznać wspólny wzorzec. -Szczegółowa diagnostyka bootstrap: +Szczegółowa diagnostyka bootstrapu: ```bash openclaw matrix verify bootstrap --verbose ``` -Wymuś reset tożsamości cross-signing przed bootstrapem: +Wymuś nowy reset tożsamości cross-signing przed bootstrapem: ```bash openclaw matrix verify bootstrap --force-reset-cross-signing ``` -Zweryfikuj to urządzenie za pomocą klucza odzyskiwania: +Zweryfikuj to urządzenie przy użyciu klucza odzyskiwania: ```bash openclaw matrix verify device "" @@ -486,7 +490,7 @@ Szczegółowa diagnostyka stanu kopii zapasowej: openclaw matrix verify backup status --verbose ``` -Przywróć klucze pokoi z kopii zapasowej na serwerze: +Przywróć klucze pokoi z kopii zapasowej serwera: ```bash openclaw matrix verify backup restore @@ -499,19 +503,19 @@ openclaw matrix verify backup restore --verbose ``` Usuń bieżącą kopię zapasową na serwerze i utwórz nową bazę kopii zapasowej. Jeśli zapisany -klucz kopii zapasowej nie może zostać poprawnie załadowany, ten reset może również odtworzyć tajny magazyn, aby -przyszłe zimne starty mogły załadować nowy klucz kopii zapasowej: +klucz kopii zapasowej nie może zostać poprawnie wczytany, ten reset może też odtworzyć secret storage, aby +przyszłe zimne starty mogły wczytać nowy klucz kopii zapasowej: ```bash openclaw matrix verify backup reset --yes ``` -Wszystkie polecenia `verify` są domyślnie zwięzłe (łącznie z cichym wewnętrznym logowaniem SDK) i pokazują szczegółową diagnostykę tylko z `--verbose`. -Do skryptów użyj `--json`, aby uzyskać pełne dane wyjściowe czytelne maszynowo. +Wszystkie polecenia `verify` są domyślnie zwięzłe (w tym ciche wewnętrzne logowanie SDK) i pokazują szczegółową diagnostykę tylko z `--verbose`. +Podczas skryptowania używaj `--json`, aby uzyskać pełne wyjście czytelne maszynowo. -W konfiguracjach wielokontowych polecenia Matrix CLI używają niejawnego domyślnego konta Matrix, chyba że przekażesz `--account `. +W konfiguracjach wielokontowych polecenia CLI Matrix używają niejawnego domyślnego konta Matrix, chyba że podasz `--account `. Jeśli skonfigurujesz wiele nazwanych kont, najpierw ustaw `channels.matrix.defaultAccount`, w przeciwnym razie te niejawne operacje CLI zatrzymają się i poproszą o jawny wybór konta. -Używaj `--account`, gdy chcesz, aby operacje weryfikacji lub urządzenia jawnie kierowały się na nazwane konto: +Używaj `--account`, gdy chcesz, aby operacje weryfikacji lub urządzeń jawnie celowały w nazwane konto: ```bash openclaw matrix verify status --account assistant @@ -527,35 +531,35 @@ OpenClaw traktuje to urządzenie Matrix jako zweryfikowane tylko wtedy, gdy zost W praktyce `openclaw matrix verify status --verbose` pokazuje trzy sygnały zaufania: - `Locally trusted`: to urządzenie jest zaufane tylko przez bieżącego klienta -- `Cross-signing verified`: SDK zgłasza to urządzenie jako zweryfikowane przez cross-signing -- `Signed by owner`: urządzenie jest podpisane przez twój własny klucz self-signing +- `Cross-signing verified`: SDK zgłasza urządzenie jako zweryfikowane przez cross-signing +- `Signed by owner`: urządzenie jest podpisane przez własny klucz self-signing `Verified by owner` przyjmuje wartość `yes` tylko wtedy, gdy obecna jest weryfikacja cross-signing lub podpis właściciela. -Samo lokalne zaufanie nie wystarcza, aby OpenClaw traktował urządzenie jako w pełni zweryfikowane. +Samo zaufanie lokalne nie wystarcza, aby OpenClaw traktował urządzenie jako w pełni zweryfikowane. ### Co robi bootstrap `openclaw matrix verify bootstrap` to polecenie naprawy i konfiguracji dla zaszyfrowanych kont Matrix. -Wykonuje kolejno wszystkie poniższe czynności: +Wykonuje po kolei wszystkie poniższe czynności: -- inicjuje tajny magazyn, ponownie używając istniejącego klucza odzyskiwania, jeśli to możliwe -- inicjuje cross-signing i przesyła brakujące publiczne klucze cross-signing -- próbuje oznaczyć i podpisać przez cross-signing bieżące urządzenie -- tworzy nową serwerową kopię zapasową kluczy pokoi, jeśli jeszcze nie istnieje +- inicjalizuje secret storage, ponownie używając istniejącego klucza odzyskiwania, gdy to możliwe +- inicjalizuje cross-signing i przesyła brakujące publiczne klucze cross-signing +- próbuje oznaczyć i podpisać cross-signing bieżące urządzenie +- tworzy nową kopię zapasową kluczy pokoi po stronie serwera, jeśli jeszcze nie istnieje -Jeśli homeserver wymaga interaktywnego uwierzytelniania do przesłania kluczy cross-signing, OpenClaw najpierw próbuje przesłania bez uwierzytelniania, potem z `m.login.dummy`, a następnie z `m.login.password`, gdy skonfigurowano `channels.matrix.password`. +Jeśli homeserver wymaga uwierzytelniania interaktywnego do przesłania kluczy cross-signing, OpenClaw próbuje najpierw przesłać je bez uwierzytelniania, potem z `m.login.dummy`, a następnie z `m.login.password`, gdy skonfigurowane jest `channels.matrix.password`. Używaj `--force-reset-cross-signing` tylko wtedy, gdy celowo chcesz porzucić bieżącą tożsamość cross-signing i utworzyć nową. Jeśli celowo chcesz porzucić bieżącą kopię zapasową kluczy pokoi i rozpocząć nową bazę kopii zapasowej dla przyszłych wiadomości, użyj `openclaw matrix verify backup reset --yes`. -Rób to tylko wtedy, gdy akceptujesz, że niemożliwa do odzyskania stara zaszyfrowana historia pozostanie -niedostępna i że OpenClaw może odtworzyć tajny magazyn, jeśli nie da się bezpiecznie załadować -bieżącego sekretu kopii zapasowej. +Rób to tylko wtedy, gdy akceptujesz, że nieodzyskiwalna stara zaszyfrowana historia pozostanie +niedostępna i że OpenClaw może odtworzyć secret storage, jeśli bieżącego sekretu kopii zapasowej +nie da się bezpiecznie wczytać. -### Świeża baza kopii zapasowej +### Nowa baza kopii zapasowej -Jeśli chcesz zachować działanie przyszłych zaszyfrowanych wiadomości i akceptujesz utratę nieodzyskiwalnej starej historii, uruchom po kolei te polecenia: +Jeśli chcesz zachować działanie przyszłych zaszyfrowanych wiadomości i akceptujesz utratę nieodzyskiwalnej starej historii, uruchom kolejno te polecenia: ```bash openclaw matrix verify backup reset --yes @@ -563,64 +567,64 @@ openclaw matrix verify backup status --verbose openclaw matrix verify status ``` -Dodaj `--account ` do każdego polecenia, jeśli chcesz jawnie wskazać nazwane konto Matrix. +Dodaj `--account ` do każdego polecenia, gdy chcesz jawnie wskazać nazwane konto Matrix. ### Zachowanie przy uruchamianiu Gdy `encryption: true`, Matrix domyślnie ustawia `startupVerification` na `"if-unverified"`. Przy uruchamianiu, jeśli to urządzenie nadal nie jest zweryfikowane, Matrix poprosi o samoweryfikację w innym kliencie Matrix, -pominie duplikaty próśb, gdy jedna już oczekuje, i zastosuje lokalny cooldown przed ponowną próbą po restartach. -Domyślnie nieudane próby wysłania żądania są ponawiane szybciej niż udane utworzenie żądania. +pominie duplikaty żądań, jeśli jedno jest już w toku, i zastosuje lokalny cooldown przed ponowną próbą po restartach. +Nieudane próby żądań są domyślnie ponawiane szybciej niż udane utworzenie żądania. Ustaw `startupVerification: "off"`, aby wyłączyć automatyczne żądania przy uruchamianiu, albo dostosuj `startupVerificationCooldownHours`, -jeśli chcesz krótsze lub dłuższe okno ponawiania. +jeśli chcesz krótszego lub dłuższego okna ponawiania. -Uruchamianie automatycznie wykonuje też konserwatywne przejście bootstrapu kryptograficznego. -To przejście najpierw próbuje ponownie użyć bieżącego tajnego magazynu i tożsamości cross-signing oraz unika resetowania cross-signing, chyba że uruchomisz jawny przepływ naprawy bootstrap. +Przy uruchamianiu automatycznie wykonywany jest także zachowawczy przebieg bootstrapu kryptograficznego. +Ten przebieg próbuje najpierw ponownie użyć bieżącego secret storage i tożsamości cross-signing oraz unika resetowania cross-signing, chyba że uruchomisz jawny przepływ naprawy bootstrapu. -Jeśli podczas uruchamiania zostanie wykryty uszkodzony stan bootstrapu i skonfigurowano `channels.matrix.password`, OpenClaw może spróbować bardziej rygorystycznej ścieżki naprawy. +Jeśli podczas uruchamiania zostanie wykryty uszkodzony stan bootstrapu, a skonfigurowane jest `channels.matrix.password`, OpenClaw może spróbować bardziej rygorystycznej ścieżki naprawy. Jeśli bieżące urządzenie jest już podpisane przez właściciela, OpenClaw zachowuje tę tożsamość zamiast resetować ją automatycznie. -Aktualizacja z poprzedniej publicznej wtyczki Matrix: +Aktualizacja z poprzedniego publicznego pluginu Matrix: -- OpenClaw automatycznie ponownie używa tego samego konta Matrix, tokenu dostępu i tożsamości urządzenia, jeśli to możliwe. -- Przed uruchomieniem jakichkolwiek zmian migracyjnych Matrix wymagających działania OpenClaw tworzy lub ponownie używa migawki odzyskiwania w `~/Backups/openclaw-migrations/`. -- Jeśli używasz wielu kont Matrix, ustaw `channels.matrix.defaultAccount` przed aktualizacją ze starego płaskiego układu store, aby OpenClaw wiedział, które konto ma otrzymać ten współdzielony starszy stan. -- Jeśli poprzednia wtyczka przechowywała lokalnie klucz odszyfrowywania kopii zapasowej kluczy pokoi Matrix, uruchamianie lub `openclaw doctor --fix` automatycznie zaimportują go do nowego przepływu klucza odzyskiwania. -- Jeśli token dostępu Matrix zmienił się po przygotowaniu migracji, uruchamianie skanuje teraz sąsiednie katalogi główne store haszowane tokenem w poszukiwaniu oczekującego starszego stanu przywracania, zanim zrezygnuje z automatycznego przywracania kopii zapasowej. -- Jeśli token dostępu Matrix zmieni się później dla tego samego konta, homeservera i użytkownika, OpenClaw będzie teraz preferował ponowne użycie najbardziej kompletnego istniejącego katalogu głównego store haszowanego tokenem zamiast rozpoczynać od pustego katalogu stanu Matrix. -- Przy następnym uruchomieniu gateway klucze pokoi z kopii zapasowej zostaną automatycznie przywrócone do nowego store kryptograficznego. -- Jeśli stara wtyczka miała tylko lokalne klucze pokoi, które nigdy nie zostały objęte kopią zapasową, OpenClaw wyświetli wyraźne ostrzeżenie. Tych kluczy nie można automatycznie wyeksportować z poprzedniego rust crypto store, więc część starej zaszyfrowanej historii może pozostać niedostępna do czasu ręcznego odzyskania. -- Zobacz [Migracja Matrix](/pl/install/migrating-matrix), aby poznać pełny przebieg aktualizacji, ograniczenia, polecenia odzyskiwania i typowe komunikaty migracyjne. +- OpenClaw automatycznie ponownie używa tego samego konta Matrix, tokena dostępu i tożsamości urządzenia, gdy to możliwe. +- Przed uruchomieniem jakichkolwiek zmian migracyjnych Matrix, które wymagają działania, OpenClaw tworzy lub ponownie używa snapshotu odzyskiwania w `~/Backups/openclaw-migrations/`. +- Jeśli używasz wielu kont Matrix, ustaw `channels.matrix.defaultAccount` przed aktualizacją ze starego układu flat-store, aby OpenClaw wiedział, które konto powinno otrzymać ten współdzielony stan legacy. +- Jeśli poprzedni plugin przechowywał lokalnie klucz deszyfrujący kopii zapasowej kluczy pokoi Matrix, uruchamianie lub `openclaw doctor --fix` automatycznie zaimportuje go do nowego przepływu klucza odzyskiwania. +- Jeśli token dostępu Matrix zmienił się po przygotowaniu migracji, uruchamianie skanuje teraz sąsiednie katalogi storage z hashem tokena w poszukiwaniu oczekującego stanu przywracania legacy, zanim zrezygnuje z automatycznego przywracania kopii zapasowej. +- Jeśli token dostępu Matrix zmieni się później dla tego samego konta, homeservera i użytkownika, OpenClaw będzie teraz preferować ponowne użycie najbardziej kompletnego istniejącego katalogu storage z hashem tokena zamiast rozpoczynania od pustego katalogu stanu Matrix. +- Przy następnym uruchomieniu bramy klucze pokoi z kopii zapasowej zostaną automatycznie przywrócone do nowego store kryptograficznego. +- Jeśli stary plugin miał tylko lokalne klucze pokoi, które nigdy nie zostały objęte kopią zapasową, OpenClaw wyświetli wyraźne ostrzeżenie. Tych kluczy nie da się wyeksportować automatycznie z poprzedniego rust crypto store, więc część starej zaszyfrowanej historii może pozostać niedostępna do czasu ręcznego odzyskania. +- Zobacz [Matrix migration](/pl/install/migrating-matrix), aby poznać pełny przebieg aktualizacji, ograniczenia, polecenia odzyskiwania i typowe komunikaty migracji. -Zaszyfrowany stan środowiska wykonawczego jest zorganizowany w katalogach głównych haszowanych tokenem per konto i per użytkownik w +Zaszyfrowany stan runtime jest zorganizowany w katalogach per konto, per użytkownik i z hashem tokena w `~/.openclaw/matrix/accounts//__//`. -Ten katalog zawiera sync store (`bot-storage.json`), crypto store (`crypto/`), -plik klucza odzyskiwania (`recovery-key.json`), migawkę IndexedDB (`crypto-idb-snapshot.json`), +Ten katalog zawiera store synchronizacji (`bot-storage.json`), store kryptograficzny (`crypto/`), +plik klucza odzyskiwania (`recovery-key.json`), snapshot IndexedDB (`crypto-idb-snapshot.json`), powiązania wątków (`thread-bindings.json`) oraz stan weryfikacji przy uruchamianiu (`startup-verification.json`), gdy te funkcje są używane. -Gdy token się zmieni, ale tożsamość konta pozostaje taka sama, OpenClaw ponownie używa najlepszego istniejącego -katalogu głównego dla tej krotki konto/homeserver/użytkownik, dzięki czemu wcześniejszy stan synchronizacji, stan kryptograficzny, powiązania wątków +Gdy token się zmienia, ale tożsamość konta pozostaje taka sama, OpenClaw ponownie używa najlepszego istniejącego +katalogu głównego dla tej trójki konto/homeserver/użytkownik, dzięki czemu wcześniejszy stan synchronizacji, stan kryptograficzny, powiązania wątków i stan weryfikacji przy uruchamianiu pozostają widoczne. ### Model Node crypto store -Matrix E2EE w tej wtyczce używa oficjalnej ścieżki Rust crypto `matrix-js-sdk` w Node. +Matrix E2EE w tym pluginie używa oficjalnej ścieżki Rust crypto z `matrix-js-sdk` w Node. Ta ścieżka oczekuje trwałości opartej na IndexedDB, jeśli chcesz, aby stan kryptograficzny przetrwał restarty. OpenClaw obecnie zapewnia to w Node poprzez: -- użycie `fake-indexeddb` jako shimu API IndexedDB oczekiwanego przez SDK -- odtworzenie zawartości IndexedDB Rust crypto z `crypto-idb-snapshot.json` przed `initRustCrypto` -- zapis zaktualizowanej zawartości IndexedDB z powrotem do `crypto-idb-snapshot.json` po inicjalizacji i podczas działania -- serializowanie odtwarzania i zapisu migawki względem `crypto-idb-snapshot.json` przy użyciu doradczej blokady pliku, aby trwałość środowiska wykonawczego gateway i operacje konserwacyjne CLI nie ścigały się o ten sam plik migawki +- używanie `fake-indexeddb` jako shima API IndexedDB oczekiwanego przez SDK +- odtwarzanie zawartości IndexedDB Rust crypto z `crypto-idb-snapshot.json` przed `initRustCrypto` +- utrwalanie zaktualizowanej zawartości IndexedDB z powrotem do `crypto-idb-snapshot.json` po inicjalizacji i podczas runtime +- serializowanie odtwarzania i utrwalania snapshotu względem `crypto-idb-snapshot.json` za pomocą doradczego blokowania pliku, aby utrwalanie runtime bramy i konserwacja CLI nie ścigały się o ten sam plik snapshotu -To warstwa kompatybilności/przechowywania, a nie niestandardowa implementacja kryptografii. -Plik migawki zawiera wrażliwy stan środowiska wykonawczego i jest przechowywany z restrykcyjnymi uprawnieniami pliku. -W modelu bezpieczeństwa OpenClaw host gateway i lokalny katalog stanu OpenClaw już znajdują się wewnątrz granicy zaufanego operatora, więc jest to przede wszystkim kwestia trwałości operacyjnej, a nie osobna zdalna granica zaufania. +To jest warstwa zgodności/przechowywania, a nie niestandardowa implementacja kryptografii. +Plik snapshotu jest wrażliwym stanem runtime i jest przechowywany z restrykcyjnymi uprawnieniami pliku. +W modelu bezpieczeństwa OpenClaw host bramy i lokalny katalog stanu OpenClaw już należą do zaufanej granicy operatora, więc jest to przede wszystkim kwestia operacyjnej trwałości, a nie osobna zdalna granica zaufania. Planowane ulepszenie: -- dodać obsługę SecretRef dla trwałego materiału kluczy Matrix, tak aby klucze odzyskiwania i powiązane sekrety szyfrowania store mogły pochodzić z dostawców sekretów OpenClaw, a nie wyłącznie z plików lokalnych +- dodać obsługę SecretRef dla trwałego materiału kluczy Matrix, aby klucze odzyskiwania i powiązane sekrety szyfrowania store mogły pochodzić z providerów sekretów OpenClaw, a nie tylko z lokalnych plików ## Zarządzanie profilem @@ -631,39 +635,39 @@ openclaw matrix profile set --name "OpenClaw Assistant" openclaw matrix profile set --avatar-url https://cdn.example.org/avatar.png ``` -Dodaj `--account `, jeśli chcesz jawnie wskazać nazwane konto Matrix. +Dodaj `--account `, gdy chcesz jawnie wskazać nazwane konto Matrix. -Matrix bezpośrednio akceptuje adresy URL awatarów `mxc://`. Gdy przekażesz adres URL awatara `http://` lub `https://`, OpenClaw najpierw prześle go do Matrix, a następnie zapisze rozpoznany adres `mxc://` z powrotem do `channels.matrix.avatarUrl` (lub do wybranego nadpisania konta). +Matrix bezpośrednio akceptuje URL-e awatarów `mxc://`. Gdy podasz URL awatara `http://` lub `https://`, OpenClaw najpierw prześle go do Matrix, a potem zapisze rozwiązany URL `mxc://` z powrotem do `channels.matrix.avatarUrl` (lub do nadpisania wybranego konta). ## Automatyczne powiadomienia o weryfikacji -Matrix publikuje teraz powiadomienia o cyklu życia weryfikacji bezpośrednio w ścisłym pokoju DM weryfikacji jako wiadomości `m.notice`. +Matrix publikuje teraz powiadomienia o cyklu życia weryfikacji bezpośrednio w ścisłym pokoju DM do weryfikacji jako wiadomości `m.notice`. Obejmuje to: - powiadomienia o żądaniu weryfikacji -- powiadomienia o gotowości do weryfikacji (z jawną wskazówką „Zweryfikuj przez emoji”) +- powiadomienia o gotowości do weryfikacji (z wyraźną instrukcją „Verify by emoji”) - powiadomienia o rozpoczęciu i zakończeniu weryfikacji - szczegóły SAS (emoji i liczby dziesiętne), gdy są dostępne Przychodzące żądania weryfikacji z innego klienta Matrix są śledzone i automatycznie akceptowane przez OpenClaw. -W przepływach samoweryfikacji OpenClaw automatycznie uruchamia też przepływ SAS, gdy weryfikacja emoji staje się dostępna, i potwierdza swoją stronę. +W przepływach samoweryfikacji OpenClaw automatycznie uruchamia także przepływ SAS, gdy weryfikacja emoji staje się dostępna, i potwierdza własną stronę. W przypadku żądań weryfikacji z innego użytkownika/urządzenia Matrix OpenClaw automatycznie akceptuje żądanie, a następnie czeka, aż przepływ SAS będzie przebiegał normalnie. -Aby ukończyć weryfikację, nadal musisz porównać emoji lub dziesiętny SAS w swoim kliencie Matrix i tam potwierdzić „Są zgodne”. +Aby ukończyć weryfikację, nadal musisz porównać emoji lub dziesiętny SAS w swoim kliencie Matrix i tam potwierdzić „They match”. -OpenClaw nie akceptuje bezrefleksyjnie zduplikowanych przepływów zainicjowanych samodzielnie. Podczas uruchamiania pomijane jest tworzenie nowego żądania, jeśli żądanie samoweryfikacji już oczekuje. +OpenClaw nie akceptuje bezrefleksyjnie duplikatów przepływów zainicjowanych przez siebie. Podczas uruchamiania pomijane jest tworzenie nowego żądania, jeśli żądanie samoweryfikacji jest już w toku. -Powiadomienia protokołu/systemu weryfikacji nie są przekazywane do pipeline czatu agenta, więc nie powodują `NO_REPLY`. +Powiadomienia systemowe/protokołu weryfikacji nie są przekazywane do pipeline czatu agenta, więc nie powodują `NO_REPLY`. ### Higiena urządzeń -Stare urządzenia Matrix zarządzane przez OpenClaw mogą gromadzić się na koncie i utrudniać zrozumienie zaufania w zaszyfrowanych pokojach. -Wyświetl je za pomocą: +Na koncie mogą gromadzić się stare urządzenia Matrix zarządzane przez OpenClaw, co utrudnia rozumienie zaufania w zaszyfrowanych pokojach. +Wyświetlisz je poleceniem: ```bash openclaw matrix devices list ``` -Usuń nieaktualne urządzenia Matrix zarządzane przez OpenClaw za pomocą: +Usuń nieaktualne urządzenia zarządzane przez OpenClaw poleceniem: ```bash openclaw matrix devices prune-stale @@ -671,55 +675,55 @@ openclaw matrix devices prune-stale ### Naprawa Direct Room -Jeśli stan wiadomości prywatnych się rozjedzie, OpenClaw może skończyć ze starymi mapowaniami `m.direct`, które wskazują stare pokoje solo zamiast aktywnego DM. Aby sprawdzić bieżące mapowanie dla partnera, użyj: +Jeśli stan wiadomości bezpośrednich przestanie być zsynchronizowany, OpenClaw może skończyć ze starymi mapowaniami `m.direct`, które wskazują stare pokoje solo zamiast aktywnego DM. Sprawdź bieżące mapowanie dla partnera przez: ```bash openclaw matrix direct inspect --user-id @alice:example.org ``` -Aby je naprawić, użyj: +Napraw je za pomocą: ```bash openclaw matrix direct repair --user-id @alice:example.org ``` -Naprawa utrzymuje logikę specyficzną dla Matrix wewnątrz wtyczki: +Naprawa zachowuje logikę specyficzną dla Matrix wewnątrz pluginu: - preferuje ścisły DM 1:1, który jest już zmapowany w `m.direct` - w przeciwnym razie przechodzi do dowolnego aktualnie dołączonego ścisłego DM 1:1 z tym użytkownikiem -- jeśli nie istnieje zdrowy DM, tworzy nowy pokój direct i przepisuje `m.direct`, aby wskazywał na niego +- jeśli nie istnieje żaden zdrowy DM, tworzy nowy pokój direct i przepisuje `m.direct`, aby na niego wskazywał -Przepływ naprawy nie usuwa automatycznie starych pokoi. Wybiera tylko zdrowy DM i aktualizuje mapowanie, aby nowe wysyłki Matrix, powiadomienia o weryfikacji i inne przepływy wiadomości prywatnych znów trafiały do właściwego pokoju. +Przepływ naprawy nie usuwa automatycznie starych pokoi. Wybiera tylko zdrowy DM i aktualizuje mapowanie, aby nowe wysyłki Matrix, powiadomienia o weryfikacji i inne przepływy wiadomości bezpośrednich znów trafiały do właściwego pokoju. ## Wątki Matrix obsługuje natywne wątki Matrix zarówno dla automatycznych odpowiedzi, jak i wysyłek przez narzędzie wiadomości. -- `dm.sessionScope: "per-user"` (domyślnie) utrzymuje trasowanie DM Matrix w zakresie nadawcy, dzięki czemu wiele pokoi DM może współdzielić jedną sesję, gdy rozpoznają tego samego rozmówcę. -- `dm.sessionScope: "per-room"` izoluje każdy pokój DM Matrix do własnego klucza sesji, nadal używając zwykłych kontroli uwierzytelniania DM i allowlisty. +- `dm.sessionScope: "per-user"` (domyślnie) utrzymuje routowanie DM Matrix w zakresie nadawcy, więc wiele pokoi DM może współdzielić jedną sesję, gdy rozwiązują się do tego samego partnera. +- `dm.sessionScope: "per-room"` izoluje każdy pokój DM Matrix we własnym kluczu sesji, nadal używając normalnych kontroli uwierzytelniania DM i allowlist. - Jawne powiązania konwersacji Matrix nadal mają pierwszeństwo przed `dm.sessionScope`, więc powiązane pokoje i wątki zachowują wybrany docelowy klucz sesji. -- `threadReplies: "off"` utrzymuje odpowiedzi na poziomie głównym i pozostawia przychodzące wiadomości w wątkach w sesji nadrzędnej. -- `threadReplies: "inbound"` odpowiada wewnątrz wątku tylko wtedy, gdy wiadomość przychodząca już znajdowała się w tym wątku. -- `threadReplies: "always"` utrzymuje odpowiedzi pokojowe w wątku zakotwiczonym w wiadomości wyzwalającej i kieruje tę konwersację przez odpowiadającą sesję o zakresie wątku od pierwszej wiadomości wyzwalającej. -- `dm.threadReplies` nadpisuje ustawienie najwyższego poziomu tylko dla wiadomości prywatnych. Na przykład możesz utrzymać izolację wątków w pokojach, a jednocześnie zachować płaskie wiadomości prywatne. -- Przychodzące wiadomości w wątkach zawierają wiadomość główną wątku jako dodatkowy kontekst agenta. -- Wysyłki przez narzędzie wiadomości teraz automatycznie dziedziczą bieżący wątek Matrix, gdy cel jest tym samym pokojem lub tym samym celem użytkownika DM, chyba że podano jawne `threadId`. -- Ponowne użycie docelowego użytkownika DM w tej samej sesji następuje tylko wtedy, gdy bieżące metadane sesji potwierdzają tego samego partnera DM na tym samym koncie Matrix; w przeciwnym razie OpenClaw wraca do normalnego trasowania w zakresie użytkownika. -- Gdy OpenClaw wykryje kolizję pokoju DM Matrix z innym pokojem DM w tej samej współdzielonej sesji DM Matrix, publikuje w tym pokoju jednorazowe `m.notice` z furtką `/focus`, gdy powiązania wątków są włączone, oraz z podpowiedzią `dm.sessionScope`. -- Powiązania wątków w czasie działania są obsługiwane w Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` oraz związane z wątkiem `/acp spawn` działają teraz w pokojach i wiadomościach prywatnych Matrix. -- Główne `/focus` w pokoju/DM Matrix tworzy nowy wątek Matrix i wiąże go z docelową sesją, gdy `threadBindings.spawnSubagentSessions=true`. -- Uruchomienie `/focus` lub `/acp spawn --thread here` wewnątrz istniejącego wątku Matrix wiąże zamiast tego ten bieżący wątek. +- `threadReplies: "off"` utrzymuje odpowiedzi na najwyższym poziomie i zachowuje przychodzące wiadomości wątkowe w sesji rodzica. +- `threadReplies: "inbound"` odpowiada w wątku tylko wtedy, gdy wiadomość przychodząca już znajdowała się w tym wątku. +- `threadReplies: "always"` utrzymuje odpowiedzi w pokojach w wątku zakorzenionym w wiadomości wyzwalającej i prowadzi tę konwersację przez odpowiadającą jej sesję z zakresem wątku od pierwszej wiadomości wyzwalającej. +- `dm.threadReplies` nadpisuje ustawienie najwyższego poziomu tylko dla DM. Na przykład możesz utrzymać izolację wątków w pokojach, a DM pozostawić płaskie. +- Przychodzące wiadomości wątkowe zawierają główną wiadomość wątku jako dodatkowy kontekst dla agenta. +- Wysyłki przez narzędzie wiadomości dziedziczą teraz automatycznie bieżący wątek Matrix, gdy cel to ten sam pokój lub ten sam użytkownik DM, chyba że podano jawne `threadId`. +- Ponowne użycie tego samego celu użytkownika DM w tej samej sesji działa tylko wtedy, gdy bieżące metadane sesji dowodzą tego samego partnera DM na tym samym koncie Matrix; w przeciwnym razie OpenClaw wraca do normalnego routowania w zakresie użytkownika. +- Gdy OpenClaw wykryje, że pokój DM Matrix koliduje z innym pokojem DM w tej samej współdzielonej sesji DM Matrix, publikuje w tym pokoju jednorazowe `m.notice` z obejściem `/focus`, gdy włączone są powiązania wątków oraz podpowiedź `dm.sessionScope`. +- Powiązania wątków w runtime są obsługiwane dla Matrix. `/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` oraz powiązane z wątkiem `/acp spawn` działają teraz w pokojach Matrix i DM. +- Polecenie `/focus` na najwyższym poziomie pokoju/DM Matrix tworzy nowy wątek Matrix i wiąże go z docelową sesją, gdy `threadBindings.spawnSubagentSessions=true`. +- Uruchomienie `/focus` lub `/acp spawn --thread here` wewnątrz istniejącego wątku Matrix zamiast tego wiąże bieżący wątek. ## Powiązania konwersacji ACP -Pokoje Matrix, wiadomości prywatne i istniejące wątki Matrix można przekształcać w trwałe obszary robocze ACP bez zmiany powierzchni czatu. +Pokoje Matrix, DM i istniejące wątki Matrix mogą zostać przekształcone w trwałe obszary robocze ACP bez zmiany powierzchni czatu. Szybki przepływ dla operatora: -- Uruchom `/acp spawn codex --bind here` wewnątrz wiadomości prywatnej Matrix, pokoju lub istniejącego wątku, którego chcesz dalej używać. -- W głównej wiadomości prywatnej lub pokoju Matrix bieżąca wiadomość prywatna/pokój pozostaje powierzchnią czatu, a przyszłe wiadomości są kierowane do uruchomionej sesji ACP. -- W istniejącym wątku Matrix `--bind here` wiąże bieżący wątek w miejscu. -- `/new` i `/reset` resetują tę samą powiązaną sesję ACP w miejscu. +- Uruchom `/acp spawn codex --bind here` wewnątrz DM Matrix, pokoju lub istniejącego wątku, którego chcesz dalej używać. +- W przypadku DM lub pokoju Matrix na najwyższym poziomie bieżący DM/pokój pozostaje powierzchnią czatu, a przyszłe wiadomości są kierowane do utworzonej sesji ACP. +- W istniejącym wątku Matrix `--bind here` wiąże bieżący wątek na miejscu. +- `/new` i `/reset` resetują tę samą powiązaną sesję ACP na miejscu. - `/acp close` zamyka sesję ACP i usuwa powiązanie. Uwagi: @@ -727,9 +731,9 @@ Uwagi: - `--bind here` nie tworzy podrzędnego wątku Matrix. - `threadBindings.spawnAcpSessions` jest wymagane tylko dla `/acp spawn --thread auto|here`, gdy OpenClaw musi utworzyć lub powiązać podrzędny wątek Matrix. -### Konfiguracja Thread Binding +### Konfiguracja powiązań wątków -Matrix dziedziczy globalne ustawienia domyślne z `session.threadBindings` i obsługuje także nadpisania per kanał: +Matrix dziedziczy globalne wartości domyślne z `session.threadBindings`, a także obsługuje nadpisania per kanał: - `threadBindings.enabled` - `threadBindings.idleHours` @@ -737,67 +741,67 @@ Matrix dziedziczy globalne ustawienia domyślne z `session.threadBindings` i obs - `threadBindings.spawnSubagentSessions` - `threadBindings.spawnAcpSessions` -Flagi uruchamiania powiązane z wątkami Matrix są opcjonalne: +Flagi uruchamiania powiązanego z wątkiem dla Matrix są opcjonalne: -- Ustaw `threadBindings.spawnSubagentSessions: true`, aby zezwolić głównemu `/focus` na tworzenie i wiązanie nowych wątków Matrix. -- Ustaw `threadBindings.spawnAcpSessions: true`, aby zezwolić `/acp spawn --thread auto|here` na wiązanie sesji ACP z wątkami Matrix. +- Ustaw `threadBindings.spawnSubagentSessions: true`, aby umożliwić `/focus` na najwyższym poziomie tworzenie i wiązanie nowych wątków Matrix. +- Ustaw `threadBindings.spawnAcpSessions: true`, aby umożliwić `/acp spawn --thread auto|here` wiązanie sesji ACP z wątkami Matrix. ## Reakcje Matrix obsługuje wychodzące akcje reakcji, przychodzące powiadomienia o reakcjach oraz przychodzące reakcje potwierdzające. -- Narzędzia wychodzących reakcji są kontrolowane przez `channels["matrix"].actions.reactions`. -- `react` dodaje reakcję do konkretnego zdarzenia Matrix. -- `reactions` wyświetla bieżące podsumowanie reakcji dla konkretnego zdarzenia Matrix. +- Narzędzia dla wychodzących reakcji są kontrolowane przez `channels["matrix"].actions.reactions`. +- `react` dodaje reakcję do określonego zdarzenia Matrix. +- `reactions` wyświetla bieżące podsumowanie reakcji dla określonego zdarzenia Matrix. - `emoji=""` usuwa własne reakcje konta bota na tym zdarzeniu. -- `remove: true` usuwa tylko reakcję z określonym emoji z konta bota. +- `remove: true` usuwa tylko wskazaną reakcję emoji z konta bota. -Zakres reakcji potwierdzających jest rozstrzygany w standardowej kolejności OpenClaw: +Zakres reakcji potwierdzających jest rozwiązywany w standardowej kolejności OpenClaw: - `channels["matrix"].accounts..ackReaction` - `channels["matrix"].ackReaction` - `messages.ackReaction` -- fallback emoji tożsamości agenta +- fallback do emoji tożsamości agenta -Zakres reakcji potwierdzających jest rozstrzygany w tej kolejności: +Zakres `ackReaction` jest rozwiązywany w tej kolejności: - `channels["matrix"].accounts..ackReactionScope` - `channels["matrix"].ackReactionScope` - `messages.ackReactionScope` -Tryb powiadomień o reakcjach jest rozstrzygany w tej kolejności: +Tryb powiadomień o reakcjach jest rozwiązywany w tej kolejności: - `channels["matrix"].accounts..reactionNotifications` - `channels["matrix"].reactionNotifications` - domyślnie: `own` -Bieżące zachowanie: +Obecne zachowanie: -- `reactionNotifications: "own"` przekazuje dodane zdarzenia `m.reaction`, gdy dotyczą wiadomości Matrix napisanych przez bota. +- `reactionNotifications: "own"` przekazuje dodane zdarzenia `m.reaction`, gdy są skierowane do wiadomości Matrix napisanych przez bota. - `reactionNotifications: "off"` wyłącza systemowe zdarzenia reakcji. -- Usunięcia reakcji nadal nie są syntetyzowane do zdarzeń systemowych, ponieważ Matrix udostępnia je jako redactions, a nie jako osobne usunięcia `m.reaction`. +- Usunięcia reakcji nadal nie są syntetyzowane do zdarzeń systemowych, ponieważ Matrix przedstawia je jako redactions, a nie jako samodzielne usunięcia `m.reaction`. ## Kontekst historii -- `channels.matrix.historyLimit` określa, ile ostatnich wiadomości z pokoju jest uwzględnianych jako `InboundHistory`, gdy wiadomość z pokoju Matrix wyzwala agenta. -- Wartość zapasowa pochodzi z `messages.groupChat.historyLimit`. Ustaw `0`, aby wyłączyć. -- Historia pokoju Matrix jest ograniczona do pokoju. Wiadomości prywatne nadal używają zwykłej historii sesji. -- Historia pokoju Matrix działa tylko dla oczekujących wiadomości: OpenClaw buforuje wiadomości z pokoju, które jeszcze nie wywołały odpowiedzi, a następnie robi migawkę tego okna, gdy pojawi się wzmianka lub inny wyzwalacz. -- Bieżąca wiadomość wyzwalająca nie jest uwzględniana w `InboundHistory`; pozostaje w głównej treści przychodzącej dla tej tury. -- Ponowne próby dla tego samego zdarzenia Matrix ponownie używają oryginalnej migawki historii zamiast przesuwać ją do nowszych wiadomości z pokoju. +- `channels.matrix.historyLimit` kontroluje, ile ostatnich wiadomości z pokoju jest dołączanych jako `InboundHistory`, gdy wiadomość z pokoju Matrix wyzwala agenta. +- Wartość rezerwowa pochodzi z `messages.groupChat.historyLimit`. Jeśli oba ustawienia nie są ustawione, efektywna wartość domyślna to `0`, więc wiadomości z pokoju bramkowane wzmianką nie są buforowane. Ustaw `0`, aby wyłączyć. +- Historia pokoju Matrix jest tylko pokojowa. DM nadal używają normalnej historii sesji. +- Historia pokoju Matrix jest tylko oczekująca: OpenClaw buforuje wiadomości z pokoju, które jeszcze nie wyzwoliły odpowiedzi, a następnie robi snapshot tego okna, gdy nadejdzie wzmianka lub inny wyzwalacz. +- Bieżąca wiadomość wyzwalająca nie jest dołączana do `InboundHistory`; pozostaje w głównym treści przychodzącej dla tej tury. +- Ponowienia tego samego zdarzenia Matrix ponownie używają oryginalnego snapshotu historii zamiast przesuwać się do nowszych wiadomości z pokoju. ## Widoczność kontekstu -Matrix obsługuje współdzieloną kontrolę `contextVisibility` dla uzupełniającego kontekstu pokoju, takiego jak pobrany tekst odpowiedzi, korzenie wątków i oczekująca historia. +Matrix obsługuje wspólną kontrolę `contextVisibility` dla uzupełniającego kontekstu pokoju, takiego jak pobrany tekst odpowiedzi, korzenie wątków i oczekująca historia. -- `contextVisibility: "all"` jest ustawieniem domyślnym. Kontekst uzupełniający jest zachowywany bez zmian. -- `contextVisibility: "allowlist"` filtruje kontekst uzupełniający do nadawców dozwolonych przez aktywne sprawdzenia allowlisty pokoju/użytkownika. +- `contextVisibility: "all"` to ustawienie domyślne. Uzupełniający kontekst jest zachowywany w otrzymanej postaci. +- `contextVisibility: "allowlist"` filtruje uzupełniający kontekst do nadawców dozwolonych przez aktywne sprawdzenia allowlist pokoju/użytkownika. - `contextVisibility: "allowlist_quote"` działa jak `allowlist`, ale nadal zachowuje jedną jawną cytowaną odpowiedź. -To ustawienie wpływa na widoczność kontekstu uzupełniającego, a nie na to, czy sama wiadomość przychodząca może wywołać odpowiedź. -Autoryzacja wyzwalacza nadal wynika z ustawień `groupPolicy`, `groups`, `groupAllowFrom` oraz zasad DM. +To ustawienie wpływa na widoczność uzupełniającego kontekstu, a nie na to, czy sama wiadomość przychodząca może wyzwolić odpowiedź. +Autoryzacja wyzwolenia nadal wynika z ustawień `groupPolicy`, `groups`, `groupAllowFrom` i polityki DM. -## Przykład zasad dla wiadomości prywatnych i pokoi +## Przykład polityki DM i pokoju ```json5 { @@ -820,22 +824,22 @@ Autoryzacja wyzwalacza nadal wynika z ustawień `groupPolicy`, `groups`, `groupA } ``` -Zobacz [Grupy](/pl/channels/groups), aby poznać zachowanie ograniczania do wzmianek i allowlist. +Zobacz [Groups](/pl/channels/groups), aby poznać zachowanie bramkowania wzmiankami i allowlist. -Przykład parowania dla wiadomości prywatnych Matrix: +Przykład parowania dla wiadomości DM w Matrix: ```bash openclaw pairing list matrix openclaw pairing approve matrix ``` -Jeśli niezatwierdzony użytkownik Matrix nadal wysyła do ciebie wiadomości przed zatwierdzeniem, OpenClaw ponownie używa tego samego oczekującego kodu parowania i może ponownie wysłać odpowiedź przypominającą po krótkim czasie cooldown zamiast tworzyć nowy kod. +Jeśli niezatwierdzony użytkownik Matrix nadal do ciebie pisze przed zatwierdzeniem, OpenClaw ponownie używa tego samego oczekującego kodu parowania i po krótkim cooldownie może ponownie wysłać odpowiedź-przypomnienie zamiast generować nowy kod. -Zobacz [Parowanie](/pl/channels/pairing), aby poznać wspólny przepływ parowania wiadomości prywatnych i układ przechowywania. +Zobacz [Pairing](/pl/channels/pairing), aby poznać wspólny przepływ parowania DM i układ przechowywania. ## Zatwierdzenia exec -Matrix może działać jako klient zatwierdzania exec dla konta Matrix. +Matrix może działać jako klient zatwierdzeń exec dla konta Matrix. - `channels.matrix.execApprovals.enabled` - `channels.matrix.execApprovals.approvers` (opcjonalne; fallback do `channels.matrix.dm.allowFrom`) @@ -843,37 +847,37 @@ Matrix może działać jako klient zatwierdzania exec dla konta Matrix. - `channels.matrix.execApprovals.agentFilter` - `channels.matrix.execApprovals.sessionFilter` -Zatwierdzający muszą być identyfikatorami użytkowników Matrix, takimi jak `@owner:example.org`. Matrix automatycznie włącza natywne zatwierdzenia exec, gdy `enabled` nie jest ustawione albo ma wartość `"auto"` i można rozpoznać co najmniej jednego zatwierdzającego — albo z `execApprovals.approvers`, albo z `channels.matrix.dm.allowFrom`. Ustaw `enabled: false`, aby jawnie wyłączyć Matrix jako natywnego klienta zatwierdzania. W przeciwnym razie żądania zatwierdzenia wracają do innych skonfigurowanych ścieżek zatwierdzania albo do zasad fallback zatwierdzania exec. +Zatwierdzający muszą być identyfikatorami użytkowników Matrix, takimi jak `@owner:example.org`. Matrix automatycznie włącza natywne zatwierdzenia exec, gdy `enabled` nie jest ustawione albo ma wartość `"auto"` i można rozwiązać co najmniej jednego zatwierdzającego, albo z `execApprovals.approvers`, albo z `channels.matrix.dm.allowFrom`. Ustaw `enabled: false`, aby jawnie wyłączyć Matrix jako natywnego klienta zatwierdzeń. W przeciwnym razie żądania zatwierdzeń wracają do innych skonfigurowanych ścieżek zatwierdzania albo do polityki fallback zatwierdzeń exec. -Natywne trasowanie Matrix dotyczy obecnie tylko exec: +Natywne routowanie Matrix dotyczy dziś tylko exec: -- `channels.matrix.execApprovals.*` kontroluje natywne trasowanie DM/kanału tylko dla zatwierdzeń exec. -- Zatwierdzenia wtyczek nadal używają współdzielonego `/approve` w tym samym czacie oraz ewentualnego skonfigurowanego przekazywania `approvals.plugin`. -- Matrix może nadal ponownie używać `channels.matrix.dm.allowFrom` do autoryzacji zatwierdzeń wtyczek, gdy może bezpiecznie rozpoznać zatwierdzających, ale nie udostępnia osobnej natywnej ścieżki rozsyłania zatwierdzeń wtyczek do DM/kanału. +- `channels.matrix.execApprovals.*` kontroluje natywne routowanie DM/kanałowe tylko dla zatwierdzeń exec. +- Zatwierdzenia pluginów nadal używają współdzielonego `/approve` w tym samym czacie oraz ewentualnego skonfigurowanego przekazywania `approvals.plugin`. +- Matrix nadal może ponownie użyć `channels.matrix.dm.allowFrom` do autoryzacji zatwierdzeń pluginów, gdy może bezpiecznie wywnioskować zatwierdzających, ale nie udostępnia osobnej natywnej ścieżki rozsyłania zatwierdzeń pluginów do DM/kanału. Zasady dostarczania: -- `target: "dm"` wysyła prośby o zatwierdzenie do wiadomości prywatnych zatwierdzających -- `target: "channel"` wysyła prośbę z powrotem do źródłowego pokoju lub wiadomości prywatnej Matrix -- `target: "both"` wysyła do wiadomości prywatnych zatwierdzających oraz do źródłowego pokoju lub wiadomości prywatnej Matrix +- `target: "dm"` wysyła monity zatwierdzeń do wiadomości DM zatwierdzających +- `target: "channel"` odsyła monit do źródłowego pokoju lub DM Matrix +- `target: "both"` wysyła do DM zatwierdzających oraz do źródłowego pokoju lub DM Matrix -Prompty zatwierdzenia Matrix inicjalizują skróty reakcji na głównej wiadomości zatwierdzenia: +Monity zatwierdzeń Matrix ustawiają skróty reakcji na głównej wiadomości zatwierdzenia: -- `✅` = zezwól jednorazowo +- `✅` = zezwól raz - `❌` = odmów -- `♾️` = zezwól zawsze, gdy taka decyzja jest dozwolona przez obowiązującą politykę exec +- `♾️` = zezwól zawsze, gdy taka decyzja jest dozwolona przez efektywną politykę exec -Zatwierdzający mogą zareagować na tę wiadomość lub użyć zapasowych poleceń z ukośnikiem: `/approve allow-once`, `/approve allow-always` albo `/approve deny`. +Zatwierdzający mogą zareagować na tę wiadomość albo użyć zapasowych poleceń slash: `/approve allow-once`, `/approve allow-always` albo `/approve deny`. -Tylko rozpoznani zatwierdzający mogą zatwierdzać lub odmawiać. Dostarczanie do kanału obejmuje tekst polecenia, więc włączaj `channel` lub `both` tylko w zaufanych pokojach. +Tylko rozwiązani zatwierdzający mogą zatwierdzać lub odmawiać. Dostarczanie kanałowe obejmuje tekst polecenia, więc włączaj `channel` lub `both` tylko w zaufanych pokojach. -Prompty zatwierdzenia Matrix ponownie używają współdzielonego planera zatwierdzeń rdzenia. Natywna powierzchnia specyficzna dla Matrix jest tylko transportem dla zatwierdzeń exec: trasowaniem pokoju/DM oraz zachowaniem wysyłania/aktualizacji/usuwania wiadomości. +Monity zatwierdzeń Matrix ponownie używają współdzielonego planera zatwierdzeń rdzenia. Natywna powierzchnia specyficzna dla Matrix jest tylko transportem dla zatwierdzeń exec: routowaniem pokój/DM oraz zachowaniem wysyłania/aktualizacji/usuwania wiadomości. Nadpisanie per konto: - `channels.matrix.accounts..execApprovals` -Powiązana dokumentacja: [Zatwierdzenia exec](/pl/tools/exec-approvals) +Powiązana dokumentacja: [Exec approvals](/pl/tools/exec-approvals) ## Przykład wielu kont @@ -906,20 +910,20 @@ Powiązana dokumentacja: [Zatwierdzenia exec](/pl/tools/exec-approvals) ``` Wartości najwyższego poziomu `channels.matrix` działają jako ustawienia domyślne dla nazwanych kont, chyba że konto je nadpisze. -Możesz ograniczyć dziedziczone wpisy pokoi do jednego konta Matrix za pomocą `groups..account` (lub starszego `rooms..account`). +Możesz ograniczyć dziedziczony wpis pokoju do jednego konta Matrix za pomocą `groups..account` (lub legacy `rooms..account`). Wpisy bez `account` pozostają współdzielone przez wszystkie konta Matrix, a wpisy z `account: "default"` nadal działają, gdy konto domyślne jest skonfigurowane bezpośrednio na najwyższym poziomie `channels.matrix.*`. -Częściowe współdzielone domyślne ustawienia uwierzytelniania same w sobie nie tworzą osobnego niejawnego konta domyślnego. OpenClaw syntetyzuje najwyższy poziom konta `default` tylko wtedy, gdy to konto domyślne ma świeże uwierzytelnianie (`homeserver` plus `accessToken` albo `homeserver` plus `userId` i `password`); nazwane konta mogą nadal pozostać wykrywalne z `homeserver` plus `userId`, gdy zbuforowane poświadczenia później spełnią wymagania uwierzytelniania. -Jeśli Matrix ma już dokładnie jedno nazwane konto albo `defaultAccount` wskazuje istniejący klucz nazwanego konta, promowanie naprawy/konfiguracji z trybu jednego konta do wielu kont zachowuje to konto zamiast tworzyć nowy wpis `accounts.default`. Do promowanego konta przenoszone są tylko klucze uwierzytelniania/bootstrap Matrix; współdzielone klucze polityk dostarczania pozostają na najwyższym poziomie. -Ustaw `defaultAccount`, jeśli chcesz, aby OpenClaw preferował jedno nazwane konto Matrix do niejawnego trasowania, sondowania i operacji CLI. -Jeśli skonfigurujesz wiele nazwanych kont, ustaw `defaultAccount` albo przekazuj `--account ` dla poleceń CLI, które opierają się na niejawnym wyborze konta. +Częściowe współdzielone ustawienia domyślne uwierzytelniania same z siebie nie tworzą osobnego niejawnego konta domyślnego. OpenClaw syntetyzuje konto najwyższego poziomu `default` tylko wtedy, gdy to konto domyślne ma świeże uwierzytelnianie (`homeserver` plus `accessToken` albo `homeserver` plus `userId` i `password`); nazwane konta nadal mogą pozostać wykrywalne z `homeserver` plus `userId`, gdy później buforowane dane uwierzytelniające spełnią wymagania uwierzytelnienia. +Jeśli Matrix ma już dokładnie jedno nazwane konto albo `defaultAccount` wskazuje istniejący klucz nazwanego konta, naprawa/awans z konfiguracji jednego konta do wielu kont zachowuje to konto zamiast tworzyć nowy wpis `accounts.default`. Do tego awansowanego konta przenoszone są tylko klucze uwierzytelniania/bootstrapu Matrix; współdzielone klucze polityk dostarczania pozostają na najwyższym poziomie. +Ustaw `defaultAccount`, jeśli chcesz, aby OpenClaw preferował jedno nazwane konto Matrix dla niejawnego routowania, probing i operacji CLI. +Jeśli skonfigurujesz wiele nazwanych kont, ustaw `defaultAccount` lub przekazuj `--account ` w poleceniach CLI, które polegają na niejawnej selekcji konta. Przekaż `--account ` do `openclaw matrix verify ...` i `openclaw matrix devices ...`, gdy chcesz nadpisać ten niejawny wybór dla pojedynczego polecenia. ## Prywatne/LAN homeservery -Domyślnie OpenClaw blokuje prywatne/wewnętrzne homeservery Matrix dla ochrony SSRF, chyba że -jawnie włączysz to per konto. +Domyślnie OpenClaw blokuje prywatne/wewnętrzne homeservery Matrix w celu ochrony przed SSRF, chyba że +jawnie włączysz zgodę per konto. -Jeśli twój homeserver działa na localhost, adresie IP LAN/Tailscale lub wewnętrznej nazwie hosta, włącz +Jeśli twój homeserver działa na localhost, adresie LAN/Tailscale lub wewnętrznej nazwie hosta, włącz `allowPrivateNetwork` dla tego konta Matrix: ```json5 @@ -934,7 +938,7 @@ Jeśli twój homeserver działa na localhost, adresie IP LAN/Tailscale lub wewn } ``` -Przykład konfiguracji przez CLI: +Przykład konfiguracji w CLI: ```bash openclaw matrix account add \ @@ -944,8 +948,8 @@ openclaw matrix account add \ --access-token syt_ops_xxx ``` -To włączenie dotyczy tylko zaufanych prywatnych/wewnętrznych celów. Publiczne nieszyfrowane homeservery, takie jak -`http://matrix.example.org:8008`, nadal są blokowane. Gdy to możliwe, preferuj `https://`. +Ta zgoda obejmuje tylko zaufane cele prywatne/wewnętrzne. Publiczne homeservery działające po zwykłym tekście, takie jak +`http://matrix.example.org:8008`, nadal pozostają blokowane. Gdy to możliwe, preferuj `https://`. ## Proxy dla ruchu Matrix @@ -963,86 +967,87 @@ Jeśli twoje wdrożenie Matrix wymaga jawnego wychodzącego proxy HTTP(S), ustaw } ``` -Nazwane konta mogą nadpisywać domyślne ustawienie najwyższego poziomu przez `channels.matrix.accounts..proxy`. -OpenClaw używa tego samego ustawienia proxy dla ruchu Matrix w czasie działania i dla sond stanu konta. +Nazwane konta mogą nadpisać domyślną wartość najwyższego poziomu przez `channels.matrix.accounts..proxy`. +OpenClaw używa tego samego ustawienia proxy dla ruchu Matrix w runtime i dla sond statusu kont. -## Rozpoznawanie celów +## Rozwiązywanie celów -Matrix akceptuje następujące formy celu wszędzie tam, gdzie OpenClaw prosi o cel pokoju lub użytkownika: +Matrix akceptuje następujące formy celu wszędzie tam, gdzie OpenClaw prosi o pokój lub cel użytkownika: - Użytkownicy: `@user:server`, `user:@user:server` lub `matrix:user:@user:server` - Pokoje: `!room:server`, `room:!room:server` lub `matrix:room:!room:server` - Aliasy: `#alias:server`, `channel:#alias:server` lub `matrix:channel:#alias:server` -Wyszukiwanie w katalogu na żywo używa zalogowanego konta Matrix: +Wyszukiwanie katalogu na żywo używa zalogowanego konta Matrix: -- Wyszukiwanie użytkowników odpytuje katalog użytkowników Matrix na tym homeserverze. -- Wyszukiwanie pokoi bezpośrednio akceptuje jawne identyfikatory pokoi i aliasy, a następnie przechodzi do wyszukiwania nazw dołączonych pokoi dla tego konta. -- Wyszukiwanie nazw dołączonych pokoi jest oparte na best-effort. Jeśli nie da się rozpoznać nazwy pokoju do identyfikatora lub aliasu, jest ignorowana przez rozpoznawanie allowlisty w czasie działania. +- Wyszukiwania użytkowników odpytują katalog użytkowników Matrix na tym homeserverze. +- Wyszukiwania pokoi bezpośrednio akceptują jawne ID pokoi i aliasy, a następnie w razie potrzeby przechodzą do przeszukiwania nazw dołączonych pokoi dla tego konta. +- Wyszukiwanie po nazwie dołączonego pokoju ma charakter best-effort. Jeśli nazwy pokoju nie da się rozwiązać do ID ani aliasu, jest ona ignorowana przez rozwiązywanie allowlist w runtime. -## Dokumentacja konfiguracji +## Informacje referencyjne konfiguracji -- `enabled`: włącza lub wyłącza kanał. +- `enabled`: włącz lub wyłącz kanał. - `name`: opcjonalna etykieta konta. -- `defaultAccount`: preferowany identyfikator konta, gdy skonfigurowano wiele kont Matrix. +- `defaultAccount`: preferowane ID konta, gdy skonfigurowano wiele kont Matrix. - `homeserver`: URL homeservera, na przykład `https://matrix.example.org`. -- `allowPrivateNetwork`: zezwala temu kontu Matrix na łączenie się z prywatnymi/wewnętrznymi homeserverami. Włącz to, gdy homeserver rozpoznaje się do `localhost`, adresu IP LAN/Tailscale albo wewnętrznego hosta, takiego jak `matrix-synapse`. -- `proxy`: opcjonalny URL proxy HTTP(S) dla ruchu Matrix. Nazwane konta mogą nadpisywać domyślne ustawienie najwyższego poziomu własnym `proxy`. -- `userId`: pełny identyfikator użytkownika Matrix, na przykład `@bot:example.org`. -- `accessToken`: token dostępu do uwierzytelniania opartego na tokenie. Zarówno wartości w postaci zwykłego tekstu, jak i wartości SecretRef są obsługiwane dla `channels.matrix.accessToken` oraz `channels.matrix.accounts..accessToken` w dostawcach env/file/exec. Zobacz [Zarządzanie sekretami](/pl/gateway/secrets). -- `password`: hasło do logowania opartego na haśle. Obsługiwane są wartości zwykłego tekstu i SecretRef. -- `deviceId`: jawny identyfikator urządzenia Matrix. +- `allowPrivateNetwork`: pozwala temu kontu Matrix łączyć się z prywatnymi/wewnętrznymi homeserverami. Włącz tę opcję, gdy homeserver rozwiązuje się do `localhost`, adresu LAN/Tailscale albo wewnętrznego hosta, takiego jak `matrix-synapse`. +- `proxy`: opcjonalny URL proxy HTTP(S) dla ruchu Matrix. Nazwane konta mogą nadpisać domyślne ustawienie najwyższego poziomu własnym `proxy`. +- `userId`: pełne ID użytkownika Matrix, na przykład `@bot:example.org`. +- `accessToken`: token dostępu dla uwierzytelniania opartego na tokenie. Zwykłe wartości tekstowe i wartości SecretRef są obsługiwane dla `channels.matrix.accessToken` oraz `channels.matrix.accounts..accessToken` w providerach env/file/exec. Zobacz [Secrets Management](/pl/gateway/secrets). +- `password`: hasło do logowania opartego na haśle. Obsługiwane są zwykłe wartości tekstowe i wartości SecretRef. +- `deviceId`: jawne ID urządzenia Matrix. - `deviceName`: nazwa wyświetlana urządzenia przy logowaniu hasłem. -- `avatarUrl`: zapisany URL własnego awatara do synchronizacji profilu i aktualizacji `set-profile`. +- `avatarUrl`: zapisany URL własnego awatara dla synchronizacji profilu i aktualizacji `set-profile`. - `initialSyncLimit`: limit zdarzeń synchronizacji przy uruchamianiu. - `encryption`: włącza E2EE. -- `allowlistOnly`: wymusza zachowanie tylko według allowlisty dla wiadomości prywatnych i pokoi. -- `allowBots`: zezwala na wiadomości od innych skonfigurowanych kont Matrix OpenClaw (`true` lub `"mentions"`). -- `groupPolicy`: `open`, `allowlist` lub `disabled`. +- `allowlistOnly`: wymusza tryb wyłącznie allowlist dla DM i pokoi. +- `allowBots`: pozwala na wiadomości od innych skonfigurowanych kont Matrix OpenClaw (`true` lub `"mentions"`). +- `groupPolicy`: `open`, `allowlist` albo `disabled`. - `contextVisibility`: tryb widoczności uzupełniającego kontekstu pokoju (`all`, `allowlist`, `allowlist_quote`). -- `groupAllowFrom`: allowlista identyfikatorów użytkowników dla ruchu w pokojach. -- Wpisy `groupAllowFrom` powinny być pełnymi identyfikatorami użytkowników Matrix. Nierozpoznane nazwy są ignorowane w czasie działania. -- `historyLimit`: maksymalna liczba wiadomości z pokoju uwzględnianych jako kontekst historii grupy. Fallback do `messages.groupChat.historyLimit`. Ustaw `0`, aby wyłączyć. -- `replyToMode`: `off`, `first` lub `all`. +- `groupAllowFrom`: allowlist ID użytkowników dla ruchu pokojowego. +- Wpisy `groupAllowFrom` powinny być pełnymi ID użytkowników Matrix. Nierozwiązane nazwy są ignorowane w runtime. +- `historyLimit`: maksymalna liczba wiadomości z pokoju do uwzględnienia jako kontekst historii grupy. Wartość rezerwowa pochodzi z `messages.groupChat.historyLimit`; jeśli oba ustawienia nie są ustawione, efektywna wartość domyślna to `0`. Ustaw `0`, aby wyłączyć. +- `replyToMode`: `off`, `first` albo `all`. - `markdown`: opcjonalna konfiguracja renderowania Markdown dla wychodzącego tekstu Matrix. -- `streaming`: `off` (domyślnie), `partial`, `quiet`, `true` lub `false`. `partial` i `true` włączają aktualizacje szkicu „najpierw podgląd” przy użyciu zwykłych wiadomości tekstowych Matrix. `quiet` używa niepowiadamiających notice podglądu dla samohostowanych konfiguracji reguł push. -- `blockStreaming`: `true` włącza osobne komunikaty postępu dla ukończonych bloków asystenta, gdy aktywne jest strumieniowanie szkicu podglądu. -- `threadReplies`: `off`, `inbound` lub `always`. -- `threadBindings`: nadpisania per kanał dla trasowania i cyklu życia sesji związanych z wątkami. +- `streaming`: `off` (domyślnie), `partial`, `quiet`, `true` albo `false`. `partial` i `true` włączają aktualizacje wersji roboczej „najpierw podgląd” przy użyciu zwykłych wiadomości tekstowych Matrix. `quiet` używa niepowiadamiających informacji o podglądzie dla samodzielnie hostowanych konfiguracji reguł push. +- `blockStreaming`: `true` włącza osobne wiadomości postępu dla ukończonych bloków asystenta, gdy aktywne jest strumieniowanie wersji roboczej podglądu. +- `threadReplies`: `off`, `inbound` albo `always`. +- `threadBindings`: nadpisania per kanał dla routowania i cyklu życia sesji powiązanych z wątkiem. - `startupVerification`: tryb automatycznego żądania samoweryfikacji przy uruchamianiu (`if-unverified`, `off`). -- `startupVerificationCooldownHours`: czas cooldown przed ponowną próbą automatycznych żądań weryfikacji przy uruchamianiu. +- `startupVerificationCooldownHours`: cooldown przed ponowną próbą automatycznych żądań weryfikacji przy uruchamianiu. - `textChunkLimit`: rozmiar fragmentu wiadomości wychodzącej. -- `chunkMode`: `length` lub `newline`. +- `chunkMode`: `length` albo `newline`. - `responsePrefix`: opcjonalny prefiks wiadomości dla odpowiedzi wychodzących. - `ackReaction`: opcjonalne nadpisanie reakcji potwierdzającej dla tego kanału/konta. - `ackReactionScope`: opcjonalne nadpisanie zakresu reakcji potwierdzającej (`group-mentions`, `group-all`, `direct`, `all`, `none`, `off`). -- `reactionNotifications`: tryb powiadomień o reakcjach przychodzących (`own`, `off`). +- `reactionNotifications`: tryb przychodzących powiadomień o reakcjach (`own`, `off`). - `mediaMaxMb`: limit rozmiaru multimediów w MB dla obsługi multimediów Matrix. Dotyczy wysyłek wychodzących i przetwarzania multimediów przychodzących. -- `autoJoin`: zasada automatycznego dołączania do zaproszeń (`always`, `allowlist`, `off`). Domyślnie: `off`. -- `autoJoinAllowlist`: pokoje/aliasy dozwolone, gdy `autoJoin` ma wartość `allowlist`. Wpisy aliasów są podczas obsługi zaproszeń rozpoznawane do identyfikatorów pokoi; OpenClaw nie ufa stanowi aliasu deklarowanemu przez zapraszający pokój. -- `dm`: blok zasad DM (`enabled`, `policy`, `allowFrom`, `sessionScope`, `threadReplies`). -- Wpisy `dm.allowFrom` powinny być pełnymi identyfikatorami użytkowników Matrix, chyba że zostały już rozpoznane przez wyszukiwanie w katalogu na żywo. -- `dm.sessionScope`: `per-user` (domyślnie) lub `per-room`. Użyj `per-room`, jeśli chcesz, aby każdy pokój DM Matrix zachowywał oddzielny kontekst, nawet jeśli rozmówca jest ten sam. -- `dm.threadReplies`: nadpisanie zasad wątków tylko dla DM (`off`, `inbound`, `always`). Nadpisuje ustawienie najwyższego poziomu `threadReplies` zarówno dla umiejscowienia odpowiedzi, jak i izolacji sesji w wiadomościach prywatnych. +- `autoJoin`: polityka automatycznego dołączania do zaproszeń (`always`, `allowlist`, `off`). Domyślnie: `off`. Dotyczy zaproszeń Matrix ogólnie, w tym zaproszeń w stylu DM, a nie tylko zaproszeń do pokoi/grup. OpenClaw podejmuje tę decyzję w momencie zaproszenia, zanim może wiarygodnie sklasyfikować dołączony pokój jako DM lub grupę. +- `autoJoinAllowlist`: pokoje/aliasy dozwolone, gdy `autoJoin` ma wartość `allowlist`. Wpisy aliasów są rozwiązywane do ID pokoi podczas obsługi zaproszenia; OpenClaw nie ufa stanowi aliasu deklarowanemu przez zaproszony pokój. +- `dm`: blok polityki DM (`enabled`, `policy`, `allowFrom`, `sessionScope`, `threadReplies`). +- `dm.policy`: kontroluje dostęp do DM po dołączeniu OpenClaw do pokoju i sklasyfikowaniu go jako DM. Nie zmienia tego, czy zaproszenie jest automatycznie akceptowane. +- Wpisy `dm.allowFrom` powinny być pełnymi ID użytkowników Matrix, chyba że już zostały rozwiązane przez wyszukiwanie katalogu na żywo. +- `dm.sessionScope`: `per-user` (domyślnie) albo `per-room`. Użyj `per-room`, jeśli chcesz, aby każdy pokój DM Matrix zachowywał osobny kontekst, nawet jeśli partner jest ten sam. +- `dm.threadReplies`: nadpisanie polityki wątków tylko dla DM (`off`, `inbound`, `always`). Nadpisuje ustawienie najwyższego poziomu `threadReplies` zarówno dla umiejscowienia odpowiedzi, jak i izolacji sesji w DM. - `execApprovals`: natywne dostarczanie zatwierdzeń exec w Matrix (`enabled`, `approvers`, `target`, `agentFilter`, `sessionFilter`). -- `execApprovals.approvers`: identyfikatory użytkowników Matrix uprawnionych do zatwierdzania żądań exec. Opcjonalne, gdy `dm.allowFrom` już identyfikuje zatwierdzających. +- `execApprovals.approvers`: ID użytkowników Matrix uprawnionych do zatwierdzania żądań exec. Opcjonalne, gdy `dm.allowFrom` już identyfikuje zatwierdzających. - `execApprovals.target`: `dm | channel | both` (domyślnie: `dm`). - `accounts`: nazwane nadpisania per konto. Wartości najwyższego poziomu `channels.matrix` działają jako ustawienia domyślne dla tych wpisów. -- `groups`: mapa zasad per pokój. Preferuj identyfikatory pokoi lub aliasy; nierozpoznane nazwy pokoi są ignorowane w czasie działania. Tożsamość sesji/grupy używa po rozpoznaniu stabilnego identyfikatora pokoju, podczas gdy etykiety czytelne dla człowieka nadal pochodzą z nazw pokoi. +- `groups`: mapa polityk per pokój. Preferuj ID pokoi lub aliasy; nierozwiązane nazwy pokoi są ignorowane w runtime. Tożsamość sesji/grupy po rozwiązaniu używa stabilnego ID pokoju, a czytelne dla człowieka etykiety nadal pochodzą z nazw pokoi. - `groups..account`: ogranicza jeden dziedziczony wpis pokoju do konkretnego konta Matrix w konfiguracjach wielokontowych. - `groups..allowBots`: nadpisanie na poziomie pokoju dla nadawców będących skonfigurowanymi botami (`true` lub `"mentions"`). -- `groups..users`: allowlista nadawców per pokój. -- `groups..tools`: nadpisania zezwalania/blokowania narzędzi per pokój. -- `groups..autoReply`: nadpisanie ograniczania do wzmianek na poziomie pokoju. `true` wyłącza wymóg wzmianki dla tego pokoju; `false` wymusza go ponownie. +- `groups..users`: allowlist nadawców per pokój. +- `groups..tools`: nadpisania allow/deny narzędzi per pokój. +- `groups..autoReply`: nadpisanie bramkowania wzmiankami na poziomie pokoju. `true` wyłącza wymagania wzmianki dla tego pokoju; `false` ponownie je wymusza. - `groups..skills`: opcjonalny filtr Skills na poziomie pokoju. - `groups..systemPrompt`: opcjonalny fragment system promptu na poziomie pokoju. -- `rooms`: starszy alias dla `groups`. -- `actions`: kontrola dostępu narzędzi per akcja (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`). +- `rooms`: legacy alias dla `groups`. +- `actions`: kontrola narzędzi per akcja (`messages`, `reactions`, `pins`, `profile`, `memberInfo`, `channelInfo`, `verification`). ## Powiązane -- [Przegląd kanałów](/pl/channels) — wszystkie obsługiwane kanały -- [Parowanie](/pl/channels/pairing) — uwierzytelnianie wiadomości prywatnych i przepływ parowania -- [Grupy](/pl/channels/groups) — zachowanie czatu grupowego i ograniczanie do wzmianek -- [Trasowanie kanałów](/pl/channels/channel-routing) — trasowanie sesji dla wiadomości -- [Bezpieczeństwo](/pl/gateway/security) — model dostępu i utwardzanie +- [Channels Overview](/pl/channels) — wszystkie obsługiwane kanały +- [Pairing](/pl/channels/pairing) — uwierzytelnianie DM i przepływ parowania +- [Groups](/pl/channels/groups) — zachowanie czatów grupowych i bramkowanie wzmiankami +- [Channel Routing](/pl/channels/channel-routing) — routowanie sesji dla wiadomości +- [Security](/pl/gateway/security) — model dostępu i utwardzanie diff --git a/docs/pl/channels/slack.md b/docs/pl/channels/slack.md index e49d4b0eb..a58779d44 100644 --- a/docs/pl/channels/slack.md +++ b/docs/pl/channels/slack.md @@ -1,30 +1,30 @@ --- read_when: - - Konfigurowanie Slack lub debugowanie trybu socket/HTTP w Slack -summary: Konfiguracja Slack i zachowanie środowiska uruchomieniowego (Socket Mode + HTTP Events API) + - Konfigurowanie Slack lub debugowanie trybu Slack socket/HTTP +summary: Konfiguracja Slack i zachowanie w czasie działania (Socket Mode + adresy URL żądań HTTP) title: Slack x-i18n: - generated_at: "2026-04-06T03:07:09Z" + generated_at: "2026-04-06T09:46:36Z" model: gpt-5.4 provider: openai - source_hash: 7e4ff2ce7d92276d62f4f3d3693ddb56ca163d5fdc2f1082ff7ba3421fada69c + source_hash: 11571e7e10cfbf4de91dc1b1ed6582cd94afdcf6c3356fdd3ccc770096c6dd31 source_path: channels/slack.md workflow: 15 --- # Slack -Status: gotowe do użycia produkcyjnego dla wiadomości prywatnych i kanałów przez integracje aplikacji Slack. Domyślnym trybem jest Socket Mode; tryb HTTP Events API również jest obsługiwany. +Status: gotowe do użycia produkcyjnego dla DM-ów i kanałów przez integracje aplikacji Slack. Domyślnym trybem jest Socket Mode; obsługiwane są również adresy URL żądań HTTP. - Wiadomości prywatne Slack domyślnie używają trybu parowania. + DM-y Slack domyślnie działają w trybie parowania. Natywne zachowanie poleceń i katalog poleceń. - Diagnostyka międzykanałowa i instrukcje naprawy. + Diagnostyka międzykanałowa i procedury naprawcze. @@ -33,12 +33,13 @@ Status: gotowe do użycia produkcyjnego dla wiadomości prywatnych i kanałów p - - W ustawieniach aplikacji Slack: + + W ustawieniach aplikacji Slack naciśnij przycisk **[Create New App](https://api.slack.com/apps/new)**: - - włącz **Socket Mode** - - utwórz **App Token** (`xapp-...`) z uprawnieniem `connections:write` - - zainstaluj aplikację i skopiuj **Bot Token** (`xoxb-...`) + - wybierz **from a manifest** i wybierz obszar roboczy dla swojej aplikacji + - wklej [przykładowy manifest](#manifest-and-scope-checklist) z sekcji poniżej i kontynuuj tworzenie + - wygeneruj **App-Level Token** (`xapp-...`) z uprawnieniem `connections:write` + - zainstaluj aplikację i skopiuj wyświetlony **Bot Token** (`xoxb-...`) @@ -56,7 +57,7 @@ Status: gotowe do użycia produkcyjnego dla wiadomości prywatnych i kanałów p } ``` - Zmienna środowiskowa jako awaryjne źródło wartości (tylko konto domyślne): + Zmienna środowiskowa jako zapasowa konfiguracja (tylko konto domyślne): ```bash SLACK_APP_TOKEN=xapp-... @@ -65,19 +66,6 @@ SLACK_BOT_TOKEN=xoxb-... - - Subskrybuj zdarzenia bota dla: - - - `app_mention` - - `message.channels`, `message.groups`, `message.im`, `message.mpim` - - `reaction_added`, `reaction_removed` - - `member_joined_channel`, `member_left_channel` - - `channel_rename` - - `pin_added`, `pin_removed` - - Włącz także kartę **Messages Tab** w App Home dla wiadomości prywatnych. - - ```bash @@ -89,17 +77,19 @@ openclaw gateway - + - + + W ustawieniach aplikacji Slack naciśnij przycisk **[Create New App](https://api.slack.com/apps/new)**: - - ustaw tryb na HTTP (`channels.slack.mode="http"`) - - skopiuj **Signing Secret** Slack - - ustaw Request URL dla Event Subscriptions, Interactivity i polecenia Slash na tę samą ścieżkę webhooka (domyślnie `/slack/events`) + - wybierz **from a manifest** i wybierz obszar roboczy dla swojej aplikacji + - wklej [przykładowy manifest](#manifest-and-scope-checklist) i zaktualizuj adresy URL przed utworzeniem + - zapisz **Signing Secret** do weryfikacji żądań + - zainstaluj aplikację i skopiuj wyświetlony **Bot Token** (`xoxb-...`) - + ```json5 { @@ -115,12 +105,20 @@ openclaw gateway } ``` + + Używaj unikalnych ścieżek webhook dla wielu kont HTTP + + Nadaj każdemu kontu odrębny `webhookPath` (domyślnie `/slack/events`), aby rejestracje się nie kolidowały. + + - - Tryb HTTP dla wielu kont jest obsługiwany. + + +```bash +openclaw gateway +``` - Nadaj każdemu kontu odrębny `webhookPath`, aby rejestracje nie kolidowały ze sobą. @@ -129,8 +127,8 @@ openclaw gateway ## Lista kontrolna manifestu i zakresów - - + + ```json { @@ -205,8 +203,99 @@ openclaw gateway } ``` - + + + +```json +{ + "display_information": { + "name": "OpenClaw", + "description": "Slack connector for OpenClaw" + }, + "features": { + "bot_user": { + "display_name": "OpenClaw", + "always_online": true + }, + "app_home": { + "messages_tab_enabled": true, + "messages_tab_read_only_enabled": false + }, + "slash_commands": [ + { + "command": "/openclaw", + "description": "Send a message to OpenClaw", + "should_escape": false, + "url": "https://gateway-host.example.com/slack/events" + } + ] + }, + "oauth_config": { + "scopes": { + "bot": [ + "app_mentions:read", + "assistant:write", + "channels:history", + "channels:read", + "chat:write", + "commands", + "emoji:read", + "files:read", + "files:write", + "groups:history", + "groups:read", + "im:history", + "im:read", + "im:write", + "mpim:history", + "mpim:read", + "mpim:write", + "pins:read", + "pins:write", + "reactions:read", + "reactions:write", + "users:read" + ] + } + }, + "settings": { + "event_subscriptions": { + "request_url": "https://gateway-host.example.com/slack/events", + "bot_events": [ + "app_mention", + "channel_rename", + "member_joined_channel", + "member_left_channel", + "message.channels", + "message.groups", + "message.im", + "message.mpim", + "pin_added", + "pin_removed", + "reaction_added", + "reaction_removed" + ] + }, + "interactivity": { + "is_enabled": true, + "request_url": "https://gateway-host.example.com/slack/events", + "message_menu_options_url": "https://gateway-host.example.com/slack/events" + } + } +} +``` + + + + + + + Dodaj zakres bota `chat:write.customize`, jeśli chcesz, aby wiadomości wychodzące używały tożsamości aktywnego agenta (niestandardowa nazwa użytkownika i ikona) zamiast domyślnej tożsamości aplikacji Slack. + + Jeśli używasz ikony emoji, Slack oczekuje składni `:nazwa_emoji:`. + + Jeśli skonfigurujesz `channels.slack.userToken`, typowe zakresy odczytu to: @@ -216,7 +305,7 @@ openclaw gateway - `reactions:read` - `pins:read` - `emoji:read` - - `search:read` (jeśli polegasz na odczytach wyszukiwania Slack) + - `search:read` (jeśli korzystasz z odczytów wyszukiwania Slack) @@ -225,26 +314,25 @@ openclaw gateway - `botToken` + `appToken` są wymagane dla Socket Mode. - Tryb HTTP wymaga `botToken` + `signingSecret`. -- `botToken`, `appToken`, `signingSecret` i `userToken` akceptują zwykłe - ciągi znaków lub obiekty SecretRef. -- Tokeny w konfiguracji mają pierwszeństwo przed awaryjnym źródłem wartości ze środowiska. -- Awaryjne źródło wartości środowiskowych `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` dotyczy tylko konta domyślnego. -- `userToken` (`xoxp-...`) jest dostępny tylko w konfiguracji (bez awaryjnego źródła wartości ze środowiska) i domyślnie działa tylko do odczytu (`userTokenReadOnly: true`). -- Opcjonalnie: dodaj `chat:write.customize`, jeśli chcesz, aby wiadomości wychodzące używały tożsamości aktywnego agenta (niestandardowe `username` i ikona). `icon_emoji` używa składni `:emoji_name:`. +- `botToken`, `appToken`, `signingSecret` i `userToken` akceptują jawne + ciągi znaków albo obiekty SecretRef. +- Tokeny z konfiguracji mają pierwszeństwo przed zapasową konfiguracją ze zmiennych środowiskowych. +- Zapasowa konfiguracja z `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` ze zmiennych środowiskowych dotyczy tylko konta domyślnego. +- `userToken` (`xoxp-...`) jest dostępny tylko w konfiguracji (bez zapasowej konfiguracji ze zmiennych środowiskowych) i domyślnie działa w trybie tylko do odczytu (`userTokenReadOnly: true`). -Zachowanie migawki stanu: +Zachowanie migawki statusu: - Inspekcja konta Slack śledzi pola `*Source` i `*Status` dla każdego poświadczenia (`botToken`, `appToken`, `signingSecret`, `userToken`). -- Stan to `available`, `configured_unavailable` lub `missing`. +- Status ma wartość `available`, `configured_unavailable` albo `missing`. - `configured_unavailable` oznacza, że konto jest skonfigurowane przez SecretRef - lub inne niejawne źródło sekretu, ale bieżąca ścieżka polecenia/uruchomienia + albo inne źródło sekretu nieinline, ale bieżąca ścieżka polecenia/środowiska uruchomieniowego nie mogła rozwiązać rzeczywistej wartości. - W trybie HTTP uwzględniane jest `signingSecretStatus`; w Socket Mode wymagana para to `botTokenStatus` + `appTokenStatus`. -W przypadku działań/odczytów katalogu token użytkownika może mieć pierwszeństwo, jeśli jest skonfigurowany. W przypadku zapisów nadal preferowany jest token bota; zapisy z użyciem tokena użytkownika są dozwolone tylko wtedy, gdy `userTokenReadOnly: false` i token bota jest niedostępny. +Do odczytów działań/katalogu preferowany może być token użytkownika, jeśli jest skonfigurowany. Przy zapisach nadal preferowany jest token bota; zapisy tokenem użytkownika są dozwolone tylko wtedy, gdy `userTokenReadOnly: false` i token bota jest niedostępny. ## Działania i bramki @@ -266,33 +354,33 @@ Bieżące działania wiadomości Slack obejmują `send`, `upload-file`, `downloa ## Kontrola dostępu i routing - - `channels.slack.dmPolicy` kontroluje dostęp do wiadomości prywatnych (starsza nazwa: `channels.slack.dm.policy`): + + `channels.slack.dmPolicy` kontroluje dostęp do DM-ów (starsza nazwa: `channels.slack.dm.policy`): - `pairing` (domyślnie) - `allowlist` - `open` (wymaga, aby `channels.slack.allowFrom` zawierało `"*"`; starsza nazwa: `channels.slack.dm.allowFrom`) - `disabled` - Flagi wiadomości prywatnych: + Flagi DM: - `dm.enabled` (domyślnie true) - - `channels.slack.allowFrom` (preferowane) + - `channels.slack.allowFrom` (zalecane) - `dm.allowFrom` (starsza nazwa) - - `dm.groupEnabled` (grupowe wiadomości prywatne domyślnie false) + - `dm.groupEnabled` (DM-y grupowe domyślnie false) - `dm.groupChannels` (opcjonalna lista dozwolonych MPIM) - Pierwszeństwo dla wielu kont: + Priorytet dla wielu kont: - `channels.slack.accounts.default.allowFrom` dotyczy tylko konta `default`. - Nazwane konta dziedziczą `channels.slack.allowFrom`, gdy ich własne `allowFrom` nie jest ustawione. - Nazwane konta nie dziedziczą `channels.slack.accounts.default.allowFrom`. - Parowanie w wiadomościach prywatnych używa `openclaw pairing approve slack `. + Parowanie w DM-ach używa `openclaw pairing approve slack `. - + `channels.slack.groupPolicy` kontroluje obsługę kanałów: - `open` @@ -301,26 +389,26 @@ Bieżące działania wiadomości Slack obejmują `send`, `upload-file`, `downloa Lista dozwolonych kanałów znajduje się pod `channels.slack.channels` i powinna używać stabilnych identyfikatorów kanałów. - Uwaga dotycząca środowiska uruchomieniowego: jeśli `channels.slack` całkowicie nie istnieje (konfiguracja tylko przez zmienne środowiskowe), środowisko uruchomieniowe wraca do `groupPolicy="allowlist"` i zapisuje ostrzeżenie w logach (nawet jeśli ustawiono `channels.defaults.groupPolicy`). + Uwaga dotycząca działania w czasie wykonywania: jeśli `channels.slack` całkowicie nie istnieje (konfiguracja tylko przez zmienne środowiskowe), środowisko uruchomieniowe wraca do `groupPolicy="allowlist"` i zapisuje ostrzeżenie do logów (nawet jeśli ustawiono `channels.defaults.groupPolicy`). Rozwiązywanie nazw/identyfikatorów: - - wpisy listy dozwolonych kanałów i wpisy listy dozwolonych wiadomości prywatnych są rozwiązywane przy uruchomieniu, gdy pozwala na to dostęp tokena - - nierozwiązane wpisy nazw kanałów są zachowywane zgodnie z konfiguracją, ale domyślnie ignorowane przy routingu - - autoryzacja przychodząca i routing kanałów są domyślnie oparte najpierw na identyfikatorach; bezpośrednie dopasowanie nazwy użytkownika/slug wymaga `channels.slack.dangerouslyAllowNameMatching: true` + - wpisy listy dozwolonych kanałów i wpisy listy dozwolonych DM są rozwiązywane przy starcie, gdy dostęp tokena na to pozwala + - nierozwiązane wpisy nazw kanałów pozostają w konfiguracji, ale są domyślnie ignorowane przez routing + - autoryzacja przychodząca i routing kanałów domyślnie są oparte najpierw na identyfikatorach; bezpośrednie dopasowanie nazw użytkowników/slugów wymaga `channels.slack.dangerouslyAllowNameMatching: true` - - Wiadomości kanałowe są domyślnie bramkowane wzmiankami. + + Wiadomości na kanałach są domyślnie ograniczane przez wzmianki. Źródła wzmianki: - jawna wzmianka o aplikacji (`<@botId>`) - - wzorce regex wzmianki (`agents.list[].groupChat.mentionPatterns`, awaryjnie `messages.groupChat.mentionPatterns`) + - wzorce regex wzmianki (`agents.list[].groupChat.mentionPatterns`, zapasowo `messages.groupChat.mentionPatterns`) - niejawne zachowanie wątku odpowiedzi do bota - Kontrole per kanał (`channels.slack.channels.`; nazwy tylko przez rozwiązywanie przy uruchomieniu lub `dangerouslyAllowNameMatching`): + Kontrolki per kanał (`channels.slack.channels.`; nazwy tylko przez rozwiązywanie przy starcie lub `dangerouslyAllowNameMatching`): - `requireMention` - `users` (lista dozwolonych) @@ -328,33 +416,33 @@ Bieżące działania wiadomości Slack obejmują `send`, `upload-file`, `downloa - `skills` - `systemPrompt` - `tools`, `toolsBySender` - - format klucza `toolsBySender`: `id:`, `e164:`, `username:`, `name:` lub wildcard `"*"` - (starsze klucze bez prefiksu nadal mapują się tylko na `id:`) + - format klucza `toolsBySender`: `id:`, `e164:`, `username:`, `name:` albo symbol wieloznaczny `"*"` + (starsze klucze bez prefiksu nadal są mapowane tylko do `id:`) ## Wątki, sesje i tagi odpowiedzi -- Wiadomości prywatne są routowane jako `direct`; kanały jako `channel`; MPIM jako `group`. -- Przy domyślnym `session.dmScope=main` wiadomości prywatne Slack są zwijane do głównej sesji agenta. +- DM-y są routowane jako `direct`; kanały jako `channel`; MPIM-y jako `group`. +- Przy domyślnym `session.dmScope=main` DM-y Slack są zwijane do głównej sesji agenta. - Sesje kanałów: `agent::slack:channel:`. -- Odpowiedzi w wątkach mogą tworzyć sufiksy sesji wątku (`:thread:`), gdy ma to zastosowanie. +- Odpowiedzi w wątku mogą tworzyć sufiksy sesji wątku (`:thread:`) tam, gdzie ma to zastosowanie. - Domyślna wartość `channels.slack.thread.historyScope` to `thread`; domyślna wartość `thread.inheritParent` to `false`. -- `channels.slack.thread.initialHistoryLimit` kontroluje, ile istniejących wiadomości w wątku jest pobieranych przy starcie nowej sesji wątku (domyślnie `20`; ustaw `0`, aby wyłączyć). +- `channels.slack.thread.initialHistoryLimit` kontroluje liczbę istniejących wiadomości w wątku pobieranych przy rozpoczęciu nowej sesji wątku (domyślnie `20`; ustaw `0`, aby wyłączyć). -Kontrole wątkowania odpowiedzi: +Kontrolki wątkowania odpowiedzi: - `channels.slack.replyToMode`: `off|first|all|batched` (domyślnie `off`) - `channels.slack.replyToModeByChatType`: per `direct|group|channel` -- starsze awaryjne ustawienie dla czatów bezpośrednich: `channels.slack.dm.replyToMode` +- starsza zapasowa nazwa dla czatów bezpośrednich: `channels.slack.dm.replyToMode` Obsługiwane są ręczne tagi odpowiedzi: - `[[reply_to_current]]` - `[[reply_to:]]` -Uwaga: `replyToMode="off"` wyłącza **całe** wątkowanie odpowiedzi w Slack, w tym jawne tagi `[[reply_to_*]]`. Różni się to od Telegram, gdzie jawne tagi są nadal honorowane w trybie `"off"`. Różnica wynika z modeli wątków na tych platformach: w Slack wątki ukrywają wiadomości przed kanałem, podczas gdy odpowiedzi w Telegram pozostają widoczne w głównym przepływie czatu. +Uwaga: `replyToMode="off"` wyłącza **całe** wątkowanie odpowiedzi w Slack, w tym jawne tagi `[[reply_to_*]]`. Różni się to od Telegram, gdzie jawne tagi są nadal honorowane w trybie `"off"`. Różnica wynika z modeli wątków platform: w Slack wątki ukrywają wiadomości przed kanałem, podczas gdy w Telegram odpowiedzi pozostają widoczne w głównym przepływie czatu. ## Reakcje potwierdzające @@ -365,7 +453,7 @@ Kolejność rozwiązywania: - `channels.slack.accounts..ackReaction` - `channels.slack.ackReaction` - `messages.ackReaction` -- awaryjnie emoji tożsamości agenta (`agents.list[].identity.emoji`, w przeciwnym razie "👀") +- zapasowe emoji tożsamości agenta (`agents.list[].identity.emoji`, w przeciwnym razie "👀") Uwagi: @@ -379,15 +467,15 @@ Uwagi: - `off`: wyłącza strumieniowanie podglądu na żywo. - `partial` (domyślnie): zastępuje tekst podglądu najnowszym częściowym wynikiem. - `block`: dołącza porcjowane aktualizacje podglądu. -- `progress`: pokazuje tekst stanu postępu podczas generowania, a następnie wysyła tekst końcowy. +- `progress`: pokazuje tekst statusu postępu podczas generowania, a następnie wysyła tekst końcowy. `channels.slack.nativeStreaming` kontroluje natywne strumieniowanie tekstu Slack, gdy `streaming` ma wartość `partial` (domyślnie: `true`). -- Aby pojawiło się natywne strumieniowanie tekstu, musi być dostępny wątek odpowiedzi. Wybór wątku nadal podlega `replyToMode`. Bez niego używany jest zwykły podgląd wersji roboczej. +- Aby natywne strumieniowanie tekstu było widoczne, musi być dostępny wątek odpowiedzi. Wybór wątku nadal podąża za `replyToMode`. Bez tego używany jest zwykły podgląd szkicu. - Media i ładunki inne niż tekst wracają do zwykłego dostarczania. -- Jeśli strumieniowanie nie powiedzie się w trakcie odpowiedzi, OpenClaw wraca do zwykłego dostarczania dla pozostałych ładunków. +- Jeśli strumieniowanie nie powiedzie się w połowie odpowiedzi, OpenClaw wraca do zwykłego dostarczania dla pozostałych ładunków. -Użyj podglądu wersji roboczej zamiast natywnego strumieniowania tekstu Slack: +Użyj podglądu szkicu zamiast natywnego strumieniowania tekstu Slack: ```json5 { @@ -402,12 +490,12 @@ Użyj podglądu wersji roboczej zamiast natywnego strumieniowania tekstu Slack: Starsze klucze: -- `channels.slack.streamMode` (`replace | status_final | append`) jest automatycznie migrowane do `channels.slack.streaming`. +- `channels.slack.streamMode` (`replace | status_final | append`) jest automatycznie migrowany do `channels.slack.streaming`. - wartość logiczna `channels.slack.streaming` jest automatycznie migrowana do `channels.slack.nativeStreaming`. -## Awaryjna reakcja pisania +## Zapasowa reakcja pisania -`typingReaction` dodaje tymczasową reakcję do przychodzącej wiadomości Slack, gdy OpenClaw przetwarza odpowiedź, a następnie usuwa ją po zakończeniu działania. Jest to najbardziej przydatne poza odpowiedziami we wątkach, które używają domyślnego wskaźnika stanu „pisze...”. +`typingReaction` dodaje tymczasową reakcję do przychodzącej wiadomości Slack, gdy OpenClaw przetwarza odpowiedź, a następnie usuwa ją po zakończeniu działania. Jest to najbardziej przydatne poza odpowiedziami w wątkach, które używają domyślnego wskaźnika statusu „pisze...”. Kolejność rozwiązywania: @@ -417,39 +505,39 @@ Kolejność rozwiązywania: Uwagi: - Slack oczekuje shortcode'ów (na przykład `"hourglass_flowing_sand"`). -- Reakcja jest wykonywana w trybie best-effort, a próba sprzątania następuje automatycznie po zakończeniu odpowiedzi lub ścieżki błędu. +- Reakcja jest wykonywana w trybie best-effort, a próba jej usunięcia jest podejmowana automatycznie po odpowiedzi lub po zakończeniu ścieżki błędu. ## Media, dzielenie na części i dostarczanie - Załączniki plików Slack są pobierane z prywatnych adresów URL hostowanych przez Slack (przepływ żądania uwierzytelnionego tokenem) i zapisywane w magazynie mediów, jeśli pobranie się powiedzie i limity rozmiaru na to pozwalają. + Załączniki plików Slack są pobierane z prywatnych adresów URL hostowanych przez Slack (przepływ żądań uwierzytelnianych tokenem) i zapisywane w magazynie mediów, gdy pobieranie się powiedzie i pozwalają na to limity rozmiaru. - Domyślny limit rozmiaru przychodzącego w środowisku uruchomieniowym to `20MB`, chyba że zostanie nadpisany przez `channels.slack.mediaMaxMb`. + Domyślny limit rozmiaru wejściowego w czasie działania to `20MB`, chyba że zostanie nadpisany przez `channels.slack.mediaMaxMb`. - - części tekstu używają `channels.slack.textChunkLimit` (domyślnie 4000) - - `channels.slack.chunkMode="newline"` włącza dzielenie najpierw według akapitów - - wysyłanie plików używa API przesyłania Slack i może obejmować odpowiedzi we wątkach (`thread_ts`) - - limit mediów wychodzących podlega `channels.slack.mediaMaxMb`, jeśli jest skonfigurowany; w przeciwnym razie wysyłanie kanałowe używa domyślnych wartości według rodzaju MIME z pipeline'u mediów + - fragmenty tekstu używają `channels.slack.textChunkLimit` (domyślnie 4000) + - `channels.slack.chunkMode="newline"` włącza dzielenie z priorytetem akapitów + - wysyłanie plików używa API przesyłania Slack i może obejmować odpowiedzi w wątku (`thread_ts`) + - limit mediów wychodzących podąża za `channels.slack.mediaMaxMb`, jeśli jest skonfigurowany; w przeciwnym razie wysyłki kanałowe używają domyślnych wartości typu MIME z potoku mediów Preferowane jawne cele: - - `user:` dla wiadomości prywatnych + - `user:` dla DM-ów - `channel:` dla kanałów - Wiadomości prywatne Slack są otwierane przez API konwersacji Slack podczas wysyłania do celów użytkownika. + DM-y Slack są otwierane przez API konwersacji Slack podczas wysyłania do celów użytkownika. ## Polecenia i zachowanie slash -- Natywny tryb automatyczny poleceń jest **wyłączony** dla Slack (`commands.native: "auto"` nie włącza natywnych poleceń Slack). +- Natywny automatyczny tryb poleceń jest **wyłączony** dla Slack (`commands.native: "auto"` nie włącza natywnych poleceń Slack). - Włącz natywne handlery poleceń Slack przez `channels.slack.commands.native: true` (lub globalne `commands.native: true`). - Gdy natywne polecenia są włączone, zarejestruj pasujące polecenia slash w Slack (`/`), z jednym wyjątkiem: - zarejestruj `/agentstatus` dla polecenia statusu (Slack rezerwuje `/status`) @@ -457,9 +545,9 @@ Uwagi: - Natywne menu argumentów dostosowują teraz strategię renderowania: - do 5 opcji: bloki przycisków - 6-100 opcji: statyczne menu wyboru - - powyżej 100 opcji: zewnętrzny wybór z asynchronicznym filtrowaniem opcji, gdy dostępne są handlery opcji interaktywności + - więcej niż 100 opcji: zewnętrzny wybór z asynchronicznym filtrowaniem opcji, gdy dostępne są handlery opcji interaktywności - jeśli zakodowane wartości opcji przekraczają limity Slack, przepływ wraca do przycisków -- W przypadku długich ładunków opcji menu argumentów polecenia slash używają okna potwierdzenia przed wysłaniem wybranej wartości. +- Dla długich ładunków opcji menu argumentów poleceń slash używają dialogu potwierdzenia przed wysłaniem wybranej wartości. Domyślne ustawienia polecenia slash: @@ -468,15 +556,15 @@ Domyślne ustawienia polecenia slash: - `sessionPrefix: "slack:slash"` - `ephemeral: true` -Sesje slash używają odizolowanych kluczy: +Sesje slash używają izolowanych kluczy: - `agent::slack:slash:` -i nadal kierują wykonanie polecenia względem docelowej sesji konwersacji (`CommandTargetSessionKey`). +i nadal kierują wykonanie polecenia względem sesji docelowej konwersacji (`CommandTargetSessionKey`). ## Interaktywne odpowiedzi -Slack może renderować interaktywne kontrolki odpowiedzi tworzone przez agenta, ale ta funkcja jest domyślnie wyłączona. +Slack może renderować interaktywne kontrolki odpowiedzi autorstwa agenta, ale ta funkcja jest domyślnie wyłączona. Włącz ją globalnie: @@ -492,7 +580,7 @@ Włącz ją globalnie: } ``` -Lub włącz ją tylko dla jednego konta Slack: +Albo włącz ją tylko dla jednego konta Slack: ```json5 { @@ -520,21 +608,21 @@ Te dyrektywy są kompilowane do Slack Block Kit i kierują kliknięcia lub wybor Uwagi: - To interfejs specyficzny dla Slack. Inne kanały nie tłumaczą dyrektyw Slack Block Kit na własne systemy przycisków. -- Wartości interaktywnego callbacka to generowane przez OpenClaw nieprzezroczyste tokeny, a nie surowe wartości tworzone przez agenta. +- Wartości interaktywnego callbacka to nieprzezroczyste tokeny generowane przez OpenClaw, a nie surowe wartości utworzone przez agenta. - Jeśli wygenerowane interaktywne bloki przekroczyłyby limity Slack Block Kit, OpenClaw wraca do oryginalnej odpowiedzi tekstowej zamiast wysyłać nieprawidłowy ładunek blocks. -## Zgody exec w Slack +## Zatwierdzenia exec w Slack -Slack może działać jako natywny klient zatwierdzeń z interaktywnymi przyciskami i interakcjami, zamiast wracać do Web UI lub terminala. +Slack może działać jako natywny klient zatwierdzeń z interaktywnymi przyciskami i interakcjami, zamiast wracać do interfejsu Web UI lub terminala. -- Zgody exec używają `channels.slack.execApprovals.*` do natywnego routingu wiadomości prywatnych/kanałów. -- Zgody pluginów mogą nadal być rozwiązywane przez tę samą natywną powierzchnię przycisków Slack, gdy żądanie trafia już do Slack, a typ identyfikatora zgody to `plugin:`. -- Autoryzacja zatwierdzającego nadal jest egzekwowana: tylko użytkownicy zidentyfikowani jako zatwierdzający mogą zatwierdzać lub odrzucać żądania przez Slack. +- Zatwierdzenia exec używają `channels.slack.execApprovals.*` do natywnego routingu DM/kanału. +- Zatwierdzenia pluginów nadal mogą być rozwiązywane przez tę samą natywną powierzchnię przycisków Slack, gdy żądanie już trafia do Slack, a rodzaj identyfikatora zatwierdzenia to `plugin:`. +- Autoryzacja zatwierdzającego nadal jest wymuszana: tylko użytkownicy zidentyfikowani jako zatwierdzający mogą zatwierdzać lub odrzucać żądania przez Slack. -Używa to tej samej współdzielonej powierzchni przycisków zatwierdzeń co inne kanały. Gdy `interactivity` jest włączone w ustawieniach aplikacji Slack, prompty zatwierdzeń są renderowane bezpośrednio w konwersacji jako przyciski Block Kit. -Gdy te przyciski są obecne, są podstawowym UX zatwierdzeń; OpenClaw -powinno 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ą. +Korzysta to z tej samej współdzielonej powierzchni przycisków zatwierdzeń co inne kanały. Gdy `interactivity` jest włączone w ustawieniach aplikacji Slack, prompty zatwierdzeń są renderowane jako przyciski Block Kit bezpośrednio w konwersacji. +Gdy te przyciski są obecne, stanowią podstawowy 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 albo ręczne zatwierdzenie jest jedyną ścieżką. Ścieżka konfiguracji: @@ -543,9 +631,9 @@ są niedostępne lub ręczne zatwierdzenie jest jedyną ścieżką. - `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, domyślnie: `dm`) - `agentFilter`, `sessionFilter` -Slack automatycznie włącza natywne zgody exec, gdy `enabled` nie jest ustawione lub ma wartość `"auto"` i zostanie rozpoznany co najmniej jeden +Slack automatycznie włącza natywne zatwierdzenia exec, gdy `enabled` nie jest ustawione albo ma wartość `"auto"` i zostanie rozwiązany co najmniej jeden zatwierdzający. Ustaw `enabled: false`, aby jawnie wyłączyć Slack jako natywnego klienta zatwierdzeń. -Ustaw `enabled: true`, aby wymusić natywne zatwierdzenia, gdy zostaną rozpoznani zatwierdzający. +Ustaw `enabled: true`, aby wymusić natywne zatwierdzenia, gdy zatwierdzający zostaną rozwiązani. Domyślne zachowanie bez jawnej konfiguracji zatwierdzeń exec dla Slack: @@ -557,8 +645,8 @@ Domyślne zachowanie bez jawnej konfiguracji zatwierdzeń exec dla Slack: } ``` -Jawna konfiguracja natywna dla Slack jest potrzebna tylko wtedy, gdy chcesz nadpisać zatwierdzających, dodać filtry lub -włączyć dostarczanie do czatu źródłowego: +Jawna konfiguracja natywna Slack jest potrzebna tylko wtedy, gdy chcesz zastąpić zatwierdzających, dodać filtry lub +włączyć dostarczanie do czatu pochodzenia: ```json5 { @@ -574,35 +662,35 @@ włączyć dostarczanie do czatu źródłowego: } ``` -Współdzielone przekazywanie `approvals.exec` jest oddzielne. Używaj go tylko wtedy, gdy prompty zatwierdzeń exec muszą być także +Współdzielone przekazywanie `approvals.exec` jest osobne. Używaj go tylko wtedy, gdy prompty zatwierdzeń exec muszą być także kierowane do innych czatów lub jawnych celów poza pasmem. Współdzielone przekazywanie `approvals.plugin` jest również -oddzielne; natywne przyciski Slack mogą nadal rozwiązywać zgody pluginów, gdy te żądania już trafiają +osobne; natywne przyciski Slack nadal mogą rozwiązywać zatwierdzenia pluginów, gdy te żądania już trafiają do Slack. -`/approve` w tym samym czacie również działa w kanałach i wiadomościach prywatnych Slack, które już obsługują polecenia. Zobacz [Zgody exec](/pl/tools/exec-approvals), aby poznać pełny model przekazywania zatwierdzeń. +Polecenie `/approve` w tym samym czacie działa również w kanałach i DM-ach Slack, które już obsługują polecenia. Zobacz [Zatwierdzenia exec](/pl/tools/exec-approvals), aby poznać pełny model przekazywania zatwierdzeń. ## Zdarzenia i zachowanie operacyjne - Edycje/usunięcia wiadomości oraz rozgłoszenia wątków są mapowane na zdarzenia systemowe. - Zdarzenia dodania/usunięcia reakcji są mapowane na zdarzenia systemowe. -- Zdarzenia dołączenia/opuszczenia członka, utworzenia/zmiany nazwy kanału oraz dodania/usunięcia pinezki są mapowane na zdarzenia systemowe. -- `channel_id_changed` może migrować klucze konfiguracji kanału, gdy `configWrites` jest włączone. -- Metadane tematu/opisu kanału są traktowane jako niezaufany kontekst i mogą zostać wstrzyknięte do kontekstu routingu. -- Kontekst autora wątku i początkowej historii wątku jest filtrowany przez skonfigurowane listy dozwolonych nadawców, gdy ma to zastosowanie. -- Akcje bloków i interakcje z modalami emitują ustrukturyzowane zdarzenia systemowe `Slack interaction: ...` z bogatymi polami ładunku: - - akcje bloków: wybrane wartości, etykiety, wartości selektorów i metadane `workflow_*` +- Zdarzenia dołączenia/opuszczenia członka, utworzenia/zmiany nazwy kanału oraz dodania/usunięcia przypięcia są mapowane na zdarzenia systemowe. +- `channel_id_changed` może migrować klucze konfiguracji kanału, gdy włączone jest `configWrites`. +- Metadane tematu/celu kanału są traktowane jako niezaufany kontekst i mogą być wstrzykiwane do kontekstu routingu. +- Inicjator wątku i początkowe zasianie kontekstu historii wątku są filtrowane przez skonfigurowane listy dozwolonych nadawców, gdy ma to zastosowanie. +- Akcje bloków i interakcje modalne emitują ustrukturyzowane zdarzenia systemowe `Slack interaction: ...` z bogatymi polami ładunku: + - akcje bloków: wybrane wartości, etykiety, wartości selektora i metadane `workflow_*` - zdarzenia modalne `view_submission` i `view_closed` z kierowanymi metadanymi kanału i danymi wejściowymi formularza -## Wskaźniki do dokumentacji konfiguracji +## Wskaźniki do dokumentacji referencyjnej konfiguracji -Główne źródło: +Główna dokumentacja referencyjna: -- [Dokumentacja konfiguracji - Slack](/pl/gateway/configuration-reference#slack) +- [Dokumentacja referencyjna konfiguracji - Slack](/pl/gateway/configuration-reference#slack) - Najważniejsze pola Slack: + Kluczowe pola Slack: - tryb/uwierzytelnianie: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*` - - dostęp do wiadomości prywatnych: `dm.enabled`, `dmPolicy`, `allowFrom` (starsze nazwy: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels` - - przełącznik zgodności: `dangerouslyAllowNameMatching` (awaryjny; pozostaw wyłączone, jeśli nie jest potrzebne) + - dostęp DM: `dm.enabled`, `dmPolicy`, `allowFrom` (starsze nazwy: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels` + - przełącznik zgodności: `dangerouslyAllowNameMatching` (tylko awaryjnie; pozostaw wyłączone, jeśli nie jest potrzebne) - dostęp do kanałów: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention` - wątki/historia: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit` - dostarczanie: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `nativeStreaming` @@ -611,13 +699,13 @@ Główne źródło: ## Rozwiązywanie problemów - + Sprawdź po kolei: - `groupPolicy` - - listę dozwolonych kanałów (`channels.slack.channels`) + - lista dozwolonych kanałów (`channels.slack.channels`) - `requireMention` - - listę dozwolonych `users` per kanał + - lista dozwolonych `users` per kanał Przydatne polecenia: @@ -629,11 +717,11 @@ openclaw doctor - + Sprawdź: - `channels.slack.dm.enabled` - - `channels.slack.dmPolicy` (lub starsze `channels.slack.dm.policy`) + - `channels.slack.dmPolicy` (albo starsze `channels.slack.dm.policy`) - zatwierdzenia parowania / wpisy listy dozwolonych ```bash @@ -642,10 +730,10 @@ openclaw pairing list slack - + Zweryfikuj tokeny bota i aplikacji oraz włączenie Socket Mode w ustawieniach aplikacji Slack. - Jeśli `openclaw channels status --probe --json` pokazuje `botTokenStatus` lub + Jeśli `openclaw channels status --probe --json` pokazuje `botTokenStatus` albo `appTokenStatus: "configured_unavailable"`, konto Slack jest skonfigurowane, ale bieżące środowisko uruchomieniowe nie mogło rozwiązać wartości opartej na SecretRef. @@ -656,8 +744,8 @@ openclaw pairing list slack Zweryfikuj: - signing secret - - ścieżkę webhooka - - Slack Request URL (Events + Interactivity + Slash Commands) + - ścieżkę webhook + - adresy URL żądań Slack (Events + Interactivity + Slash Commands) - unikalny `webhookPath` dla każdego konta HTTP Jeśli `signingSecretStatus: "configured_unavailable"` pojawia się w migawkach @@ -672,7 +760,7 @@ openclaw pairing list slack - natywnego trybu poleceń (`channels.slack.commands.native: true`) z pasującymi poleceniami slash zarejestrowanymi w Slack - albo trybu pojedynczego polecenia slash (`channels.slack.slashCommand.enabled: true`) - Sprawdź również `commands.useAccessGroups` oraz listy dozwolonych kanałów/użytkowników. + Sprawdź też `commands.useAccessGroups` oraz listy dozwolonych kanałów/użytkowników. diff --git a/docs/pl/concepts/dreaming.md b/docs/pl/concepts/dreaming.md index 27f76945b..a6d7759fe 100644 --- a/docs/pl/concepts/dreaming.md +++ b/docs/pl/concepts/dreaming.md @@ -1,56 +1,56 @@ --- read_when: - Chcesz, aby promowanie pamięci uruchamiało się automatycznie - - Chcesz zrozumieć, co robi każda faza śnienia - - Chcesz dostroić konsolidację bez zaśmiecania pliku MEMORY.md + - Chcesz zrozumieć, co robi każda faza dreaming + - 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: Śnienie (eksperymentalne) +title: Dreaming (eksperymentalne) x-i18n: - generated_at: "2026-04-06T03:06:19Z" + generated_at: "2026-04-06T09:45:35Z" model: gpt-5.4 provider: openai - source_hash: f27da718176bebf59fe8a80fddd4fb5b6d814ac5647f6c1e8344bcfb328db9de + source_hash: 36c4b1e70801d662090dc8ce20608c2f141c23cd7ce53c54e3dcf332c801fd4e source_path: concepts/dreaming.md workflow: 15 --- -# Śnienie (eksperymentalne) +# Dreaming (eksperymentalne) -Ś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 całego procesu. +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 jest funkcją **opcjonalną** i domyślnie jest wyłączone. +Dreaming jest funkcją **opcjonalną** i domyślnie jest wyłączone. -## Co zapisuje śnienie +## Co zapisuje dreaming -Śnienie przechowuje dwa rodzaje danych wyjściowych: +Dreaming utrzymuje dwa rodzaje danych wyjściowych: -- **Stan maszyny** w `memory/.dreams/` (magazyn recall, sygnały faz, punkty kontrolne przetwarzania, blokady). -- **Czytelne dla człowieka dane wyjściowe** 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 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`. Promowanie do pamięci długoterminowej nadal zapisuje dane wyłącznie do `MEMORY.md`. ## Model faz -Śnienie wykorzystuje trzy współpracujące fazy: +Dreaming używa trzech współpracujących faz: | Faza | Cel | Trwały zapis | | ----- | ----------------------------------------- | ----------------- | -| Lekka | Sortowanie i przygotowywanie niedawnych materiałów krótkoterminowych | Nie | +| Lekka | Sortowanie i przygotowanie niedawnych materiałów krótkoterminowych | Nie | | Głęboka | Ocenianie i promowanie trwałych kandydatów | Tak (`MEMORY.md`) | -| REM | Refleksja nad tematami i powracającymi ideami | Nie | +| REM | Refleksja nad motywami i powtarzającymi się ideami | Nie | Te fazy są wewnętrznymi szczegółami implementacji, a nie osobnymi -„trybami” konfigurowanymi przez użytkownika. +konfigurowanymi przez użytkownika „trybami”. ### Faza lekka -Faza lekka przetwarza niedawne dzienne sygnały pamięci i ślady recall, usuwa duplikaty +Faza lekka pobiera niedawne dzienne sygnały pamięci i ślady przypomnień, usuwa duplikaty i przygotowuje linie kandydatów. -- Odczytuje stan recall pamięci krótkoterminowej i niedawne dzienne pliki pamięci. -- Zapisuje zarządzany blok `## Light Sleep`, gdy magazyn obejmuje dane wyjściowe wbudowane w plik. +- 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. - Nigdy nie zapisuje do `MEMORY.md`. @@ -58,9 +58,9 @@ i przygotowuje linie kandydatów. Faza głęboka decyduje, co staje się pamięcią długoterminową. -- Nadaje ranking kandydatom przy użyciu ważonej punktacji i progów. -- Wymaga spełnienia `minScore`, `minRecallCount` i `minUniqueQueries`. -- Przed zapisem ponownie pobiera fragmenty z aktywnych dziennych plików, więc nieaktualne lub usunięte fragmenty są pomijane. +- Nadaje ranking kandydatom za pomocą ważonego punktowania 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. - Dopisuje promowane wpisy do `MEMORY.md`. - Zapisuje podsumowanie `## Deep Sleep` w `DREAMS.md` i opcjonalnie zapisuje `memory/dreaming/deep/YYYY-MM-DD.md`. @@ -68,40 +68,40 @@ Faza głęboka decyduje, co staje się pamięcią długoterminową. Faza REM wyodrębnia wzorce i sygnały refleksyjne. -- Tworzy podsumowania tematów i refleksji na podstawie niedawnych śladów krótkoterminowych. -- Zapisuje zarządzany blok `## REM Sleep`, gdy magazyn obejmuje dane wyjściowe wbudowane w plik. +- 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. - Nigdy nie zapisuje do `MEMORY.md`. ## Dziennik snów -Śnienie prowadzi też 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 -pomocniczą turę subagenta w trybie best-effort (z użyciem domyślnego modelu runtime) +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) i dopisuje krótki wpis do dziennika. -Ten dziennik jest przeznaczony do czytania przez człowieka w interfejsie Dreams, a nie jako źródło promocji. +Ten dziennik jest przeznaczony do czytania przez ludzi w interfejsie Dreams, a nie jako źródło promocji. ## Sygnały głębokiego rankingu -Głęboki ranking wykorzystuje sześć ważonych sygnałów bazowych oraz wzmocnienie faz: +Głęboki ranking używa sześciu ważonych sygnałów bazowych oraz wzmocnienia fazowego: | Sygnał | Waga | Opis | | ------------------- | ------ | ------------------------------------------------- | -| Częstotliwość | 0.24 | Ile krótkoterminowych sygnałów zgromadził wpis | +| Częstotliwość | 0.24 | Ile sygnałów krótkoterminowych zgromadził wpis | | Trafność | 0.30 | Średnia jakość wyszukiwania dla wpisu | -| Różnorodność zapytań | 0.15 | Różne konteksty zapytań/dni, w których się pojawił | -| Aktualność | 0.15 | Wynik świeżości osłabiany w czasie | -| Konsolidacja | 0.10 | Siła nawrotów w wielu dniach | -| Bogactwo pojęciowe | 0.06 | Gęstość tagów pojęciowych na podstawie fragmentu/ścieżki | +| 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 | -Trafienia z faz lekkiej i REM dodają niewielkie wzmocnienie osłabiane przez aktualność z +Trafienia fazy lekkiej i REM dodają niewielkie wzmocnienie malejące wraz z aktualnością z `memory/.dreams/phase-signals.json`. ## Harmonogram Po włączeniu `memory-core` automatycznie zarządza jednym zadaniem cron dla pełnego -przebiegu śnienia. Każdy przebieg uruchamia fazy po kolei: lekka -> REM -> głęboka. +przebiegu dreaming. Każdy przebieg uruchamia fazy w kolejności: light -> REM -> deep. Domyślne zachowanie harmonogramu: @@ -111,7 +111,7 @@ Domyślne zachowanie harmonogramu: ## Szybki start -Włącz śnienie: +Włącz dreaming: ```json { @@ -129,7 +129,7 @@ Włącz śnienie: } ``` -Włącz śnienie z niestandardowym harmonogramem przebiegu: +Włącz dreaming z niestandardową częstotliwością przebiegu: ```json { @@ -158,9 +158,9 @@ Włącz śnienie z niestandardowym harmonogramem przebiegu: /dreaming help ``` -## Przepływ pracy CLI +## Workflow CLI -Użyj promowania przez CLI do podglądu lub ręcznego zastosowania: +Użyj promowania w CLI do podglądu lub ręcznego zastosowania: ```bash openclaw memory promote @@ -172,6 +172,21 @@ openclaw memory status --deep Ręczne `memory promote` domyślnie używa progów fazy głębokiej, chyba że zostaną one nadpisane flagami CLI. +Wyjaśnij, dlaczego konkretny kandydat zostałby lub nie zostałby promowany: + +```bash +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 +zapisywania czegokolwiek: + +```bash +openclaw memory rem-harness +openclaw memory rem-harness --json +``` + ## Kluczowe wartości domyślne Wszystkie ustawienia znajdują się pod `plugins.entries.memory-core.config.dreaming`. @@ -181,18 +196,18 @@ Wszystkie ustawienia znajdują się pod `plugins.entries.memory-core.config.drea | `enabled` | `false` | | `frequency` | `0 3 * * *` | -Zasady faz, progi i zachowanie magazynu są wewnętrznymi szczegółami implementacji -(i nie stanowią konfiguracji dostępnej dla użytkownika). +Polityka faz, progi i zachowanie przechowywania są wewnętrznymi szczegółami implementacji +(i nie są konfigurowane przez użytkownika). -Pełną listę kluczy znajdziesz w [Dokumentacji konfiguracji pamięci](/pl/reference/memory-config#dreaming-experimental). +Pełną listę kluczy znajdziesz w [Dokumentacji referencyjnej konfiguracji pamięci](/pl/reference/memory-config#dreaming-experimental). ## Interfejs Dreams Po włączeniu karta **Dreams** w Gateway pokazuje: -- bieżący stan włączenia śnienia -- status na poziomie faz i obecność zarządzanego przebiegu -- liczbę elementów krótkoterminowych, długoterminowych i promowanych dzisiaj +- 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 - czas następnego zaplanowanego uruchomienia - rozwijany czytnik Dziennika snów oparty na `doctor.memory.dreamDiary` @@ -201,4 +216,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 konfiguracji pamięci](/pl/reference/memory-config) +- [Dokumentacja referencyjna konfiguracji pamięci](/pl/reference/memory-config) diff --git a/docs/pl/gateway/configuration-reference.md b/docs/pl/gateway/configuration-reference.md index a61a1c2bd..b485112ac 100644 --- a/docs/pl/gateway/configuration-reference.md +++ b/docs/pl/gateway/configuration-reference.md @@ -1,14 +1,14 @@ --- read_when: - - Potrzebujesz dokładnej semantyki lub wartości domyślnych na poziomie pól konfiguracji - - Weryfikujesz bloki konfiguracji kanałów, modeli, gateway lub narzędzi -summary: Pełna dokumentacja każdego klucza konfiguracji OpenClaw, wartości domyślnych i ustawień kanałów + - Potrzebujesz dokładnej semantyki pól konfiguracji lub wartości domyślnych + - Weryfikujesz bloki konfiguracji kanałów, modeli, gatewaya lub narzędzi +summary: Kompletne omówienie wszystkich kluczy konfiguracji OpenClaw, wartości domyślnych i ustawień kanałów title: Dokumentacja konfiguracji x-i18n: - generated_at: "2026-04-06T03:13:39Z" + generated_at: "2026-04-06T09:50:58Z" model: gpt-5.4 provider: openai - source_hash: 6aa6b24b593f6f07118817afabea4cc7842aca6b7c5602b45f479b40c1685230 + source_hash: 6ae6c19666f65433361e1c8b100ae710448c8aa055a60c140241a8aea09b98a5 source_path: gateway/configuration-reference.md workflow: 15 --- @@ -17,7 +17,7 @@ x-i18n: Każde pole dostępne w `~/.openclaw/openclaw.json`. Aby zobaczyć omówienie zorientowane na zadania, przejdź do [Configuration](/pl/gateway/configuration). -Format konfiguracji to **JSON5** (dozwolone są komentarze i przecinki końcowe). Wszystkie pola są opcjonalne — OpenClaw używa bezpiecznych wartości domyślnych, gdy zostaną pominięte. +Format konfiguracji to **JSON5** (dozwolone komentarze i końcowe przecinki). Wszystkie pola są opcjonalne — OpenClaw używa bezpiecznych wartości domyślnych, gdy zostaną pominięte. --- @@ -29,28 +29,28 @@ Każdy kanał uruchamia się automatycznie, gdy istnieje jego sekcja konfiguracj Wszystkie kanały obsługują zasady DM i zasady grup: -| Zasada DM | Zachowanie | -| -------------------- | --------------------------------------------------------------- | +| 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ń) | +| `allowlist` | Tylko nadawcy z `allowFrom` (lub sparowanego magazynu dozwolonych) | | `open` | Zezwalaj na wszystkie przychodzące DM (wymaga `allowFrom: ["*"]`) | -| `disabled` | Ignoruj wszystkie przychodzące DM | +| `disabled` | Ignoruj wszystkie przychodzące DM | | Zasada grup | Zachowanie | | -------------------- | ------------------------------------------------------ | -| `allowlist` (domyślna) | Tylko grupy pasujące do skonfigurowanej listy zezwoleń | -| `open` | Pomija listy zezwoleń grup (nadal obowiązuje blokowanie przez wzmianki) | -| `disabled` | Blokuje wszystkie wiadomości grupowe/pokojów | +| `allowlist` (domyślna) | Tylko grupy pasujące do skonfigurowanej listy dozwolonych | +| `open` | Pomijaj listy dozwolonych 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 środowiska uruchomieniowego wraca do `allowlist` (fail-closed) z ostrzeżeniem przy starcie. +Jeśli blok dostawcy jest całkowicie nieobecny (`channels.` nie istnieje), zasada grup w czasie działania wraca do `allowlist` (fail-closed) z ostrzeżeniem przy uruchomieniu. -### Nadpisania modelu dla kanałów +### Zastąpienia modelu dla kanału -Użyj `channels.modelByChannel`, aby przypiąć określone ID 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 jest stosowane, gdy sesja nie ma już ustawionego zastąpienia modelu (na przykład przez `/model`). ```json5 { @@ -73,7 +73,7 @@ Użyj `channels.modelByChannel`, aby przypiąć określone ID kanałów do model ### Domyślne ustawienia kanałów i heartbeat -Użyj `channels.defaults` dla współdzielonych zachowań zasad grup i heartbeat we wszystkich dostawcach: +Użyj `channels.defaults` dla wspólnej zasady grup i zachowania heartbeat we wszystkich dostawcach: ```json5 { @@ -92,14 +92,14 @@ Użyj `channels.defaults` dla współdzielonych zachowań zasad grup i heartbeat ``` - `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ędnia cały kontekst cytatów/wątków/historii), `allowlist` (uwzględnia tylko kontekst od nadawców z listy zezwoleń), `allowlist_quote` (jak allowlist, ale zachowuje jawny kontekst cytatu/odpowiedzi). Nadpisanie per kanał: `channels..contextVisibility`. -- `channels.defaults.heartbeat.showOk`: uwzględnia zdrowe statusy kanałów w wyjściu heartbeat. -- `channels.defaults.heartbeat.showAlerts`: uwzględnia statusy zdegradowane/błędów w wyjściu heartbeat. -- `channels.defaults.heartbeat.useIndicator`: renderuje zwarte wyjście heartbeat w stylu wskaźnika. +- `channels.defaults.contextVisibility`: domyślny tryb widoczności kontekstu uzupełniającego dla wszystkich kanałów. Wartości: `all` (domyślne, uwzględnia cały cytowany/wątkowy/historyczny kontekst), `allowlist` (uwzględnia tylko kontekst od nadawców z listy dozwolonych), `allowlist_quote` (to samo co allowlist, ale zachowuje jawny kontekst cytatu/odpowiedzi). Zastąpienie per kanał: `channels..contextVisibility`. +- `channels.defaults.heartbeat.showOk`: uwzględniaj zdrowe stany kanałów w danych wyjściowych heartbeat. +- `channels.defaults.heartbeat.showAlerts`: uwzględniaj stany zdegradowane/błędy w danych wyjściowych heartbeat. +- `channels.defaults.heartbeat.useIndicator`: renderuj zwarte dane heartbeat w stylu wskaźnika. ### WhatsApp -WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automatycznie, gdy istnieje połączona sesja. +WhatsApp działa przez kanał web gatewaya (Baileys Web). Uruchamia się automatycznie, gdy istnieje powiązana sesja. ```json5 { @@ -132,7 +132,7 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa } ``` - + ```json5 { @@ -151,9 +151,9 @@ WhatsApp działa przez web kanał 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 zapasowy wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. -- Starszy katalog uwierzytelniania Baileys dla jednego konta jest migrowany przez `openclaw doctor` do `whatsapp/default`. -- Nadpisania per konto: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`. +- Opcjonalne `channels.whatsapp.defaultAccount` zastępuje ten wybór domyślnego konta zapasowego, gdy odpowiada skonfigurowanemu identyfikatorowi konta. +- Starszy katalog uwierzytelniania Baileys dla pojedynczego konta jest migrowany przez `openclaw doctor` do `whatsapp/default`. +- Zastąpienia per konto: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`. @@ -188,7 +188,7 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa historyLimit: 50, replyToMode: "first", // off | first | all | batched linkPreview: true, - streaming: "partial", // off | partial | block | progress (default: off; włącz jawnie, aby uniknąć limitów szybkości edycji podglądu) + streaming: "partial", // off | partial | block | progress (domyślnie: off; włącz jawnie, aby uniknąć limitów szybkości edycji podglądów) actions: { reactions: true, sendMessage: true }, reactionNotifications: "own", // off | own | all mediaMaxMb: 100, @@ -211,13 +211,13 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa } ``` -- Token bota: `channels.telegram.botToken` lub `channels.telegram.tokenFile` (tylko zwykły plik; symlinki są odrzucane), z `TELEGRAM_BOT_TOKEN` jako zapasem dla konta domyślnego. -- Opcjonalne `channels.telegram.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. -- W konfiguracjach wielo-kontowych (2+ identyfikatorów kont) ustaw jawne konto domyślne (`channels.telegram.defaultAccount` lub `channels.telegram.accounts.default`), aby uniknąć routingu zapasowego; `openclaw doctor` ostrzega, gdy go brakuje lub jest nieprawidłowe. -- `configWrites: false` blokuje zapisy konfiguracji inicjowane przez Telegram (migracje ID 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). +- 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` zastępuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi 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 ID supergrup, `/config set|unset`). +- Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` konfigurują trwałe powiązania ACP dla tematów forów (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 strumieni Telegrama używają `sendMessage` + `editMessageText` (działa w czatach bezpośrednich i grupowych). -- Zasady ponawiania: zobacz [Retry policy](/pl/concepts/retry). +- Zasada ponawiania: zobacz [Retry policy](/pl/concepts/retry). ### Discord @@ -272,7 +272,7 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa historyLimit: 20, textChunkLimit: 2000, chunkMode: "length", // length | newline - streaming: "off", // off | partial | block | progress (progress mapuje się do partial na Discord) + streaming: "off", // off | partial | block | progress (progress mapuje się do partial na Discordzie) maxLinesPerMessage: 17, ui: { components: { @@ -283,7 +283,7 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa enabled: true, idleHours: 24, maxAgeHours: 0, - spawnSubagentSessions: false, // opt-in dla `sessions_spawn({ thread: true })` + spawnSubagentSessions: false, // opt-in dla sessions_spawn({ thread: true }) }, voice: { enabled: true, @@ -319,36 +319,36 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa } ``` -- Token: `channels.discord.token`, z `DISCORD_BOT_TOKEN` jako zapasem dla konta domyślnego. -- Bezpośrednie wywołania wychodzące, które podają jawny Discord `token`, używają tego tokena do wywołania; ustawienia ponawiania/zasad kont nadal pochodzą z wybranego konta w aktywnej migawce środowiska uruchomieniowego. -- Opcjonalne `channels.discord.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. -- Używaj `user:` (DM) lub `channel:` (kanał serwera) dla celów dostarczania; same numeryczne ID są odrzucane. -- Slugi serwerów są pisane małymi literami, a spacje są zastępowane przez `-`; klucze kanałów używają nazwy w formie sluga (bez `#`). Preferuj ID serwerów. -- Wiadomości napisane przez boty są domyślnie ignorowane. `allowBots: true` je włącza; użyj `allowBots: "mentions"`, aby akceptować tylko wiadomości botów, które wspominają bota (własne wiadomości nadal są filtrowane). -- `channels.discord.guilds..ignoreOtherMentions` (oraz nadpisania kanałów) odrzuca wiadomości, które wspominają innego użytkownika lub rolę, ale nie bota (z wyłączeniem @everyone/@here). +- 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 dla wywołania; ustawienia ponawiania/zasad kont nadal pochodzą z wybranego konta w aktywnej migawce czasu działania. +- Opcjonalne `channels.discord.defaultAccount` zastępuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. +- Użyj `user:` (DM) lub `channel:` (kanał guild) dla celów dostarczania; same numeryczne identyfikatory są odrzucane. +- Slugi guild są pisane małymi literami, a spacje zastępowane przez `-`; klucze kanałów używają nazwy w formie slug (bez `#`). Preferuj identyfikatory guild. +- Wiadomości autorstwa botów są domyślnie ignorowane. `allowBots: true` je włącza; użyj `allowBots: "mentions"`, aby akceptować tylko wiadomości botów, które wspominają bota (własne wiadomości nadal są filtrowane). +- `channels.discord.guilds..ignoreOtherMentions` (oraz zastąpienia na poziomie kanału) odrzuca wiadomości, które wspominają 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 związany z wątkami Discord: - - `enabled`: nadpisanie Discord dla funkcji sesji związanych z wątkami (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` oraz dostarczanie/routing związany z powiązaniem) - - `idleHours`: nadpisanie Discord dla automatycznego odfokusowania po bezczynności w godzinach (`0` wyłącza) - - `maxAgeHours`: nadpisanie Discord 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 })` -- Wpisy najwyższego poziomu `bindings[]` z `type: "acp"` konfigurują trwałe powiązania ACP dla kanałów i wątków (użyj ID 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.threadBindings` kontroluje routing powiązany z wątkami Discorda: + - `enabled`: zastąpienie Discorda dla funkcji sesji powiązanych z wątkami (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` oraz powiązane dostarczanie/routing) + - `idleHours`: zastąpienie Discorda dla automatycznego odfokusowania po bezczynności w godzinach (`0` wyłącza) + - `maxAgeHours`: zastąpienie Discorda dla twardego maksymalnego wieku w godzinach (`0` wyłącza) + - `spawnSubagentSessions`: przełącznik opt-in dla automatycznego tworzenia/powiązania wątków 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 w kanałach głosowych Discord oraz opcjonalne auto-dołączanie i nadpisania TTS. -- `channels.discord.voice.daveEncryption` i `channels.discord.voice.decryptionFailureTolerance` są przekazywane do opcji DAVE w `@discordjs/voice` (domyślnie `true` i `24`). +- `channels.discord.voice` włącza rozmowy na kanałach głosowych Discorda oraz opcjonalne automatyczne dołączanie i zastąpienia 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 strumieniowania. Starsze wartości `streamMode` i logiczne `streaming` są automatycznie migrowane. -- `channels.discord.autoPresence` mapuje dostępność środowiska uruchomieniowego na obecność bota (healthy => online, degraded => idle, exhausted => dnd) i pozwala na opcjonalne nadpisania tekstu statusu. -- `channels.discord.dangerouslyAllowNameMatching` ponownie włącza dopasowywanie po zmiennych nazwach/tagach (tryb kompatybilności break-glass). -- `channels.discord.execApprovals`: natywne dla Discord 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 na podstawie `approvers` lub `commands.ownerAllowFrom`. - - `approvers`: ID użytkowników Discord, którzy mogą zatwierdzać żądania exec. Gdy pominięte, używany jest zapas z `commands.ownerAllowFrom`. - - `agentFilter`: opcjonalna lista zezwoleń identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów. +- `channels.discord.streaming` to kanoniczny klucz trybu strumieniowania. Starsze wartości `streamMode` i boolowskie `streaming` są automatycznie migrowane. +- `channels.discord.autoPresence` mapuje dostępność czasu działania na obecność bota (healthy => online, degraded => idle, exhausted => dnd) i umożliwia opcjonalne zastąpienia tekstu statusu. +- `channels.discord.dangerouslyAllowNameMatching` ponownie włącza dopasowanie po zmiennej nazwie/tagu (tryb kompatybilności typu 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. Po pominięciu używa `commands.ownerAllowFrom`. + - `agentFilter`: opcjonalna lista dozwolonych 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ć prośby o zatwierdzenie. `"dm"` (domyślnie) wysyła je do DM zatwierdzających, `"channel"` wysyła je do kanału źródłowego, `"both"` wysyła do obu. Gdy target obejmuje `"channel"`, przyciski mogą być używane tylko przez rozwiązanych zatwierdzających. - - `cleanupAfterResolve`: gdy `true`, usuwa DM zatwierdzeń po zatwierdzeniu, odrzuceniu lub przekroczeniu czasu. + - `target`: gdzie wysyłać prośby o zatwierdzenie. `"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 zawiera `"channel"`, przyciski mogą być używane tylko przez rozwiązanych zatwierdzających. + - `cleanupAfterResolve`: gdy `true`, usuwa DM z zatwierdzeniem po akceptacji, odrzuceniu lub upływie czasu. -**Tryby powiadomień reakcji:** `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` (z `guilds..users` dla wszystkich wiadomości). ### Google Chat @@ -380,10 +380,10 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa ``` - JSON konta usługi: inline (`serviceAccount`) lub z pliku (`serviceAccountFile`). -- Obsługiwany jest również SecretRef dla konta usługi (`serviceAccountRef`). +- Obsługiwany jest też SecretRef konta usługi (`serviceAccountRef`). - Zapasowe zmienne środowiskowe: `GOOGLE_CHAT_SERVICE_ACCOUNT` lub `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. -- Używaj `spaces/` lub `users/` dla celów dostarczania. -- `channels.googlechat.dangerouslyAllowNameMatching` ponownie włącza dopasowywanie po zmiennym principalu e-mail (tryb kompatybilności break-glass). +- Użyj `spaces/` lub `users/` jako celów dostarczania. +- `channels.googlechat.dangerouslyAllowNameMatching` ponownie włącza dopasowanie po zmiennym adresie e-mail principal (tryb kompatybilności typu break-glass). ### Slack @@ -434,7 +434,7 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa textChunkLimit: 4000, chunkMode: "length", streaming: "partial", // off | partial | block | progress (tryb podglądu) - nativeStreaming: true, // użyj natywnego API strumieniowania Slack, gdy streaming=partial + nativeStreaming: true, // użyj natywnego API strumieniowania Slacka, gdy streaming=partial mediaMaxMb: 20, execApprovals: { enabled: "auto", // true | false | "auto" @@ -448,34 +448,34 @@ WhatsApp działa przez web kanał gateway (`Baileys Web`). Uruchamia się automa } ``` -- **Socket mode** wymaga zarówno `botToken`, jak i `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` jako zapas zmiennych środowiskowych dla konta domyślnego). -- **HTTP mode** wymaga `botToken` oraz `signingSecret` (na poziomie głównym lub per konto). +- **Tryb Socket** wymaga zarówno `botToken`, jak i `appToken` (`SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` jako zapasowe zmienne środowiskowe dla konta domyślnego). +- **Tryb HTTP** wymaga `botToken` plus `signingSecret` (na poziomie głównym lub per konto). - `botToken`, `appToken`, `signingSecret` i `userToken` akceptują zwykłe - ciągi tekstowe lub obiekty SecretRef. -- Migawki kont Slack ujawniają pola per poświadczenie dotyczące źródła/statusu, takie jak - `botTokenSource`, `botTokenStatus`, `appTokenStatus` oraz, w trybie HTTP, + ciągi znaków lub obiekty SecretRef. +- Migawki kont Slacka udostępniają pola stanu/źródła poświadczeń, takie jak + `botTokenSource`, `botTokenStatus`, `appTokenStatus`, a w trybie HTTP także `signingSecretStatus`. `configured_unavailable` oznacza, że konto jest - skonfigurowane przez SecretRef, ale bieżąca ścieżka polecenia/środowiska uruchomieniowego nie mogła + skonfigurowane przez SecretRef, ale bieżąca ścieżka polecenia/czasu działania nie mogła rozwiązać wartości sekretu. -- `configWrites: false` blokuje zapisy konfiguracji inicjowane przez Slack. -- Opcjonalne `channels.slack.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. -- `channels.slack.streaming` to kanoniczny klucz trybu strumieniowania. Starsze wartości `streamMode` i logiczne `streaming` są automatycznie migrowane. -- Używaj `user:` (DM) lub `channel:` dla celów dostarczania. +- `configWrites: false` blokuje zapisy konfiguracji inicjowane ze Slacka. +- Opcjonalne `channels.slack.defaultAccount` zastępuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. +- `channels.slack.streaming` to kanoniczny klucz trybu strumieniowania. Starsze wartości `streamMode` i boolowskie `streaming` są automatycznie migrowane. +- Użyj `user:` (DM) lub `channel:` jako celów dostarczania. -**Tryby powiadomień reakcji:** `off`, `own` (domyślnie), `all`, `allowlist` (z `reactionAllowlist`). +**Tryby powiadomień o reakcjach:** `off`, `own` (domyślnie), `all`, `allowlist` (z `reactionAllowlist`). -**Izolacja sesji wątków:** `thread.historyScope` jest per wątek (domyślnie) lub współdzielone w obrębie kanału. `thread.inheritParent` kopiuje transkrypt kanału nadrzędnego do nowych wątków. +**Izolacja sesji w wątkach:** `thread.historyScope` jest per wątek (domyślnie) lub współdzielone w kanale. `thread.inheritParent` kopiuje transkrypt kanału nadrzędnego do nowych wątków. -- `typingReaction` dodaje tymczasową reakcję do przychodzącej wiadomości Slack podczas generowania odpowiedzi, a po zakończeniu ją usuwa. Użyj skrótu emoji Slack, takiego jak `"hourglass_flowing_sand"`. -- `channels.slack.execApprovals`: natywne dla Slack dostarczanie zatwierdzeń exec i autoryzacja zatwierdzających. Ten sam schemat co w Discord: `enabled` (`true`/`false`/`"auto"`), `approvers` (ID użytkowników Slack), `agentFilter`, `sessionFilter` oraz `target` (`"dm"`, `"channel"` lub `"both"`). +- `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 dla Discorda: `enabled` (`true`/`false`/`"auto"`), `approvers` (identyfikatory użytkowników Slacka), `agentFilter`, `sessionFilter` oraz `target` (`"dm"`, `"channel"` lub `"both"`). -| Grupa działań | Domyślnie | Uwagi | -| ------------- | --------- | ------------------------ | -| reactions | włączone | Reagowanie + lista reakcji | -| messages | włączone | Odczyt/wysyłanie/edycja/usuwanie | -| pins | włączone | Przypnij/odepnij/lista | -| memberInfo | włączone | Informacje o członku | -| emojiList | włączone | Lista niestandardowych emoji | +| 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 niestandardowych emoji | ### Mattermost @@ -499,7 +499,7 @@ Mattermost jest dostarczany jako plugin: `openclaw plugins install @openclaw/mat native: true, // opt-in nativeSkills: true, callbackPath: "/api/channels/mattermost/command", - // Opcjonalny jawny URL dla wdrożeń za reverse proxy/publicznych + // Opcjonalny jawny URL dla wdrożeń z reverse proxy/publicznych callbackUrl: "https://gateway.example.com/api/channels/mattermost/command", }, textChunkLimit: 4000, @@ -509,23 +509,24 @@ Mattermost jest dostarczany jako plugin: `openclaw plugins install @openclaw/mat } ``` -Tryby czatu: `oncall` (odpowiada po wzmiance @, domyślnie), `onmessage` (każda wiadomość), `onchar` (wiadomości zaczynające się od prefiksu wyzwalacza). +Tryby czatu: `oncall` (odpowiada po wzmiance @, domyślnie), `onmessage` (każda wiadomość), `onchar` (wiadomości zaczynające się od prefiksu wyzwalającego). 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 rozwiązywać się do endpointu 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 nie - zostaną aktywowane żadne polecenia, OpenClaw odrzuca callbacki z +- `commands.callbackPath` musi być ścieżką (na przykład `/api/channels/mattermost/command`), a nie pełnym URL-em. +- `commands.callbackUrl` musi wskazywać punkt końcowy gatewaya OpenClaw i być osiągalny z serwera Mattermost. +- Natywne callbacki slash 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 odrzuca 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. -- `channels.mattermost.configWrites`: zezwalaj lub blokuj zapisy konfiguracji inicjowane przez Mattermost. +- Dla prywatnych/tailnet/wewnętrznych hostów callbacków Mattermost może wymagać + uwzględnienia hosta/domeny callbacku w + `ServiceSettings.AllowedUntrustedInternalConnections`. + 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ą w kanałach. -- `channels.mattermost.groups..requireMention`: nadpisanie blokowania przez wzmianki per kanał (`"*"` dla domyślnego). -- Opcjonalne `channels.mattermost.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. +- `channels.mattermost.groups..requireMention`: zastąpienie wymogu wzmianki per kanał (`"*"` jako domyślne). +- Opcjonalne `channels.mattermost.defaultAccount` zastępuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. ### Signal @@ -546,15 +547,15 @@ Gdy natywne polecenia Mattermost są włączone: } ``` -**Tryby powiadomień reakcji:** `off`, `own` (domyślnie), `all`, `allowlist` (z `reactionAllowlist`). +**Tryby powiadomień o reakcjach:** `off`, `own` (domyślnie), `all`, `allowlist` (z `reactionAllowlist`). -- `channels.signal.account`: przypina uruchamianie kanału do konkretnej tożsamości konta Signal. -- `channels.signal.configWrites`: zezwalaj lub blokuj zapisy konfiguracji inicjowane przez Signal. -- Opcjonalne `channels.signal.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. +- `channels.signal.account`: przypnij uruchamianie kanału do konkretnej tożsamości konta Signal. +- `channels.signal.configWrites`: zezwalaj lub odmawiaj zapisów konfiguracji inicjowanych z Signal. +- Opcjonalne `channels.signal.defaultAccount` zastępuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi konta. ### BlueBubbles -BlueBubbles to zalecana ścieżka iMessage (oparta na plugin, konfigurowana w `channels.bluebubbles`). +BlueBubbles to zalecana ścieżka dla iMessage (oparta na pluginie, konfigurowana w `channels.bluebubbles`). ```json5 { @@ -562,21 +563,21 @@ BlueBubbles to zalecana ścieżka iMessage (oparta na plugin, konfigurowana w `c bluebubbles: { enabled: true, dmPolicy: "pairing", - // serverUrl, password, webhookPath, kontrola grup i zaawansowane działania: + // serverUrl, password, webhookPath, kontrola grup i zaawansowane akcje: // zobacz /channels/bluebubbles }, }, } ``` -- Główne ścieżki kluczy objęte tutaj: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`. -- Opcjonalne `channels.bluebubbles.defaultAccount` nadpisuje wybór konta domyślnego, jeśli 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 udokumentowana w [BlueBubbles](/pl/channels/bluebubbles). +- Ścieżki kluczy w rdzeniu opisane tutaj: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`. +- Opcjonalne `channels.bluebubbles.defaultAccount` zastępuje 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). +- 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 demon ani port. ```json5 { @@ -600,15 +601,15 @@ OpenClaw uruchamia `imsg rpc` (JSON-RPC przez stdio). Nie wymaga demona ani port } ``` -- Opcjonalne `channels.imessage.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. +- Opcjonalne `channels.imessage.defaultAccount` zastępuje domyślny wybór konta, gdy odpowiada skonfigurowanemu identyfikatorowi 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ć wrapper SSH; ustaw `remoteHost` (`host` lub `user@host`) dla pobierania załączników przez SCP. +- Preferuj cele `chat_id:`. Użyj `imsg chats --limit 20`, aby wylistować czaty. +- `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 przekaźnika już istnieje w `~/.ssh/known_hosts`. -- `channels.imessage.configWrites`: zezwalaj lub blokuj zapisy konfiguracji inicjowane przez 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). +- `channels.imessage.configWrites`: zezwalaj lub odmawiaj 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). @@ -621,7 +622,7 @@ exec ssh -T gateway-host imsg "$@" ### Matrix -Matrix jest wspierany przez rozszerzenie i konfigurowany w `channels.matrix`. +Matrix jest obsługiwany przez rozszerzenie i konfigurowany w `channels.matrix`. ```json5 { @@ -652,23 +653,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 serwer proxy HTTP(S). Nazwane konta mogą to nadpisać przez `channels.matrix.accounts..proxy`. -- `channels.matrix.allowPrivateNetwork` zezwala na prywatne/wewnętrzne homeserwery. `proxy` i `allowPrivateNetwork` to niezależne mechanizmy. -- `channels.matrix.defaultAccount` wybiera preferowane konto w konfiguracjach wielo-kontowych. +- `channels.matrix.proxy` kieruje ruch HTTP Matrix przez jawny proxy HTTP(S). Nazwane konta mogą to zastąpić przez `channels.matrix.accounts..proxy`. +- `channels.matrix.allowPrivateNetwork` zezwala na prywatne/wewnętrzne homeservery. `proxy` i `allowPrivateNetwork` to niezależne mechanizmy sterowania. +- `channels.matrix.defaultAccount` wybiera preferowane konto w konfiguracjach wielokontowych. - `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 na podstawie `approvers` lub `commands.ownerAllowFrom`. - - `approvers`: ID użytkowników Matrix (np. `@owner:example.org`), którzy mogą zatwierdzać żądania exec. - - `agentFilter`: opcjonalna lista zezwoleń identyfikatorów agentów. Pomiń, aby przekazywać zatwierdzenia dla wszystkich agentów. + - `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`), którzy mogą zatwierdzać żądania exec. + - `agentFilter`: opcjonalna lista dozwolonych 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ć prośby o zatwierdzenie. `"dm"` (domyślnie), `"channel"` (pokój źródłowy) lub `"both"`. - - Nadpisania per konto: `channels.matrix.accounts..execApprovals`. -- `channels.matrix.dm.sessionScope` kontroluje, jak DM Matrix są grupowane w sesje: `per-user` (domyślnie) współdzieli po routowanym peeringu, natomiast `per-room` izoluje każdy pokój DM. -- Sondy statusu Matrix i wyszukiwania katalogu live używają tej samej polityki proxy co ruch środowiska uruchomieniowego. -- Pełna konfiguracja Matrix, zasady targetowania i przykłady konfiguracji są udokumentowane w [Matrix](/pl/channels/matrix). + - Zastąpienia per konto: `channels.matrix.accounts..execApprovals`. +- `channels.matrix.dm.sessionScope` kontroluje sposób grupowania DM Matrixa w sesje: `per-user` (domyślnie) współdzieli według routowanego peera, natomiast `per-room` izoluje każdy pokój DM. +- Sondy statusu Matrix i wyszukiwania katalogowe na żywo używają tej samej polityki proxy co ruch czasu działania. +- Pełna konfiguracja Matrixa, reguły targetowania 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 obsługiwany przez rozszerzenie i konfigurowany w `channels.msteams`. ```json5 { @@ -676,19 +677,19 @@ Microsoft Teams jest wspierany przez rozszerzenie i konfigurowany w `channels.ms msteams: { enabled: true, configWrites: true, - // appId, appPassword, tenantId, webhook, zasady zespołów/kanałów: + // appId, appPassword, tenantId, webhook, zasady zespołu/kanału: // zobacz /channels/msteams }, }, } ``` -- Główne ścieżki kluczy objęte tutaj: `channels.msteams`, `channels.msteams.configWrites`. -- Pełna konfiguracja Teams (poświadczenia, webhook, zasady DM/grup, nadpisania per zespół/per kanał) jest udokumentowana w [Microsoft Teams](/pl/channels/msteams). +- Ścieżki kluczy w rdzeniu opisane tutaj: `channels.msteams`, `channels.msteams.configWrites`. +- Pełna konfiguracja Teams (poświadczenia, webhook, zasady DM/grup, zastąpienia 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 obsługiwany przez rozszerzenie i konfigurowany w `channels.irc`. ```json5 { @@ -709,9 +710,9 @@ IRC jest wspierany przez rozszerzenie i konfigurowany w `channels.irc`. } ``` -- Główne ścieżki kluczy objęte tutaj: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`. -- Opcjonalne `channels.irc.defaultAccount` nadpisuje wybór konta domyślnego, jeśli pasuje do skonfigurowanego identyfikatora konta. -- Pełna konfiguracja kanału IRC (host/port/TLS/kanały/listy zezwoleń/blokowanie przez wzmianki) jest udokumentowana w [IRC](/pl/channels/irc). +- Ścieżki kluczy w rdzeniu opisane tutaj: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`. +- Opcjonalne `channels.irc.defaultAccount` zastępuje 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). ### Wiele kont (wszystkie kanały) @@ -736,28 +737,28 @@ Uruchamiaj wiele kont na kanał (każde z własnym `accountId`): } ``` -- `default` jest używane, gdy `accountId` zostanie pominięte (CLI + routing). -- Tokeny ze zmiennych środowiskowych mają zastosowanie tylko do konta **default**. -- Bazowe ustawienia kanału dotyczą wszystkich kont, chyba że zostaną nadpisane per konto. +- `default` jest używane, gdy `accountId` jest pominięte (CLI + routing). +- Tokeny środowiskowe mają zastosowanie tylko do konta **default**. +- Bazowe ustawienia kanału mają zastosowanie do wszystkich kont, chyba że zostaną zastąpione 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 głównego 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 cel nazwany/domyslny. -- Istniejące powiązania tylko-kanałowe (bez `accountId`) nadal dopasowują konto domyślne; powiązania ograniczone do kont pozostają opcjonalne. -- `openclaw doctor --fix` również naprawia mieszane kształty, przenosząc wartości głównego poziomu ograniczone do 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 cel nazwany/domyslny. +- Jeśli dodasz konto inne niż domyślne przez `openclaw channels add` (lub onboarding kanału), mając nadal jednokontową konfigurację najwyższego poziomu kanału, OpenClaw najpierw promuje wartości najwyższego poziomu dla pojedynczego konta do mapy kont kanału, aby pierwotne 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 dopasowują konto domyślne; powiązania zakresu kont pozostają opcjonalne. +- `openclaw doctor --fix` także naprawia mieszane kształty, przenosząc wartości najwyższego poziomu dla pojedynczego 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. ### Inne kanały rozszerzeń -Wiele kanałów rozszerzeń jest konfigurowanych jako `channels.` i opisanych na swoich 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). -### Blokowanie przez wzmianki w czatach grupowych +### Wymóg wzmianki w czatach grupowych -Wiadomości grupowe domyślnie **wymagają wzmianki** (wzmianka w metadanych lub bezpieczne wzorce regex). Dotyczy grupowych czatów WhatsApp, Telegram, Discord, Google Chat i iMessage. +Wiadomości grupowe domyślnie **wymagają wzmianki** (wzmianka w metadanych lub bezpieczne wzorce regex). Dotyczy czatów grupowych WhatsApp, Telegram, Discord, Google Chat i iMessage. **Typy wzmianek:** -- **Wzmianki w metadanych**: natywne platformowe @-wzmianki. Ignorowane w trybie self-chat WhatsApp. +- **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. -- Blokowanie przez wzmianki jest egzekwowane tylko wtedy, gdy wykrywanie jest możliwe (natywne wzmianki lub co najmniej jeden wzorzec). +- Wymóg wzmianki jest egzekwowany tylko wtedy, gdy wykrycie jest możliwe (natywne wzmianki lub co najmniej jeden wzorzec). ```json5 { @@ -770,7 +771,7 @@ Wiadomości grupowe domyślnie **wymagają wzmianki** (wzmianka w metadanych lub } ``` -`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ą ją zastąpić przez `channels..historyLimit` (lub per konto). Ustaw `0`, aby wyłączyć. #### Limity historii DM @@ -787,13 +788,13 @@ Wiadomości grupowe domyślnie **wymagają wzmianki** (wzmianka w metadanych lub } ``` -Rozwiązywanie: nadpisanie per DM → domyślne dostawcy → brak limitu (wszystko zachowane). +Rozwiązywanie: zastąpienie per DM → domyślna wartość dostawcy → brak limitu (zachowywane wszystko). Obsługiwane: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`. #### Tryb self-chat -Dodaj własny numer do `allowFrom`, aby włączyć tryb self-chat (ignoruje natywne @-wzmianki, odpowiada tylko na wzorce tekstowe): +Uwzględnij własny numer w `allowFrom`, aby włączyć tryb self-chat (ignoruje natywne wzmianki @, odpowiada tylko na wzorce tekstowe): ```json5 { @@ -814,18 +815,18 @@ Dodaj własny numer do `allowFrom`, aby włączyć tryb self-chat (ignoruje naty } ``` -### Commands (obsługa poleceń czatu) +### Polecenia (obsługa poleceń czatu) ```json5 { commands: { native: "auto", // rejestruj natywne polecenia, gdy są obsługiwane - text: true, // parsuj /commands w wiadomościach czatu - bash: false, // zezwalaj na ! (alias: /bash) + text: true, // analizuj /commands w wiadomościach czatu + bash: false, // zezwól na ! (alias: /bash) bashForegroundMs: 2000, - config: false, // zezwalaj na /config - debug: false, // zezwalaj na /debug - restart: false, // zezwalaj na /restart + narzędzie restartu gateway + config: false, // zezwól na /config + debug: false, // zezwól na /debug + restart: false, // zezwól na /restart + narzędzie restartu gatewaya allowFrom: { "*": ["user1"], discord: ["user:123"], @@ -838,14 +839,14 @@ Dodaj własny numer do `allowFrom`, aby włączyć tryb self-chat (ignoruje naty - Polecenia tekstowe muszą być **samodzielnymi** wiadomościami zaczynającymi się od `/`. -- `native: "auto"` włącza natywne polecenia dla Discord/Telegram, pozostawia Slack wyłączony. -- Nadpisanie per kanał: `channels.discord.commands.native` (bool lub `"auto"`). `false` czyści wcześniej zarejestrowane polecenia. -- `channels.telegram.customCommands` dodaje dodatkowe wpisy menu bota Telegram. -- `bash: true` włącza `! ` dla powłoki hosta. Wymaga `tools.elevated.enabled` oraz nadawcy obecnego 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. +- `native: "auto"` włącza natywne polecenia dla Discorda/Telegrama, pozostawia Slack wyłączony. +- Zastąpienie per kanał: `channels.discord.commands.native` (bool lub `"auto"`). `false` czyści wcześniej zarejestrowane polecenia. +- `channels.telegram.customCommands` dodaje dodatkowe wpisy do menu bota Telegrama. +- `bash: true` włącza `! ` dla powłoki hosta. Wymaga `tools.elevated.enabled` i nadawcy obecnego 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 uprawnieniami zapisu. - `channels..configWrites` kontroluje mutacje konfiguracji per kanał (domyślnie: true). -- Dla kanałów wielo-kontowych `channels..accounts..configWrites` kontroluje również zapisy kierowane do tego konta (na przykład `/allowlist --config --account ` lub `/config set channels..accounts....`). -- `allowFrom` jest per dostawca. Gdy jest ustawione, stanowi **jedyne** źródło autoryzacji (listy zezwoleń kanału/parowanie i `useAccessGroups` są ignorowane). +- Dla kanałów wielokontowych `channels..accounts..configWrites` także kontroluje zapisy, które dotyczą tego konta (na przykład `/allowlist --config --account ` lub `/config set channels..accounts....`). +- `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ć zasady grup dostępu, gdy `allowFrom` nie jest ustawione. @@ -866,7 +867,7 @@ Domyślnie: `~/.openclaw/workspace`. ### `agents.defaults.repoRoot` -Opcjonalny katalog główny repozytorium pokazywany w wierszu Runtime system promptu. Jeśli nie jest ustawiony, OpenClaw wykrywa go automatycznie, idą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, przechodząc w górę od workspace. ```json5 { @@ -876,7 +877,7 @@ Opcjonalny katalog główny repozytorium pokazywany w wierszu Runtime system pro ### `agents.defaults.skills` -Opcjonalna domyślna lista zezwoleń Skills dla agentów, które nie ustawiają +Opcjonalna domyślna lista dozwolonych Skills dla agentów, którzy nie ustawiają `agents.list[].skills`. ```json5 @@ -885,8 +886,8 @@ Opcjonalna domyślna lista zezwoleń 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 wartości domyślne - { id: "locked-down", skills: [] }, // bez skills + { id: "docs", skills: ["docs-search"] }, // zastępuje domyślne + { id: "locked-down", skills: [] }, // brak Skills ], }, } @@ -895,8 +896,8 @@ Opcjonalna domyślna lista zezwoleń Skills dla agentów, które nie ustawiają - Pomiń `agents.defaults.skills`, aby domyślnie nie ograniczać Skills. - 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 zestawem dla tego agenta; - nie jest łączona z wartościami domyślnymi. +- Niepusta lista `agents.list[].skills` jest końcowym zbiorem dla tego agenta; + nie łączy się z wartościami domyślnymi. ### `agents.defaults.skipBootstrap` @@ -908,6 +909,18 @@ Wyłącza automatyczne tworzenie plików bootstrap workspace (`AGENTS.md`, `SOUL } ``` +### `agents.defaults.contextInjection` + +Kontroluje, 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. Przebiegi heartbeat i ponowne próby po kompaktowaniu nadal odbudowują kontekst. + +```json5 +{ + agents: { defaults: { contextInjection: "continuation-skip" } }, +} +``` + ### `agents.defaults.bootstrapMaxChars` Maksymalna liczba znaków na plik bootstrap workspace przed obcięciem. Domyślnie: `20000`. @@ -920,7 +933,7 @@ Maksymalna liczba znaków na plik bootstrap workspace przed obcięciem. Domyśln ### `agents.defaults.bootstrapTotalMaxChars` -Maksymalna łączna liczba znaków wstrzykniętych ze wszystkich plików bootstrap workspace. Domyślnie: `150000`. +Maksymalna łączna liczba znaków wstrzykniętych we wszystkich plikach bootstrap workspace. Domyślnie: `150000`. ```json5 { @@ -930,12 +943,12 @@ Maksymalna łączna liczba znaków wstrzykniętych ze wszystkich plików bootstr ### `agents.defaults.bootstrapPromptTruncationWarning` -Kontroluje widoczny dla agenta tekst ostrzeżenia, gdy kontekst bootstrap zostaje obcięty. +Kontroluje widoczny dla agenta tekst ostrzeżenia, gdy kontekst bootstrap zostanie obcięty. Domyślnie: `"once"`. -- `"off"`: nigdy nie wstrzykuje tekstu ostrzeżenia do system promptu. -- `"once"`: wstrzykuje ostrzeżenie raz dla każdej unikalnej sygnatury obcięcia (zalecane). -- `"always"`: wstrzykuje ostrzeżenie przy każdym uruchomieniu, gdy istnieje obcięcie. +- `"off"`: nigdy nie wstrzykuj tekstu ostrzeżenia do system prompt. +- `"once"`: wstrzyknij ostrzeżenie raz dla każdego unikalnego podpisu obcięcia (zalecane). +- `"always"`: wstrzykuj ostrzeżenie przy każdym uruchomieniu, gdy istnieje obcięcie. ```json5 { @@ -945,10 +958,10 @@ Domyślnie: `"once"`. ### `agents.defaults.imageMaxDimensionPx` -Maksymalny rozmiar w pikselach dłuższego boku obrazu w blokach obrazu transkryptu/narzędzia przed wywołaniami dostawcy. +Maksymalny rozmiar pikselowy dłuższego boku obrazu w blokach obrazu transkryptu/narzędzia przed wywołaniami dostawcy. Domyślnie: `1200`. -Niższe wartości zwykle zmniejszają zużycie tokenów vision i rozmiar payloadu żądania przy uruchomieniach z dużą liczbą zrzutów ekranu. +Niższe wartości zwykle zmniejszają zużycie vision tokenów i rozmiar ładunku żądania przy sesjach z dużą liczbą zrzutów ekranu. Wyższe wartości zachowują więcej szczegółów wizualnych. ```json5 @@ -959,7 +972,7 @@ Wyższe wartości zachowują więcej szczegółów wizualnych. ### `agents.defaults.userTimezone` -Strefa czasowa dla kontekstu system promptu (nie dla znaczników czasu wiadomości). Zapasowo używana jest strefa czasowa hosta. +Strefa czasowa dla kontekstu system prompt (nie dla znaczników czasu wiadomości). Wartość zapasowa to strefa czasowa hosta. ```json5 { @@ -969,7 +982,7 @@ Strefa czasowa dla kontekstu system promptu (nie dla znaczników czasu wiadomoś ### `agents.defaults.timeFormat` -Format czasu w system prompt. Domyślnie: `auto` (preferencja systemu operacyjnego). +Format czasu w system prompt. Domyślnie: `auto` (preferencje systemu operacyjnego). ```json5 { @@ -1023,39 +1036,39 @@ Format czasu w system prompt. Domyślnie: `auto` (preferencja systemu operacyjne ``` - `model`: akceptuje albo 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 przełączenia awaryjnego. + - Forma ciągu ustawia tylko model podstawowy. + - Forma obiektu ustawia model podstawowy oraz uporządkowane modele awaryjne. - `imageModel`: akceptuje albo 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 przyjmować obrazów. - `imageGenerationModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). - - Używany przez współdzieloną funkcję generowania obrazów i każdą przyszłą powierzchnię narzędzia/plugin, która generuje 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 dostawcę/model, skonfiguruj także 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 pole zostanie pominięte, `image_generate` nadal może wywnioskować domyślnego dostawcę z uwierzytelnieniem. Najpierw próbuje bieżącego dostawcy domyślnego, a następnie pozostałych zarejestrowanych dostawców generowania obrazów w kolejności identyfikatorów dostawców. + - Używany przez współdzieloną możliwość generowania obrazów oraz wszelkie przyszłe powierzchnie narzędzi/pluginów, które generują 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 też odpowiednie uwierzytelnianie/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 pole zostanie 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ą funkcję generowania muzyki i wbudowane narzędzie `music_generate`. + - Używany przez współdzieloną możliwość generowania muzyki i 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 pole zostanie pominięte, `music_generate` nadal może wywnioskować domyślnego dostawcę z uwierzytelnieniem. Najpierw próbuje bieżącego dostawcy domyślnego, a następnie pozostałych zarejestrowanych dostawców generowania muzyki w kolejności identyfikatorów dostawców. - - Jeśli wybierzesz bezpośrednio dostawcę/model, skonfiguruj także pasujące uwierzytelnienie/klucz API dostawcy. + - Jeśli pole zostanie 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 też odpowiednie uwierzytelnianie/klucz API dostawcy. - `videoGenerationModel`: akceptuje albo ciąg (`"provider/model"`), albo obiekt (`{ primary, fallbacks }`). - - Używany przez współdzieloną funkcję generowania wideo i wbudowane narzędzie `video_generate`. + - Używany przez współdzieloną możliwość generowania wideo i 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 pole zostanie pominięte, `video_generate` nadal może wywnioskować domyślnego dostawcę z uwierzytelnieniem. Najpierw próbuje bieżącego dostawcy domyślnego, a następnie pozostałych zarejestrowanych dostawców generowania wideo w kolejności identyfikatorów dostawców. - - Jeśli wybierzesz bezpośrednio dostawcę/model, skonfiguruj także pasujące uwierzytelnienie/klucz API dostawcy. - - Dołączony dostawca generowania wideo Qwen obsługuje obecnie 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`. + - Jeśli pole zostanie 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 też odpowiednie uwierzytelnianie/klucz API dostawcy. + - Dołączony dostawca generowania wideo Qwen obecnie obsługuje maksymalnie 1 wyjściowe wideo, 1 obraz wejściowy, 4 wejściowe wideo, 10 sekund czasu trwania 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 modelu. - - Jeśli pole zostanie pominięte, narzędzie PDF wraca kolejno do `imageModel`, a następnie do rozwiązanego modelu sesji/domyslnego. -- `pdfMaxBytesMb`: domyślny limit rozmiaru PDF dla narzędzia `pdf`, gdy `maxBytesMb` nie jest przekazane w chwili wywołania. -- `pdfMaxPages`: domyślna maksymalna liczba stron uwzględnianych przez tryb zapasowego wyodrębniania w narzędziu `pdf`. + - Jeśli pole zostanie pominięte, narzędzie PDF wraca do `imageModel`, a następnie do rozwiązanego modelu sesji/domyslnego. +- `pdfMaxBytesMb`: domyślny limit rozmiaru PDF dla narzędzia `pdf`, gdy `maxBytesMb` nie jest przekazane podczas wywołania. +- `pdfMaxPages`: domyślna maksymalna liczba stron branych pod uwagę przez tryb awaryjnego wyodrębniania w narzędziu `pdf`. - `verboseDefault`: domyślny poziom verbose dla agentów. Wartości: `"off"`, `"on"`, `"full"`. Domyślnie: `"off"`. -- `elevatedDefault`: domyślny poziom elevated-output 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 unikalnego dopasowania dokładnego identyfikatora modelu wśród skonfigurowanych dostawców, a dopiero potem wraca do skonfigurowanego dostawcy domyślnego (przestarzałe zachowanie kompatybilnoś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) oraz `params` (parametry zależne od dostawcy, np. `temperature`, `maxTokens`, `cacheRetention`, `context1m`). +- `elevatedDefault`: domyślny poziom danych wyjściowych 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 unikalnego dopasowania dokładnego identyfikatora modelu w skonfigurowanym dostawcy, 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 przechodzi do pierwszego skonfigurowanego dostawcy/modelu zamiast zgłaszać nieaktualny domyślny model 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`). - `params`: globalne domyślne parametry dostawcy stosowane do wszystkich modeli. Ustawiane w `agents.defaults.params` (np. `{ cacheRetention: "long" }`). -- Kolejność 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` (dla pasującego identyfikatora agenta) nadpisuje po kluczu. Szczegóły znajdziesz w [Prompt Caching](/pl/reference/prompt-caching). -- Narzędzia zapisujące konfigurację, które modyfikują te pola (na przykład `/models set`, `/models set-image` oraz polecenia dodawania/usuwania fallback), zapisują kanoniczną formę obiektu i w miarę możliwości zachowują istniejące listy fallback. +- Priorytet scalania `params` (konfiguracja): `agents.defaults.params` (globalna baza) jest zastępowane przez `agents.defaults.models["provider/model"].params` (per model), następnie `agents.list[].params` (dla pasującego identyfikatora agenta) zastępuje klucz po kluczu. Szczegóły znajdziesz w [Prompt Caching](/pl/reference/prompt-caching). +- Narzędzia zapisujące konfigurację, które mutują 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. **Wbudowane skróty aliasów** (mają zastosowanie tylko wtedy, gdy model jest w `agents.defaults.models`): @@ -1075,14 +1088,14 @@ 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` 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ą trybu thinking `adaptive`, gdy nie ustawiono jawnego poziomu thinking. +Modele Anthropic Claude 4.6 domyślnie używają `adaptive` thinking, gdy nie ustawiono jawnego poziomu thinking. - Sesje są obsługiwane, gdy ustawiono `sessionArg`. - Przekazywanie obrazów jest obsługiwane, gdy `imageArg` akceptuje ścieżki plików. ### `agents.defaults.heartbeat` -Okresowe uruchomienia heartbeat. +Okresowe przebiegi heartbeat. ```json5 { @@ -1108,12 +1121,12 @@ 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 payloady ostrzeżeń o błędach narzędzi podczas uruchomień heartbeat. +- `suppressToolErrorWarnings`: gdy true, ukrywa ostrzeżenia 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` blokuje dostarczanie do celu bezpośredniego 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 te agenty**. -- Heartbeat uruchamia pełne tury agenta — krótsze interwały zużywają więcej tokenów. +- `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. 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 jakikolwiek agent definiuje `heartbeat`, heartbeat uruchamiają **tylko ci agenci**. +- Heartbeat wykonuje pełne tury agenta — krótsze interwały zużywają więcej tokenów. ### `agents.defaults.compaction` @@ -1128,8 +1141,8 @@ Okresowe uruchomienia heartbeat. identifierPolicy: "strict", // strict | off | custom identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // 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ótką informację, gdy zaczyna się compaction (domyślnie: false) + model: "openrouter/anthropic/claude-sonnet-4-6", // opcjonalne zastąpienie modelu tylko dla kompaktowania + notifyUser: true, // wyślij krótkie powiadomienie po rozpoczęciu kompaktowania (domyślnie: false) memoryFlush: { enabled: true, softThresholdTokens: 6000, @@ -1142,18 +1155,18 @@ Okresowe uruchomienia heartbeat. } ``` -- `mode`: `default` lub `safeguard` (sumaryzacja fragmentami dla długich historii). Zobacz [Compaction](/pl/concepts/compaction). -- `timeoutSeconds`: maksymalna liczba sekund dozwolona dla pojedynczej operacji compaction, po której OpenClaw ją przerywa. Domyślnie: `900`. -- `identifierPolicy`: `strict` (domyślnie), `off` lub `custom`. `strict` poprzedza sumaryzację compaction wbudowanymi wytycznymi dotyczącymi zachowania nieprzezroczystych identyfikatorów. -- `identifierInstructions`: opcjonalny niestandardowy 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 nie jest ustawione lub jawnie ustawione na tę domyślną parę, starsze nagłówki `Every Session`/`Safety` są również akceptowane jako zapas zgodności. -- `model`: opcjonalne nadpisanie `provider/model-id` tylko dla sumaryzacji compaction. Użyj tego, gdy główna sesja powinna pozostać na jednym modelu, ale podsumowania compaction powinny działać na innym; gdy pole nie jest ustawione, compaction używa modelu głównego sesji. -- `notifyUser`: gdy `true`, wysyła krótką informację użytkownikowi, gdy zaczyna się compaction (na przykład „Compacting context...”). Domyślnie wyłączone, aby compaction pozostał cichy. -- `memoryFlush`: cicha tura agentowa przed automatycznym compaction w celu zapisania trwałych wspomnień. Pomijana, gdy workspace jest tylko do odczytu. +- `mode`: `default` lub `safeguard` (streszczanie fragmentami dla długich historii). 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` poprzedza streszczanie kompaktowania wbudowanymi wskazówkami zachowania nieprzezroczystych identyfikatorów. +- `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 kompaktowaniu. Domyślnie `["Session Startup", "Red Lines"]`; ustaw `[]`, aby wyłączyć ponowne wstrzyknięcie. Gdy pole nie jest ustawione lub ustawione jawnie na tę domyślną parę, starsze nagłówki `Every Session`/`Safety` są także akceptowane jako starsze wartości zapasowe. +- `model`: opcjonalne zastąpienie `provider/model-id` tylko dla streszczania kompaktowania. Użyj tego, gdy główna sesja ma pozostać przy jednym modelu, ale podsumowania kompaktowania powinny działać na innym; gdy pole nie jest ustawione, kompaktowanie używa modelu podstawowego sesji. +- `notifyUser`: gdy `true`, wysyła krótkie powiadomienie do użytkownika po rozpoczęciu kompaktowania (na przykład „Compacting context...”). Domyślnie wyłączone, aby kompaktowanie pozostawało ciche. +- `memoryFlush`: cicha agentowa tura przed automatycznym kompaktowaniem w celu zapisania trwałych wspomnień. Pomijana, gdy workspace jest tylko do odczytu. ### `agents.defaults.contextPruning` -Usuwa **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 { @@ -1179,15 +1192,15 @@ Usuwa **stare wyniki narzędzi** z kontekstu w pamięci przed wysłaniem do LLM. - `mode: "cache-ttl"` włącza przebiegi przycinania. - `ttl` kontroluje, jak często przycinanie może zostać uruchomione ponownie (po ostatnim dotknięciu cache). -- Przycinanie najpierw miękko skraca zbyt duże wyniki narzędzi, a następnie w razie potrzeby twardo czyści starsze wyniki narzędzi. +- Przycinanie najpierw delikatnie skraca zbyt duże wyniki narzędzi, a następnie w razie potrzeby całkowicie czyści starsze wyniki narzędzi. -**Miękkie skracanie** zachowuje początek i koniec oraz wstawia `...` pośrodku. +**Soft-trim** zachowuje początek i koniec, a w środku wstawia `...`. -**Twarde czyszczenie** zastępuje cały wynik narzędzia placeholderem. +**Hard-clear** zastępuje cały wynik narzędzia placeholderem. Uwagi: -- Bloki obrazów nigdy nie są skracane/czyszczone. +- Bloki obrazów nigdy nie są przycinane/czyszczone. - Współczynniki są oparte na znakach (w przybliżeniu), a nie na dokładnej liczbie tokenów. - Jeśli istnieje mniej niż `keepLastAssistants` wiadomości asystenta, przycinanie jest pomijane. @@ -1195,7 +1208,7 @@ Uwagi: Szczegóły zachowania znajdziesz w [Session Pruning](/pl/concepts/session-pruning). -### Block streaming +### Strumieniowanie blokowe ```json5 { @@ -1212,10 +1225,10 @@ Szczegóły zachowania znajdziesz w [Session Pruning](/pl/concepts/session-pruni ``` - 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`. -- `humanDelay`: losowa przerwa między odpowiedziami blokowymi. `natural` = 800–2500 ms. Nadpisanie per agent: `agents.list[].humanDelay`. +- Zastąpienia 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–2500ms. Zastąpienie per agent: `agents.list[].humanDelay`. -Szczegóły zachowania i chunkowania znajdziesz w [Streaming](/pl/concepts/streaming). +Szczegóły zachowania i dzielenia na fragmenty znajdziesz w [Streaming](/pl/concepts/streaming). ### Wskaźniki pisania @@ -1231,7 +1244,7 @@ Szczegóły zachowania i chunkowania znajdziesz w [Streaming](/pl/concepts/strea ``` - Domyślnie: `instant` dla czatów bezpośrednich/wzmianek, `message` dla niewspomnianych czatów grupowych. -- Nadpisania per sesja: `session.typingMode`, `session.typingIntervalSeconds`. +- Zastąpienia per sesja: `session.typingMode`, `session.typingIntervalSeconds`. Zobacz [Typing Indicators](/pl/concepts/typing-indicators). @@ -1239,7 +1252,7 @@ Zobacz [Typing Indicators](/pl/concepts/typing-indicators). ### `agents.defaults.sandbox` -Opcjonalne sandboxing dla osadzonego agenta. Zobacz pełny przewodnik: [Sandboxing](/pl/gateway/sandboxing). +Opcjonalne sandboxing dla osadzonego agenta. Pełny przewodnik znajdziesz w [Sandboxing](/pl/gateway/sandboxing). ```json5 { @@ -1285,7 +1298,7 @@ Opcjonalne sandboxing dla osadzonego agenta. Zobacz pełny przewodnik: [Sandboxi identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", - // Obsługiwane są też SecretRef / treści inline: + // SecretRef / zawartości inline także są obsługiwane: // 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" }, @@ -1338,50 +1351,50 @@ Opcjonalne sandboxing dla osadzonego agenta. Zobacz pełny przewodnik: [Sandboxi **Backend:** -- `docker`: lokalne środowisko uruchomieniowe Docker (domyślnie) -- `ssh`: generyczne zdalne środowisko uruchomieniowe oparte na SSH -- `openshell`: środowisko uruchomieniowe OpenShell +- `docker`: lokalne środowisko Docker (domyślnie) +- `ssh`: ogólne zdalne środowisko oparte na SSH +- `openshell`: środowisko OpenShell -Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska uruchomieniowego są przenoszone do +Gdy wybrano `backend: "openshell"`, ustawienia specyficzne dla środowiska są przenoszone do `plugins.entries.openshell.config`. **Konfiguracja backendu SSH:** -- `target`: cel SSH w formacie `user@host[:port]` +- `target`: cel SSH w postaci `user@host[:port]` - `command`: polecenie klienta SSH (domyślnie: `ssh`) -- `workspaceRoot`: bezwzględny zdalny katalog główny używany dla workspace per zakres +- `workspaceRoot`: bezwzględny zdalny katalog główny używany dla workspace per scope - `identityFile` / `certificateFile` / `knownHostsFile`: istniejące lokalne pliki przekazywane do OpenSSH -- `identityData` / `certificateData` / `knownHostsData`: treści inline lub SecretRef, które OpenClaw materializuje do plików tymczasowych w czasie wykonywania -- `strictHostKeyChecking` / `updateHostKeys`: przełączniki zasad klucza hosta OpenSSH +- `identityData` / `certificateData` / `knownHostsData`: zawartości inline lub SecretRef, które OpenClaw materializuje do plików tymczasowych w czasie działania +- `strictHostKeyChecking` / `updateHostKeys`: parametry zasad kluczy hosta OpenSSH **Priorytet uwierzytelniania SSH:** - `identityData` ma pierwszeństwo przed `identityFile` - `certificateData` ma pierwszeństwo przed `certificateFile` - `knownHostsData` ma pierwszeństwo przed `knownHostsFile` -- Wartości `*Data` oparte na SecretRef są rozwiązywane z aktywnej migawki środowiska uruchomieniowego sekretów przed rozpoczęciem sesji sandbox +- Wartości `*Data` oparte na SecretRef są rozwiązywane z aktywnej migawki czasu działania sekretów przed uruchomieniem sesji sandbox **Zachowanie backendu SSH:** -- inicjuje zdalny workspace raz po utworzeniu lub odtworzeniu +- zasiewa 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 zmian zdalnych z powrotem do hosta -- nie obsługuje kontenerów przeglądarki w sandboxie +- nie synchronizuje automatycznie zdalnych zmian z powrotem do hosta +- nie obsługuje kontenerów przeglądarki sandbox **Dostęp do workspace:** -- `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` +- `none`: workspace sandbox per scope w `~/.openclaw/sandboxes` +- `ro`: workspace sandbox pod `/workspace`, workspace agenta montowany tylko do odczytu pod `/agent` +- `rw`: workspace agenta montowany do odczytu i zapisu pod `/workspace` -**Zakres:** +**Scope:** - `session`: kontener + workspace per sesja - `agent`: jeden kontener + workspace na agenta (domyślnie) -- `shared`: współdzielony kontener i workspace (bez izolacji między sesjami) +- `shared`: współdzielony kontener i workspace (brak izolacji między sesjami) -**Konfiguracja plugin OpenShell:** +**Konfiguracja pluginu OpenShell:** ```json5 { @@ -1394,10 +1407,10 @@ Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska from: "openclaw", remoteWorkspaceDir: "/sandbox", remoteAgentWorkspaceDir: "/agent", - gateway: "lab", // opcjonalne - gatewayEndpoint: "https://lab.example", // opcjonalne + gateway: "lab", // opcjonalnie + gatewayEndpoint: "https://lab.example", // opcjonalnie policy: "strict", // opcjonalny identyfikator polityki OpenShell - providers: ["openai"], // opcjonalne + providers: ["openai"], // opcjonalnie autoProviders: true, timeoutSeconds: 120, }, @@ -1409,30 +1422,30 @@ Gdy wybrane jest `backend: "openshell"`, ustawienia specyficzne dla środowiska **Tryb OpenShell:** -- `mirror`: inicjalizuje zdalny z lokalnego przed exec, synchronizuje z powrotem po exec; lokalny workspace pozostaje kanoniczny -- `remote`: inicjalizuje zdalny raz podczas tworzenia sandbox, następnie utrzymuje zdalny workspace jako kanoniczny +- `mirror`: zasiej zdalne z lokalnego przed exec, zsynchronizuj z powrotem po exec; lokalny workspace pozostaje kanoniczny +- `remote`: zasiej zdalne raz podczas tworzenia sandbox, następnie utrzymuj zdalny workspace jako kanoniczny -W trybie `remote` lokalne edycje hosta wykonane poza OpenClaw nie są automatycznie synchronizowane do sandbox po kroku inicjalizacji. -Transport odbywa się przez SSH do sandbox OpenShell, ale plugin jest właścicielem cyklu życia sandbox i opcjonalnej synchronizacji mirror. +W trybie `remote` lokalne edycje hosta wykonane poza OpenClaw nie są automatycznie synchronizowane do sandbox po kroku zasiewania. +Transport odbywa się przez SSH do sandbox OpenShell, ale cykl życia sandbox i opcjonalną synchronizację mirror kontroluje plugin. -**`setupCommand`** uruchamia się raz po utworzeniu kontenera (przez `sh -lc`). Wymaga wychodzącego połączenia sieciowego, zapisywalnego katalogu głównego i użytkownika root. +**`setupCommand`** uruchamia się raz po utworzeniu kontenera (przez `sh -lc`). Wymaga dostępu do sieci wychodzącej, zapisywalnego katalogu głównego i użytkownika root. -**Kontenery domyślnie używają `network: "none"`** — ustaw `"bridge"` (lub niestandardową 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). +**Kontenery domyślnie używają `network: "none"`** — ustaw `"bridge"` (lub własną sieć bridge), jeśli agent potrzebuje dostępu wychodzącego. +`"host"` jest zablokowane. `"container:"` jest domyślnie zablokowane, chyba że jawnie ustawisz +`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` (tryb break-glass). -**Przychodzące załączniki** są umieszczane w `media/inbound/*` w aktywnym workspace. +**Przychodzące załączniki** są stagingowane do `media/inbound/*` w aktywnym workspace. -**`docker.binds`** montuje dodatkowe katalogi hosta; globalne i per-agent binds są scalane. +**`docker.binds`** montuje dodatkowe katalogi hosta; globalne i per agent bindy są scalane. -**Przeglądarka w sandboxie** (`sandbox.browser.enabled`): Chromium + CDP w kontenerze. URL noVNC jest wstrzykiwany do system promptu. 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). +**Przeglądarka sandbox** (`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 krótko żyjący URL z tokenem (zamiast ujawniać hasło we współdzielonym URL-u). - `allowHostControl: false` (domyślnie) blokuje sesjom sandbox targetowanie 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 brzegu 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 parametry uruchamiania są zdefiniowane w `scripts/sandbox-browser-entrypoint.sh` i dostrojone dla hostów kontenerowych: +- `cdpSourceRange` opcjonalnie ogranicza wejście CDP na krawędzi 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 (także `[]`), 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` @@ -1450,7 +1463,7 @@ Dostęp obserwatora noVNC domyślnie używa uwierzytelniania VNC, a OpenClaw emi - `--no-zygote` - `--metrics-recording-only` - `--disable-extensions` (domyślnie włączone) - - `--disable-3d-apis`, `--disable-software-rasterizer` oraz `--disable-gpu` są + - `--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 @@ -1458,22 +1471,22 @@ Dostęp obserwatora noVNC domyślnie używa uwierzytelniania VNC, a OpenClaw emi - `--renderer-process-limit=2` można zmienić przez `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=`; ustaw `0`, aby użyć domyślnego limitu procesów Chromium. - - oraz `--no-sandbox` i `--disable-setuid-sandbox`, gdy `noSandbox` jest włączone. - - Domyślne wartości są bazą obrazu kontenera; użyj niestandardowego obrazu przeglądarki z niestandardowym + - plus `--no-sandbox` i `--disable-setuid-sandbox`, gdy włączono `noSandbox`. + - Wartości domyślne są bazą obrazu kontenera; użyj własnego obrazu przeglądarki z własnym entrypointem, aby zmienić domyślne ustawienia kontenera. -Sandboxing przeglądarki i `sandbox.docker.binds` są obecnie obsługiwane tylko przez Docker. +Sandboxing przeglądarki i `sandbox.docker.binds` są obecnie dostępne tylko dla Docker. -Zbuduj obrazy: +Budowa obrazów: ```bash scripts/sandbox-setup.sh # główny obraz sandbox scripts/sandbox-browser-setup.sh # opcjonalny obraz przeglądarki ``` -### `agents.list` (nadpisania per agent) +### `agents.list` (zastąpienia per agent) ```json5 { @@ -1486,10 +1499,10 @@ scripts/sandbox-browser-setup.sh # opcjonalny obraz przeglądarki workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // lub { primary, fallbacks } - thinkingDefault: "high", // nadpisanie domyślnego poziomu thinking per agent - reasoningDefault: "on", // nadpisanie domyślnej widoczności reasoning per agent - fastModeDefault: false, // nadpisanie domyślnego fast mode per agent - params: { cacheRetention: "none" }, // nadpisuje pasujące defaults.models params po kluczu + thinkingDefault: "high", // zastąpienie poziomu thinking per agent + reasoningDefault: "on", // zastąpienie widoczności reasoning per agent + fastModeDefault: false, // zastąpienie trybu szybkiego per agent + params: { cacheRetention: "none" }, // zastępuje klucze pasujących defaults.models params skills: ["docs-search"], // zastępuje agents.defaults.skills, gdy ustawione identity: { name: "Samantha", @@ -1522,25 +1535,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 ż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 strumienia per agent scalane ponad wybranym wpisem modelu w `agents.defaults.models`. Użyj tego do 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 się z nimi łączyć, 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ść ani per sesja. -- `reasoningDefault`: opcjonalna domyślna widoczność reasoning per agent (`on | off | stream`). Ma zastosowanie, gdy nie ustawiono nadpisania reasoning per wiadomość ani per sesja. -- `fastModeDefault`: opcjonalna domyślna wartość fast mode per agent (`true | false`). Ma zastosowanie, gdy nie ustawiono nadpisania fast mode per wiadomość ani per sesja. -- `runtime`: opcjonalny deskryptor środowiska uruchomieniowego per agent. Użyj `type: "acp"` z domyślnymi `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), gdy agent ma domyślnie używać sesji harness ACP. +- `default`: gdy ustawiono wiele, wygrywa pierwszy (logowane jest ostrzeżenie). Jeśli nie ustawiono żadnego, domyślny jest pierwszy wpis listy. +- `model`: forma ciągu zastępuje tylko `primary`; forma obiektu `{ primary, fallbacks }` zastępuje oba (`[]` wyłącza globalne fallbacki). Zadania cron, które zastępują tylko `primary`, nadal dziedziczą domyślne fallbacki, chyba że ustawisz `fallbacks: []`. +- `params`: parametry strumienia per agent, scalane na wpisie wybranego modelu w `agents.defaults.models`. Użyj tego do 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 jest pominięta, agent dziedziczy `agents.defaults.skills`, jeśli 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`). Zastępuje `agents.defaults.thinkingDefault` dla tego agenta, gdy nie ustawiono zastąpienia per wiadomość ani per sesja. +- `reasoningDefault`: opcjonalna domyślna widoczność reasoning per agent (`on | off | stream`). Ma zastosowanie, gdy nie ustawiono zastąpienia reasoning per wiadomość ani per sesja. +- `fastModeDefault`: opcjonalna wartość domyślna trybu szybkiego per agent (`true | false`). Ma zastosowanie, gdy nie ustawiono trybu szybkiego per wiadomość ani per sesja. +- `runtime`: opcjonalny deskryptor środowiska wykonawczego per agent. Użyj `type: "acp"` z domyślnymi wartościami `runtime.acp` (`agent`, `backend`, `mode`, `cwd`), gdy agent ma domyślnie używać sesji harness ACP. - `identity.avatar`: ścieżka względna do workspace, URL `http(s)` lub URI `data:`. - `identity` wyprowadza wartości domyślne: `ackReaction` z `emoji`, `mentionPatterns` z `name`/`emoji`. -- `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 poza sandboxem. +- `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.requireAgentId`: gdy true, blokuje wywołania `sessions_spawn`, które pomijają `agentId` (wymusza jawny wybór profilu; domyślnie: false). --- ## Routing wielu agentów -Uruchamiaj wielu izolowanych agentów w jednym Gateway. Zobacz [Multi-Agent](/pl/concepts/multi-agent). +Uruchamiaj wielu izolowanych agentów wewnątrz jednego Gatewaya. Zobacz [Multi-Agent](/pl/concepts/multi-agent). ```json5 { @@ -1559,12 +1572,12 @@ Uruchamiaj wielu izolowanych agentów w jednym Gateway. Zobacz [Multi-Agent](/pl ### Pola dopasowania powiązań -- `type` (opcjonalne): `route` dla normalnego routingu (brak typu domyślnie oznacza route), `acp` dla trwałych powiązań rozmów ACP. +- `type` (opcjonalne): `route` dla zwykłego routingu (brak `type` domyślnie oznacza route), `acp` dla trwałych powiązań konwersacji ACP. - `match.channel` (wymagane) -- `match.accountId` (opcjonalne; `*` = dowolne konto; pominięte = konto domyślne) +- `match.accountId` (opcjonalne; `*` = dowolne konto; pominięcie = 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 }` +- `match.guildId` / `match.teamId` (opcjonalne; zależne od kanału) +- `acp` (opcjonalne; tylko dla `type: "acp"`): `{ mode, label, cwd, backend }` **Deterministyczna kolejność dopasowania:** @@ -1572,12 +1585,12 @@ Uruchamiaj wielu izolowanych agentów w jednym Gateway. Zobacz [Multi-Agent](/pl 2. `match.guildId` 3. `match.teamId` 4. `match.accountId` (dokładne, bez peer/guild/team) -5. `match.accountId: "*"` (w skali kanału) -6. Agent domyślny +5. `match.accountId: "*"` (na poziomie całego kanału) +6. Domyślny agent W obrębie każdego poziomu wygrywa pierwszy pasujący wpis `bindings`. -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ń route. +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ń route. ### Profile dostępu per agent @@ -1599,7 +1612,7 @@ Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości rozmow - + ```json5 { @@ -1674,11 +1687,11 @@ Dla wpisów `type: "acp"` OpenClaw rozwiązuje po dokładnej tożsamości rozmow -Szczegóły priorytetów znajdziesz w [Multi-Agent Sandbox & Tools](/pl/tools/multi-agent-sandbox-tools). +Szczegóły pierwszeństwa znajdziesz w [Multi-Agent Sandbox & Tools](/pl/tools/multi-agent-sandbox-tools). --- -## Session +## Sesja ```json5 { @@ -1708,14 +1721,14 @@ Szczegóły priorytetów znajdziesz w [Multi-Agent Sandbox & Tools](/pl/tools/mu rotateBytes: "10mb", resetArchiveRetention: "30d", // czas trwania lub false maxDiskBytes: "500mb", // opcjonalny twardy budżet - highWaterBytes: "400mb", // opcjonalny cel po czyszczeniu + highWaterBytes: "400mb", // opcjonalny cel czyszczenia }, threadBindings: { enabled: true, - idleHours: 24, // domyślne automatyczne odfokusowanie po bezczynności w godzinach (`0` wyłącza) + idleHours: 24, // domyślny czas automatycznego odfokusowania po bezczynności w godzinach (`0` wyłącza) maxAgeHours: 0, // domyślny twardy maksymalny wiek w godzinach (`0` wyłącza) }, - mainKey: "main", // starsze (środowisko uruchomieniowe zawsze używa "main") + mainKey: "main", // starsze (czas działania zawsze używa "main") agentToAgent: { maxPingPongTurns: 5 }, sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], @@ -1725,37 +1738,37 @@ Szczegóły priorytetów znajdziesz w [Multi-Agent Sandbox & Tools](/pl/tools/mu } ``` - + - **`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 zamierzony jest współdzielony kontekst). + - `global`: wszyscy uczestnicy kontekstu kanału współdzielą jedną sesję (używaj tylko wtedy, gdy współdzielony kontekst jest zamierzony). - **`dmScope`**: sposób grupowania DM. - - `main`: wszystkie DM współdzielą sesję główną. + - `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 wielo-użytkownikowych). + - `per-channel-peer`: izolacja per kanał + nadawca (zalecane dla skrzynek wielu użytkowników). - `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`**: podstawowa zasada resetu. `daily` resetuje o `atHour` czasu lokalnego; `idle` resetuje po `idleMinutes`. Gdy skonfigurowane są oba, wygrywa to, co wygaśnie wcześniej. -- **`resetByType`**: nadpisania per typ (`direct`, `group`, `thread`). Starsze `dm` jest akceptowane jako alias `direct`. -- **`parentForkMaxTokens`**: maksymalna wartość `totalTokens` sesji nadrzędnej dozwolona przy tworzeniu rozwidlonej sesji wątku (domyślnie `100000`). - - Jeśli nadrzędne `totalTokens` jest powyżej tej wartości, OpenClaw rozpoczyna świeżą sesję wątku zamiast dziedziczyć historię transkryptu sesji nadrzędnej. - - Ustaw `0`, aby wyłączyć tę ochronę i zawsze zezwalać na fork od rodzica. -- **`mainKey`**: starsze pole. Środowisko uruchomieniowe teraz zawsze używa `"main"` dla głównego zasobnika czatów bezpośrednich. -- **`agentToAgent.maxPingPongTurns`**: maksymalna liczba tur odpowiedzi zwrotnej między agentami podczas wymiany agent-do-agenta (liczba całkowita, zakres: `0`–`5`). `0` wyłącza łańcuch ping-pong. -- **`sendPolicy`**: dopasowanie po `channel`, `chatType` (`direct|group|channel`, ze starszym aliasem `dm`), `keyPrefix` lub `rawKeyPrefix`. Pierwsze deny wygrywa. -- **`maintenance`**: kontrola czyszczenia i retencji magazynu sesji. - - `mode`: `warn` emituje tylko ostrzeżenia; `enforce` stosuje czyszczenie. - - `pruneAfter`: granica wieku dla nieaktualnych wpisów (domyślnie `30d`). +- **`identityLinks`**: mapuje kanoniczne identyfikatory na peery z prefiksem dostawcy dla współdzielenia sesji między kanałami. +- **`reset`**: podstawowa zasada resetu. `daily` resetuje o `atHour` czasu lokalnego; `idle` resetuje po `idleMinutes`. Gdy skonfigurowano oba, wygrywa to, które wygaśnie wcześniej. +- **`resetByType`**: zastąpienia per typ (`direct`, `group`, `thread`). Starsze `dm` jest akceptowane jako alias `direct`. +- **`parentForkMaxTokens`**: maksymalna liczba `totalTokens` sesji nadrzędnej dozwolona przy tworzeniu forkowanej sesji wątku (domyślnie `100000`). + - Jeśli `totalTokens` sesji nadrzędnej jest powyżej tej wartości, OpenClaw rozpoczyna świeżą sesję wątku zamiast dziedziczyć historię transkryptu sesji nadrzędnej. + - Ustaw `0`, aby wyłączyć tę ochronę i zawsze pozwalać na forki z rodzica. +- **`mainKey`**: starsze pole. Czas działania zawsze używa teraz `"main"` dla głównego zasobnika czatu bezpośredniego. +- **`agentToAgent.maxPingPongTurns`**: maksymalna liczba tur odpowiedzi zwrotnych między agentami podczas wymian agent-agent (liczba całkowita, zakres: `0`–`5`). `0` wyłącza łańcuchowanie ping-pong. +- **`sendPolicy`**: dopasowanie po `channel`, `chatType` (`direct|group|channel`, ze starszym aliasem `dm`), `keyPrefix` lub `rawKeyPrefix`. Pierwszy deny wygrywa. +- **`maintenance`**: czyszczenie magazynu sesji + mechanizmy retencji. + - `mode`: `warn` tylko emituje ostrzeżenia; `enforce` stosuje czyszczenie. + - `pruneAfter`: próg 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 taka sama jak `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. + - `rotateBytes`: obracaj `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` loguje ostrzeżenia; w trybie `enforce` najpierw usuwa najstarsze artefakty/sesje. - `highWaterBytes`: opcjonalny cel po czyszczeniu budżetu. Domyślnie `80%` wartości `maxDiskBytes`. -- **`threadBindings`**: globalne wartości domyślne dla funkcji sesji związanych z wątkami. - - `enabled`: główny domyślny przełącznik (dostawcy mogą nadpisywać; Discord używa `channels.discord.threadBindings.enabled`) - - `idleHours`: domyślne automatyczne odfokusowanie po bezczynności w godzinach (`0` wyłącza; dostawcy mogą nadpisywać) - - `maxAgeHours`: domyślny twardy maksymalny wiek w godzinach (`0` wyłącza; dostawcy mogą nadpisywać) +- **`threadBindings`**: globalne wartości domyślne dla funkcji sesji powiązanych z wątkami. + - `enabled`: główny domyślny przełącznik (dostawcy mogą zastąpić; Discord używa `channels.discord.threadBindings.enabled`) + - `idleHours`: domyślny czas automatycznego odfokusowania po bezczynności w godzinach (`0` wyłącza; dostawcy mogą zastąpić) + - `maxAgeHours`: domyślny twardy maksymalny wiek w godzinach (`0` wyłącza; dostawcy mogą zastąpić) @@ -1793,32 +1806,32 @@ Szczegóły priorytetów znajdziesz w [Multi-Agent Sandbox & Tools](/pl/tools/mu ### Prefiks odpowiedzi -Nadpisania per kanał/konto: `channels..responsePrefix`, `channels..accounts..responsePrefix`. +Zastąpienia per kanał/konto: `channels..responsePrefix`, `channels..accounts..responsePrefix`. Rozwiązywanie (najbardziej szczegółowe wygrywa): konto → kanał → globalne. `""` wyłącza i zatrzymuje kaskadę. `"auto"` wyprowadza `[{identity.name}]`. **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"`) | -Zmienne są niewrażliwe na wielkość liter. `{think}` jest aliasem dla `{thinkingLevel}`. +Zmienne nie rozróżniają wielkości liter. `{think}` jest aliasem dla `{thinkingLevel}`. ### Reakcja ack -- Domyślnie przyjmuje `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` → zapas z identity. +- Domyślnie używa `identity.emoji` aktywnego agenta, w przeciwnym razie `"👀"`. Ustaw `""`, aby wyłączyć. +- Zastąpienia per kanał: `channels..ackReaction`, `channels..accounts..ackReaction`. +- Kolejność rozwiązywania: konto → kanał → `messages.ackReaction` → zapasowa wartość z identity. - 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 statusu cyklu życia w Slack, Discord i Telegram. - W Slack i Discord brak ustawienia utrzymuje reakcje statusu włączone, gdy aktywne są reakcje ack. - W Telegram ustaw jawnie `true`, aby włączyć reakcje statusu cyklu życia. +- `messages.statusReactions.enabled`: włącza reakcje statusowe cyklu życia w Slack, Discord i Telegram. + W Slack i Discord pozostawienie nieustawionego pola zachowuje reakcje statusowe włączone, gdy aktywne są reakcje ack. + W Telegram ustaw to jawnie na `true`, aby włączyć reakcje statusowe cyklu życia. ### Debounce przychodzących wiadomości @@ -1865,12 +1878,12 @@ Zmienne są niewrażliwe na wielkość liter. `{think}` jest aliasem dla `{think } ``` -- `auto` kontroluje automatyczny TTS. `/tts off|always|inbound|tagged` nadpisuje ustawienie per sesja. -- `summaryModel` nadpisuje `agents.defaults.model.primary` dla auto-podsumowania. +- `auto` steruje automatycznym TTS. `/tts off|always|inbound|tagged` zastępuje to per sesja. +- `summaryModel` zastępuje `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ą zapas w `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`, a następnie `https://api.openai.com/v1`. -- Gdy `openai.baseUrl` wskazuje endpoint inny niż OpenAI, OpenClaw traktuje go jako serwer TTS zgodny z OpenAI i łagodzi walidację modelu/głosu. +- Klucze API wracają do `ELEVENLABS_API_KEY`/`XI_API_KEY` oraz `OPENAI_API_KEY`. +- `openai.baseUrl` zastępuje punkt końcowy OpenAI TTS. Kolejność rozwiązywania: konfiguracja, potem `OPENAI_TTS_BASE_URL`, potem `https://api.openai.com/v1`. +- Gdy `openai.baseUrl` wskazuje na punkt końcowy inny niż OpenAI, OpenClaw traktuje go jako serwer TTS zgodny z OpenAI i łagodzi walidację modelu/głosu. --- @@ -1901,12 +1914,12 @@ Wartości domyślne dla 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 wyłącznie do kompatybilności i są automatycznie migrowane do `talk.providers.`. -- Voice ID mają zapas w `ELEVENLABS_VOICE_ID` lub `SAG_VOICE_ID`. -- `providers.*.apiKey` akceptuje zwykłe ciągi tekstowe lub obiekty SecretRef. -- Zapas `ELEVENLABS_API_KEY` ma zastosowanie tylko wtedy, gdy nie skonfigurowano klucza API dla Talk. +- Starsze płaskie klucze Talk (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) są tylko dla zgodności i są automatycznie migrowane do `talk.providers.`. +- Identyfikatory głosu wracają do `ELEVENLABS_VOICE_ID` lub `SAG_VOICE_ID`. +- `providers.*.apiKey` akceptuje zwykłe ciągi znaków lub obiekty SecretRef. +- Zapasowy `ELEVENLABS_API_KEY` ma zastosowanie tylko wtedy, gdy nie skonfigurowano klucza API Talk. - `providers.*.voiceAliases` pozwala dyrektywom Talk używać przyjaznych nazw. -- `silenceTimeoutMs` kontroluje, 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`). +- `silenceTimeoutMs` określa, jak długo tryb Talk czeka po ciszy użytkownika, zanim wyśle transkrypt. Pozostawienie nieustawionego pola zachowuje domyślne okno pauzy platformy (`700 ms na macOS i Androidzie, 900 ms na iOS`). --- @@ -1914,37 +1927,37 @@ Wartości domyślne dla trybu Talk (macOS/iOS/Android). ### Profile narzędzi -`tools.profile` ustawia bazową listę zezwoleń przed `tools.allow`/`tools.deny`: +`tools.profile` ustawia bazową listę dozwolonych przed `tools.allow`/`tools.deny`: -Lokalny onboarding domyślnie ustawia nowe lokalne konfiguracje na `tools.profile: "coding"`, gdy pole nie jest ustawione (istniejące jawne profile są zachowywane). +Lokalny onboarding domyślnie ustawia nowe lokalne konfiguracje na `tools.profile: "coding"` gdy pole jest nieustawione (istniejące jawne profile są zachowywane). -| Profil | Obejmuje | -| ----------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `minimal` | tylko `session_status` | +| Profil | Zawiera | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `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` | Brak ograniczeń (to samo co brak ustawienia) | +| `full` | Bez ograniczeń (to samo co brak ustawienia) | ### Grupy narzędzi -| Grupa | Narzędzia | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------ | -| `group:runtime` | `exec`, `process`, `code_execution` (`bash` jest akceptowany jako alias `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 akceptowane jako alias `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) | ### `tools.allow` / `tools.deny` -Globalne zasady allow/deny dla narzędzi (deny wygrywa). Niewrażliwe na wielkość liter, obsługują wildcardy `*`. Stosowane nawet wtedy, gdy sandbox Docker jest wyłączony. +Globalna zasada allow/deny dla narzędzi (deny wygrywa). Bez rozróżniania wielkości liter, obsługa wildcardów `*`. Stosowane nawet wtedy, gdy sandbox Docker jest wyłączony. ```json5 { @@ -1954,7 +1967,7 @@ Globalne zasady allow/deny dla narzędzi (deny wygrywa). Niewrażliwe na wielko ### `tools.byProvider` -Dalsze ograniczenia narzędzi dla określonych dostawców lub modeli. Kolejność: profil bazowy → profil dostawcy → allow/deny. +Dalsze ograniczenie narzędzi dla określonych dostawców lub modeli. Kolejność: profil bazowy → profil dostawcy → allow/deny. ```json5 { @@ -1970,7 +1983,7 @@ Dalsze ograniczenia narzędzi dla określonych dostawców lub modeli. Kolejnoś ### `tools.elevated` -Kontroluje podniesiony dostęp exec poza sandboxem: +Kontroluje podwyższony dostęp exec poza sandbox: ```json5 { @@ -1986,9 +1999,9 @@ Kontroluje podniesiony dostęp exec poza sandboxem: } ``` -- 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. -- Podniesione `exec` omija sandboxing i używa skonfigurowanej ścieżki ucieczki (`gateway` domyślnie lub `node`, gdy cel exec to `node`). +- Zastąpienie per agent (`agents.list[].tools.elevated`) może jedynie dalej ograniczać. +- `/elevated on|off|ask|full` zapisuje stan per sesja; dyrektywy inline dotyczą pojedynczej wiadomości. +- Podwyższone `exec` omija sandbox i używa skonfigurowanej ścieżki ucieczki (`gateway` domyślnie albo `node`, gdy celem exec jest `node`). ### `tools.exec` @@ -2013,7 +2026,7 @@ Kontroluje podniesiony dostęp exec poza sandboxem: ### `tools.loopDetection` Kontrole bezpieczeństwa pętli narzędzi są **domyślnie wyłączone**. Ustaw `enabled: true`, aby aktywować wykrywanie. -Ustawienia można zdefiniować globalnie w `tools.loopDetection` i nadpisywać per agent w `agents.list[].tools.loopDetection`. +Ustawienia mogą być zdefiniowane globalnie w `tools.loopDetection` i zastępowane per agent w `agents.list[].tools.loopDetection`. ```json5 { @@ -2034,14 +2047,14 @@ Ustawienia można zdefiniować globalnie w `tools.loopDetection` i nadpisywać p } ``` -- `historySize`: maksymalna historia wywołań narzędzi przechowywana do analizy pętli. +- `historySize`: maksymalna historia wywołań narzędzi zachowywana do analizy pętli. - `warningThreshold`: próg ostrzeżeń dla powtarzających się wzorców bez postępu. -- `criticalThreshold`: wyższy próg dla blokowania krytycznych pętli. -- `globalCircuitBreakerThreshold`: próg twardego zatrzymania dla dowolnego uruchomienia 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 pollingowe (`process.poll`, `command_status` itp.). -- `detectors.pingPong`: ostrzega/blokuje naprzemienne wzorce par bez postępu. -- Jeśli `warningThreshold >= criticalThreshold` lub `criticalThreshold >= globalCircuitBreakerThreshold`, walidacja kończy się niepowodzeniem. +- `criticalThreshold`: wyższy próg blokowania krytycznych pętli. +- `globalCircuitBreakerThreshold`: twardy próg zatrzymania dla dowolnego przebiegu bez postępu. +- `detectors.genericRepeat`: ostrzegaj przy powtarzających się wywołaniach tego samego narzędzia z tymi samymi argumentami. +- `detectors.knownPollNoProgress`: ostrzegaj/blokuj dla znanych narzędzi poll (`process.poll`, `command_status` itd.). +- `detectors.pingPong`: ostrzegaj/blokuj dla naprzemiennych wzorców par bez postępu. +- Jeśli `warningThreshold >= criticalThreshold` lub `criticalThreshold >= globalCircuitBreakerThreshold`, walidacja zakończy się niepowodzeniem. ### `tools.web` @@ -2058,7 +2071,7 @@ Ustawienia można zdefiniować globalnie w `tools.loopDetection` i nadpisywać p }, fetch: { enabled: true, - provider: "firecrawl", // opcjonalne; pomiń dla automatycznego wykrywania + provider: "firecrawl", // opcjonalnie; pomiń dla auto-detect maxChars: 50000, maxCharsCap: 50000, maxResponseBytes: 2000000, @@ -2083,7 +2096,7 @@ Konfiguruje rozumienie mediów przychodzących (obraz/audio/wideo): media: { concurrency: 2, asyncCompletion: { - directSend: false, // opt-in: wyślij gotowe async music/video bezpośrednio do kanału + directSend: false, // opt-in: wyślij ukończone asynchroniczne music/video bezpośrednio do kanału }, audio: { enabled: true, @@ -2111,28 +2124,28 @@ Konfiguruje rozumienie mediów przychodzących (obraz/audio/wideo): **Wpis dostawcy** (`type: "provider"` lub pominięte): -- `provider`: identyfikator dostawcy API (`openai`, `anthropic`, `google`/`gemini`, `groq` itp.) -- `model`: nadpisanie identyfikatora modelu +- `provider`: identyfikator dostawcy API (`openai`, `anthropic`, `google`/`gemini`, `groq` itd.) +- `model`: zastąpienie identyfikatora modelu - `profile` / `preferredProfile`: wybór profilu `auth-profiles.json` **Wpis CLI** (`type: "cli"`): - `command`: wykonywalne polecenie do uruchomienia -- `args`: argumenty szablonowane (obsługuje `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` itp.) +- `args`: sparametryzowane argumenty (obsługuje `{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` itd.) **Pola wspólne:** - `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. -- Po błędach następuje przejście do następnego wpisu. +- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: zastąpienia per wpis. +- Błędy przechodzą do kolejnego wpisu fallback. -Uwierzytelnianie dostawcy korzysta ze standardowej kolejności: `auth-profiles.json` → zmienne środowiskowe → `models.providers.*.apiKey`. +Uwierzytelnianie dostawcy używa standardowej kolejności: `auth-profiles.json` → zmienne środowiskowe → `models.providers.*.apiKey`. -**Pola async completion:** +**Pola asynchronicznego ukończenia:** -- `asyncCompletion.directSend`: gdy `true`, ukończone zadania async `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 wybudzenia sesji żądającej/dostarczania przez model). + (starsza ścieżka wybudzania sesji żądającej/dostarczania modelu). @@ -2151,9 +2164,9 @@ Uwierzytelnianie dostawcy korzysta ze standardowej kolejności: `auth-profiles.j ### `tools.sessions` -Kontroluje, które sesje mogą być targetowane przez narzędzia sesji (`sessions_list`, `sessions_history`, `sessions_send`). +Kontroluje, które sesje mogą być celem dla narzędzi sesji (`sessions_list`, `sessions_history`, `sessions_send`). -Domyślnie: `tree` (bieżąca sesja + sesje uruchomione przez nią, takie jak subagenty). +Domyślnie: `tree` (bieżąca sesja + sesje uruchomione przez nią, takie jak subagenci). ```json5 { @@ -2169,10 +2182,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ę (subagenty). +- `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 uruchamiasz sesje per nadawca pod tym samym identyfikatorem agenta). - `all`: dowolna sesja. Targetowanie między agentami nadal wymaga `tools.agentToAgent`. -- Ograniczenie sandbox: gdy bieżąca sesja jest w sandboxie, a `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, widoczność jest wymuszana na `tree`, nawet jeśli `tools.sessions.visibility="all"`. +- Zacisk sandbox: gdy bieżąca sesja jest sandboxowana i `agents.defaults.sandbox.sessionToolsVisibility="spawned"`, widoczność jest wymuszana do `tree`, nawet jeśli `tools.sessions.visibility="all"`. ### `tools.sessions_spawn` @@ -2187,7 +2200,7 @@ Kontroluje 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, // zachowaj załączniki przy cleanup="keep" }, }, }, @@ -2196,22 +2209,22 @@ Kontroluje obsługę załączników inline dla `sessions_spawn`. Uwagi: -- Załączniki są obsługiwane tylko dla `runtime: "subagent"`. Środowisko uruchomieniowe ACP je odrzuca. -- Pliki są materializowane w podrzędnym workspace w `.openclaw/attachments//` wraz z `.manifest.json`. -- Zawartość załączników jest automatycznie redagowana przy utrwalaniu transkryptu. -- Wejścia base64 są walidowane z rygorystycznym sprawdzaniem alfabetu/dopełnienia i ochroną rozmiaru przed dekodowaniem. +- Załączniki są obsługiwane tylko dla `runtime: "subagent"`. Środowisko ACP je odrzuca. +- Pliki są materializowane w workspace potomnym pod `.openclaw/attachments//` wraz z `.manifest.json`. +- Zawartość załączników jest automatycznie redagowana z trwałego zapisu transkryptu. +- Dane wejściowe base64 są walidowane z rygorystycznym sprawdzaniem alfabetu/dopełnienia oraz ochroną rozmiaru przed dekodowaniem. - Uprawnienia plików to `0700` dla katalogów i `0600` dla plików. -- Czyszczenie jest zgodne z polityką `cleanup`: `delete` zawsze usuwa załączniki; `keep` zachowuje je tylko wtedy, gdy `retainOnSessionKeep: true`. +- Czyszczenie podąża za polityką `cleanup`: `delete` zawsze usuwa załączniki; `keep` zachowuje je tylko wtedy, gdy `retainOnSessionKeep: true`. ### `tools.experimental` -Eksperymentalne flagi wbudowanych narzędzi. Domyślnie wyłączone, chyba że obowiązuje reguła automatycznego włączenia specyficzna dla środowiska uruchomieniowego. +Eksperymentalne flagi wbudowanych narzędzi. Domyślnie wyłączone, chyba że obowiązuje reguła automatycznego włączenia specyficzna dla środowiska wykonawczego. ```json5 { tools: { experimental: { - planTool: true, // włącza eksperymentalne update_plan + planTool: true, // włącz eksperymentalne update_plan }, }, } @@ -2221,7 +2234,7 @@ 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 włączają je automatycznie. -- Gdy jest włączone, system prompt dodaje również wskazówki użycia, tak aby model korzystał z niego tylko przy większej pracy i utrzymywał co najwyżej jeden krok `in_progress`. +- Gdy jest włączone, system prompt dodaje także wskazówki użycia, aby model używał go tylko dla znaczącej pracy i utrzymywał co najwyżej jeden krok `in_progress`. ### `agents.defaults.subagents` @@ -2241,16 +2254,16 @@ Uwagi: } ``` -- `model`: domyślny model dla uruchamianych subagentów. Jeśli pole zostanie pominięte, subagenty dziedziczą model wywołującego. -- `allowAgents`: domyślna lista zezwoleń docelowych identyfikatorów agentów 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. -- Zasady narzędzi per subagent: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`. +- `model`: domyślny model dla uruchamianych subagentów. Jeśli pole zostanie pominięte, subagenci dziedziczą model wywołującego. +- `allowAgents`: domyślna lista dozwolonych docelowych identyfikatorów agentów 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 limitu czasu. +- Zasada narzędzi per subagent: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`. --- -## Niestandardowi dostawcy i base URL +## Własni dostawcy i base URL -OpenClaw używa wbudowanego katalogu modeli. Dodaj niestandardowych dostawców przez `models.providers` w konfiguracji lub `~/.openclaw/agents//agent/models.json`. +OpenClaw używa wbudowanego katalogu modeli. Dodawaj własnych dostawców przez `models.providers` w konfiguracji lub `~/.openclaw/agents//agent/models.json`. ```json5 { @@ -2279,46 +2292,46 @@ OpenClaw używa wbudowanego katalogu modeli. Dodaj niestandardowych dostawców p } ``` -- Użyj `authHeader: true` + `headers` dla niestandardowych potrzeb uwierzytelniania. -- Nadpisz katalog główny konfiguracji agenta przez `OPENCLAW_AGENT_DIR` (lub `PI_CODING_AGENT_DIR`, starszy alias zmiennej środowiskowej). +- Użyj `authHeader: true` + `headers` dla własnych potrzeb uwierzytelniania. +- Zastąp katalog główny konfiguracji agenta przez `OPENCLAW_AGENT_DIR` (lub `PI_CODING_AGENT_DIR`, starszy alias zmiennej środowiskowej). - Priorytet scalania dla pasujących identyfikatorów dostawców: - - Niepuste wartości `baseUrl` z `models.json` agenta mają pierwszeństwo. - - Niepuste wartości `apiKey` agenta mają pierwszeństwo tylko wtedy, gdy ten dostawca nie jest zarządzany przez SecretRef w bieżącym kontekście konfiguracji/profilu auth. - - Wartości `apiKey` dostawcy zarządzane przez SecretRef są odświeżane na podstawie 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 dostawcy zarządzane przez SecretRef są odświeżane na podstawie znaczników źródła (`secretref-env:ENV_VAR_NAME` dla odwołań env, `secretref-managed` dla odwołań file/exec). + - Niepuste wartości `baseUrl` z agent `models.json` mają pierwszeństwo. + - Niepuste wartości `apiKey` agenta mają pierwszeństwo tylko wtedy, gdy ten dostawca nie jest zarządzany przez SecretRef w bieżącym kontekście konfiguracji/profilu uwierzytelniania. + - Wartości `apiKey` dostawcy zarządzane 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 dostawcy zarządzane 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` agenta wracają do `models.providers` w konfiguracji. - - Pasujące wartości `contextWindow`/`maxTokens` modelu używają wyższej wartości pomiędzy jawną konfiguracją a niejawnymi wartościami katalogu. - - Pasujące `contextTokens` modelu zachowuje jawny runtime cap, gdy jest obecny; użyj go, aby ograniczyć efektywny kontekst bez zmieniania natywnych metadanych modelu. - - Użyj `models.mode: "replace"`, gdy chcesz, aby konfiguracja całkowicie przepisała `models.json`. - - Utrwalanie znaczników jest autorytatywne względem źródła: znaczniki są zapisywane z aktywnej migawki źródłowej konfiguracji (przed rozwiązywaniem), a nie z rozwiązanych wartości sekretów środowiska uruchomieniowego. + - Pasujące `contextWindow`/`maxTokens` modelu używają wyższej wartości z jawnej konfiguracji i niejawnych wartości katalogowych. + - Pasujące `contextTokens` modelu zachowuje jawny limit czasu działania, jeśli istnieje; użyj go, aby ograniczyć efektywny kontekst bez zmieniania natywnych metadanych modelu. + - Użyj `models.mode: "replace"`, jeśli chcesz, aby konfiguracja całkowicie przepisała `models.json`. + - Trwałość markerów jest źródłowo autorytatywna: markery są zapisywane z aktywnej migawki konfiguracji źródłowej (przed rozwiązaniem), a nie z rozwiązanych wartości sekretów w czasie działania. ### Szczegóły pól dostawcy - `models.mode`: zachowanie katalogu dostawców (`merge` lub `replace`). -- `models.providers`: mapa niestandardowych dostawców kluczowana identyfikatorem dostawcy. -- `models.providers.*.api`: adapter żądań (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` itp.). -- `models.providers.*.apiKey`: poświadczenie dostawcy (preferuj SecretRef/podstawienie z env). +- `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 SecretRef/podstawienie env). - `models.providers.*.auth`: strategia uwierzytelniania (`api-key`, `token`, `oauth`, `aws-sdk`). -- `models.providers.*.injectNumCtxForOpenAICompat`: dla Ollama + `openai-completions` wstrzykuje `options.num_ctx` do żądań (domyślnie: `true`). -- `models.providers.*.authHeader`: wymusza transport poświadczenia w nagłówku `Authorization`, gdy jest wymagany. -- `models.providers.*.baseUrl`: bazowy URL nadrzędnego API. -- `models.providers.*.headers`: dodatkowe statyczne nagłówki dla routingu proxy/dzierżawy. -- `models.providers.*.request`: nadpisania transportu dla żądań HTTP dostawcy modelu. +- `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 to wymagane. +- `models.providers.*.baseUrl`: nadrzędny base URL API. +- `models.providers.*.headers`: dodatkowe statyczne nagłówki do routingu proxy/tenant. +- `models.providers.*.request`: zastąpienia transportu dla żądań HTTP dostawcy modeli. - `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 środowiskowych `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`. + - `request.auth`: zastąpienie strategii uwierzytelniania. Tryby: `"provider-default"` (użyj wbudowanego uwierzytelniania dostawcy), `"authorization-bearer"` (z `token`), `"header"` (z `headerName`, `value`, opcjonalnie `prefix`). + - `request.proxy`: zastąpienie proxy HTTP. Tryby: `"env-proxy"` (użyj zmiennych środowiskowych `HTTP_PROXY`/`HTTPS_PROXY`), `"explicit-proxy"` (z `url`). Oba tryby akceptują opcjonalny podobiekt `tls`. + - `request.tls`: zastąpienie 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 runtime cap kontekstu. Użyj tego, gdy chcesz mniejszego efektywnego budżetu kontekstu niż natywne `contextWindow` modelu. -- `models.providers.*.models.*.compat.supportsDeveloperRole`: opcjonalna wskazówka kompatybilności. Dla `api: "openai-completions"` z niepustym nienatywnym `baseUrl` (host inny niż `api.openai.com`) OpenClaw wymusza to na `false` w czasie wykonywania. Puste/pominięte `baseUrl` zachowuje domyślne zachowanie OpenAI. +- `models.providers.*.models.*.contextTokens`: opcjonalny limit kontekstu czasu działania. Użyj tego, gdy chcesz mniejszego efektywnego budżetu 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 czasie działania `false`. Puste/pominięte `baseUrl` zachowuje domyślne zachowanie OpenAI. - `plugins.entries.amazon-bedrock.config.discovery`: katalog główny ustawień auto-discovery Bedrock. -- `plugins.entries.amazon-bedrock.config.discovery.enabled`: włącza/wyłącza niejawne discovery. +- `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 identyfikatora dostawcy dla ukierunkowanego discovery. -- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: interwał odpytywania dla odświeżania discovery. -- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: zapasowe okno kontekstu dla odkrytych modeli. -- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: zapasowe maksymalne tokeny wyjściowe dla odkrytych modeli. +- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: interwał odświeżania pollingowego dla 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. ### Przykłady dostawców @@ -2373,7 +2386,7 @@ Użyj `cerebras/zai-glm-4.7` dla Cerebras; `zai/glm-4.7` dla bezpośredniego Z.A } ``` -Ustaw `OPENCODE_API_KEY` (lub `OPENCODE_ZEN_API_KEY`). Używaj odwołań `opencode/...` dla katalogu Zen lub `opencode-go/...` dla katalogu Go. Skrót: `openclaw onboard --auth-choice opencode-zen` lub `openclaw onboard --auth-choice opencode-go`. +Ustaw `OPENCODE_API_KEY` (lub `OPENCODE_ZEN_API_KEY`). Używaj odwołań `opencode/...` dla katalogu Zen albo `opencode-go/...` dla katalogu Go. Skrót: `openclaw onboard --auth-choice opencode-zen` lub `openclaw onboard --auth-choice opencode-go`. @@ -2392,9 +2405,9 @@ 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 do kodowania (domyślny): `https://api.z.ai/api/coding/paas/v4` -- Dla ogólnego endpointu zdefiniuj niestandardowego dostawcę z nadpisaniem base URL. +- Ogólny punkt końcowy: `https://api.z.ai/api/paas/v4` +- Punkt końcowy coding (domyślny): `https://api.z.ai/api/coding/paas/v4` +- Dla ogólnego punktu końcowego zdefiniuj własnego dostawcę z zastąpieniem base URL. @@ -2433,11 +2446,11 @@ Ustaw `ZAI_API_KEY`. `z.ai/*` i `z-ai/*` są akceptowanymi aliasami. Skrót: `op } ``` -Dla endpointu Chiny: `baseUrl: "https://api.moonshot.cn/v1"` lub `openclaw onboard --auth-choice moonshot-api-key-cn`. +Dla punktu końcowego w Chinach: `baseUrl: "https://api.moonshot.cn/v1"` lub `openclaw onboard --auth-choice moonshot-api-key-cn`. -Natywne endpointy Moonshot reklamują kompatybilność 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. +Natywne punkty końcowe Moonshot reklamują zgodność użycia strumieniowania na współdzielonym +transporcie `openai-completions`, a OpenClaw opiera to teraz na możliwościach punktu końcowego, +a nie wyłącznie na identyfikatorze wbudowanego dostawcy. @@ -2494,7 +2507,7 @@ Zgodny z Anthropic, wbudowany dostawca. Skrót: `openclaw onboard --auth-choice } ``` -Base URL powinien pomijać `/v1` (klient Anthropic sam go dopisuje). Skrót: `openclaw onboard --auth-choice synthetic-api-key`. +Base URL powinien pomijać `/v1` (klient Anthropic dopisuje je sam). Skrót: `openclaw onboard --auth-choice synthetic-api-key`. @@ -2537,7 +2550,7 @@ Base URL powinien pomijać `/v1` (klient Anthropic sam go dopisuje). Skrót: `op Ustaw `MINIMAX_API_KEY`. Skróty: `openclaw onboard --auth-choice minimax-global-api` lub `openclaw onboard --auth-choice minimax-cn-api`. -Katalog modeli domyślnie zawiera teraz tylko M2.7. +Katalog modeli domyślnie używa teraz tylko M2.7. Na ścieżce strumieniowania zgodnej z Anthropic OpenClaw domyślnie wyłącza thinking MiniMax, chyba że jawnie ustawisz `thinking`. `/fast on` lub `params.fastMode: true` przepisuje `MiniMax-M2.7` na @@ -2547,7 +2560,7 @@ chyba że jawnie ustawisz `thinking`. `/fast on` lub -Zobacz [Local Models](/pl/gateway/local-models). TL;DR: uruchom duży model lokalny przez LM Studio Responses API na wydajnym sprzęcie; zachowaj modele hostowane scalone jako fallback. +Zobacz [Local Models](/pl/gateway/local-models). W skrócie: uruchom duży model lokalny przez LM Studio Responses API na wydajnym sprzęcie; zachowaj połączone modele hostowane jako fallback. @@ -2568,7 +2581,7 @@ Zobacz [Local Models](/pl/gateway/local-models). TL;DR: uruchom duży model loka }, entries: { "image-lab": { - apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // lub zwykły ciąg tekstowy + apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // lub zwykły ciąg znaków env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, }, peekaboo: { enabled: true }, @@ -2578,14 +2591,14 @@ Zobacz [Local Models](/pl/gateway/local-models). TL;DR: uruchom duży model loka } ``` -- `allowBundled`: opcjonalna lista zezwoleń tylko dla bundled Skills (managed/workspace Skills pozostają bez zmian). +- `allowBundled`: opcjonalna lista dozwolonych tylko dla dołączonych Skills (zarządzane/workspace Skills nie są objęte). - `load.extraDirs`: dodatkowe współdzielone katalogi główne Skills (najniższy priorytet). -- `install.preferBrew`: gdy true, preferuje instalatory Homebrew, gdy `brew` jest - dostępne, zanim przejdzie do innych rodzajów instalatorów. +- `install.preferBrew`: gdy true, preferuj instalatory Homebrew, jeśli `brew` jest + dostępne, zanim nastąpi przejście do innych typów instalatorów. - `install.nodeManager`: preferencja instalatora node dla specyfikacji `metadata.openclaw.install` (`npm` | `pnpm` | `yarn` | `bun`). -- `entries..enabled: false` wyłącza Skill nawet jeśli jest bundled/zainstalowany. -- `entries..apiKey`: wygodne pole klucza API dla Skills deklarujących podstawową zmienną env (zwykły ciąg tekstowy lub obiekt SecretRef). +- `entries..enabled: false` wyłącza Skill nawet wtedy, gdy jest dołączony/zainstalowany. +- `entries..apiKey`: wygodne pole klucza API dla Skills deklarujących podstawową zmienną env (zwykły ciąg znaków lub obiekt SecretRef). --- @@ -2614,17 +2627,13 @@ Zobacz [Local Models](/pl/gateway/local-models). TL;DR: uruchom duży model loka ``` - Ładowane z `~/.openclaw/extensions`, `/.openclaw/extensions` oraz `plugins.load.paths`. -- Discovery akceptuje natywne pluginy OpenClaw oraz kompatybilne bundle Codex i Claude, w tym bundle Claude o domyślnym układzie bez manifestu. -- **Zmiany konfiguracji wymagają restartu gateway.** -- `allow`: opcjonalna lista zezwoleń (ładują się tylko wymienione pluginy). `deny` ma pierwszeństwo. -- `plugins.entries..apiKey`: wygodne pole klucza API na poziomie plugin (gdy plugin to obsługuje). -- `plugins.entries..env`: mapa zmiennych środowiskowych ograniczona do plugin. -- `plugins.entries..hooks.allowPromptInjection`: gdy `false`, rdzeń blokuje `before_prompt_build` i ignoruje pola mutujące prompt ze starszego `before_agent_start`, zachowując starsze `modelOverride` i `providerOverride`. Dotyczy natywnych hooków plugin i obsługiwanych katalogów hooków dostarczanych przez bundle. -- `plugins.entries..subagent.allowModelOverride`: jawnie ufa temu pluginowi w żądaniu nadpisań `provider` i `model` per uruchomienie dla uruchomień subagentów w tle. -- `plugins.entries..subagent.allowedModels`: opcjonalna lista zezwoleń kanonicznych celów `provider/model` dla zaufanych nadpisań subagentów. Użyj `"*"` tylko wtedy, gdy świadomie chcesz zezwolić na dowolny model. -- `plugins.entries..config`: obiekt konfiguracji zdefiniowany przez plugin (walidowany przez schemat natywnego pluginu OpenClaw, jeśli jest dostępny). -- `plugins.entries.firecrawl.config.webFetch`: ustawienia dostawcy web-fetch Firecrawl. - - `apiKey`: klucz API Firecrawl (akceptuje SecretRef). Zapasowo używa `plugins.entries.firecrawl.config.webSearch.apiKey`, starszego `tools.web.fetch.firecrawl.apiKey` lub zmiennej środowiskowej `FIRECRAWL_API_KEY`. - - `baseUrl`: bazowy URL API Firecrawl (domyślnie: `https://api.firecrawl.dev`). - - `onlyMainContent`: wyodrębnia tylko główną treść ze stron (domyślnie: `true`). - - ` \ No newline at end of file +- Discovery akceptuje natywne pluginy OpenClaw oraz zgodne bund­le Codex i Claude, w tym bund­le Claude bez manifestu w domyślnym układzie. +- **Zmiany konfiguracji wymagają restartu gatewaya.** +- `allow`: opcjonalna lista dozwolonych (ładują się tylko wymienione pluginy). `deny` wygrywa. +- `plugins.entries..apiKey`: wygodne pole klucza API na poziomie pluginu (gdy plugin to obsługuje). +- `plugins.entries..env`: mapa zmiennych środowiskowych w zakresie pluginu. +- `plugins.entries..hooks.allowPromptInjection`: gdy `false`, rdzeń blokuje `before_prompt_build` i ignoruje pola mutujące prompt ze starszego `before_agent_start`, zachowując starsze `modelOverride` i `providerOverride`. Dotyczy natywnych hooków pluginów i obsługiwanych katalogów hooków dostarczanych przez bund­le. +- `plugins.entries..subagent.allowModelOverride`: jawnie zaufaj temu pluginowi, że może żądać zastąpień `provider` i `model` per uruchomienie dla przebiegów subagentów w tle. +- `plugins.entries..subagent.allowedModels`: opcjonalna lista dozwolonych kanonicznych celów `provider/model` dla zaufanych zastąpień subagentów. Używaj `"*"` tylko wtedy, gdy świadomie chcesz dopuścić dowolny model. +- `plugins.entries..config`: obiekt konfiguracji zdefiniowany przez plugin (walidowany przez natywny schemat pluginu OpenClaw, jeśli jest dostępny). +- `plugins.entries \ No newline at end of file diff --git a/docs/pl/plugins/sdk-migration.md b/docs/pl/plugins/sdk-migration.md index f7ea5dd42..f979ac802 100644 --- a/docs/pl/plugins/sdk-migration.md +++ b/docs/pl/plugins/sdk-migration.md @@ -2,16 +2,16 @@ 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-06T03:10:37Z" + generated_at: "2026-04-06T09:46:39Z" model: gpt-5.4 provider: openai - source_hash: b71ce69b30c3bb02da1b263b1d11dc3214deae5f6fc708515e23b5a1c7bb7c8f + source_hash: 94f12d1376edd8184714cc4dbea4a88fa8ed652f65e9365ede6176f3bf441b33 source_path: plugins/sdk-migration.md workflow: 15 --- @@ -20,25 +20,25 @@ x-i18n: OpenClaw przeszedł od szerokiej warstwy zgodności wstecznej do nowoczesnej architektury pluginów z ukierunkowanymi, udokumentowanymi importami. Jeśli Twój plugin został zbudowany przed -wprowadzeniem nowej architektury, ten przewodnik pomoże Ci przeprowadzić migrację. +nową architekturą, ten przewodnik pomoże Ci przeprowadzić migrację. ## Co się zmienia -Stary system pluginów udostępniał dwie szerokie powierzchnie, które pozwalały pluginom importować +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 re-eksportował dziesiątki - helperów. Został wprowadzony, aby utrzymać działanie starszych pluginów opartych na hookach, 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. +- **`openclaw/plugin-sdk/compat`** — pojedynczy import, który ponownie eksportował dziesiątki + pomocników. Został wprowadzony, aby starsze pluginy oparte na hookach nadal działały podczas budowy + nowej architektury pluginów. +- **`openclaw/extension-api`** — pomost, który dawał pluginom bezpośredni dostęp do + pomocników po stronie hosta, takich jak osadzony runner agenta. -Obie powierzchnie są teraz **przestarzałe**. Nadal działają w runtime, ale nowe -pluginy nie mogą ich używać, a istniejące pluginy powinny przeprowadzić migrację przed kolejnym -dużym wydaniem, które je usunie. +Obie powierzchnie są teraz **przestarzałe**. Nadal działają w czasie działania, ale nowe +pluginy nie mogą z nich korzystać, a istniejące pluginy powinny przeprowadzić migrację przed następnym +głównym wydaniem, które je usunie. - Warstwa zgodności wstecznej zostanie usunięta w jednym z przyszłych dużych wydań. + Warstwa zgodności wstecznej zostanie usunięta w jednym z przyszłych głównych wydań. Pluginy, które nadal importują z tych powierzchni, przestaną działać, gdy to nastąpi. @@ -46,37 +46,37 @@ dużym wydaniem, które je usunie. Stare podejście powodowało problemy: -- **Powolny start** — zaimportowanie jednego helpera ładowało dziesiątki niepowiązanych modułów -- **Zależności cykliczne** — szerokie re-eksporty ułatwiały tworzenie cykli importów -- **Niejasna powierzchnia API** — nie było sposobu, aby rozróżnić, które eksporty są stabilne, a które wewnętrzne +- **Powolne uruchamianie** — zaimportowanie jednego pomocnika wczytywało dziesiątki niepowiązanych modułów +- **Zależności cykliczne** — szerokie ponowne eksporty ułatwiały tworzenie cykli importów +- **Niejasna powierzchnia API** — nie było sposobu, aby określić, które eksporty są stabilne, a które wewnętrzne -Nowoczesne Plugin SDK to naprawia: każda ścieżka importu (`openclaw/plugin-sdk/\`) -jest małym, samodzielnym modułem z jasnym przeznaczeniem i udokumentowanym kontraktem. +Nowoczesny plugin SDK to naprawia: każda ścieżka importu (`openclaw/plugin-sdk/\`) +to mały, samowystarczalny moduł o jasnym przeznaczeniu i udokumentowanym kontrakcie. -Starsze wygodne powierzchnie providerów dla wbudowanych kanałów również zniknęły. Importy +Starsze wygodne warstwy dostawcó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`, -powierzchnie helperów oznaczone marką kanału oraz +pomocnicze warstwy 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 subpath Plugin SDK. Wewnątrz -workspace wbudowanych pluginów trzymaj helpery należące do providera we własnym +stabilnymi kontraktami pluginów. Zamiast tego używaj wąskich, generycznych podścieżek SDK. W obrębie +pakietu roboczego wbudowanych pluginów przechowuj pomocniki należące do dostawcy we własnym `api.ts` lub `runtime-api.ts` tego pluginu. -Bieżące przykłady wbudowanych providerów: +Aktualne przykłady wbudowanych dostawców: -- Anthropic trzyma helpery strumieni specyficzne dla Claude we własnej powierzchni `api.ts` / +- Anthropic przechowuje pomocniki strumieni specyficzne dla Claude we własnej warstwie `api.ts` / `contract-api.ts` -- OpenAI trzyma konstruktory providerów, helpery modeli domyślnych i konstruktory providerów realtime - we własnym `api.ts` -- OpenRouter trzyma konstruktor providera oraz helpery onboardingowe/konfiguracyjne +- OpenAI przechowuje buildery dostawców, pomocniki domyślnych modeli i buildery dostawców realtime we własnym `api.ts` +- OpenRouter przechowuje builder dostawcy oraz pomocniki onboardingu/konfiguracji we własnym + `api.ts` ## Jak przeprowadzić migrację - + Jeśli Twój plugin używa `openclaw/plugin-sdk/windows-spawn`, nierozwiązane wrappery Windows - `.cmd`/`.bat` teraz blokują się domyślnie, chyba że jawnie przekażesz + `.cmd`/`.bat` teraz kończą się bezpieczną odmową, chyba że jawnie przekażesz `allowShellFallback: true`. ```typescript @@ -92,13 +92,13 @@ Bieżące przykłady wbudowanych providerów: }); ``` - Jeśli wywołanie nie polega celowo na fallbacku powłoki, nie ustawiaj - `allowShellFallback`; zamiast tego obsłuż zgłaszany błąd. + Jeśli Twój wywołujący nie polega świadomie na fallbacku powłoki, nie ustawiaj + `allowShellFallback` i zamiast tego obsłuż zgłoszony błąd. - Wyszukaj w swoim pluginie importy z którejkolwiek z przestarzałych powierzchni: + Przeszukaj swój plugin pod kątem importów z którejkolwiek z przestarzałych powierzchni: ```bash grep -r "plugin-sdk/compat" my-plugin/ @@ -124,8 +124,8 @@ Bieżące przykłady wbudowanych providerów: import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth"; ``` - W przypadku helperów po stronie hosta używaj wstrzykniętego runtime pluginu zamiast importować - je bezpośrednio: + W przypadku pomocników po stronie hosta użyj wstrzykniętego runtime pluginu zamiast importować je + bezpośrednio: ```typescript // Before (deprecated extension-api bridge) @@ -136,9 +136,9 @@ Bieżące przykłady wbudowanych providerów: const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt }); ``` - Ten sam wzorzec dotyczy innych starszych helperów mostu: + Ten sam wzorzec dotyczy innych starszych pomocników pomostowych: - | Old import | Modern equivalent | + | Stary import | Nowoczesny odpowiednik | | --- | --- | | `resolveAgentDir` | `api.runtime.agent.resolveAgentDir` | | `resolveAgentWorkspaceDir` | `api.runtime.agent.resolveAgentWorkspaceDir` | @@ -146,7 +146,7 @@ Bieżące przykłady wbudowanych providerów: | `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` | | `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` | | `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` | - | session store helpers | `api.runtime.agent.session.*` | + | pomocniki magazynu sesji | `api.runtime.agent.session.*` | @@ -160,168 +160,176 @@ Bieżące przykłady wbudowanych providerów: ## Dokumentacja ścieżek importu - - | Import path | Purpose | Key exports | + + | Ścieżka importu | Przeznaczenie | Kluczowe eksporty | | --- | --- | --- | - | `plugin-sdk/plugin-entry` | Kanoniczny helper punktu wejścia pluginu | `definePluginEntry` | - | `plugin-sdk/core` | Starszy parasolowy re-eksport definicji/builderów wejścia kanału | `defineChannelPluginEntry`, `createChatChannelPlugin` | + | `plugin-sdk/plugin-entry` | Kanoniczny pomocnik punktu wejścia pluginu | `definePluginEntry` | + | `plugin-sdk/core` | Starszy zbiorczy ponowny eksport 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` | Helper punktu wejścia dla pojedynczego providera | `defineSingleProviderPluginEntry` | - | `plugin-sdk/channel-core` | Ukierunkowane definicje i buildery wejścia kanału | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` | - | `plugin-sdk/setup` | Współdzielone helpery kreatora konfiguracji | Monity allowlisty, buildery stanu konfiguracji | - | `plugin-sdk/setup-runtime` | Helpery runtime na potrzeby konfiguracji | Bezpieczne przy imporcie adaptery patch 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 działań | - | `plugin-sdk/account-id` | Helpery identyfikatora konta | `DEFAULT_ACCOUNT_ID`, normalizacja identyfikatora konta | - | `plugin-sdk/account-resolution` | Helpery wyszukiwania kont | Helpery wyszukiwania kont + domyślnego fallbacku | - | `plugin-sdk/account-helpers` | Wąskie helpery kont | Helpery listy kont/działań na kontach | - | `plugin-sdk/channel-setup` | Adaptery kreatora konfiguracji | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, a także `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | + | `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 allowlisty, buildery statusu konfiguracji | + | `plugin-sdk/setup-runtime` | Pomocniki runtime na etapie konfiguracji | Bezpieczne dla importu adaptery łatek konfiguracji, pomocniki notatek wyszukiwania, `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 wielu kont | Pomocniki listy kont/konfiguracji/bramkowania akcji | + | `plugin-sdk/account-id` | Pomocniki identyfikatora konta | `DEFAULT_ACCOUNT_ID`, normalizacja identyfikatora konta | + | `plugin-sdk/account-resolution` | Pomocniki wyszukiwania konta | Pomocniki wyszukiwania konta + fallbacku domyślnego | + | `plugin-sdk/account-helpers` | Wąskie pomocniki kont | Pomocniki listy kont/akcji na koncie | + | `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` | Obsługa prefiksu odpowiedzi + wpisywania | `createChannelReplyPipeline` | + | `plugin-sdk/channel-reply-pipeline` | Okablowanie prefiksu odpowiedzi + wpisywania | `createChannelReplyPipeline` | | `plugin-sdk/channel-config-helpers` | Fabryki adapterów konfiguracji | `createHybridChannelConfigAdapter` | | `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 zasad grup/DM | `resolveChannelGroupRequireMention` | - | `plugin-sdk/channel-lifecycle` | Śledzenie stanu kont | `createAccountStatusSink` | - | `plugin-sdk/inbound-envelope` | Helpery kopert przychodzących | Współdzielone helpery routingu + buildera kopert | - | `plugin-sdk/inbound-reply-dispatch` | Helpery odpowiedzi przychodzących | Współdzielone helpery rejestrowania i dyspozycji | - | `plugin-sdk/messaging-targets` | Parsowanie celów wiadomości | Helpery parsowania/dopasowywania 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 wiadomości wychodzących | Helpery tożsamości wychodzącej/delegowania wysyłki | - | `plugin-sdk/thread-bindings-runtime` | Helpery powiązań wątków | Cykl życia powiązań wątków i helpery 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łów | + | `plugin-sdk/telegram-command-config` | Pomocniki konfiguracji komend Telegram | Normalizacja nazw komend, przycinanie opisów, walidacja duplikatów/konfliktów | + | `plugin-sdk/channel-policy` | Rozwiązywanie polityki grup/DM | `resolveChannelGroupRequireMention` | + | `plugin-sdk/channel-lifecycle` | Śledzenie statusu konta | `createAccountStatusSink` | + | `plugin-sdk/inbound-envelope` | Pomocniki kopert wejściowych | Współdzielone pomocniki trasy + buildera koperty | + | `plugin-sdk/inbound-reply-dispatch` | Pomocniki odpowiedzi wejściowych | Współdzielone pomocniki zapisu i dyspozycji | + | `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/delegata wysyłki | + | `plugin-sdk/thread-bindings-runtime` | Pomocniki powiązań wątków | Pomocniki cyklu życia powiązań wątków i 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ła warstwa zgodności | Tylko starsze narzędzia runtime kanału | | `plugin-sdk/channel-send-result` | Typy wyniku wysyłki | Typy wyniku odpowiedzi | - | `plugin-sdk/runtime-store` | Trwałe przechowywanie pluginu | `createPluginRuntimeStore` | - | `plugin-sdk/runtime` | Szerokie helpery runtime | Helpery runtime/logowania/kopii zapasowej/instalacji pluginów | - | `plugin-sdk/runtime-env` | Wąskie helpery środowiska runtime | Logger/środowisko runtime, helpery timeout, retry i backoff | - | `plugin-sdk/plugin-runtime` | Współdzielone helpery runtime pluginów | Helpery poleceń/hooków/http/interaktywności pluginów | - | `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ń, oczekiwanie, helpery wersji | - | `plugin-sdk/gateway-runtime` | Helpery gatewaya | Klient gatewaya i helpery patch stanu kanałów | - | `plugin-sdk/config-runtime` | Helpery konfiguracji | Helpery ładowania/zapisu konfiguracji | - | `plugin-sdk/telegram-command-config` | Helpery poleceń Telegram | Stabilne helpery walidacji poleceń Telegram jako fallback, gdy powierzchnia kontraktu wbudowanego Telegram jest niedostępna | - | `plugin-sdk/approval-runtime` | Helpery promptów zatwierdzeń | Payload zatwierdzeń exec/pluginów, helpery możliwości/profilu zatwierdzeń, natywne helpery routingu/runtime zatwierdzeń | - | `plugin-sdk/approval-auth-runtime` | Helpery auth zatwierdzeń | Rozwiązywanie zatwierdzających, auth działań w tym samym czacie | - | `plugin-sdk/approval-client-runtime` | Helpery klienta zatwierdzeń | Helpery profilu/filtrowania natywnych zatwierdzeń exec | - | `plugin-sdk/approval-delivery-runtime` | Helpery dostarczania zatwierdzeń | Natywne adaptery możliwości/dostarczania zatwierdzeń | - | `plugin-sdk/approval-native-runtime` | Helpery celu zatwierdzeń | Helpery celu/powiązania konta dla natywnych zatwierdzeń | - | `plugin-sdk/approval-reply-runtime` | Helpery odpowiedzi zatwierdzeń | Helpery payloadu odpowiedzi zatwierdzeń exec/pluginów | - | `plugin-sdk/security-runtime` | Helpery bezpieczeństwa | Współdzielone helpery zaufania, bramkowania DM, treści zewnętrznej i zbierania sekretów | - | `plugin-sdk/ssrf-policy` | Helpery zasad SSRF | Helpery allowlisty hostów i zasad sieci prywatnych | - | `plugin-sdk/ssrf-runtime` | Helpery runtime SSRF | Pinned-dispatcher, guarded fetch, helpery zasad 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` | Helpery opakowanego fetch/proxy | `resolveFetch`, helpery proxy | - | `plugin-sdk/host-runtime` | Helpery normalizacji hosta | `normalizeHostname`, `normalizeScpRemoteHost` | - | `plugin-sdk/retry-runtime` | Helpery retry | `RetryConfig`, `retryAsync`, uruchamiacze zasad | + | `plugin-sdk/runtime-store` | Trwała pamięć pluginu | `createPluginRuntimeStore` | + | `plugin-sdk/runtime` | Szerokie pomocniki runtime | Pomocniki runtime/logowania/backupu/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 pluginu | Pomocniki komend/hooków/http/interaktywnych pluginu | + | `plugin-sdk/hook-runtime` | Pomocniki pipeline hooków | Współdzielone pomocniki pipeline 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 komend, oczekiwania, pomocniki wersji | + | `plugin-sdk/gateway-runtime` | Pomocniki gateway | Klient gateway i pomocniki łatek statusu kanałów | + | `plugin-sdk/config-runtime` | Pomocniki konfiguracji | Pomocniki wczytywania/zapisu konfiguracji | + | `plugin-sdk/telegram-command-config` | Pomocniki komend Telegram | Pomocniki walidacji komend Telegram stabilne przy fallbacku, gdy powierzchnia kontraktu wbudowanego Telegram jest niedostępna | + | `plugin-sdk/approval-runtime` | Pomocniki promptów akceptacji | Payload akceptacji exec/pluginu, pomocniki możliwości/profilu akceptacji, natywne trasowanie/runtime akceptacji | + | `plugin-sdk/approval-auth-runtime` | Pomocniki autoryzacji akceptacji | Rozwiązywanie osoby zatwierdzającej, autoryzacja działań w tym samym czacie | + | `plugin-sdk/approval-client-runtime` | Pomocniki klienta akceptacji | Pomocniki profilu/filtra natywnej akceptacji exec | + | `plugin-sdk/approval-delivery-runtime` | Pomocniki dostarczania akceptacji | Adaptery możliwości/dostarczania natywnej akceptacji | + | `plugin-sdk/approval-native-runtime` | Pomocniki celu akceptacji | Pomocniki powiązania celu/konta natywnej akceptacji | + | `plugin-sdk/approval-reply-runtime` | Pomocniki odpowiedzi akceptacji | Pomocniki payloadu odpowiedzi akceptacji exec/pluginu | + | `plugin-sdk/security-runtime` | Pomocniki bezpieczeństwa | Współdzielone pomocniki zaufania, bramkowania DM, treści zewnętrznych i zbierania sekretów | + | `plugin-sdk/ssrf-policy` | Pomocniki polityki SSRF | Pomocniki allowlisty hostów i polityki sieci prywatnych | + | `plugin-sdk/ssrf-runtime` | Pomocniki runtime SSRF | Pomocniki przypiętego dispatchera, guarded fetch i 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`, wykonawcy polityk | | `plugin-sdk/allow-from` | Formatowanie allowlisty | `formatAllowFromLowercase` | - | `plugin-sdk/allowlist-resolution` | Mapowanie wejścia allowlisty | `mapAllowlistResolutionInputs` | - | `plugin-sdk/command-auth` | Bramkowanie poleceń i helpery powierzchni poleceń | `resolveControlCommandGate`, helpery autoryzacji nadawcy, helpery rejestru poleceń | - | `plugin-sdk/secret-input` | Parsowanie danych wejściowych sekretów | Helpery danych wejściowych sekretów | - | `plugin-sdk/webhook-ingress` | Helpery żądań webhooków | Narzędzia celu webhooka | - | `plugin-sdk/webhook-request-guards` | Helpery strażników body webhooka | Helpery odczytu/limitu body żądania | - | `plugin-sdk/reply-runtime` | Współdzielony runtime odpowiedzi | Dyspozycja przychodząca, heartbeat, planner odpowiedzi, chunking | - | `plugin-sdk/reply-dispatch-runtime` | Wąskie helpery dyspozycji odpowiedzi | Helpery finalizacji + dyspozycji providera | - | `plugin-sdk/reply-history` | Helpery historii odpowiedzi | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | - | `plugin-sdk/reply-reference` | Planowanie referencji odpowiedzi | `createReplyReferencePlanner` | - | `plugin-sdk/reply-chunking` | Helpery chunków odpowiedzi | Helpery chunkingu tekstu/markdown | - | `plugin-sdk/session-store-runtime` | Helpery magazynu sesji | Helpery ścieżek magazynu + updated-at | - | `plugin-sdk/state-paths` | Helpery ścieżek stanu | Helpery katalogu stanu i OAuth | - | `plugin-sdk/routing` | Helpery routingu/kluczy sesji | `resolveAgentRoute`, `buildAgentSessionKey`, `resolveDefaultAgentBoundAccountId`, helpery normalizacji kluczy sesji | - | `plugin-sdk/status-helpers` | Helpery stanu kanałów | Buildery podsumowania stanu kanału/konta, domyślne wartości runtime-state, helpery metadanych problemów | - | `plugin-sdk/target-resolver-runtime` | Helpery rozwiązywania celów | Współdzielone helpery rozwiązywania celów | - | `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 typu string z wejść podobnych do żądania | - | `plugin-sdk/run-command` | Helpery poleceń z pomiarem czasu | Uruchamianie poleceń z pomiarem czasu i znormalizowanym stdout/stderr | - | `plugin-sdk/param-readers` | Odczyt parametrów | Wspólne czytniki parametrów narzędzi/CLI | - | `plugin-sdk/tool-send` | Wyodrębnianie wysyłki narzędzia | Wyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzia | - | `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/allowlist-resolution` | Mapowanie danych wejściowych allowlisty | `mapAllowlistResolutionInputs` | + | `plugin-sdk/command-auth` | Bramkowanie komend i pomocniki powierzchni komend | `resolveControlCommandGate`, pomocniki autoryzacji nadawcy, pomocniki rejestru komend | + | `plugin-sdk/secret-input` | Parsowanie danych wejściowych sekretów | Pomocniki danych wejściowych sekretów | + | `plugin-sdk/webhook-ingress` | Pomocniki żądań webhooków | Narzędzia celu webhooka | + | `plugin-sdk/webhook-request-guards` | Pomocniki guardów treści webhooków | Pomocniki odczytu/limitu ciała żądania | + | `plugin-sdk/reply-runtime` | Współdzielony runtime odpowiedzi | Dyspozycja wejściowa, heartbeat, planer odpowiedzi, chunking | + | `plugin-sdk/reply-dispatch-runtime` | Wąskie pomocniki dyspozycji odpowiedzi | Pomocniki finalizacji + dyspozycji dostawcy | + | `plugin-sdk/reply-history` | Pomocniki historii odpowiedzi | `buildHistoryContext`, `buildPendingHistoryContextFromMap`, `recordPendingHistoryEntry`, `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/reply-reference` | Planowanie odniesień odpowiedzi | `createReplyReferencePlanner` | + | `plugin-sdk/reply-chunking` | Pomocniki chunków odpowiedzi | Pomocniki chunkingu tekstu/markdown | + | `plugin-sdk/session-store-runtime` | Pomocniki magazynu sesji | Pomocniki ścieżki magazynu i czasu aktualizacji | + | `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 ustawienia stanu runtime, pomocniki metadanych problemów | + | `plugin-sdk/target-resolver-runtime` | Pomocniki rozwiązywania celu | Współdzielone pomocniki resolvera celu | + | `plugin-sdk/string-normalization-runtime` | Pomocniki normalizacji ciągów | Pomocniki normalizacji slugów/ciągów | + | `plugin-sdk/request-url` | Pomocniki URL żądań | Wyodrębnianie URL-i tekstowych z danych wejściowych podobnych do żądania | + | `plugin-sdk/run-command` | Pomocniki komend z limitem czasu | Runner komend z normalizowanym stdout/stderr | + | `plugin-sdk/param-readers` | Odczytywacze parametrów | Typowe odczytywacze parametrów narzędzi/CLI | + | `plugin-sdk/tool-send` | Ekstrakcja wysyłki 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 tymczasowego pobierania | + | `plugin-sdk/logging-core` | Pomocniki logowania | Logger podsystemu i pomocniki redakcji | + | `plugin-sdk/markdown-table-runtime` | Pomocniki tabel markdown | Pomocniki trybu tabel markdown | | `plugin-sdk/reply-payload` | Typy odpowiedzi wiadomości | Typy payloadu odpowiedzi | - | `plugin-sdk/provider-setup` | Kuratorowane helpery konfiguracji providerów lokalnych/self-hosted | Helpery wykrywania/konfiguracji providerów self-hosted | - | `plugin-sdk/self-hosted-provider-setup` | Ukierunkowane helpery konfiguracji providerów self-hosted zgodnych z OpenAI | Te same helpery wykrywania/konfiguracji providerów self-hosted | - | `plugin-sdk/provider-auth-runtime` | Helpery auth providera w runtime | Helpery rozwiązywania klucza 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 auth providera | Standardowy builder wyniku auth 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 auth providera | - | `plugin-sdk/provider-model-shared` | Współdzielone helpery modeli/replay providera | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone buildery zasad replay, helpery endpointów providera oraz helpery normalizacji identyfikatora modelu | - | `plugin-sdk/provider-catalog-shared` | Współdzielone helpery katalogu providera | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-onboard` | Patche onboardingu providera | Helpery konfiguracji onboardingu | - | `plugin-sdk/provider-http` | Helpery HTTP providera | Ogólne helpery HTTP/endpoint/capability providera | - | `plugin-sdk/provider-web-fetch` | Helpery web-fetch providera | Helpery rejestracji/cache providera web-fetch | - | `plugin-sdk/provider-web-search` | Helpery web-search providera | Helpery rejestracji/cache/konfiguracji providera web-search | - | `plugin-sdk/provider-tools` | Helpery zgodności narzędzi/schematów providera | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematu 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 wrapperów strumieni providera | `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-setup` | Kuratorowane pomocniki konfiguracji lokalnego/samohostowanego dostawcy | Pomocniki wykrywania/konfiguracji samohostowanego dostawcy | + | `plugin-sdk/self-hosted-provider-setup` | Ukierunkowane pomocniki konfiguracji samohostowanego dostawcy zgodnego z OpenAI | Te same pomocniki wykrywania/konfiguracji samohostowanego dostawcy | + | `plugin-sdk/provider-auth-runtime` | Pomocniki runtime autoryzacji dostawcy | Pomocniki rozwiązywania klucza API w runtime | + | `plugin-sdk/provider-auth-api-key` | Pomocniki konfiguracji klucza API dostawcy | Pomocniki onboardingu/zapisu profilu klucza API | + | `plugin-sdk/provider-auth-result` | Pomocniki wyniku autoryzacji dostawcy | Standardowy builder wyniku autoryzacji OAuth | + | `plugin-sdk/provider-auth-login` | Pomocniki interaktywnego logowania dostawcy | Współdzielone pomocniki interaktywnego logowania | + | `plugin-sdk/provider-env-vars` | Pomocniki zmiennych środowiskowych dostawcy | Pomocniki wyszukiwania zmiennych środowiskowych autoryzacji dostawcy | + | `plugin-sdk/provider-model-shared` | Współdzielone pomocniki modeli/replay dostawcy | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone buildery polityki replay, pomocniki punktów końcowych dostawcy oraz pomocniki normalizacji identyfikatora modelu | + | `plugin-sdk/provider-catalog-shared` | Współdzielone pomocniki katalogu dostawców | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | + | `plugin-sdk/provider-onboard` | Łatki onboardingu dostawcy | Pomocniki konfiguracji onboardingu | + | `plugin-sdk/provider-http` | Pomocniki HTTP dostawcy | Generyczne pomocniki możliwości HTTP/punktów końcowych dostawcy | + | `plugin-sdk/provider-web-fetch` | Pomocniki web-fetch dostawcy | Pomocniki rejestracji/cache dostawcy web-fetch | + | `plugin-sdk/provider-web-search` | Pomocniki web-search dostawcy | Pomocniki rejestracji/cache/konfiguracji dostawcy web-search | + | `plugin-sdk/provider-tools` | Pomocniki zgodności narzędzi/schematów dostawcy | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematu Gemini + diagnostyka oraz pomocniki zgodności xAI, takie jak `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | + | `plugin-sdk/provider-usage` | Pomocniki użycia dostawcy | `fetchClaudeUsage`, `fetchGeminiUsage`, `fetchGithubCopilotUsage` i inne pomocniki użycia dostawcy | + | `plugin-sdk/provider-stream` | Pomocniki opakowań strumieni dostawcy | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, typy opakowań strumieni oraz współdzielone pomocniki 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 helpery mediów | Helpery pobierania/przekształcania/przechowywania mediów oraz buildery payloadów mediów | - | `plugin-sdk/media-understanding` | Helpery media-understanding | Typy providerów media understanding oraz eksporty helperów obraz/audio dla providerów | - | `plugin-sdk/text-runtime` | Współdzielone helpery tekstu | Usuwanie tekstu widocznego dla asystenta, helpery renderowania/chunkingu/tabel markdown, helpery redakcji, helpery tagów dyrektyw, narzędzia bezpiecznego tekstu i powiązane helpery tekstu/logowania | - | `plugin-sdk/text-chunking` | Helpery chunkingu tekstu | Helper chunkingu tekstu wychodzącego | - | `plugin-sdk/speech` | Helpery speech | Typy providerów speech oraz eksporty helperów dyrektyw, rejestru i walidacji dla providerów | - | `plugin-sdk/speech-core` | Współdzielony rdzeń speech | Typy providerów speech, rejestr, dyrektywy, normalizacja | - | `plugin-sdk/realtime-transcription` | Helpery realtime transcription | Typy providerów i helpery rejestru | - | `plugin-sdk/realtime-voice` | Helpery realtime voice | Typy providerów i helpery rejestru | - | `plugin-sdk/image-generation-core` | Współdzielony rdzeń image generation | Typy image generation, failover, auth i helpery rejestru | - | `plugin-sdk/music-generation` | Helpery music generation | Typy providerów/żądań/wyników music generation | - | `plugin-sdk/music-generation-core` | Współdzielony rdzeń music generation | Typy music generation, helpery failover, wyszukiwanie providera i parsowanie odwołań do modeli | - | `plugin-sdk/video-generation` | Helpery video generation | Typy providerów/żądań/wyników video generation | - | `plugin-sdk/video-generation-core` | Współdzielony rdzeń video generation | Typy video generation, helpery failover, wyszukiwanie providera i parsowanie odwołań do modeli | - | `plugin-sdk/interactive-runtime` | Helpery odpowiedzi interaktywnych | Normalizacja/redukcja payloadów odpowiedzi interaktywnych | - | `plugin-sdk/channel-config-primitives` | Prymitywy konfiguracji kanału | Wąskie prymitywy channel config-schema | - | `plugin-sdk/channel-config-writes` | Helpery zapisu konfiguracji kanału | Helpery autoryzacji zapisu konfiguracji kanału | - | `plugin-sdk/channel-plugin-common` | Wspólne preludium kanału | Eksporty wspólnego preludium pluginów kanałów | - | `plugin-sdk/channel-status` | Helpery stanu kanału | Współdzielone helpery migawki/podsumowania stanu kanału | - | `plugin-sdk/allowlist-config-edit` | Helpery konfiguracji allowlisty | Helpery edycji/odczytu konfiguracji allowlisty | - | `plugin-sdk/group-access` | Helpery dostępu do grup | Współdzielone helpery decyzji dostępu do grup | - | `plugin-sdk/direct-dm` | Helpery direct-DM | Współdzielone helpery auth/guard direct-DM | - | `plugin-sdk/extension-shared` | Współdzielone helpery rozszerzeń | Prymitywy helperów kanałów pasywnych/stanu | - | `plugin-sdk/webhook-targets` | Helpery celów webhooków | Rejestr celów webhooków i helpery instalacji tras | - | `plugin-sdk/webhook-path` | Helpery ścieżek webhooków | Helpery normalizacji ścieżek webhooków | - | `plugin-sdk/web-media` | Współdzielone helpery web media | Helpery ładowania mediów zdalnych/lokalnych | - | `plugin-sdk/zod` | Re-eksport Zod | Re-eksportowane `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/media-runtime` | Współdzielone pomocniki mediów | Pomocniki pobierania/transformacji/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 brakującym modelu dla generowania obrazów/wideo/muzyki | + | `plugin-sdk/media-understanding` | Pomocniki rozumienia mediów | Typy dostawców rozumienia mediów oraz eksporty pomocników obrazów/audio skierowane do dostawców | + | `plugin-sdk/text-runtime` | Współdzielone pomocniki tekstowe | Usuwanie tekstu widocznego dla asystenta, pomocniki renderowania/chunkingu/tabel markdown, pomocniki redakcji, pomocniki tagów dyrektyw, narzędzia bezpiecznego tekstu oraz powiązane pomocniki tekstu/logowania | + | `plugin-sdk/text-chunking` | Pomocniki chunkingu tekstu | Pomocnik chunkingu tekstu wychodzącego | + | `plugin-sdk/speech` | Pomocniki mowy | Typy dostawców mowy oraz eksporty pomocników dyrektyw, rejestru i walidacji skierowane do dostawców | + | `plugin-sdk/speech-core` | Współdzielony rdzeń mowy | Typy dostawców mowy, 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, autoryzacji i rejestru generowania obrazów | + | `plugin-sdk/music-generation` | Pomocniki generowania muzyki | Typy dostawcy/żądania/wyniku generowania muzyki | + | `plugin-sdk/music-generation-core` | Współdzielony rdzeń generowania muzyki | Typy generowania muzyki, pomocniki failover, wyszukiwanie dostawcy i parsowanie model-ref | + | `plugin-sdk/video-generation` | Pomocniki generowania wideo | Typy dostawcy/żądania/wyniku generowania wideo | + | `plugin-sdk/video-generation-core` | Współdzielony rdzeń generowania wideo | Typy generowania wideo, pomocniki failover, wyszukiwanie dostawcy i parsowanie model-ref | + | `plugin-sdk/interactive-runtime` | Pomocniki odpowiedzi interaktywnych | Normalizacja/redukcja payloadu odpowiedzi interaktywnych | + | `plugin-sdk/channel-config-primitives` | Prymitywy konfiguracji kanału | Wąskie prymitywy schema konfiguracji kanału | + | `plugin-sdk/channel-config-writes` | Pomocniki zapisu konfiguracji kanału | Pomocniki autoryzacji zapisu konfiguracji kanału | + | `plugin-sdk/channel-plugin-common` | Współdzielone preludium kanału | Eksporty współdzielonego 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 allowlisty | Pomocniki edycji/odczytu konfiguracji allowlisty | + | `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 autoryzacji/guardów bezpośrednich DM | + | `plugin-sdk/extension-shared` | Współdzielone pomocniki rozszerzeń | Prymitywy pomocników pasywnego kanału/statusu | + | `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` | Ponowny eksport Zod | Ponownie eksportowany `zod` dla konsumentów plugin SDK | + | `plugin-sdk/memory-core` | Wbudowane pomocniki memory-core | Powierzchnia pomocników memory manager/config/file/CLI | + | `plugin-sdk/memory-core-engine-runtime` | Fasada runtime silnika pamięci | Fasada runtime indeksowania/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 storage hosta pamięci | Eksporty silnika storage hosta pamięci | - | `plugin-sdk/memory-core-host-multimodal` | Helpery multimodalne hosta pamięci | Helpery multimodalne 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-status` | Helpery stanu hosta pamięci | Helpery stanu 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-lancedb` | Helpery wbudowanego memory-lancedb | Powierzchnia helperów memory-lancedb | - | `plugin-sdk/testing` | Narzędzia testowe | Helpery testowe i mocki | + | `plugin-sdk/memory-core-host-multimodal` | Pomocniki multimodalne hosta pamięci | Pomocniki multimodalne 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 rdzenia hosta pamięci | Pomocniki runtime rdzenia 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 rdzenia hosta pamięci | Neutralny względem dostawcy alias dla pomocników runtime rdzenia hosta pamięci | + | `plugin-sdk/memory-host-events` | Alias dziennika zdarzeń hosta pamięci | Neutralny względem dostawcy alias dla pomocników dziennika zdarzeń hosta pamięci | + | `plugin-sdk/memory-host-files` | Alias plików/runtime hosta pamięci | Neutralny względem dostawcy alias dla 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 wyszukiwania aktywnej pamięci | Leniwa fasada runtime search-manager aktywnej pamięci | + | `plugin-sdk/memory-host-status` | Alias statusu hosta pamięci | Neutralny względem dostawcy alias dla pomocników statusu hosta pamięci | + | `plugin-sdk/memory-lancedb` | Wbudowane pomocniki memory-lancedb | Powierzchnia pomocników memory-lancedb | + | `plugin-sdk/testing` | Narzędzia testowe | Pomocniki testowe i mocki | -Ta tabela celowo obejmuje wspólny podzbiór migracyjny, a nie pełną -powierzchnię SDK. Pełna lista ponad 200 punktów wejścia znajduje się w +Ta tabela celowo obejmuje 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 powierzchnie helperów wbudowanych pluginów, takie jak +Ta lista nadal zawiera niektóre pomocnicze warstwy 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ą eksportowane na potrzeby -utrzymania i zgodności wbudowanych pluginów, ale celowo -pominięto je we wspólnej tabeli migracji i nie są zalecanym celem dla +`plugin-sdk/zalo-setup` i `plugin-sdk/matrix*`. Nadal są one eksportowane na potrzeby +utrzymania i zgodności wbudowanych pluginów, ale zostały celowo +pominięte w typowej tabeli migracyjnej i nie są zalecanym celem dla nowego kodu pluginów. -Ta sama zasada dotyczy innych rodzin helperów wbudowanych, takich jak: +Ta sama zasada dotyczy innych rodzin wbudowanych pomocników, takich jak: -- 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` +- pomocniki 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*` -- powierzchnie helperów/wbudowanych pluginów, takie jak `plugin-sdk/googlechat`, +- wbudowane powierzchnie pomocnikó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`, @@ -331,21 +339,21 @@ Ta sama zasada dotyczy innych rodzin helperów wbudowanych, takich jak: `plugin-sdk/thread-ownership` i `plugin-sdk/voice-call` `plugin-sdk/github-copilot-token` obecnie udostępnia wąską -powierzchnię helperów tokena: `DEFAULT_COPILOT_API_BASE_URL`, -`deriveCopilotApiBaseUrlFromToken` oraz `resolveCopilotApiToken`. +powierzchnię pomocników tokenów `DEFAULT_COPILOT_API_BASE_URL`, +`deriveCopilotApiBaseUrlFromToken` i `resolveCopilotApiToken`. Używaj najwęższego importu pasującego do zadania. Jeśli nie możesz znaleźć eksportu, sprawdź źródło w `src/plugin-sdk/` lub zapytaj na Discord. ## Harmonogram usunięcia -| When | What happens | -| ---------------------- | ----------------------------------------------------------------------- | -| **Now** | Przestarzałe powierzchnie emitują ostrzeżenia runtime | -| **Next major release** | Przestarzałe powierzchnie zostaną usunięte; pluginy nadal ich używające przestaną działać | +| Kiedy | Co się dzieje | +| ---------------------- | --------------------------------------------------------------------- | +| **Teraz** | Przestarzałe powierzchnie emitują ostrzeżenia w runtime | +| **Następne główne wydanie** | Przestarzałe powierzchnie zostaną usunięte; pluginy, które nadal z nich korzystają, przestaną działać | Wszystkie pluginy core zostały już zmigrowane. Zewnętrzne pluginy powinny przeprowadzić migrację -przed następnym dużym wydaniem. +przed następnym głównym wydaniem. ## Tymczasowe wyciszenie ostrzeżeń @@ -361,8 +369,8 @@ To tymczasowa furtka awaryjna, a nie trwałe rozwiązanie. ## Powiązane - [Pierwsze kroki](/pl/plugins/building-plugins) — zbuduj swój pierwszy plugin -- [Przegląd SDK](/pl/plugins/sdk-overview) — pełna dokumentacja importów subpath +- [Przegląd SDK](/pl/plugins/sdk-overview) — pełna dokumentacja 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 +- [Pluginy dostawców](/pl/plugins/sdk-provider-plugins) — tworzenie pluginów dostawców - [Wnętrze pluginów](/pl/plugins/architecture) — szczegółowe omówienie architektury - [Manifest pluginu](/pl/plugins/manifest) — dokumentacja schematu manifestu diff --git a/docs/pl/plugins/sdk-overview.md b/docs/pl/plugins/sdk-overview.md index 1e537c61f..360b767f5 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 + - Musisz wiedzieć, z której podścieżki SDK importować + - Chcesz znaleźć dokumentację 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-06T03:11:37Z" + generated_at: "2026-04-06T09:46:50Z" model: gpt-5.4 provider: openai - source_hash: d801641f26f39dc21490d2a69a337ff1affb147141360916b8b58a267e9f822a + source_hash: acd2887ef52c66b2f234858d812bb04197ecd0bfb3e4f7bf3622f8fdc765acad source_path: plugins/sdk-overview.md workflow: 15 --- @@ -18,323 +18,336 @@ 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) - Plugin kanału? Zobacz [Pluginy kanałów](/pl/plugins/sdk-channel-plugins) - - Plugin providera? Zobacz [Pluginy providerów](/pl/plugins/sdk-provider-plugins) + - Plugin dostawcy? Zobacz [Pluginy dostawców](/pl/plugins/sdk-provider-plugins) ## Konwencja importu -Zawsze importuj z konkretnej ścieżki podrzędnej: +Zawsze importuj z konkretnej podścieżki: ```typescript 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 start jest szybki i -zapobiega to problemom z zależnościami cyklicznymi. W przypadku pomocników wejścia/builda specyficznych dla kanału -preferuj `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` zachowaj dla -szerszej powierzchni zbiorczej i współdzielonych helperów, takich jak +Każda podścieżka jest małym, samowystarczalnym modułem. Dzięki temu uruchamianie +pozostaje szybkie i unika się problemów z zależnościami cyklicznymi. W przypadku +pomocników budowania/punktów wejścia specyficznych dla kanałów preferuj +`openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` zachowaj dla +szerszej powierzchni parasolowej i współdzielonych pomocników, takich jak `buildChannelConfigSchema`. -Nie dodawaj ani nie polegaj na wygodnych warstwach nazwanych od providerów, takich jak -`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`, -`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp` ani -warstwach helperów oznaczonych marką kanału. Bundled plugins powinny składać generyczne -ścieżki podrzędne SDK we własnych barrelach `api.ts` lub `runtime-api.ts`, a rdzeń -powinien albo używać tych lokalnych barreli pluginu, albo dodać wąski generyczny kontrakt SDK, -gdy potrzeba jest rzeczywiście międzykanałowa. +Nie dodawaj ani nie polegaj na wygodnych interfejsach nazwanych od dostawców, +takich jak `openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`, +`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, ani na +pomocniczych interfejsach oznaczonych marką kanału. Bundled plugins powinny +składać generyczne podścieżki 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 generyczny kontrakt SDK, gdy potrzeba faktycznie dotyczy wielu +kanałów. -Wygenerowana mapa eksportów nadal zawiera niewielki zestaw warstw helperów bundled plugins, -takich jak `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, +Wygenerowana mapa eksportów nadal zawiera mały zestaw pomocniczych interfejsów +dla bundled plugins, 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 bundled plugins i zgodności; są -celowo pominięte w typowej tabeli poniżej i nie są zalecaną ścieżką -importu dla nowych pluginów zewnętrznych. +podścieżki istnieją wyłącznie na potrzeby utrzymania bundled plugins i +zgodności; 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 podścieżek -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`. +Najczęściej używane podścieżki pogrupowane według przeznaczenia. Wygenerowana +pełna lista ponad 200 podścieżek znajduje się w `scripts/lib/plugin-sdk-entrypoints.json`. -Zarezerwowane ścieżki helperów bundled plugins nadal pojawiają się w tej wygenerowanej liście. -Traktuj je jako szczegół implementacyjny/powierzchnie zgodności, chyba że strona dokumentacji -jawnie promuje którąś z nich jako publiczną. +Zastrzeżone pomocnicze podścieżki bundled plugins nadal pojawiają się na tej +wygenerowanej liście. Traktuj je jako szczegóły implementacyjne lub powierzchnie +zgodności, chyba że jakaś strona dokumentacji wyraźnie promuje daną z nich jako +publiczną. -### Wejście pluginu +### Punkt wejścia pluginu -| Ścieżka podrzędna | Kluczowe eksporty | -| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| `plugin-sdk/plugin-entry` | `definePluginEntry` | -| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` | -| `plugin-sdk/config-schema` | `OpenClawSchema` | +| Podścieżka | 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` | - - | Ścieżka podrzędna | Kluczowe eksporty | + + | Podścieżka | 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`, a także `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` | - | `plugin-sdk/setup` | Współdzielone helpery kreatora konfiguracji, prompty list dozwolonych, konstruktory statusu konfiguracji | + | `plugin-sdk/setup` | Współdzielone pomocniki kreatora konfiguracji, prompty list dozwolonych i konstruktory 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 i action-gate dla wielu kont oraz helpery fallbacku do konta domyślnego | - | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, helpery normalizacji account-id | - | `plugin-sdk/account-resolution` | Wyszukiwanie konta + helpery fallbacku do wartości domyślnej | - | `plugin-sdk/account-helpers` | Wąskie helpery list kont/działań na kontach | + | `plugin-sdk/account-core` | Pomocniki konfiguracji wielukontowej/bramek akcji oraz pomocniki domyślnego konta awaryjnego | + | `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, pomocniki normalizacji identyfikatora konta | + | `plugin-sdk/account-resolution` | Wyszukiwanie konta + pomocniki domyślnego fallbacku | + | `plugin-sdk/account-helpers` | Wąskie pomocniki list akcji konta i działań na koncie | | `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 poleceń niestandardowych Telegram z fallbackiem do bundled contract | + | `plugin-sdk/telegram-command-config` | Pomocniki normalizacji/walidacji niestandardowych komend Telegram z fallbackiem kontraktu bundled | | `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` | | `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` | - | `plugin-sdk/inbound-envelope` | Współdzielone helpery tras przychodzących + budowania envelope | - | `plugin-sdk/inbound-reply-dispatch` | Współdzielone helpery rejestrowania i dispatchu danych przychodzących | - | `plugin-sdk/messaging-targets` | Helpery parsowania/dopasowywania targetów | - | `plugin-sdk/outbound-media` | Współdzielone helpery ładowania mediów wychodzących | - | `plugin-sdk/outbound-runtime` | Helpery tożsamości wychodzącej/delegatów wysyłania | - | `plugin-sdk/thread-bindings-runtime` | Helpery cyklu życia thread-binding i adapterów | - | `plugin-sdk/agent-media-payload` | Starszy konstruktor payloadu mediów agenta | - | `plugin-sdk/conversation-runtime` | Helpery conversation/thread binding, pairingu i configured-binding | - | `plugin-sdk/runtime-config-snapshot` | Helper snapshotu konfiguracji runtime | - | `plugin-sdk/runtime-group-policy` | Helpery rozwiązywania polityki grup w runtime | - | `plugin-sdk/channel-status` | Współdzielone helpery snapshotu/podsumowania statusu kanału | + | `plugin-sdk/inbound-envelope` | Współdzielone pomocniki routingu przychodzącego + konstruktora koperty | + | `plugin-sdk/inbound-reply-dispatch` | Współdzielone pomocniki zapisu i wysyłki dla wiadomości przychodzących | + | `plugin-sdk/messaging-targets` | Pomocniki parsowania/dopasowywania celów | + | `plugin-sdk/outbound-media` | Współdzielone pomocniki ładowania mediów wychodzących | + | `plugin-sdk/outbound-runtime` | Pomocniki tożsamości wychodzącej i delegatów wysyłania | + | `plugin-sdk/thread-bindings-runtime` | Pomocniki cyklu życia i adapterów wiązań wątków | + | `plugin-sdk/agent-media-payload` | Starszy konstruktor ładunku mediów agenta | + | `plugin-sdk/conversation-runtime` | Pomocniki wiązania konwersacji/wątków, parowania i skonfigurowanych wiązań | + | `plugin-sdk/runtime-config-snapshot` | Pomocnik migawki konfiguracji runtime | + | `plugin-sdk/runtime-group-policy` | Pomocniki rozstrzygania polityki grup runtime | + | `plugin-sdk/channel-status` | Współdzielone pomocniki migawki/podsumowania statusu kanału | | `plugin-sdk/channel-config-primitives` | Wąskie prymitywy schematu konfiguracji kanału | - | `plugin-sdk/channel-config-writes` | Helpery autoryzacji zapisu konfiguracji kanału | - | `plugin-sdk/channel-plugin-common` | Współdzielone eksporty prelude dla pluginów kanałów | - | `plugin-sdk/allowlist-config-edit` | Helpery edycji/odczytu konfiguracji list dozwolonych | - | `plugin-sdk/group-access` | Współdzielone helpery decyzji dostępu do grup | - | `plugin-sdk/direct-dm` | Współdzielone helpery auth/guard dla bezpośrednich DM | - | `plugin-sdk/interactive-runtime` | Helpery normalizacji/redukcji payloadów odpowiedzi interaktywnych | - | `plugin-sdk/channel-inbound` | Helpery debounce, dopasowywania wzmianek i envelope | - | `plugin-sdk/channel-send-result` | Typy wyniku odpowiedzi | + | `plugin-sdk/channel-config-writes` | Pomocniki autoryzacji zapisu konfiguracji kanału | + | `plugin-sdk/channel-plugin-common` | Współdzielone eksporty preludium pluginów kanałów | + | `plugin-sdk/allowlist-config-edit` | Pomocniki odczytu/edycji konfiguracji listy dozwolonych | + | `plugin-sdk/group-access` | Współdzielone pomocniki decyzji dostępu grupowego | + | `plugin-sdk/direct-dm` | Współdzielone pomocniki autoryzacji/ochrony dla bezpośrednich DM | + | `plugin-sdk/interactive-runtime` | Pomocniki normalizacji/redukcji ładunków interaktywnych odpowiedzi | + | `plugin-sdk/channel-inbound` | Debounce, dopasowywanie wzmianek, pomocniki kopert | + | `plugin-sdk/channel-send-result` | Typy wyników odpowiedzi | | `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` | - | `plugin-sdk/channel-targets` | Helpery parsowania/dopasowywania targetów | + | `plugin-sdk/channel-targets` | Pomocniki parsowania/dopasowywania celów | | `plugin-sdk/channel-contract` | Typy kontraktu kanału | - | `plugin-sdk/channel-feedback` | Integracja feedbacku/reakcji | + | `plugin-sdk/channel-feedback` | Okablowanie opinii/reakcji | - - | Ścieżka podrzędna | Kluczowe eksporty | + + | Podścieżka | Kluczowe eksporty | | --- | --- | | `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` | - | `plugin-sdk/provider-setup` | Kuratorowane helpery konfiguracji providerów lokalnych/self-hosted | - | `plugin-sdk/self-hosted-provider-setup` | Skupione helpery konfiguracji self-hosted providerów zgodnych z OpenAI | - | `plugin-sdk/provider-auth-runtime` | Helpery rozwiązywania kluczy API w runtime dla pluginów providerów | - | `plugin-sdk/provider-auth-api-key` | Helpery onboardingu/zapisu profilu dla klucza API | - | `plugin-sdk/provider-auth-result` | Standardowy konstruktor wyniku auth OAuth | - | `plugin-sdk/provider-auth-login` | Współdzielone helpery interaktywnego logowania dla pluginów providerów | - | `plugin-sdk/provider-env-vars` | Helpery wyszukiwania zmiennych env auth providera | + | `plugin-sdk/provider-setup` | Kuratorowane pomocniki konfiguracji lokalnych/self-hosted dostawców | + | `plugin-sdk/self-hosted-provider-setup` | Ukierunkowane pomocniki konfiguracji self-hosted dostawców zgodnych z OpenAI | + | `plugin-sdk/provider-auth-runtime` | Pomocniki rozstrzygania kluczy API w runtime dla pluginów dostawców | + | `plugin-sdk/provider-auth-api-key` | Pomocniki onboardingu kluczy API/zapisu profilu | + | `plugin-sdk/provider-auth-result` | Standardowy konstruktor wyniku autoryzacji OAuth | + | `plugin-sdk/provider-auth-login` | Współdzielone pomocniki interaktywnego logowania dla pluginów dostawców | + | `plugin-sdk/provider-env-vars` | Pomocniki wyszukiwania zmiennych środowiskowych autoryzacji dostawców | | `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile` | - | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone konstruktory polityki replay, helpery endpointów providerów i helpery normalizacji model-id, takie jak `normalizeNativeXaiModelId` | + | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, współdzielone konstruktory polityk replay, pomocniki endpointów dostawców oraz pomocniki normalizacji identyfikatorów modeli, takie jak `normalizeNativeXaiModelId` | | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-http` | Generyczne helpery HTTP/endpoints/capabilities providera | - | `plugin-sdk/provider-web-fetch` | Helpery rejestracji/cache konfiguracji web-fetch providerów | - | `plugin-sdk/provider-web-search` | Helpery rejestracji/cache/config dla provideró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-http` | Generyczne pomocniki możliwości HTTP/endpointów dostawców | + | `plugin-sdk/provider-web-fetch` | Pomocniki rejestracji/cache dostawców pobierania z internetu | + | `plugin-sdk/provider-web-search` | Pomocniki rejestracji/cache/konfiguracji dostawców wyszukiwania w internecie | + | `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, czyszczenie schematów Gemini + diagnostyka oraz pomocniki zgodności xAI, takie jak `resolveXaiModelCompatPatch` / `applyXaiModelCompat` | | `plugin-sdk/provider-usage` | `fetchClaudeUsage` i podobne | - | `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, typy opakowań strumieni i współdzielone helpery opakowań Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot | - | `plugin-sdk/provider-onboard` | Helpery poprawek konfiguracji onboardingu | - | `plugin-sdk/global-singleton` | Pomocniki singletonów/map/cache lokalnych dla procesu | + | `plugin-sdk/provider-stream` | `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/provider-onboard` | Pomocniki łatania konfiguracji onboardingu | + | `plugin-sdk/global-singleton` | Pomocniki lokalnych dla procesu singletonów/map/cache | - - | Ścieżka podrzędna | Kluczowe eksporty | + + | Podścieżka | Kluczowe eksporty | | --- | --- | - | `plugin-sdk/command-auth` | `resolveControlCommandGate`, helpery rejestru poleceń, helpery autoryzacji nadawcy | - | `plugin-sdk/approval-auth-runtime` | Helpery rozwiązywania approvera i auth działań w tym samym czacie | - | `plugin-sdk/approval-client-runtime` | Helpery profilu/filtra natywnych zgód na exec | - | `plugin-sdk/approval-delivery-runtime` | Adaptery możliwości/dostarczania natywnych zgód | - | `plugin-sdk/approval-native-runtime` | Helpery targetów natywnych zgód + account-binding | - | `plugin-sdk/approval-reply-runtime` | Helpery payloadów odpowiedzi dla zgód exec/plugin | - | `plugin-sdk/command-auth-native` | Natywne helpery auth poleceń + helpery natywnego session-target | - | `plugin-sdk/command-detection` | Współdzielone helpery wykrywania poleceń | - | `plugin-sdk/command-surface` | Normalizacja treści poleceń i helpery command-surface | + | `plugin-sdk/command-auth` | `resolveControlCommandGate`, pomocniki rejestru komend, pomocniki autoryzacji nadawcy | + | `plugin-sdk/approval-auth-runtime` | Pomocniki rozstrzygania zatwierdzających i autoryzacji działań w tym samym czacie | + | `plugin-sdk/approval-client-runtime` | Pomocniki natywnego wykonania dla profili/filtrów zatwierdzania | + | `plugin-sdk/approval-delivery-runtime` | Adaptery możliwości/dostarczania natywnego zatwierdzania | + | `plugin-sdk/approval-native-runtime` | Pomocniki celu natywnego zatwierdzania + wiązania kont | + | `plugin-sdk/approval-reply-runtime` | Pomocniki ładunków odpowiedzi zatwierdzania exec/plugin | + | `plugin-sdk/command-auth-native` | Natywna autoryzacja komend + pomocniki natywnego celu sesji | + | `plugin-sdk/command-detection` | Współdzielone pomocniki wykrywania komend | + | `plugin-sdk/command-surface` | Pomocniki normalizacji treści komend i powierzchni komend | | `plugin-sdk/allow-from` | `formatAllowFromLowercase` | - | `plugin-sdk/security-runtime` | Współdzielone helpery zaufania, bramkowania DM, treści zewnętrznych i zbierania sekretów | - | `plugin-sdk/ssrf-policy` | Helpery polityki SSRF dla listy dozwolonych hostów i sieci prywatnych | - | `plugin-sdk/ssrf-runtime` | Helpery pinned-dispatcher, fetch z ochroną SSRF i polityki SSRF | - | `plugin-sdk/secret-input` | Helpery parsowania wejścia sekretów | - | `plugin-sdk/webhook-ingress` | Helpery żądań/targetów webhooków | - | `plugin-sdk/webhook-request-guards` | Helpery rozmiaru body/timeoutu żądań | + | `plugin-sdk/security-runtime` | Współdzielone pomocniki zaufania, bramkowania DM, zewnętrznych treści i zbierania sekretów | + | `plugin-sdk/ssrf-policy` | Pomocniki allowlist hostów i polityki SSRF dla sieci prywatnych | + | `plugin-sdk/ssrf-runtime` | Pomocniki przypiętego dispatchera, fetch chronionego przed SSRF i polityki SSRF | + | `plugin-sdk/secret-input` | Pomocniki parsowania wejść sekretów | + | `plugin-sdk/webhook-ingress` | Pomocniki żądań/docelowych webhooków | + | `plugin-sdk/webhook-request-guards` | Pomocniki limitu rozmiaru treści i limitu czasu żądań | - - | Ścieżka podrzędna | Kluczowe eksporty | + + | Podścieżka | Kluczowe eksporty | | --- | --- | - | `plugin-sdk/runtime` | Szerokie helpery runtime/logowania/backupu/instalacji pluginów | - | `plugin-sdk/runtime-env` | Wąskie helpery env runtime, loggera, timeoutu, retry i backoff | + | `plugin-sdk/runtime` | Szeroka powierzchnia pomocników runtime/logowania/kopii zapasowych/instalacji pluginów | + | `plugin-sdk/runtime-env` | Wąskie pomocniki środowiska runtime, loggera, timeoutów, ponowień i backoffu | | `plugin-sdk/runtime-store` | `createPluginRuntimeStore` | - | `plugin-sdk/plugin-runtime` | Współdzielone helpery poleceń/hooków/http/interakcji pluginów | - | `plugin-sdk/hook-runtime` | Współdzielone helpery pipeline webhooków i hooków wewnętrznych | - | `plugin-sdk/lazy-runtime` | Helpery leniwego importu/bindings runtime, 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/config-runtime` | Helpery ładowania/zapisu konfiguracji | - | `plugin-sdk/telegram-command-config` | Helpery normalizacji nazw/opisów poleceń Telegram oraz sprawdzania duplikatów/konfliktów, nawet gdy powierzchnia bundled Telegram contract jest niedostępna | - | `plugin-sdk/approval-runtime` | Helpery zgód exec/plugin, konstruktory możliwości zgód, helpery auth/profili, helpery natywnego routingu/runtime | - | `plugin-sdk/reply-runtime` | Współdzielone helpery runtime przychodzących/odpowiedzi, chunking, dispatch, heartbeat, planner odpowiedzi | - | `plugin-sdk/reply-dispatch-runtime` | Wąskie helpery dispatchu/finalizacji odpowiedzi | - | `plugin-sdk/reply-history` | Współdzielone helpery krótkookresowej historii odpowiedzi, takie jak `buildHistoryContext`, `recordPendingHistoryEntry` i `clearHistoryEntriesIfEnabled` | + | `plugin-sdk/plugin-runtime` | Współdzielone pomocniki komend/hooków/http/interakcji pluginów | + | `plugin-sdk/hook-runtime` | Współdzielone pomocniki pipeline webhooków i hooków wewnętrznych | + | `plugin-sdk/lazy-runtime` | Pomocniki leniwego importu/powiązań runtime, takie jak `createLazyRuntimeModule`, `createLazyRuntimeMethod` i `createLazyRuntimeSurface` | + | `plugin-sdk/process-runtime` | Pomocniki uruchamiania procesów | + | `plugin-sdk/cli-runtime` | Pomocniki formatowania CLI, oczekiwania i wersji | + | `plugin-sdk/gateway-runtime` | Pomocniki klienta Gateway i łatania statusu kanału | + | `plugin-sdk/config-runtime` | Pomocniki ładowania/zapisu konfiguracji | + | `plugin-sdk/telegram-command-config` | Normalizacja nazw/opisów komend Telegram oraz wykrywanie duplikatów/konfliktów, nawet gdy powierzchnia kontraktu bundled Telegram jest niedostępna | + | `plugin-sdk/approval-runtime` | Pomocniki zatwierdzania exec/plugin, konstruktory możliwości zatwierdzania, pomocniki auth/profili, pomocniki natywnego routingu/runtime | + | `plugin-sdk/reply-runtime` | Współdzielone pomocniki runtime dla wiadomości przychodzących/odpowiedzi, chunking, dispatch, heartbeat, planer odpowiedzi | + | `plugin-sdk/reply-dispatch-runtime` | Wąskie pomocniki dispatch/finalizacji odpowiedzi | + | `plugin-sdk/reply-history` | Współdzielone pomocniki krótkookresowej historii odpowiedzi, 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/state-paths` | Helpery ścieżek katalogów stanu/OAuth | - | `plugin-sdk/routing` | Helpery route/session-key/account-binding, takie jak `resolveAgentRoute`, `buildAgentSessionKey` i `resolveDefaultAgentBoundAccountId` | - | `plugin-sdk/status-helpers` | Współdzielone helpery podsumowania statusu kanału/konta, wartości domyślne stanu runtime i helpery metadanych problemów | - | `plugin-sdk/target-resolver-runtime` | Współdzielone helpery rozwiązywania targetów | - | `plugin-sdk/string-normalization-runtime` | Helpery normalizacji slug/string | - | `plugin-sdk/request-url` | Wyodrębnianie stringowych URL z wejść podobnych do fetch/request | - | `plugin-sdk/run-command` | Uruchamianie poleceń z limitem czasu i znormalizowanymi wynikami stdout/stderr | - | `plugin-sdk/param-readers` | Wspólni czytelnicy parametrów dla narzędzi/CLI | - | `plugin-sdk/tool-send` | Wyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzia | - | `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` | Re-entrant helpery blokady pliku | - | `plugin-sdk/persistent-dedupe` | Helpery cache deduplikacji opartego na dysku | - | `plugin-sdk/acp-runtime` | Helpery runtime/sesji ACP i dispatchu odpowiedzi | + | `plugin-sdk/reply-chunking` | Wąskie pomocniki chunkingu tekstu/Markdown | + | `plugin-sdk/session-store-runtime` | Pomocniki ścieżek magazynu sesji + `updated-at` | + | `plugin-sdk/state-paths` | Pomocniki ścieżek katalogów stanu/OAuth | + | `plugin-sdk/routing` | Pomocniki wiązania trasy/klucza sesji/konta, takie jak `resolveAgentRoute`, `buildAgentSessionKey` i `resolveDefaultAgentBoundAccountId` | + | `plugin-sdk/status-helpers` | Współdzielone pomocniki podsumowania statusu kanału/konta, domyślne stany runtime i pomocniki metadanych problemów | + | `plugin-sdk/target-resolver-runtime` | Współdzielone pomocniki rozstrzygania celu | + | `plugin-sdk/string-normalization-runtime` | Pomocniki normalizacji slugów/ciągów znaków | + | `plugin-sdk/request-url` | Wyodrębnianie URL-i tekstowych z wejść typu fetch/request | + | `plugin-sdk/run-command` | Uruchamianie komend z limitem czasu i znormalizowanymi wynikami stdout/stderr | + | `plugin-sdk/param-readers` | Typowe czytniki parametrów narzędzi/CLI | + | `plugin-sdk/tool-send` | Wyodrębnianie kanonicznych pól celu wysyłki z argumentów narzędzi | + | `plugin-sdk/temp-path` | Współdzielone pomocniki ścieżek tymczasowego pobierania | + | `plugin-sdk/logging-core` | Logger podsystemu i pomocniki redakcji | + | `plugin-sdk/markdown-table-runtime` | Pomocniki trybu tabel Markdown | + | `plugin-sdk/json-store` | Małe pomocniki odczytu/zapisu stanu JSON | + | `plugin-sdk/file-lock` | Pomocniki reentrantnych blokad plików | + | `plugin-sdk/persistent-dedupe` | Pomocniki cache deduplikacji na dysku | + | `plugin-sdk/acp-runtime` | Pomocniki ACP runtime/sesji i dispatchu odpowiedzi | | `plugin-sdk/agent-config-primitives` | Wąskie prymitywy schematu konfiguracji runtime agenta | - | `plugin-sdk/boolean-param` | Tolerancyjny czytnik parametrów boolean | - | `plugin-sdk/dangerous-name-runtime` | Helpery rozwiązywania dopasowań niebezpiecznych nazw | - | `plugin-sdk/device-bootstrap` | Helpery bootstrapu urządzeń i tokenów pairingu | - | `plugin-sdk/extension-shared` | Współdzielone prymitywy helperów kanałów pasywnych i statusu | - | `plugin-sdk/models-provider-runtime` | Helpery odpowiedzi polecenia `/models`/providerów | - | `plugin-sdk/skill-commands-runtime` | Helpery listowania poleceń Skills | - | `plugin-sdk/native-command-registry` | Helpery rejestru/build/serializacji natywnych poleceń | - | `plugin-sdk/provider-zai-endpoint` | Helpery wykrywania endpointów Z.AI | - | `plugin-sdk/infra-runtime` | Helpery zdarzeń systemowych/heartbeat | - | `plugin-sdk/collection-runtime` | Małe helpery ograniczonych cache | - | `plugin-sdk/diagnostic-runtime` | Helpery flag diagnostycznych i zdarzeń | - | `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 hostów SCP | - | `plugin-sdk/retry-runtime` | Helpery konfiguracji retry i runnera retry | - | `plugin-sdk/agent-runtime` | Helpery agent dir/identity/workspace | - | `plugin-sdk/directory-runtime` | Zapytania/deduplikacja katalogów oparte na konfiguracji | + | `plugin-sdk/boolean-param` | Czytnik luźnych parametrów logicznych | + | `plugin-sdk/dangerous-name-runtime` | Pomocniki rozstrzygania dopasowań niebezpiecznych nazw | + | `plugin-sdk/device-bootstrap` | Pomocniki bootstrapu urządzenia i tokenów parowania | + | `plugin-sdk/extension-shared` | Współdzielone prymitywy pomocników pasywnego kanału i statusu | + | `plugin-sdk/models-provider-runtime` | Pomocniki odpowiedzi dostawców/komendy `/models` | + | `plugin-sdk/skill-commands-runtime` | Pomocniki listowania komend Skills | + | `plugin-sdk/native-command-registry` | Pomocniki rejestru/budowania/serializacji natywnych komend | + | `plugin-sdk/provider-zai-endpoint` | Pomocniki wykrywania endpointów Z.A.I | + | `plugin-sdk/infra-runtime` | Pomocniki zdarzeń systemowych/heartbeat | + | `plugin-sdk/collection-runtime` | Pomocniki małych ograniczonych cache | + | `plugin-sdk/diagnostic-runtime` | Pomocniki flag diagnostycznych i zdarzeń | + | `plugin-sdk/error-runtime` | Graf błędów, formatowanie, współdzielone pomocniki klasyfikacji błędów, `isApprovalNotFoundError` | + | `plugin-sdk/fetch-runtime` | Pomocniki opakowanego fetch, proxy i przypiętych lookupów | + | `plugin-sdk/host-runtime` | Pomocniki normalizacji hostname i hostów SCP | + | `plugin-sdk/retry-runtime` | Pomocniki konfiguracji ponowień i wykonawcy ponowień | + | `plugin-sdk/agent-runtime` | Pomocniki katalogu/tożsamości/obszaru roboczego agenta | + | `plugin-sdk/directory-runtime` | Zapytania deduplikacja katalogów oparta na konfiguracji | | `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` | - - | Ścieżka podrzędna | Kluczowe eksporty | + + | Podścieżka | Kluczowe eksporty | | --- | --- | - | `plugin-sdk/media-runtime` | Współdzielone helpery pobierania/przekształcania/przechowywania mediów oraz konstruktory payloadów mediów | - | `plugin-sdk/media-understanding` | Typy providerów rozumienia mediów oraz eksporty helperów obrazów/audio skierowane do providerów | - | `plugin-sdk/text-runtime` | Współdzielone helpery tekstu/Markdown/logowania, takie jak usuwanie tekstu widocznego dla asystenta, renderowanie/chunking/tabele Markdown, helpery redakcji, helpery tagów dyrektyw i bezpieczne utility tekstowe | - | `plugin-sdk/text-chunking` | Helper chunkingu tekstu wychodzącego | - | `plugin-sdk/speech` | Typy providerów mowy oraz helpery dyrektyw, rejestru i walidacji skierowane do providerów | - | `plugin-sdk/speech-core` | Współdzielone typy providerów mowy, registry, dyrektywy i helpery normalizacji | - | `plugin-sdk/realtime-transcription` | Typy providerów transkrypcji realtime i helpery rejestru | - | `plugin-sdk/realtime-voice` | Typy providerów głosu realtime i helpery rejestru | - | `plugin-sdk/image-generation` | Typy providerów generowania obrazów | - | `plugin-sdk/image-generation-core` | Współdzielone typy generowania obrazów, helpery failover, auth i rejestru | - | `plugin-sdk/music-generation` | Typy providerów/żądań/wyników generowania muzyki | - | `plugin-sdk/music-generation-core` | Współdzielone typy generowania muzyki, helpery failover, lookup providera i parsowanie model-ref | - | `plugin-sdk/video-generation` | Typy providerów/żądań/wyników generowania wideo | - | `plugin-sdk/video-generation-core` | Współdzielone typy generowania wideo, helpery failover, lookup providera i parsowanie model-ref | - | `plugin-sdk/webhook-targets` | Rejestr targetó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 mediów zdalnych/lokalnych | - | `plugin-sdk/zod` | Re-eksport `zod` dla konsumentów plugin SDK | + | `plugin-sdk/media-runtime` | Współdzielone pomocniki pobierania/transformacji/przechowywania mediów oraz konstruktory ładunków mediów | + | `plugin-sdk/media-generation-runtime` | Współdzielone pomocniki failover dla 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 pomocników obrazów/audio skierowane do dostawców | + | `plugin-sdk/text-runtime` | Współdzielone pomocniki tekstu/Markdown/logowania, takie jak usuwanie tekstu widocznego dla asystenta, pomocniki renderowania/chunkingu/tabel Markdown, pomocniki redakcji, pomocniki tagów dyrektyw i narzędzia bezpiecznego tekstu | + | `plugin-sdk/text-chunking` | Pomocnik chunkingu tekstu wychodzącego | + | `plugin-sdk/speech` | Typy dostawców mowy oraz eksporty pomocników dyrektyw, rejestru i walidacji skierowane do dostawców | + | `plugin-sdk/speech-core` | Współdzielone typy dostawców mowy oraz pomocniki rejestru, dyrektyw i normalizacji | + | `plugin-sdk/realtime-transcription` | Typy dostawców transkrypcji realtime i pomocniki rejestru | + | `plugin-sdk/realtime-voice` | Typy dostawców głosu realtime i pomocniki rejestru | + | `plugin-sdk/image-generation` | Typy dostawców generowania obrazów | + | `plugin-sdk/image-generation-core` | Współdzielone typy generowania obrazów oraz pomocniki 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, pomocniki failover, wyszukiwanie dostawców i parsowanie model-ref | + | `plugin-sdk/video-generation` | Typy dostawców/żądań/wyników generowania wideo | + | `plugin-sdk/video-generation-core` | Współdzielone typy generowania wideo, pomocniki failover, wyszukiwanie dostawców i parsowanie model-ref | + | `plugin-sdk/webhook-targets` | Rejestr celów webhooków i pomocniki instalacji tras | + | `plugin-sdk/webhook-path` | Pomocniki normalizacji ścieżek webhooków | + | `plugin-sdk/web-media` | Współdzielone pomocniki ładowania zdalnych/lokalnych mediów | + | `plugin-sdk/zod` | Reeksport `zod` dla odbiorców Plugin SDK | | `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` | - - | Ścieżka podrzędna | Kluczowe eksporty | + + | Podścieżka | Kluczowe eksporty | | --- | --- | - | `plugin-sdk/memory-core` | Powierzchnia helperów bundled memory-core dla helperów manager/config/file/CLI | - | `plugin-sdk/memory-core-engine-runtime` | Fasada runtime indeksowania/wyszukiwania pamięci | - | `plugin-sdk/memory-core-host-engine-foundation` | Eksporty foundation engine hosta pamięci | - | `plugin-sdk/memory-core-host-engine-embeddings` | Eksporty embedding engine hosta pamięci | - | `plugin-sdk/memory-core-host-engine-qmd` | Eksporty QMD engine hosta pamięci | - | `plugin-sdk/memory-core-host-engine-storage` | Eksporty storage engine hosta pamięci | - | `plugin-sdk/memory-core-host-multimodal` | Multimodalne helpery 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-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-lancedb` | Powierzchnia helperów bundled memory-lancedb | + | `plugin-sdk/memory-core` | Powierzchnia pomocnicza bundled memory-core dla menedżera/konfiguracji/plików/pomocników CLI | + | `plugin-sdk/memory-core-engine-runtime` | Fasada runtime indeksu/wyszukiwania pamięci | + | `plugin-sdk/memory-core-host-engine-foundation` | Eksporty silnika podstaw 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 przechowywania hosta pamięci | + | `plugin-sdk/memory-core-host-multimodal` | Pomocniki multimodalne hosta pamięci | + | `plugin-sdk/memory-core-host-query` | Pomocniki zapytań hosta pamięci | + | `plugin-sdk/memory-core-host-secret` | Pomocniki sekretów hosta pamięci | + | `plugin-sdk/memory-core-host-events` | Pomocniki dziennika zdarzeń hosta pamięci | + | `plugin-sdk/memory-core-host-status` | Pomocniki statusu hosta pamięci | + | `plugin-sdk/memory-core-host-runtime-cli` | Pomocniki CLI runtime hosta pamięci | + | `plugin-sdk/memory-core-host-runtime-core` | Pomocniki rdzeniowego runtime hosta pamięci | + | `plugin-sdk/memory-core-host-runtime-files` | Pomocniki plików/runtime hosta pamięci | + | `plugin-sdk/memory-host-core` | Neutralny względem dostawcy alias pomocników rdzeniowego runtime hosta pamięci | + | `plugin-sdk/memory-host-events` | Neutralny względem dostawcy alias pomocników dziennika zdarzeń hosta pamięci | + | `plugin-sdk/memory-host-files` | Neutralny względem dostawcy alias pomocników plików/runtime hosta pamięci | + | `plugin-sdk/memory-host-markdown` | Współdzielone pomocniki zarządzanego Markdown dla pluginów powiązanych 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 pomocników statusu hosta pamięci | + | `plugin-sdk/memory-lancedb` | Powierzchnia pomocnicza bundled memory-lancedb | - - | Rodzina | Obecne ścieżki podrzędne | Zamierzone użycie | + + | Rodzina | Bieżące podścieżki | Przeznaczenie | | --- | --- | --- | - | 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 bundled browser plugin (`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 bundled Matrix | - | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Powierzchnia helperów/runtime bundled LINE | - | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Powierzchnia helperów bundled IRC | - | Helpery specyficzne dla kanału | `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 bundled kanałów | - | Helpery auth/specyficzne dla pluginu | `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 bundled funkcji/pluginów; `plugin-sdk/github-copilot-token` eksportuje obecnie `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` | Pomocniki wsparcia bundled browser plugin (`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 pomocnicza/runtime bundled Matrix | + | Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Powierzchnia pomocnicza/runtime bundled LINE | + | IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Powierzchnia pomocnicza bundled IRC | + | Pomocniki 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` | Interfejsy pomocnicze/zgodności bundled kanałów | + | Pomocniki 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` | Interfejsy pomocnicze bundled 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 -metodami: +Callback `register(api)` otrzymuje obiekt `OpenClawPluginApi` z tymi metodami: -### Rejestracja capabilities +### Rejestracja możliwości | Metoda | Co rejestruje | | ------------------------------------------------ | -------------------------------- | | `api.registerProvider(...)` | Wnioskowanie tekstowe (LLM) | | `api.registerChannel(...)` | Kanał wiadomości | -| `api.registerSpeechProvider(...)` | Syntezę text-to-speech / STT | -| `api.registerRealtimeTranscriptionProvider(...)` | Strumieniową transkrypcję realtime | -| `api.registerRealtimeVoiceProvider(...)` | Dwukierunkowe sesje głosowe realtime | -| `api.registerMediaUnderstandingProvider(...)` | Analizę obrazów/audio/wideo | +| `api.registerSpeechProvider(...)` | Synteza tekstu 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(...)` | Provider web fetch / scrape | -| `api.registerWebSearchProvider(...)` | Wyszukiwanie w sieci | +| `api.registerWebFetchProvider(...)` | Dostawca pobierania / scrapingu z internetu | +| `api.registerWebSearchProvider(...)` | Wyszukiwanie w internecie | -### Narzędzia i polecenia +### Narzędzia i komendy | Metoda | Co rejestruje | | ------------------------------- | --------------------------------------------- | | `api.registerTool(tool, opts?)` | Narzędzie agenta (wymagane lub `{ optional: true }`) | -| `api.registerCommand(def)` | Niestandardowe polecenie (omija LLM) | +| `api.registerCommand(def)` | Niestandardową komendę (z pominięciem LLM) | ### Infrastruktura -| Metoda | Co rejestruje | -| ---------------------------------------------- | ------------------- | -| `api.registerHook(events, handler, opts?)` | Hook zdarzeń | -| `api.registerHttpRoute(params)` | Endpoint HTTP Gateway | -| `api.registerGatewayMethod(name, handler)` | Metodę RPC Gateway | -| `api.registerCli(registrar, opts?)` | Podpolecenie CLI | -| `api.registerService(service)` | Usługę działającą w tle | -| `api.registerInteractiveHandler(registration)` | Handler interaktywny | +| Metoda | Co rejestruje | +| ---------------------------------------------- | ------------------------------------- | +| `api.registerHook(events, handler, opts?)` | Hook zdarzeń | +| `api.registerHttpRoute(params)` | Endpoint HTTP Gateway | +| `api.registerGatewayMethod(name, handler)` | Metodę RPC Gateway | +| `api.registerCli(registrar, opts?)` | Podkomendę CLI | +| `api.registerService(service)` | Usługę działającą w tle | +| `api.registerInteractiveHandler(registration)` | Obsługę interaktywną | +| `api.registerMemoryPromptSupplement(builder)` | Addytywną sekcję promptu związaną z pamięcią | +| `api.registerMemoryCorpusSupplement(adapter)` | Addytywny korpus wyszukiwania/odczytu pamięci | -Zarezerwowane przestrzenie nazw admina rdzenia (`config.*`, `exec.approvals.*`, `wizard.*`, -`update.*`) zawsze pozostają `operator.admin`, nawet jeśli plugin próbuje przypisać -węższy zakres metody gatewaya. Dla metod należących do pluginu preferuj prefiksy specyficzne dla pluginu. +Zastrzeżone 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 pluginu +preferuj prefiksy specyficzne dla pluginu. ### Metadane rejestracji CLI `api.registerCli(registrar, opts?)` akceptuje dwa rodzaje metadanych najwyższego poziomu: -- `commands`: jawne korzenie poleceń należące do rejestratora -- `descriptors`: deskryptory poleceń używane podczas parsowania dla głównej pomocy CLI, +- `commands`: jawne korzenie komend należące do registrara +- `descriptors`: deskryptory komend używane na etapie parsowania dla głównej pomocy CLI, routingu i leniwej rejestracji CLI pluginu -Jeśli chcesz, aby polecenie pluginu pozostało ładowane leniwie w zwykłej ścieżce głównego CLI, -podaj `descriptors`, które obejmą każdy korzeń polecenia najwyższego poziomu udostępniany przez tego -rejestratora. +Jeśli chcesz, aby komenda pluginu pozostała leniwie ładowana w normalnej +ścieżce głównego CLI, podaj `descriptors`, które obejmują każdy korzeń komendy +najwyższego poziomu udostępniany przez ten registrar. ```typescript api.registerCli( @@ -346,7 +359,7 @@ api.registerCli( descriptors: [ { name: "matrix", - description: "Manage Matrix accounts, verification, devices, and profile state", + description: "Zarządzaj kontami Matrix, weryfikacją, urządzeniami i stanem profilu", hasSubcommands: true, }, ], @@ -354,66 +367,69 @@ api.registerCli( ); ``` -Używaj samego `commands` tylko wtedy, gdy nie potrzebujesz leniwej rejestracji głównego CLI. -Ta zgodnościowa ścieżka eager nadal jest wspierana, ale nie instaluje -placeholderów opartych na deskryptorach do leniwego ładowania podczas parsowania. +Używaj samego `commands` tylko wtedy, gdy nie potrzebujesz leniwej rejestracji +w głównym CLI. Ta zgodnościowa ścieżka eager nadal jest wspierana, ale nie +instaluje placeholderów opartych na deskryptorach dla leniwego ładowania na +etapie parsowania. -### Wyłączne sloty +### Sloty wyłączne -| Metoda | Co rejestruje | -| ------------------------------------------ | ------------------------------------- | -| `api.registerContextEngine(id, factory)` | Silnik kontekstu (aktywny tylko jeden naraz) | -| `api.registerMemoryPromptSection(builder)` | Konstruktor sekcji promptu pamięci | -| `api.registerMemoryFlushPlan(resolver)` | Resolver planu flush pamięci | -| `api.registerMemoryRuntime(runtime)` | Adapter runtime pamięci | +| Metoda | Co rejestruje | +| ------------------------------------------ | ------------------------------------ | +| `api.registerContextEngine(id, factory)` | Silnik kontekstu (jeden aktywny naraz) | +| `api.registerMemoryPromptSection(builder)` | Konstruktor sekcji promptu pamięci | +| `api.registerMemoryFlushPlan(resolver)` | Resolver planu opróżniania pamięci | +| `api.registerMemoryRuntime(runtime)` | Adapter runtime pamięci | -### Adaptery embeddingów pamięci +### Adaptery osadzania pamięci | Metoda | Co rejestruje | | ---------------------------------------------- | ---------------------------------------------- | -| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter embeddingów pamięci dla aktywnego pluginu | +| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter osadzania pamięci dla aktywnego pluginu | - `registerMemoryPromptSection`, `registerMemoryFlushPlan` i - `registerMemoryRuntime` są zarezerwowane wyłącznie dla 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` albo własny identyfikator zdefiniowany przez plugin). + `registerMemoryRuntime` są wyłączne dla pluginów pamięci. +- `registerMemoryEmbeddingProvider` pozwala aktywnemu pluginowi pamięci + zarejestrować jeden lub więcej identyfikatorów adapterów osadzania + (na przykład `openai`, `gemini` albo niestandardowy identyfikator + zdefiniowany przez plugin). - Konfiguracja użytkownika, taka jak `agents.defaults.memorySearch.provider` i - `agents.defaults.memorySearch.fallback`, jest rozwiązywana względem tych zarejestrowanych - identyfikatorów adapterów. + `agents.defaults.memorySearch.fallback`, jest rozstrzygana względem tych + zarejestrowanych identyfikatorów adapterów. ### Zdarzenia i cykl życia -| Metoda | Co robi | -| -------------------------------------------- | ------------------------------ | -| `api.on(hookName, handler, opts?)` | Typowany hook cyklu życia | -| `api.onConversationBindingResolved(handler)` | Callback resolution conversation binding | +| Metoda | Co robi | +| -------------------------------------------- | --------------------------- | +| `api.on(hookName, handler, opts?)` | Typowany hook cyklu życia | +| `api.onConversationBindingResolved(handler)` | Callback rozstrzygnięcia wiązania konwersacji | ### Semantyka decyzji hooków -- `before_tool_call`: zwrócenie `{ block: true }` jest rozstrzygające. Gdy którykolwiek handler to ustawi, handlery o niższym priorytecie są pomijane. +- `before_tool_call`: zwrócenie `{ block: true }` jest końcowe. Gdy dowolny 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 rozstrzygające. Gdy którykolwiek handler to ustawi, handlery o niższym priorytecie są pomijane. +- `before_install`: zwrócenie `{ block: true }` jest końcowe. Gdy dowolny 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 rozstrzygające. Gdy którykolwiek handler przejmie dispatch, handlery o niższym priorytecie i domyślna ścieżka dispatchu modelu są pomijane. -- `message_sending`: zwrócenie `{ cancel: true }` jest rozstrzygające. Gdy którykolwiek handler to ustawi, handlery o niższym priorytecie są pomijane. +- `reply_dispatch`: zwrócenie `{ handled: true, ... }` jest końcowe. Gdy dowolny handler przejmie dispatch, handlery o niższym priorytecie oraz domyślna ścieżka dispatchu modelu są pomijane. +- `message_sending`: zwrócenie `{ cancel: true }` jest końcowe. Gdy dowolny 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 -| Pole | Typ | Opis | -| ----------------------- | ------------------------- | -------------------------------------------------------------------------------------------- | -| `api.id` | `string` | Identyfikator pluginu | -| `api.name` | `string` | Wyświetlana nazwa | -| `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żący snapshot konfiguracji (aktywny snapshot runtime w pamięci, gdy jest dostępny) | -| `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 zawężonym zakresie (`debug`, `info`, `warn`, `error`) | -| `api.registrationMode` | `PluginRegistrationMode` | Bieżący tryb ładowania; `"setup-runtime"` to lekki etap uruchamiania/konfiguracji przed pełnym wejściem | -| `api.resolvePath(input)` | `(string) => string` | Rozwiąż ścieżkę względem katalogu głównego pluginu | +| Pole | Typ | Opis | +| ----------------------- | ------------------------- | ------------------------------------------------------------------------------------------- | +| `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 (aktywny snapshot runtime w pamięci, gdy jest dostępny) | +| `api.pluginConfig` | `Record` | Konfiguracja specyficzna dla pluginu z `plugins.entries..config` | +| `api.runtime` | `PluginRuntime` | [Pomocniki runtime](/pl/plugins/sdk-runtime) | +| `api.logger` | `PluginLogger` | Logger o zawężonym zakresie (`debug`, `info`, `warn`, `error`) | +| `api.registrationMode` | `PluginRegistrationMode` | Bieżący tryb ładowania; `"setup-runtime"` to lekki etap uruchamiania/konfiguracji przed pełnym entry | +| `api.resolvePath(input)` | `(string) => string` | Rozstrzyganie ścieżki względem katalogu głównego pluginu | ## Konwencja modułów wewnętrznych @@ -421,48 +437,51 @@ Wewnątrz pluginu używaj lokalnych plików barrel do importów wewnętrznych: ``` my-plugin/ - api.ts # Publiczne eksporty dla zewnętrznych konsumentów - runtime-api.ts # Eksporty runtime tylko do użytku wewnętrznego + api.ts # Publiczne eksporty dla zewnętrznych odbiorców + runtime-api.ts # Eksporty runtime wyłącznie do użytku wewnętrznego index.ts # Punkt wejścia pluginu - setup-entry.ts # Lekki punkt wejścia tylko do konfiguracji (opcjonalnie) + setup-entry.ts # Lekki punkt wejścia tylko do konfiguracji (opcjonalny) ``` Nigdy nie importuj własnego pluginu przez `openclaw/plugin-sdk/` - z kodu produkcyjnego. Kieruj importy wewnętrzne przez `./api.ts` lub + w kodzie produkcyjnym. Kieruj importy wewnętrzne przez `./api.ts` albo `./runtime-api.ts`. Ścieżka SDK jest wyłącznie kontraktem zewnętrznym. -Ładowane przez fasadę publiczne powierzchnie bundled plugins (`api.ts`, `runtime-api.ts`, -`index.ts`, `setup-entry.ts` i podobne publiczne pliki wejściowe) preferują teraz -aktywny snapshot konfiguracji runtime, gdy OpenClaw już działa. Jeśli snapshot runtime -jeszcze nie istnieje, wracają do konfiguracji rozwiązanej z pliku na dysku. +Publiczne powierzchnie bundled plugins ładowane przez fasadę (`api.ts`, +`runtime-api.ts`, `index.ts`, `setup-entry.ts` i podobne publiczne pliki wejściowe) +preferują teraz aktywną migawkę konfiguracji runtime, gdy OpenClaw jest już +uruchomiony. Jeśli migawka runtime jeszcze nie istnieje, przechodzą na +konfigurację rozstrzygniętą z pliku na dysku. -Pluginy providerów mogą również udostępniać wąski barrel kontraktowy lokalny dla pluginu, gdy -helper jest celowo specyficzny dla providera i jeszcze nie należy do generycznej ścieżki podrzędnej SDK. -Obecny przykład bundled: provider Anthropic trzyma swoje helpery strumienia Claude -we własnej publicznej warstwie `api.ts` / `contract-api.ts`, zamiast promować logikę nagłówków beta Anthropic i `service_tier` do generycznego -kontraktu `plugin-sdk/*`. +Pluginy dostawców mogą także udostępniać wąski lokalny barrel kontraktu pluginu, +gdy pomocnik jest celowo specyficzny dla dostawcy i nie pasuje jeszcze do +generycznej podścieżki SDK. Bieżący bundled przykład: dostawca Anthropic +przechowuje swoje pomocniki strumieni Claude we własnym publicznym interfejsie +`api.ts` / `contract-api.ts` zamiast promować logikę nagłówków beta Anthropic i +`service_tier` do generycznego kontraktu `plugin-sdk/*`. -Inne obecne przykłady bundled: +Inne bieżące bundled przykłady: -- `@openclaw/openai-provider`: `api.ts` eksportuje konstruktory providerów, - helpery modeli domyślnych i konstruktory providerów realtime -- `@openclaw/openrouter-provider`: `api.ts` eksportuje konstruktor providera oraz - helpery onboardingu/konfiguracji +- `@openclaw/openai-provider`: `api.ts` eksportuje konstruktory dostawców, + pomocniki modeli domyślnych i konstruktory dostawców realtime +- `@openclaw/openrouter-provider`: `api.ts` eksportuje konstruktor dostawcy oraz + pomocniki onboardingu/konfiguracji - Kod produkcyjny rozszerzeń powinien również unikać importów `openclaw/plugin-sdk/`. - Jeśli helper jest naprawdę współdzielony, promuj 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ć ze sobą dwa pluginy. + Kod produkcyjny rozszerzeń powinien także unikać importów + `openclaw/plugin-sdk/`. Jeśli jakiś pomocnik jest faktycznie + współdzielony, przenieś go do neutralnej podścieżki SDK, takiej jak + `openclaw/plugin-sdk/speech`, `.../provider-model-shared` lub innej + 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` -- [Setup i konfiguracja](/pl/plugins/sdk-setup) — pakowanie, manifesty, schematy konfiguracji +- [Pomocniki runtime](/pl/plugins/sdk-runtime) — pełna dokumentacja referencyjna przestrzeni nazw `api.runtime` +- [Konfiguracja i setup](/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 z przestarzałych powierzchni -- [Wnętrze pluginów](/pl/plugins/architecture) — szczegółowa architektura i model capabilities +- [Wnętrze pluginów](/pl/plugins/architecture) — szczegółowa architektura i model możliwości diff --git a/docs/pl/tools/image-generation.md b/docs/pl/tools/image-generation.md index 51f2b37f6..5a381d334 100644 --- a/docs/pl/tools/image-generation.md +++ b/docs/pl/tools/image-generation.md @@ -1,30 +1,30 @@ --- read_when: - - Generujesz obrazy przez agenta - - Konfigurujesz dostawców i modele generowania obrazów - - Chcesz zrozumieć parametry narzędzia image_generate -summary: Generowanie i edycja obrazów przy użyciu skonfigurowanych dostawców (OpenAI, Google Gemini, fal, MiniMax, ComfyUI, Vydra) + - Generowanie obrazów przez agenta + - Konfigurowanie dostawców i modeli do generowania obrazów + - Zrozumienie parametrów narzędzia image_generate +summary: Generuj i edytuj obrazy za pomocą skonfigurowanych dostawców (OpenAI, Google Gemini, fal, MiniMax, ComfyUI, Vydra) title: Generowanie obrazów x-i18n: - generated_at: "2026-04-06T03:13:44Z" + generated_at: "2026-04-06T09:45:33Z" model: gpt-5.4 provider: openai - source_hash: dde416dd1441a06605db85b5813cf61ccfc525813d6db430b7b7dfa53d6a3134 + source_hash: 903cc522c283a8da2cbd449ae3e25f349a74d00ecfdaf0f323fd8aa3f2107aea source_path: tools/image-generation.md workflow: 15 --- # Generowanie obrazów -Narzędzie `image_generate` pozwala agentowi tworzyć i edytować obrazy przy użyciu skonfigurowanych dostawców. Wygenerowane obrazy są automatycznie dostarczane jako załączniki multimedialne w odpowiedzi agenta. +Narzędzie `image_generate` umożliwia agentowi tworzenie i edytowanie obrazów przy użyciu skonfigurowanych dostawców. Wygenerowane obrazy są automatycznie dostarczane jako załączniki multimedialne w odpowiedzi agenta. -Narzędzie pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostawca generowania obrazów. Jeśli nie widzisz `image_generate` w narzędziach agenta, skonfiguruj `agents.defaults.imageGenerationModel` albo ustaw klucz API dostawcy. +Narzędzie pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostawca generowania obrazów. Jeśli nie widzisz `image_generate` w narzędziach swojego agenta, skonfiguruj `agents.defaults.imageGenerationModel` lub ustaw klucz API dostawcy. ## Szybki start -1. Ustaw klucz API dla co najmniej jednego dostawcy (na przykład `OPENAI_API_KEY` albo `GEMINI_API_KEY`). +1. Ustaw klucz API dla co najmniej jednego dostawcy (na przykład `OPENAI_API_KEY` lub `GEMINI_API_KEY`). 2. Opcjonalnie ustaw preferowany model: ```json5 @@ -39,20 +39,20 @@ Narzędzie pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostaw } ``` -3. Poproś agenta: _"Wygeneruj obraz przyjaznej maskotki homara."_ +3. Poproś agenta: _„Wygeneruj obraz przyjaznej maskotki homara.”_ -Agent automatycznie wywoła `image_generate`. Nie trzeba dodawać go do allowlisty narzędzi — jest domyślnie włączony, gdy dostawca jest dostępny. +Agent automatycznie wywoła `image_generate`. Nie trzeba dodawać go do listy dozwolonych narzędzi — jest domyślnie włączone, gdy dostawca jest dostępny. ## Obsługiwani dostawcy -| Dostawca | Model domyślny | Obsługa edycji | Klucz API | -| -------- | -------------------------------- | ----------------------------------- | ------------------------------------------------------- | -| OpenAI | `gpt-image-1` | Tak (do 5 obrazów) | `OPENAI_API_KEY` | -| Google | `gemini-3.1-flash-image-preview` | Tak | `GEMINI_API_KEY` lub `GOOGLE_API_KEY` | -| fal | `fal-ai/flux/dev` | Tak | `FAL_KEY` | -| MiniMax | `image-01` | Tak (odniesienie do obiektu) | `MINIMAX_API_KEY` lub MiniMax OAuth (`minimax-portal`) | -| ComfyUI | `workflow` | Tak (1 obraz, konfigurowany przez workflow) | `COMFY_API_KEY` lub `COMFY_CLOUD_API_KEY` dla chmury | -| Vydra | `grok-imagine` | Nie | `VYDRA_API_KEY` | +| Dostawca | Model domyślny | Obsługa edycji | Klucz API | +| -------- | -------------------------------- | ---------------------------------- | ------------------------------------------------------ | +| OpenAI | `gpt-image-1` | Tak (do 5 obrazów) | `OPENAI_API_KEY` | +| Google | `gemini-3.1-flash-image-preview` | Tak | `GEMINI_API_KEY` lub `GOOGLE_API_KEY` | +| fal | `fal-ai/flux/dev` | Tak | `FAL_KEY` | +| MiniMax | `image-01` | Tak (odniesienie do obiektu) | `MINIMAX_API_KEY` lub OAuth MiniMax (`minimax-portal`) | +| ComfyUI | `workflow` | Tak (1 obraz, zgodnie z workflow) | `COMFY_API_KEY` lub `COMFY_CLOUD_API_KEY` dla chmury | +| Vydra | `grok-imagine` | Nie | `VYDRA_API_KEY` | Użyj `action: "list"`, aby sprawdzić dostępnych dostawców i modele w czasie działania: @@ -64,18 +64,18 @@ Użyj `action: "list"`, aby sprawdzić dostępnych dostawców i modele w czasie | Parametr | Typ | Opis | | ------------- | -------- | ------------------------------------------------------------------------------------- | -| `prompt` | string | Prompt do generowania obrazu (wymagany dla `action: "generate"`) | -| `action` | string | `"generate"` (domyślnie) albo `"list"` do sprawdzenia dostawców | -| `model` | string | Nadpisanie dostawca/model, np. `openai/gpt-image-1` | -| `image` | string | Ścieżka lub URL pojedynczego obrazu referencyjnego dla trybu edycji | -| `images` | string[] | Wiele obrazów referencyjnych dla trybu edycji (do 5) | -| `size` | string | Wskazówka rozmiaru: `1024x1024`, `1536x1024`, `1024x1536`, `1024x1792`, `1792x1024` | -| `aspectRatio` | string | Proporcje obrazu: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` | +| `prompt` | string | Prompt generowania obrazu (wymagany dla `action: "generate"`) | +| `action` | string | `"generate"` (domyślnie) lub `"list"` do sprawdzenia dostawców | +| `model` | string | Nadpisanie dostawcy/modelu, np. `openai/gpt-image-1` | +| `image` | string | Ścieżka lub URL pojedynczego obrazu referencyjnego dla trybu edycji | +| `images` | string[] | Wiele obrazów referencyjnych dla trybu edycji (do 5) | +| `size` | string | Wskazówka rozmiaru: `1024x1024`, `1536x1024`, `1024x1536`, `1024x1792`, `1792x1024` | +| `aspectRatio` | string | Współczynnik proporcji: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` | | `resolution` | string | Wskazówka rozdzielczości: `1K`, `2K` lub `4K` | -| `count` | number | Liczba obrazów do wygenerowania (1–4) | -| `filename` | string | Wskazówka nazwy pliku wyjściowego | +| `count` | number | Liczba obrazów do wygenerowania (1–4) | +| `filename` | string | Wskazówka nazwy pliku wyjściowego | -Nie wszyscy dostawcy obsługują wszystkie parametry. Narzędzie przekazuje to, co obsługuje dany dostawca, ignoruje resztę i zgłasza pominięte nadpisania w wyniku narzędzia. +Nie wszyscy dostawcy obsługują wszystkie parametry. Narzędzie przekazuje to, co obsługuje dany dostawca, ignoruje resztę i zgłasza pominięte nadpisania w wyniku działania narzędzia. ## Konfiguracja @@ -101,52 +101,50 @@ Podczas generowania obrazu OpenClaw próbuje dostawców w tej kolejności: 1. Parametr **`model`** z wywołania narzędzia (jeśli agent go określi) 2. **`imageGenerationModel.primary`** z konfiguracji 3. **`imageGenerationModel.fallbacks`** w podanej kolejności -4. **Automatyczne wykrywanie** — używa tylko domyślnych dostawców wspieranych przez uwierzytelnianie: +4. **Automatyczne wykrywanie** — używa tylko domyślnych dostawców opartych na uwierzytelnianiu: - najpierw bieżący domyślny dostawca - - następnie pozostali zarejestrowani dostawcy generowania obrazów w kolejności identyfikatorów dostawców + - pozostali zarejestrowani dostawcy generowania obrazów w kolejności identyfikatorów dostawców -Jeśli dostawca zawiedzie (błąd uwierzytelniania, rate limit itd.), automatycznie próbowany jest następny kandydat. Jeśli zawiodą wszyscy, błąd zawiera szczegóły każdej próby. +Jeśli dostawca zawiedzie (błąd uwierzytelnienia, limit szybkości itp.), automatycznie próbowany jest kolejny kandydat. Jeśli zawiodą wszystkie, błąd zawiera szczegóły z każdej próby. Uwagi: -- Automatyczne wykrywanie uwzględnia uwierzytelnianie. Domyślny dostawca trafia na listę kandydatów - tylko wtedy, gdy OpenClaw faktycznie potrafi uwierzytelnić tego dostawcę. -- Użyj `action: "list"`, aby sprawdzić aktualnie zarejestrowanych dostawców, ich - modele domyślne i wskazówki dotyczące zmiennych env dla uwierzytelniania. +- Automatyczne wykrywanie uwzględnia stan uwierzytelnienia. Domyślny dostawca trafia na listę kandydatów tylko wtedy, gdy OpenClaw może rzeczywiście uwierzytelnić tego dostawcę. +- Użyj `action: "list"`, aby sprawdzić aktualnie zarejestrowanych dostawców, ich domyślne modele i wskazówki dotyczące zmiennych środowiskowych uwierzytelniania. ### Edycja obrazów OpenAI, Google, fal, MiniMax i ComfyUI obsługują edycję obrazów referencyjnych. Przekaż ścieżkę lub URL obrazu referencyjnego: ``` -"Wygeneruj akwarelową wersję tego zdjęcia" + image: "/path/to/photo.jpg" +"Generate a watercolor version of this photo" + image: "/path/to/photo.jpg" ``` -OpenAI i Google obsługują do 5 obrazów referencyjnych przez parametr `images`. fal, MiniMax i ComfyUI obsługują 1. +OpenAI i Google obsługują do 5 obrazów referencyjnych za pomocą parametru `images`. fal, MiniMax i ComfyUI obsługują 1. Generowanie obrazów MiniMax jest dostępne przez obie dołączone ścieżki uwierzytelniania MiniMax: - `minimax/image-01` dla konfiguracji z kluczem API -- `minimax-portal/image-01` dla konfiguracji z OAuth +- `minimax-portal/image-01` dla konfiguracji OAuth ## Możliwości dostawców -| Możliwość | OpenAI | Google | fal | MiniMax | ComfyUI | Vydra | -| -------------------- | -------------------- | -------------------- | ------------------- | -------------------------- | ---------------------------------- | ----- | -| Generowanie | Tak (do 4) | Tak (do 4) | Tak (do 4) | Tak (do 9) | Tak (wyjścia określone przez workflow) | Tak (1) | -| Edycja/referencja | Tak (do 5 obrazów) | Tak (do 5 obrazów) | Tak (1 obraz) | Tak (1 obraz, odniesienie do obiektu) | Tak (1 obraz, konfigurowany przez workflow) | Nie | -| Kontrola rozmiaru | Tak | Tak | Tak | Nie | Nie | Nie | -| Proporcje obrazu | Nie | Tak | Tak (tylko generowanie) | Tak | Nie | Nie | -| Rozdzielczość (1K/2K/4K) | Nie | Tak | Tak | Nie | Nie | Nie | +| Możliwość | OpenAI | Google | fal | MiniMax | ComfyUI | Vydra | +| -------------------- | -------------------- | -------------------- | ------------------- | -------------------------- | ---------------------------------- | ------- | +| Generowanie | Tak (do 4) | Tak (do 4) | Tak (do 4) | Tak (do 9) | Tak (wyniki określone przez workflow) | Tak (1) | +| Edycja/referencja | Tak (do 5 obrazów) | Tak (do 5 obrazów) | Tak (1 obraz) | Tak (1 obraz, odniesienie do obiektu) | Tak (1 obraz, zgodnie z workflow) | Nie | +| Kontrola rozmiaru | Tak | Tak | Tak | Nie | Nie | Nie | +| Współczynnik proporcji | Nie | Tak | Tak (tylko generowanie) | Tak | Nie | Nie | +| Rozdzielczość (1K/2K/4K) | Nie | Tak | Tak | Nie | Nie | Nie | ## Powiązane - [Przegląd narzędzi](/pl/tools) — wszystkie dostępne narzędzia agenta -- [fal](/providers/fal) — konfiguracja dostawcy obrazów i wideo fal -- [ComfyUI](/providers/comfy) — konfiguracja lokalnych workflow ComfyUI i Comfy Cloud +- [fal](/pl/providers/fal) — konfiguracja dostawcy obrazów i wideo fal +- [ComfyUI](/pl/providers/comfy) — konfiguracja lokalnego ComfyUI i workflow Comfy Cloud - [Google (Gemini)](/pl/providers/google) — konfiguracja dostawcy obrazów Gemini - [MiniMax](/pl/providers/minimax) — konfiguracja dostawcy obrazów MiniMax - [OpenAI](/pl/providers/openai) — konfiguracja dostawcy OpenAI Images -- [Vydra](/providers/vydra) — konfiguracja obrazów, wideo i mowy Vydra -- [Referencja konfiguracji](/pl/gateway/configuration-reference#agent-defaults) — konfiguracja `imageGenerationModel` -- [Modele](/pl/concepts/models) — konfiguracja modeli i failover +- [Vydra](/pl/providers/vydra) — konfiguracja obrazów, wideo i mowy Vydra +- [Dokumentacja referencyjna konfiguracji](/pl/gateway/configuration-reference#agent-defaults) — konfiguracja `imageGenerationModel` +- [Modele](/pl/concepts/models) — konfiguracja modeli i przełączanie awaryjne diff --git a/docs/pl/tools/video-generation.md b/docs/pl/tools/video-generation.md index 02e41f904..47ef38498 100644 --- a/docs/pl/tools/video-generation.md +++ b/docs/pl/tools/video-generation.md @@ -1,25 +1,25 @@ --- read_when: - - Generowanie wideo przez agenta - - Konfigurowanie dostawców i modeli generowania wideo + - Generowanie filmów za pomocą agenta + - Konfigurowanie dostawców i modeli do generowania filmów - Zrozumienie parametrów narzędzia video_generate -summary: Generowanie wideo z tekstu, obrazów lub istniejących filmów przy użyciu 12 backendów dostawców -title: Generowanie wideo +summary: Generuj filmy z tekstu, obrazów lub istniejących filmów przy użyciu 12 backendów dostawców +title: Generowanie filmów x-i18n: - generated_at: "2026-04-06T03:14:27Z" + generated_at: "2026-04-06T09:45:44Z" model: gpt-5.4 provider: openai - source_hash: 4afec87368232221db1aa5a3980254093d6a961b17271b2dcbf724e6bd455b16 + source_hash: 90d8a392b35adbd899232b02c55c10895b9d7ffc9858d6ca448f2e4e4a57f12f source_path: tools/video-generation.md workflow: 15 --- -# Generowanie wideo +# Generowanie filmów -Agenci OpenClaw mogą generować wideo z promptów tekstowych, obrazów referencyjnych lub istniejących filmów. Obsługiwanych jest dwanaście backendów dostawców, z których każdy ma różne opcje modeli, tryby wejścia i zestawy funkcji. Agent automatycznie wybiera właściwego dostawcę na podstawie twojej konfiguracji i dostępnych kluczy API. +Agenci OpenClaw mogą generować filmy na podstawie promptów tekstowych, obrazów referencyjnych lub istniejących filmów. Obsługiwanych jest dwanaście backendów dostawców, a każdy z nich oferuje inne opcje modeli, tryby wejściowe i zestawy funkcji. Agent automatycznie wybiera odpowiedniego dostawcę na podstawie konfiguracji i dostępnych kluczy API. -Narzędzie `video_generate` pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostawca generowania wideo. Jeśli nie widzisz go w narzędziach agenta, ustaw klucz API dostawcy albo skonfiguruj `agents.defaults.videoGenerationModel`. +Narzędzie `video_generate` pojawia się tylko wtedy, gdy dostępny jest co najmniej jeden dostawca generowania filmów. Jeśli go nie widzisz w narzędziach agenta, ustaw klucz API dostawcy lub skonfiguruj `agents.defaults.videoGenerationModel`. ## Szybki start @@ -38,41 +38,41 @@ openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1 3. Poproś agenta: -> Wygeneruj 5-sekundowe kinowe wideo przedstawiające przyjaznego homara surfującego o zachodzie słońca. +> Wygeneruj 5-sekundowy film kinowy przedstawiający przyjaznego homara surfującego o zachodzie słońca. -Agent automatycznie wywoła `video_generate`. Nie jest wymagane dodawanie narzędzia do allowlisty. +Agent automatycznie wywołuje `video_generate`. Nie jest wymagane dodawanie narzędzia do listy dozwolonych. -## Co dzieje się podczas generowania wideo +## Co dzieje się podczas generowania filmu -Generowanie wideo jest asynchroniczne. Gdy agent wywołuje `video_generate` w sesji: +Generowanie filmu jest asynchroniczne. Gdy agent wywołuje `video_generate` w sesji: 1. OpenClaw wysyła żądanie do dostawcy i natychmiast zwraca identyfikator zadania. 2. Dostawca przetwarza zadanie w tle (zwykle od 30 sekund do 5 minut w zależności od dostawcy i rozdzielczości). -3. Gdy wideo jest gotowe, OpenClaw wybudza tę samą sesję przez wewnętrzne zdarzenie ukończenia. -4. Agent publikuje gotowe wideo z powrotem w oryginalnej konwersacji. +3. Gdy film jest gotowy, OpenClaw wybudza tę samą sesję za pomocą wewnętrznego zdarzenia ukończenia. +4. Agent publikuje gotowy film z powrotem w oryginalnej rozmowie. -Gdy zadanie jest w toku, zduplikowane wywołania `video_generate` w tej samej sesji zwracają bieżący stan zadania zamiast rozpoczynać kolejne generowanie. Użyj `openclaw tasks list` albo `openclaw tasks show `, aby sprawdzić postęp przez CLI. +Gdy zadanie jest w toku, zduplikowane wywołania `video_generate` w tej samej sesji zwracają bieżący status zadania zamiast uruchamiać kolejne generowanie. Użyj `openclaw tasks list` lub `openclaw tasks show `, aby sprawdzić postęp z poziomu CLI. -Poza uruchomieniami agenta opartymi na sesji (na przykład przy bezpośrednich wywołaniach narzędzia) narzędzie wraca do generowania inline i zwraca końcową ścieżkę multimediów w tej samej turze. +Poza uruchomieniami agenta opartymi na sesji (na przykład przy bezpośrednich wywołaniach narzędzia) narzędzie przechodzi do generowania inline i zwraca końcową ścieżkę do multimediów w tej samej turze. ## Obsługiwani dostawcy -| Dostawca | Model domyślny | Tekst | Obraz ref. | Wideo ref. | Klucz API | -| -------- | ------------------------------ | ----- | ---------------- | ---------------- | ----------------------------------------- | -| Alibaba | `wan2.6-t2v` | Tak | Tak (zdalny URL) | Tak (zdalny URL) | `MODELSTUDIO_API_KEY` | -| BytePlus | `seedance-1-0-lite-t2v-250428` | Tak | 1 obraz | Nie | `BYTEPLUS_API_KEY` | -| ComfyUI | `workflow` | Tak | 1 obraz | Nie | `COMFY_API_KEY` lub `COMFY_CLOUD_API_KEY` | -| fal | `fal-ai/minimax/video-01-live` | Tak | 1 obraz | Nie | `FAL_KEY` | -| Google | `veo-3.1-fast-generate-preview` | Tak | 1 obraz | 1 wideo | `GEMINI_API_KEY` | -| MiniMax | `MiniMax-Hailuo-2.3` | Tak | 1 obraz | Nie | `MINIMAX_API_KEY` | -| OpenAI | `sora-2` | Tak | 1 obraz | 1 wideo | `OPENAI_API_KEY` | -| Qwen | `wan2.6-t2v` | Tak | Tak (zdalny URL) | Tak (zdalny URL) | `QWEN_API_KEY` | -| Runway | `gen4.5` | Tak | 1 obraz | 1 wideo | `RUNWAYML_API_SECRET` | -| Together | `Wan-AI/Wan2.2-T2V-A14B` | Tak | 1 obraz | Nie | `TOGETHER_API_KEY` | -| Vydra | `veo3` | Tak | 1 obraz (`kling`) | Nie | `VYDRA_API_KEY` | -| xAI | `grok-imagine-video` | Tak | 1 obraz | 1 wideo | `XAI_API_KEY` | +| Dostawca | Model domyślny | Tekst | Obraz referencyjny | Film referencyjny | Klucz API | +| -------- | ------------------------------- | ----- | ------------------ | ----------------- | ----------------------------------------- | +| Alibaba | `wan2.6-t2v` | Tak | Tak (zdalny URL) | Tak (zdalny URL) | `MODELSTUDIO_API_KEY` | +| BytePlus | `seedance-1-0-lite-t2v-250428` | Tak | 1 obraz | Nie | `BYTEPLUS_API_KEY` | +| ComfyUI | `workflow` | Tak | 1 obraz | Nie | `COMFY_API_KEY` lub `COMFY_CLOUD_API_KEY` | +| fal | `fal-ai/minimax/video-01-live` | Tak | 1 obraz | Nie | `FAL_KEY` | +| Google | `veo-3.1-fast-generate-preview` | Tak | 1 obraz | 1 film | `GEMINI_API_KEY` | +| MiniMax | `MiniMax-Hailuo-2.3` | Tak | 1 obraz | Nie | `MINIMAX_API_KEY` | +| OpenAI | `sora-2` | Tak | 1 obraz | 1 film | `OPENAI_API_KEY` | +| Qwen | `wan2.6-t2v` | Tak | Tak (zdalny URL) | Tak (zdalny URL) | `QWEN_API_KEY` | +| Runway | `gen4.5` | Tak | 1 obraz | 1 film | `RUNWAYML_API_SECRET` | +| Together | `Wan-AI/Wan2.2-T2V-A14B` | Tak | 1 obraz | Nie | `TOGETHER_API_KEY` | +| Vydra | `veo3` | Tak | 1 obraz (`kling`) | Nie | `VYDRA_API_KEY` | +| xAI | `grok-imagine-video` | Tak | 1 obraz | 1 film | `XAI_API_KEY` | -Niektórzy dostawcy akceptują dodatkowe lub alternatywne zmienne środowiskowe kluczy API. Szczegóły znajdziesz na poszczególnych [stronach dostawców](#related). +Niektórzy dostawcy akceptują dodatkowe lub alternatywne zmienne środowiskowe dla kluczy API. Szczegóły znajdziesz na poszczególnych [stronach dostawców](#related). Uruchom `video_generate action=list`, aby sprawdzić dostępnych dostawców i modele w czasie działania. @@ -80,56 +80,56 @@ Uruchom `video_generate action=list`, aby sprawdzić dostępnych dostawców i mo ### Wymagane -| Parametr | Typ | Opis | -| -------- | ------ | ------------------------------------------------------------------------ | -| `prompt` | string | Tekstowy opis wideo do wygenerowania (wymagany dla `action: "generate"`) | +| Parametr | Typ | Opis | +| -------- | ------ | ----------------------------------------------------------------------------- | +| `prompt` | string | Tekstowy opis filmu do wygenerowania (wymagany dla `action: "generate"`) | ### Wejścia treści -| Parametr | Typ | Opis | -| -------- | -------- | ------------------------------------ | +| Parametr | Typ | Opis | +| -------- | -------- | ------------------------------------- | | `image` | string | Pojedynczy obraz referencyjny (ścieżka lub URL) | -| `images` | string[] | Wiele obrazów referencyjnych (maks. 5) | -| `video` | string | Pojedyncze wideo referencyjne (ścieżka lub URL) | -| `videos` | string[] | Wiele filmów referencyjnych (maks. 4) | +| `images` | string[] | Wiele obrazów referencyjnych (maksymalnie 5) | +| `video` | string | Pojedynczy film referencyjny (ścieżka lub URL) | +| `videos` | string[] | Wiele filmów referencyjnych (maksymalnie 4) | -### Sterowanie stylem +### Kontrola stylu | Parametr | Typ | Opis | | ---------------- | ------- | ------------------------------------------------------------------------ | | `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` | | `resolution` | string | `480P`, `720P` lub `1080P` | | `durationSeconds`| number | Docelowy czas trwania w sekundach (zaokrąglany do najbliższej wartości obsługiwanej przez dostawcę) | -| `size` | string | Wskazówka rozmiaru, gdy dostawca ją obsługuje | -| `audio` | boolean | Włącza generowany dźwięk, gdy jest obsługiwany | -| `watermark` | boolean | Przełącza watermark dostawcy, gdy jest obsługiwany | +| `size` | string | Wskazówka rozmiaru, jeśli dostawca ją obsługuje | +| `audio` | boolean | Włącz generowany dźwięk, jeśli jest obsługiwany | +| `watermark` | boolean | Włącz lub wyłącz znak wodny dostawcy, jeśli jest obsługiwany | ### Zaawansowane -| Parametr | Typ | Opis | -| --------- | ------ | ------------------------------------------------ | -| `action` | string | `"generate"` (domyślnie), `"status"` albo `"list"` | -| `model` | string | Nadpisanie dostawcy/modelu (np. `runway/gen4.5`) | -| `filename`| string | Wskazówka nazwy pliku wyjściowego | +| Parametr | Typ | Opis | +| ---------- | ------ | --------------------------------------------------- | +| `action` | string | `"generate"` (domyślnie), `"status"` lub `"list"` | +| `model` | string | Nadpisanie dostawcy/modelu (np. `runway/gen4.5`) | +| `filename` | string | Wskazówka dotycząca nazwy pliku | -Nie wszyscy dostawcy obsługują wszystkie parametry. Nieobsługiwane nadpisania są ignorowane w trybie best-effort i zgłaszane jako ostrzeżenia w wyniku narzędzia. Twarde ograniczenia capability (na przykład zbyt wiele wejść referencyjnych) powodują błąd przed wysłaniem. +Nie wszyscy dostawcy obsługują wszystkie parametry. Nieobsługiwane nadpisania są ignorowane w miarę możliwości i zgłaszane jako ostrzeżenia w wyniku narzędzia. Twarde ograniczenia możliwości (takie jak zbyt wiele wejść referencyjnych) powodują błąd przed wysłaniem. -## Działania +## Akcje -- **generate** (domyślnie) -- utwórz wideo z podanego promptu i opcjonalnych wejść referencyjnych. -- **status** -- sprawdź stan zadania generowania wideo będącego w toku dla bieżącej sesji bez uruchamiania kolejnego generowania. -- **list** -- pokaż dostępnych dostawców, modele i ich capabilities. +- **generate** (domyślnie) -- utwórz film na podstawie podanego promptu i opcjonalnych wejść referencyjnych. +- **status** -- sprawdź stan zadania generowania filmu będącego w toku dla bieżącej sesji bez uruchamiania kolejnego generowania. +- **list** -- pokaż dostępnych dostawców, modele i ich możliwości. ## Wybór modelu -Podczas generowania wideo OpenClaw rozpoznaje model w tej kolejności: +Podczas generowania filmu OpenClaw ustala model w następującej kolejności: -1. **parametr narzędzia `model`** -- jeśli agent poda go w wywołaniu. +1. **Parametr narzędzia `model`** -- jeśli agent określi go w wywołaniu. 2. **`videoGenerationModel.primary`** -- z konfiguracji. 3. **`videoGenerationModel.fallbacks`** -- próbowane po kolei. -4. **Automatyczne wykrywanie** -- używa dostawców z poprawnym auth, zaczynając od bieżącego domyślnego dostawcy, a następnie pozostałych dostawców w kolejności alfabetycznej. +4. **Automatyczne wykrywanie** -- używa dostawców z prawidłową autoryzacją, zaczynając od bieżącego domyślnego dostawcy, a następnie pozostałych dostawców w kolejności alfabetycznej. -Jeśli jeden dostawca zawiedzie, automatycznie próbowany jest kolejny kandydat. Jeśli zawiodą wszyscy kandydaci, błąd zawiera szczegóły każdej próby. +Jeśli jeden dostawca zawiedzie, następny kandydat jest próbowany automatycznie. Jeśli wszyscy kandydaci zawiodą, błąd zawiera szczegóły z każdej próby. ```json5 { @@ -146,24 +146,24 @@ Jeśli jeden dostawca zawiedzie, automatycznie próbowany jest kolejny kandydat. ## Uwagi o dostawcach -| Dostawca | Uwagi | -| -------- | ----- | -| Alibaba | Używa asynchronicznego endpointu DashScope/Model Studio. Obrazy i filmy referencyjne muszą być zdalnymi URL-ami `http(s)`. | -| BytePlus | Tylko jeden obraz referencyjny. | -| ComfyUI | Lokalne lub chmurowe wykonanie sterowane workflow. Obsługuje text-to-video i image-to-video przez skonfigurowany graf. | -| fal | Używa przepływu opartego na kolejce dla długich zadań. Tylko jeden obraz referencyjny. | -| Google | Używa Gemini/Veo. Obsługuje jeden obraz albo jedno wideo referencyjne. | -| MiniMax | Tylko jeden obraz referencyjny. | -| OpenAI | Przekazywane jest tylko nadpisanie `size`. Inne nadpisania stylu (`aspectRatio`, `resolution`, `audio`, `watermark`) są ignorowane z ostrzeżeniem. | -| Qwen | Ten sam backend DashScope co Alibaba. Wejścia referencyjne muszą być zdalnymi URL-ami `http(s)`; pliki lokalne są odrzucane z góry. | -| Runway | Obsługuje pliki lokalne przez data URI. Video-to-video wymaga `runway/gen4_aleph`. Uruchomienia tylko tekstowe udostępniają proporcje `16:9` i `9:16`. | -| Together | Tylko jeden obraz referencyjny. | -| Vydra | Używa bezpośrednio `https://www.vydra.ai/api/v1`, aby uniknąć przekierowań gubiących auth. `veo3` jest dołączony tylko jako text-to-video; `kling` wymaga zdalnego URL obrazu. | -| xAI | Obsługuje text-to-video, image-to-video oraz zdalne przepływy edycji/rozszerzania wideo. | +| Dostawca | Uwagi | +| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Alibaba | Używa asynchronicznego endpointu DashScope/Model Studio. Obrazy i filmy referencyjne muszą być zdalnymi adresami URL `http(s)`. | +| BytePlus | Tylko pojedynczy obraz referencyjny. | +| ComfyUI | Lokalne lub chmurowe wykonywanie sterowane workflow. Obsługuje text-to-video i image-to-video przez skonfigurowany graf. | +| fal | Używa przepływu opartego na kolejce dla długotrwałych zadań. Tylko pojedynczy obraz referencyjny. | +| Google | Używa Gemini/Veo. Obsługuje jeden obraz lub jeden film referencyjny. | +| MiniMax | Tylko pojedynczy obraz referencyjny. | +| OpenAI | Przekazywane jest tylko nadpisanie `size`. Inne nadpisania stylu (`aspectRatio`, `resolution`, `audio`, `watermark`) są ignorowane z ostrzeżeniem. | +| Qwen | Ten sam backend DashScope co Alibaba. Wejścia referencyjne muszą być zdalnymi adresami URL `http(s)`; pliki lokalne są odrzucane z góry. | +| Runway | Obsługuje pliki lokalne przez URI danych. Video-to-video wymaga `runway/gen4_aleph`. Uruchomienia tylko tekstowe udostępniają proporcje `16:9` i `9:16`. | +| Together | Tylko pojedynczy obraz referencyjny. | +| Vydra | Używa bezpośrednio `https://www.vydra.ai/api/v1`, aby uniknąć przekierowań z gubieniem autoryzacji. `veo3` jest dołączony tylko jako text-to-video; `kling` wymaga zdalnego adresu URL obrazu. | +| xAI | Obsługuje przepływy text-to-video, image-to-video oraz zdalną edycję/rozszerzanie wideo. | ## Konfiguracja -Ustaw domyślny model generowania wideo w konfiguracji OpenClaw: +Ustaw domyślny model generowania filmów w konfiguracji OpenClaw: ```json5 { @@ -187,18 +187,18 @@ openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2 ## Powiązane - [Przegląd narzędzi](/pl/tools) -- [Zadania w tle](/pl/automation/tasks) -- śledzenie zadań dla asynchronicznego generowania wideo -- [Alibaba Model Studio](/providers/alibaba) -- [BytePlus](/providers/byteplus) -- [ComfyUI](/providers/comfy) -- [fal](/providers/fal) +- [Zadania w tle](/pl/automation/tasks) -- śledzenie zadań dla asynchronicznego generowania filmów +- [Alibaba Model Studio](/pl/providers/alibaba) +- [BytePlus](/pl/concepts/model-providers#byteplus-international) +- [ComfyUI](/pl/providers/comfy) +- [fal](/pl/providers/fal) - [Google (Gemini)](/pl/providers/google) - [MiniMax](/pl/providers/minimax) - [OpenAI](/pl/providers/openai) - [Qwen](/pl/providers/qwen) -- [Runway](/providers/runway) +- [Runway](/pl/providers/runway) - [Together AI](/pl/providers/together) -- [Vydra](/providers/vydra) +- [Vydra](/pl/providers/vydra) - [xAI](/pl/providers/xai) -- [Dokumentacja konfiguracji](/pl/gateway/configuration-reference#agent-defaults) +- [Dokumentacja referencyjna konfiguracji](/pl/gateway/configuration-reference#agent-defaults) - [Modele](/pl/concepts/models)