chore(i18n): refresh pl translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-20 10:08:57 +00:00
parent 91b4e5a5cc
commit 495ff00380
12 changed files with 3249 additions and 3213 deletions

View File

@ -1,42 +1,42 @@
---
read_when:
- Konfigurowanie kontroli dostępu do DM-ów
- Parowanie nowego węzła iOS/Android
- Przeglądanie modelu bezpieczeństwa OpenClaw
summary: 'Przegląd parowania: zatwierdzanie, kto może wysyłać Ci DM-y i które węzły mogą dołączyć'
- Konfigurowanie kontroli dostępu do wiadomości prywatnych
- Parowanie nowego Node iOS/Android
- Przegląd zabezpieczeń OpenClaw
summary: 'Przegląd parowania: zatwierdzanie, kto może wysyłać Ci wiadomości prywatne + które Node mogą dołączyć'
title: Parowanie
x-i18n:
generated_at: "2026-04-05T13:44:18Z"
generated_at: "2026-04-20T09:58:28Z"
model: gpt-5.4
provider: openai
source_hash: 2bd99240b3530def23c05a26915d07cf8b730565c2822c6338437f8fb3f285c9
source_hash: 4161629ead02dc0bdcd283cc125fe6579a579e03740127f4feb22dfe344bd028
source_path: channels/pairing.md
workflow: 15
---
# Parowanie
„Parowanie” to jawny krok **zatwierdzenia przez właściciela** w OpenClaw.
„Parowanie” to w OpenClaw jawny etap **zatwierdzenia przez właściciela**.
Jest używany w dwóch miejscach:
1. **Parowanie DM-ów** (kto może rozmawiać z botem)
2. **Parowanie węzłów** (które urządzenia/węzły mogą dołączyć do sieci gatewaya)
1. **Parowanie wiadomości prywatnych** (kto może rozmawiać z botem)
2. **Parowanie Node** (które urządzenia/Node mogą dołączyć do sieci Gateway)
Kontekst bezpieczeństwa: [Bezpieczeństwo](/gateway/security)
Kontekst bezpieczeństwa: [Bezpieczeństwo](/pl/gateway/security)
## 1) Parowanie DM-ów (dostęp do czatu przychodzącego)
## 1) Parowanie wiadomości prywatnych (dostęp do czatu przychodzącego)
Gdy kanał jest skonfigurowany z zasadą DM `pairing`, nieznani nadawcy otrzymują krótki kod, a ich wiadomość **nie jest przetwarzana**, dopóki jej nie zatwierdzisz.
Gdy kanał jest skonfigurowany z zasadą wiadomości prywatnych `pairing`, nieznani nadawcy otrzymują krótki kod, a ich wiadomość **nie jest przetwarzana**, dopóki jej nie zatwierdzisz.
Domyślne zasady DM są opisane w: [Bezpieczeństwo](/gateway/security)
Domyślne zasady wiadomości prywatnych są udokumentowane tutaj: [Bezpieczeństwo](/pl/gateway/security)
Kody parowania:
- 8 znaków, wielkie litery, bez niejednoznacznych znaków (`0O1I`).
- **Wygasają po 1 godzinie**. Bot wysyła wiadomość parowania tylko wtedy, gdy tworzona jest nowa prośba (mniej więcej raz na godzinę na nadawcę).
- Oczekujące prośby o parowanie DM są domyślnie ograniczone do **3 na kanał**; dodatkowe prośby są ignorowane, dopóki jedna nie wygaśnie lub nie zostanie zatwierdzona.
- **Wygasają po 1 godzinie**. Bot wysyła wiadomość parowania tylko wtedy, gdy tworzona jest nowa prośba (mniej więcej raz na godzinę dla każdego nadawcy).
- Oczekujące prośby o parowanie wiadomości prywatnych są domyślnie ograniczone do **3 na kanał**; dodatkowe prośby są ignorowane, dopóki jedna nie wygaśnie albo nie zostanie zatwierdzona.
### Zatwierdzanie nadawcy
### Zatwierdzenie nadawcy
```bash
openclaw pairing list telegram
@ -47,55 +47,55 @@ Obsługiwane kanały: `bluebubbles`, `discord`, `feishu`, `googlechat`, `imessag
### Gdzie jest przechowywany stan
Przechowywane w `~/.openclaw/credentials/`:
Przechowywany w `~/.openclaw/credentials/`:
- Oczekujące prośby: `<channel>-pairing.json`
- Magazyn zatwierdzonej listy dozwolonych:
- Magazyn zatwierdzonej listy dozwolonych nadawców:
- Konto domyślne: `<channel>-allowFrom.json`
- Konto niedomyślne: `<channel>-<accountId>-allowFrom.json`
- Konto inne niż domyślne: `<channel>-<accountId>-allowFrom.json`
Zachowanie zakresu kont:
- Konta niedomyślne odczytują/zapisują wyłącznie swój plik listy dozwolonych objęty zakresem.
- Konto domyślne używa nieobjętego zakresem pliku listy dozwolonych dla kanału.
- Konta inne niż domyślne odczytują/zapisują tylko swój plik listy dozwolonych nadawców.
- Konto domyślne używa niezakresowanego pliku listy dozwolonych nadawców na poziomie kanału.
Traktuj je jako dane wrażliwe (kontrolują dostęp do Twojego asystenta).
Traktuj te pliki jako wrażliwe (kontrolują dostęp do Twojego asystenta).
Ważne: ten magazyn dotyczy dostępu DM. Autoryzacja grup jest oddzielna.
Zatwierdzenie kodu parowania DM nie powoduje automatycznie, że ten nadawca może uruchamiać polecenia grupowe lub sterować botem w grupach. W przypadku dostępu do grup skonfiguruj jawne listy dozwolonych dla grup w danym kanale (na przykład `groupAllowFrom`, `groups` lub nadpisania per grupa/per temat zależnie od kanału).
Ważne: ten magazyn dotyczy dostępu do wiadomości prywatnych. Autoryzacja grup jest oddzielna.
Zatwierdzenie kodu parowania wiadomości prywatnej nie pozwala automatycznie temu nadawcy uruchamiać poleceń grupowych ani sterować botem w grupach. W przypadku dostępu grupowego skonfiguruj jawne listy dozwolonych grup dla kanału (na przykład `groupAllowFrom`, `groups` albo nadpisania per grupa/per temat, zależnie od kanału).
## 2) Parowanie urządzeń węzłów (węzły iOS/Android/macOS/bezgłowe)
## 2) Parowanie urządzeń Node (Node iOS/Android/macOS/headless)
Węzły łączą się z Gateway jako **urządzenia** z `role: node`. Gateway
Node łączą się z Gateway jako **urządzenia** z `role: node`. Gateway
tworzy prośbę o sparowanie urządzenia, która musi zostać zatwierdzona.
### Parowanie przez Telegram (zalecane dla iOS)
Jeśli używasz pluginu `device-pair`, możesz przeprowadzić pierwsze parowanie urządzenia całkowicie z Telegrama:
Jeśli używasz Plugin `device-pair`, możesz przeprowadzić pierwsze parowanie urządzenia całkowicie z poziomu Telegram:
1. W Telegram wyślij do swojego bota: `/pair`
2. Bot odpowie dwiema wiadomościami: wiadomością z instrukcją i osobną wiadomością z **kodem konfiguracji** (łatwym do skopiowania/wklejenia w Telegram).
1. W Telegram wyślij wiadomość do swojego bota: `/pair`
2. Bot odpowie dwiema wiadomościami: wiadomością z instrukcjami oraz osobną wiadomością z **kodem konfiguracji** (łatwym do skopiowania/wklejenia w Telegram).
3. Na telefonie otwórz aplikację OpenClaw na iOS → Ustawienia → Gateway.
4. Wklej kod konfiguracji i połącz się.
5. Wróć do Telegrama: `/pair pending` (przejrzyj identyfikatory próśb, rolę i zakresy), a następnie zatwierdź.
5. Wróć do Telegram: `/pair pending` (przejrzyj identyfikatory próśb, rolę i zakresy), a następnie zatwierdź.
Kod konfiguracji to ładunek JSON zakodowany w base64, który zawiera:
Kod konfiguracji to zakodowany w base64 ładunek JSON, który zawiera:
- `url`: URL WebSocket Gatewaya (`ws://...` lub `wss://...`)
- `bootstrapToken`: krótkotrwały token bootstrap dla pojedynczego urządzenia używany w początkowym uzgadnianiu parowania
- `url`: adres URL WebSocket Gateway (`ws://...` lub `wss://...`)
- `bootstrapToken`: krótko żyjący token bootstrap dla pojedynczego urządzenia używany podczas początkowego uzgadniania parowania
Ten token bootstrap zawiera wbudowany profil bootstrap parowania:
Ten token bootstrap ma wbudowany profil bootstrap parowania:
- główny przekazany token `node` pozostaje `scopes: []`
- każdy przekazany token `operator` pozostaje ograniczony do listy dozwolonych bootstrap:
- każdy przekazany token `operator` pozostaje ograniczony do bootstrapowej listy dozwolonej:
`operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`
- sprawdzanie zakresów bootstrap jest poprzedzone rolą, a nie oparte na jednej wspólnej puli zakresów:
wpisy zakresów operatora spełniają tylko żądania operatora, a role inne niż operator
- sprawdzanie zakresów bootstrap jest prefiksowane rolą, a nie realizowane przez jedną wspólną pulę zakresów:
wpisy zakresów operatora spełniają tylko żądania operatora, a role niebędące operatorem
nadal muszą żądać zakresów pod własnym prefiksem roli
Traktuj kod konfiguracji jak hasło, dopóki jest ważny.
### Zatwierdzanie urządzenia węzła
### Zatwierdzenie urządzenia Node
```bash
openclaw devices list
@ -103,34 +103,40 @@ openclaw devices approve <requestId>
openclaw devices reject <requestId>
```
Jeśli to samo urządzenie spróbuje ponownie z innymi danymi uwierzytelniającymi (na przykład inną
Jeśli to samo urządzenie ponowi próbę z innymi danymi uwierzytelniającymi (na przykład inną
rolą/zakresami/kluczem publicznym), poprzednia oczekująca prośba zostaje zastąpiona i tworzony jest nowy
`requestId`.
### Przechowywanie stanu parowania węzłów
Ważne: już sparowane urządzenie nie otrzymuje po cichu szerszego dostępu. Jeśli
ponownie połączy się, prosząc o więcej zakresów albo szerszą rolę, OpenClaw zachowa
istniejące zatwierdzenie bez zmian i utworzy nową oczekującą prośbę o podniesienie uprawnień. Użyj
`openclaw devices list`, aby porównać obecnie zatwierdzony dostęp z nowo
żądanym dostępem przed zatwierdzeniem.
Przechowywane w `~/.openclaw/devices/`:
### Przechowywanie stanu parowania Node
- `pending.json` (krótkotrwałe; oczekujące prośby wygasają)
Przechowywany w `~/.openclaw/devices/`:
- `pending.json` (krótkotrwały; oczekujące prośby wygasają)
- `paired.json` (sparowane urządzenia + tokeny)
### Uwagi
- Starsze API `node.pair.*` (CLI: `openclaw nodes pending|approve|reject|rename`) to
oddzielny magazyn parowania zarządzany przez gateway. Węzły WS nadal wymagają parowania urządzeń.
oddzielny magazyn parowania zarządzany przez Gateway. Node WS nadal wymagają parowania urządzenia.
- Rekord parowania jest trwałym źródłem prawdy dla zatwierdzonych ról. Aktywne
tokeny urządzeń pozostają ograniczone do tego zatwierdzonego zestawu ról; przypadkowy wpis tokena
poza zatwierdzonymi rolami nie tworzy nowego dostępu.
poza zatwierdzonymi rolami nie daje nowego dostępu.
## Powiązana dokumentacja
## Powiązane dokumenty
- Model bezpieczeństwa + prompt injection: [Bezpieczeństwo](/gateway/security)
- Bezpieczne aktualizowanie (uruchom doctor): [Aktualizowanie](/install/updating)
- Model bezpieczeństwa + prompt injection: [Bezpieczeństwo](/pl/gateway/security)
- Bezpieczne aktualizowanie (uruchom doctor): [Aktualizowanie](/pl/install/updating)
- Konfiguracje kanałów:
- Telegram: [Telegram](/channels/telegram)
- WhatsApp: [WhatsApp](/channels/whatsapp)
- Signal: [Signal](/channels/signal)
- BlueBubbles (iMessage): [BlueBubbles](/channels/bluebubbles)
- iMessage (starsze): [iMessage](/channels/imessage)
- Discord: [Discord](/channels/discord)
- Slack: [Slack](/channels/slack)
- Telegram: [Telegram](/pl/channels/telegram)
- WhatsApp: [WhatsApp](/pl/channels/whatsapp)
- Signal: [Signal](/pl/channels/signal)
- BlueBubbles (iMessage): [BlueBubbles](/pl/channels/bluebubbles)
- iMessage (starsze): [iMessage](/pl/channels/imessage)
- Discord: [Discord](/pl/channels/discord)
- Slack: [Slack](/pl/channels/slack)

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,14 @@
---
read_when:
- Transport kanału pokazuje połączenie, ale odpowiedzi nie działają
- Potrzebujesz kontroli specyficznych dla kanału przed przejściem do szczegółowej dokumentacji dostawcy
summary: Szybkie rozwiązywanie problemów na poziomie kanału z sygnaturami awarii i poprawkami dla poszczególnych kanałów
- Potrzebujesz kontroli specyficznych dla kanału, zanim przejdziesz do szczegółowej dokumentacji dostawcy
summary: Szybkie rozwiązywanie problemów na poziomie kanału z charakterystycznymi sygnaturami awarii dla każdego kanału i sposobami naprawy
title: Rozwiązywanie problemów z kanałami
x-i18n:
generated_at: "2026-04-05T13:46:43Z"
generated_at: "2026-04-20T09:58:27Z"
model: gpt-5.4
provider: openai
source_hash: d45d8220505ea420d970b20bc66e65216c2d7024b5736db1936421ffc0676e1f
source_hash: 0aef31742cd5cc4af3fa3d3ea1acba51875ad4a1423c0e8c87372c3df31b0528
source_path: channels/troubleshooting.md
workflow: 15
---
@ -17,7 +17,7 @@ x-i18n:
Użyj tej strony, gdy kanał się łączy, ale działa nieprawidłowo.
## Sekwencja poleceń
## Drabina poleceń
Najpierw uruchom je w tej kolejności:
@ -32,68 +32,69 @@ openclaw channels status --probe
Prawidłowy stan bazowy:
- `Runtime: running`
- `RPC probe: ok`
- Sonda kanału pokazuje połączony transport oraz, tam gdzie jest to obsługiwane, `works` lub `audit ok`
- `Connectivity probe: ok`
- `Capability: read-only`, `write-capable` lub `admin-capable`
- Test kanału pokazuje, że transport jest połączony, a tam, gdzie to obsługiwane, `works` lub `audit ok`
## WhatsApp
### Sygnatury awarii WhatsApp
| Objaw | Najszybsza kontrola | Poprawka |
| ------------------------------- | ----------------------------------------------- | ------------------------------------------------------- |
| Połączono, ale brak odpowiedzi w DM | `openclaw pairing list whatsapp` | Zatwierdź nadawcę albo zmień politykę DM/listę dozwolonych. |
| Wiadomości grupowe są ignorowane | Sprawdź `requireMention` + wzorce wzmianek w konfiguracji | Wspomnij bota albo złagodź politykę wzmianek dla tej grupy. |
| Losowe pętle rozłączeń/ponownych logowań | `openclaw channels status --probe` + logi | Zaloguj się ponownie i sprawdź, czy katalog poświadczeń jest w dobrym stanie. |
| Objaw | Najszybsza kontrola | Naprawa |
| ------------------------------- | ------------------------------------------------- | ------------------------------------------------------- |
| Połączono, ale brak odpowiedzi w DM | `openclaw pairing list whatsapp` | Zatwierdź nadawcę lub zmień politykę DM/listę dozwolonych. |
| Wiadomości grupowe są ignorowane | Sprawdź `requireMention` i wzorce wzmianek w konfiguracji | Wspomnij bota lub złagodź politykę wzmianek dla tej grupy. |
| Losowe rozłączenia/pętle ponownego logowania | `openclaw channels status --probe` + logi | Zaloguj się ponownie i sprawdź, czy katalog poświadczeń jest w dobrym stanie. |
Pełne rozwiązywanie problemów: [/channels/whatsapp#troubleshooting](/channels/whatsapp#troubleshooting)
Pełne rozwiązywanie problemów: [/channels/whatsapp#troubleshooting](/pl/channels/whatsapp#troubleshooting)
## Telegram
### Sygnatury awarii Telegram
| Objaw | Najszybsza kontrola | Poprawka |
| ----------------------------------- | ------------------------------------------- | ---------------------------------------------------------------------------- |
| `/start`, ale brak użytecznego przepływu odpowiedzi | `openclaw pairing list telegram` | Zatwierdź parowanie albo zmień politykę DM. |
| Bot jest online, ale grupa milczy | Sprawdź wymóg wzmianki i tryb prywatności bota | Wyłącz tryb prywatności dla widoczności w grupie albo wspomnij bota. |
| Błędy wysyłania z błędami sieciowymi | Sprawdź logi pod kątem błędów wywołań API Telegram | Napraw routing DNS/IPv6/proxy do `api.telegram.org`. |
| `setMyCommands` odrzucone przy uruchamianiu | Sprawdź logi pod kątem `BOT_COMMANDS_TOO_MUCH` | Ogranicz komendy plugin/Skills/własne komendy Telegram albo wyłącz natywne menu. |
| Po aktualizacji lista dozwolonych Cię blokuje | `openclaw security audit` i listy dozwolonych w konfiguracji | Uruchom `openclaw doctor --fix` albo zastąp `@username` numerycznymi identyfikatorami nadawców. |
| Objaw | Najszybsza kontrola | Naprawa |
| ----------------------------------- | --------------------------------------------- | -------------------------------------------------------------------------- |
| `/start`, ale brak użytecznego przepływu odpowiedzi | `openclaw pairing list telegram` | Zatwierdź parowanie lub zmień politykę DM. |
| Bot jest online, ale grupa milczy | Sprawdź wymóg wzmianki i tryb prywatności bota | Wyłącz tryb prywatności dla widoczności w grupie lub wspomnij bota. |
| Błędy wysyłania z błędami sieciowymi | Sprawdź logi pod kątem błędów wywołań Telegram API | Napraw routing DNS/IPv6/proxy do `api.telegram.org`. |
| `setMyCommands` odrzucane przy starcie | Sprawdź logi pod kątem `BOT_COMMANDS_TOO_MUCH` | Ogranicz komendy Telegram z Plugin/Skills/własne lub wyłącz natywne menu. |
| Po aktualizacji lista dozwolonych Cię blokuje | `openclaw security audit` i listy dozwolonych w konfiguracji | Uruchom `openclaw doctor --fix` lub zastąp `@username` numerycznymi identyfikatorami nadawców. |
Pełne rozwiązywanie problemów: [/channels/telegram#troubleshooting](/channels/telegram#troubleshooting)
Pełne rozwiązywanie problemów: [/channels/telegram#troubleshooting](/pl/channels/telegram#troubleshooting)
## Discord
### Sygnatury awarii Discord
| Objaw | Najszybsza kontrola | Poprawka |
| ------------------------------- | ------------------------------------ | --------------------------------------------------------- |
| Bot jest online, ale brak odpowiedzi na serwerze | `openclaw channels status --probe` | Zezwól na serwer/kanał i sprawdź uprawnienie message content. |
| Wiadomości grupowe są ignorowane | Sprawdź logi pod kątem odrzuceń przez reguły wzmianek | Wspomnij bota albo ustaw `requireMention: false` dla serwera/kanału. |
| Brak odpowiedzi w DM | `openclaw pairing list discord` | Zatwierdź parowanie DM albo dostosuj politykę DM. |
| Objaw | Najszybsza kontrola | Naprawa |
| ------------------------------- | -------------------------------- | -------------------------------------------------------- |
| Bot jest online, ale nie odpowiada na serwerze | `openclaw channels status --probe` | Zezwól na serwer/kanał i sprawdź uprawnienie message content intent. |
| Wiadomości grupowe są ignorowane | Sprawdź logi pod kątem odrzuceń przez reguły wzmianek | Wspomnij bota lub ustaw `requireMention: false` dla serwera/kanału. |
| Brak odpowiedzi w DM | `openclaw pairing list discord` | Zatwierdź parowanie DM lub dostosuj politykę DM. |
Pełne rozwiązywanie problemów: [/channels/discord#troubleshooting](/channels/discord#troubleshooting)
Pełne rozwiązywanie problemów: [/channels/discord#troubleshooting](/pl/channels/discord#troubleshooting)
## Slack
### Sygnatury awarii Slack
| Objaw | Najszybsza kontrola | Poprawka |
| -------------------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Socket mode połączony, ale brak odpowiedzi | `openclaw channels status --probe` | Sprawdź token aplikacji + token bota i wymagane zakresy; obserwuj `botTokenStatus` / `appTokenStatus = configured_unavailable` w konfiguracjach opartych na SecretRef. |
| DM są blokowane | `openclaw pairing list slack` | Zatwierdź parowanie albo złagodź politykę DM. |
| Wiadomość na kanale jest ignorowana | Sprawdź `groupPolicy` i listę dozwolonych kanałów | Zezwól na kanał albo przełącz politykę na `open`. |
| Objaw | Najszybsza kontrola | Naprawa |
| -------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Socket mode jest połączony, ale brak odpowiedzi | `openclaw channels status --probe` | Sprawdź token aplikacji + token bota oraz wymagane zakresy; zwróć uwagę na `botTokenStatus` / `appTokenStatus = configured_unavailable` w konfiguracjach opartych na SecretRef. |
| DM są blokowane | `openclaw pairing list slack` | Zatwierdź parowanie lub złagodź politykę DM. |
| Wiadomość na kanale jest ignorowana | Sprawdź `groupPolicy` i listę dozwolonych kanałów | Zezwól na kanał lub przełącz politykę na `open`. |
Pełne rozwiązywanie problemów: [/channels/slack#troubleshooting](/channels/slack#troubleshooting)
Pełne rozwiązywanie problemów: [/channels/slack#troubleshooting](/pl/channels/slack#troubleshooting)
## iMessage i BlueBubbles
## iMessage and BlueBubbles
### Sygnatury awarii iMessage i BlueBubbles
| Objaw | Najszybsza kontrola | Poprawka |
| Objaw | Najszybsza kontrola | Naprawa |
| -------------------------------- | --------------------------------------------------------------------- | ---------------------------------------------------- |
| Brak zdarzeń przychodzących | Sprawdź osiągalność webhooka/serwera i uprawnienia aplikacji | Napraw URL webhooka albo stan serwera BlueBubbles. |
| Można wysyłać, ale brak odbioru na macOS | Sprawdź uprawnienia prywatności macOS dla automatyzacji Messages | Nadaj ponownie uprawnienia TCC i uruchom ponownie proces kanału. |
| Nadawca DM jest blokowany | `openclaw pairing list imessage` lub `openclaw pairing list bluebubbles` | Zatwierdź parowanie albo zaktualizuj listę dozwolonych. |
| Brak zdarzeń przychodzących | Sprawdź osiągalność Webhook/servera i uprawnienia aplikacji | Napraw URL Webhook lub stan serwera BlueBubbles. |
| Można wysyłać, ale nie odbiera na macOS | Sprawdź uprawnienia prywatności macOS dla automatyzacji Messages | Ponownie nadaj uprawnienia TCC i uruchom proces kanału ponownie. |
| Nadawca DM jest blokowany | `openclaw pairing list imessage` lub `openclaw pairing list bluebubbles` | Zatwierdź parowanie lub zaktualizuj listę dozwolonych. |
Pełne rozwiązywanie problemów:
@ -104,24 +105,24 @@ Pełne rozwiązywanie problemów:
### Sygnatury awarii Signal
| Objaw | Najszybsza kontrola | Poprawka |
| ------------------------------- | ------------------------------------ | ------------------------------------------------------------ |
| Demon jest osiągalny, ale bot milczy | `openclaw channels status --probe` | Sprawdź URL/konto demona `signal-cli` oraz tryb odbioru. |
| DM są blokowane | `openclaw pairing list signal` | Zatwierdź nadawcę albo dostosuj politykę DM. |
| Odpowiedzi w grupie nie są wyzwalane | Sprawdź listę dozwolonych grup i wzorce wzmianek | Dodaj nadawcę/grupę albo złagodź reguły blokujące. |
| Objaw | Najszybsza kontrola | Naprawa |
| ------------------------------- | ----------------------------------- | ------------------------------------------------------- |
| Demon jest osiągalny, ale bot milczy | `openclaw channels status --probe` | Sprawdź URL/konto demona `signal-cli` i tryb odbioru. |
| DM są blokowane | `openclaw pairing list signal` | Zatwierdź nadawcę lub dostosuj politykę DM. |
| Odpowiedzi w grupie się nie uruchamiają | Sprawdź listę dozwolonych grup i wzorce wzmianek | Dodaj nadawcę/grupę lub złagodź reguły blokowania. |
Pełne rozwiązywanie problemów: [/channels/signal#troubleshooting](/channels/signal#troubleshooting)
Pełne rozwiązywanie problemów: [/channels/signal#troubleshooting](/pl/channels/signal#troubleshooting)
## QQ Bot
### Sygnatury awarii QQ Bot
| Objaw | Najszybsza kontrola | Poprawka |
| ------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
| Bot odpowiada „gone to Mars” | Sprawdź `appId` i `clientSecret` w konfiguracji | Ustaw poświadczenia albo uruchom ponownie gateway. |
| Brak wiadomości przychodzących | `openclaw channels status --probe` | Zweryfikuj poświadczenia na QQ Open Platform. |
| Mowa nie jest transkrybowana | Sprawdź konfigurację dostawcy STT | Skonfiguruj `channels.qqbot.stt` lub `tools.media.audio`. |
| Wiadomości proaktywne nie docierają | Sprawdź wymagania platformy QQ dotyczące interakcji | QQ może blokować wiadomości inicjowane przez bota bez niedawnej interakcji. |
| Objaw | Najszybsza kontrola | Naprawa |
| ------------------------------- | -------------------------------------------- | --------------------------------------------------------------- |
| Bot odpowiada „gone to Mars” | Sprawdź `appId` i `clientSecret` w konfiguracji | Ustaw poświadczenia lub uruchom Gateway ponownie. |
| Brak wiadomości przychodzących | `openclaw channels status --probe` | Sprawdź poświadczenia na QQ Open Platform. |
| Głos nie jest transkrybowany | Sprawdź konfigurację dostawcy STT | Skonfiguruj `channels.qqbot.stt` lub `tools.media.audio`. |
| Wiadomości proaktywne nie docierają | Sprawdź wymagania interakcji platformy QQ | QQ może blokować wiadomości inicjowane przez bota bez niedawnej interakcji. |
Pełne rozwiązywanie problemów: [/channels/qqbot#troubleshooting](/pl/channels/qqbot#troubleshooting)
@ -129,12 +130,12 @@ Pełne rozwiązywanie problemów: [/channels/qqbot#troubleshooting](/pl/channels
### Sygnatury awarii Matrix
| Objaw | Najszybsza kontrola | Poprawka |
| ----------------------------------- | -------------------------------------- | ------------------------------------------------------------------------- |
| Zalogowano, ale ignoruje wiadomości w pokoju | `openclaw channels status --probe` | Sprawdź `groupPolicy`, listę dozwolonych pokoi i reguły wzmianek. |
| DM nie są przetwarzane | `openclaw pairing list matrix` | Zatwierdź nadawcę albo dostosuj politykę DM. |
| Szyfrowane pokoje nie działają | `openclaw matrix verify status` | Zweryfikuj urządzenie ponownie, a następnie sprawdź `openclaw matrix verify backup status`. |
| Przywracanie kopii zapasowej oczekuje/jest uszkodzone | `openclaw matrix verify backup status` | Uruchom `openclaw matrix verify backup restore` albo wykonaj ponownie z kluczem odzyskiwania. |
| Cross-signing/bootstrap wygląda nieprawidłowo | `openclaw matrix verify bootstrap` | Napraw magazyn sekretów, cross-signing i stan kopii zapasowej w jednym przebiegu. |
| Objaw | Najszybsza kontrola | Naprawa |
| ----------------------------------- | ------------------------------------ | ------------------------------------------------------------------------ |
| Zalogowano, ale ignoruje wiadomości w pokoju | `openclaw channels status --probe` | Sprawdź `groupPolicy`, listę dozwolonych pokoi i reguły wzmianek. |
| DM nie są przetwarzane | `openclaw pairing list matrix` | Zatwierdź nadawcę lub dostosuj politykę DM. |
| Zaszyfrowane pokoje nie działają | `openclaw matrix verify status` | Zweryfikuj urządzenie ponownie, a następnie sprawdź `openclaw matrix verify backup status`. |
| Przywracanie kopii zapasowej oczekuje/jest uszkodzone | `openclaw matrix verify backup status` | Uruchom `openclaw matrix verify backup restore` lub uruchom ponownie z kluczem odzyskiwania. |
| Cross-signing/bootstrap wygląda nieprawidłowo | `openclaw matrix verify bootstrap` | Napraw magazyn sekretów, cross-signing i stan kopii zapasowej w jednym przebiegu. |
Pełna konfiguracja i ustawienia: [Matrix](/channels/matrix)
Pełna konfiguracja i ustawienia: [Matrix](/pl/channels/matrix)

View File

@ -3,21 +3,21 @@ read_when:
- Rozszerzanie qa-lab lub qa-channel
- Dodawanie scenariuszy QA opartych na repozytorium
- Budowanie bardziej realistycznej automatyzacji QA wokół panelu Gateway
summary: Prywatna struktura automatyzacji QA dla qa-lab, qa-channel, scenariuszy seedowanych i raportów protokołu
title: Automatyzacja QA E2E
summary: Prywatny kształt automatyzacji QA dla qa-lab, qa-channel, scenariuszy z seedowaniem i raportów protokołu
title: Automatyzacja E2E QA
x-i18n:
generated_at: "2026-04-18T09:34:51Z"
generated_at: "2026-04-20T09:58:24Z"
model: gpt-5.4
provider: openai
source_hash: adf8c5f74e8fabdc8e9fd7ecd41afce8b60354c7dd24d92ac926d3c527927cd4
source_hash: 34245ce871356caeab0d9e0eeeaa9fb4e408920a4a97ad27567fa365d8db17c7
source_path: concepts/qa-e2e-automation.md
workflow: 15
---
# Automatyzacja QA E2E
# Automatyzacja E2E QA
Prywatny stos QA ma na celu testowanie OpenClaw w bardziej realistyczny,
kanałowy sposób niż pojedynczy test jednostkowy.
Prywatny stos QA ma ćwiczyć OpenClaw w sposób bardziej realistyczny,
ukształtowany przez kanały niż pojedynczy test jednostkowy.
Obecne elementy:
@ -25,12 +25,12 @@ Obecne elementy:
reakcji, edycji i usuwania.
- `extensions/qa-lab`: interfejs debuggera i magistrala QA do obserwowania transkryptu,
wstrzykiwania wiadomości przychodzących i eksportowania raportu Markdown.
- `qa/`: zasoby seedowane oparte na repozytorium dla zadania startowego i bazowych scenariuszy QA.
- `qa/`: zasoby seedów oparte na repozytorium dla zadania startowego i bazowych scenariuszy QA.
Obecny przepływ pracy operatora QA to dwupanelowa witryna QA:
- Po lewej: panel Gateway (Control UI) z agentem.
- Po prawej: QA Lab, pokazujący transkrypt w stylu Slacka i plan scenariusza.
- Lewa strona: panel Gateway (Control UI) z agentem.
- Prawa strona: QA Lab, pokazujący transkrypt w stylu Slacka i plan scenariusza.
Uruchom za pomocą:
@ -38,13 +38,13 @@ Uruchom za pomocą:
pnpm qa:lab:up
```
To buduje witrynę QA, uruchamia opartą na Dockerze ścieżkę gateway i udostępnia
stronę QA Lab, na której operator lub pętla automatyzacji może zlecić agentowi
misję QA, obserwować rzeczywiste zachowanie kanału oraz rejestrować, co zadziałało,
co się nie udało i co pozostało zablokowane.
To buduje witrynę QA, uruchamia opartą na Dockerze ścieżkę Gateway i udostępnia stronę
QA Lab, na której operator lub pętla automatyzacji może zlecić agentowi misję QA,
obserwować rzeczywiste zachowanie kanału i zapisywać, co zadziałało, co się nie udało
lub co pozostało zablokowane.
Aby szybciej iterować nad interfejsem QA Lab bez przebudowywania obrazu Docker przy każdej zmianie,
uruchom stos z podmontowanym pakietem QA Lab:
uruchom stos z bind-mountowanym bundlerem QA Lab:
```bash
pnpm openclaw qa docker-build-image
@ -53,53 +53,55 @@ pnpm qa:lab:up:fast
pnpm qa:lab:watch
```
`qa:lab:up:fast` utrzymuje usługi Docker na wcześniej zbudowanym obrazie i bind-mountuje
`qa:lab:up:fast` utrzymuje usługi Docker na wstępnie zbudowanym obrazie i bind-mountuje
`extensions/qa-lab/web/dist` do kontenera `qa-lab`. `qa:lab:watch`
przebudowuje ten pakiet przy zmianach, a przeglądarka automatycznie przeładowuje się, gdy zmienia się hash zasobów QA Lab.
przebudowuje ten bundel po zmianach, a przeglądarka automatycznie przeładowuje się, gdy hash zasobu QA Lab się zmieni.
Dla ścieżki smoke Matrix z rzeczywistym transportem uruchom:
Aby uruchomić ścieżkę smoke z rzeczywistym transportem Matrix, użyj:
```bash
pnpm openclaw qa matrix
```
Ta ścieżka udostępnia jednorazowy homeserver Tuwunel w Dockerze, rejestruje
tymczasowych użytkowników drivera, SUT i obserwatora, tworzy jeden prywatny pokój,
a następnie uruchamia prawdziwy Plugin Matrix wewnątrz procesu podrzędnego QA gateway. Ścieżka z żywym transportem utrzymuje konfigurację procesu podrzędnego ograniczoną do testowanego transportu, dzięki czemu Matrix działa bez
Ta ścieżka provisionuje jednorazowy homeserver Tuwunel w Dockerze, rejestruje
tymczasowych użytkowników drivera, SUT i obserwatora, tworzy jeden prywatny pokój, a następnie uruchamia
rzeczywisty Plugin Matrix wewnątrz podrzędnego procesu Gateway QA. Ścieżka z żywym transportem utrzymuje
konfigurację procesu podrzędnego ograniczoną do testowanego transportu, dzięki czemu Matrix działa bez
`qa-channel` w konfiguracji procesu podrzędnego. Zapisuje ustrukturyzowane artefakty raportu oraz
połączony log stdout/stderr do wybranego katalogu wyjściowego Matrix QA. Aby
przechwycić także zewnętrzne dane wyjściowe budowania/uruchamiania z `scripts/run-node.mjs`,
ustaw `OPENCLAW_RUN_NODE_OUTPUT_LOG=<path>` na plik logu lokalny względem repozytorium.
połączony log stdout/stderr do wybranego katalogu wyjściowego Matrix QA. Aby przechwycić także
zewnętrzne wyjście build/launcher z `scripts/run-node.mjs`, ustaw
`OPENCLAW_RUN_NODE_OUTPUT_LOG=<path>` na plik logu lokalny dla repozytorium.
Dla ścieżki smoke Telegram z rzeczywistym transportem uruchom:
Aby uruchomić ścieżkę smoke z rzeczywistym transportem Telegram, użyj:
```bash
pnpm openclaw qa telegram
```
Ta ścieżka kieruje ruch do jednej prawdziwej prywatnej grupy Telegram zamiast udostępni
Ta ścieżka celuje w jedną rzeczywistą prywatną grupę Telegram zamiast provisionow
jednorazowy serwer. Wymaga `OPENCLAW_QA_TELEGRAM_GROUP_ID`,
`OPENCLAW_QA_TELEGRAM_DRIVER_BOT_TOKEN` i
`OPENCLAW_QA_TELEGRAM_DRIVER_BOT_TOKEN` oraz
`OPENCLAW_QA_TELEGRAM_SUT_BOT_TOKEN`, a także dwóch różnych botów w tej samej
prywatnej grupie. Bot SUT musi mieć nazwę użytkownika Telegram, a obserwacja bot-do-bota
działa najlepiej, gdy oba boty mają włączony Bot-to-Bot Communication Mode
działa najlepiej, gdy oba boty mają włączony tryb Bot-to-Bot Communication Mode
w `@BotFather`.
Polecenie kończy się kodem różnym od zera, gdy jakikolwiek scenariusz się nie powiedzie. Użyj `--allow-failures`, jeśli
chcesz uzyskać artefakty bez kończenia z błędnym kodem wyjścia.
Ścieżki z żywym transportem współdzielą teraz jeden mniejszy kontrakt zamiast tego, by każda definiowała
Ścieżki z żywym transportem współdzielą teraz jeden mniejszy kontrakt zamiast każda wymyślać
własny kształt listy scenariuszy:
`qa-channel` pozostaje szerokim syntetycznym zestawem zachowań produktu i nie jest częścią
macierzy pokrycia dla żywego transportu.
`qa-channel` pozostaje szerokim syntetycznym zestawem testów zachowania produktu i nie jest częścią macierzy pokrycia żywego transportu.
| Ścieżka | Canary | Bramka wzmianki | Blokada allowlisty | Odpowiedź najwyższego poziomu | Wznowienie po restarcie | Dalszy ciąg w wątku | Izolacja wątku | Obserwacja reakcji | Polecenie pomocy |
| -------- | ------ | --------------- | ------------------ | ----------------------------- | ----------------------- | ------------------- | -------------- | ------------------ | ---------------- |
| Matrix | x | x | x | x | x | x | x | x | |
| Telegram | x | | | | | | | | x |
| Ścieżka | Canary | Bramka wzmianek | Blokada allowlisty | Odpowiedź najwyższego poziomu | Wznowienie po restarcie | Dalszy ciąg wątku | Izolacja wątku | Obserwacja reakcji | Polecenie help |
| -------- | ------ | --------------- | ------------------ | ----------------------------- | ----------------------- | ----------------- | -------------- | ------------------ | -------------- |
| Matrix | x | x | x | x | x | x | x | x | |
| Telegram | x | | | | | | | | x |
Dzięki temu `qa-channel` pozostaje szerokim zestawem zachowań produktu, podczas gdy Matrix,
Dzięki temu `qa-channel` pozostaje szerokim zestawem testów zachowania produktu, podczas gdy Matrix,
Telegram i przyszłe żywe transporty współdzielą jedną jawną checklistę kontraktu transportowego.
Dla ścieżki z jednorazową maszyną wirtualną Linux bez wprowadzania Dockera do ścieżki QA uruchom:
Aby uruchomić ścieżkę na jednorazowej maszynie wirtualnej Linux bez wprowadzania Dockera do ścieżki QA, użyj:
```bash
pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline
@ -108,19 +110,21 @@ pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline
To uruchamia świeżego gościa Multipass, instaluje zależności, buduje OpenClaw
wewnątrz gościa, uruchamia `qa suite`, a następnie kopiuje zwykły raport QA i
podsumowanie z powrotem do `.artifacts/qa-e2e/...` na hoście.
Wykorzystuje to samo zachowanie wyboru scenariuszy co `qa suite` na hoście.
Uruchomienia hosta i Multipass suite domyślnie wykonują wiele wybranych scenariuszy równolegle
z izolowanymi workerami gateway, maksymalnie do 64 workerów lub liczby wybranych
scenariuszy. Użyj `--concurrency <count>`, aby dostroić liczbę workerów, albo
`--concurrency 1` dla wykonania szeregowego.
Uruchomienia na żywo przekazują obsługiwane dane uwierzytelniające QA, które są praktyczne dla
gościa: klucze dostawców oparte na zmiennych środowiskowych, ścieżkę konfiguracji dostawcy QA live oraz
`CODEX_HOME`, jeśli jest obecne. Zachowaj `--output-dir` w katalogu głównym repozytorium, aby gość
mógł zapisywać z powrotem przez podmontowany obszar roboczy.
Ponownie wykorzystuje to samo zachowanie wyboru scenariuszy co `qa suite` na hoście.
Uruchomienia na hoście i w Multipass domyślnie wykonują wiele wybranych scenariuszy równolegle
z izolowanymi workerami Gateway. `qa-channel` domyślnie używa współbieżności 4,
ograniczonej przez liczbę wybranych scenariuszy. Użyj `--concurrency <count>`, aby dostroić
liczbę workerów, lub `--concurrency 1` dla wykonywania szeregowego.
Polecenie kończy się kodem różnym od zera, gdy jakikolwiek scenariusz się nie powiedzie. Użyj `--allow-failures`, jeśli
chcesz uzyskać artefakty bez kończenia z błędnym kodem wyjścia.
Uruchomienia live przekazują obsługiwane wejścia uwierzytelniania QA, które są praktyczne dla
gościa: klucze dostawcy oparte na env, ścieżkę konfiguracji dostawcy live QA oraz
`CODEX_HOME`, jeśli jest obecne. Trzymaj `--output-dir` w katalogu głównym repozytorium, aby gość
mógł zapisywać z powrotem przez zamontowany workspace.
## Seedy oparte na repozytorium
Zasoby seedowane znajdują się w `qa/`:
Zasoby seedów znajdują się w `qa/`:
- `qa/scenarios/index.md`
- `qa/scenarios/<theme>/*.md`
@ -128,30 +132,30 @@ Zasoby seedowane znajdują się w `qa/`:
Są one celowo przechowywane w git, aby plan QA był widoczny zarówno dla ludzi, jak i dla
agenta.
`qa-lab` powinien pozostać generycznym runnerem Markdown. Każdy plik scenariusza Markdown jest
źródłem prawdy dla jednego uruchomienia testowego i powinien definiować:
`qa-lab` powinien pozostać ogólnym runnerem Markdown. Każdy plik scenariusza Markdown jest
źródłem prawdy dla jednego uruchomienia testu i powinien definiować:
- metadane scenariusza
- opcjonalne metadane kategorii, możliwości, ścieżki i ryzyka
- odwołania do dokumentacji i kodu
- opcjonalne wymagania Plugin
- opcjonalną łatkę konfiguracji gateway
- opcjonalny patch konfiguracji Gateway
- wykonywalny `qa-flow`
Powtarzalna powierzchnia runtime, która stoi za `qa-flow`, może pozostać generyczna
i przekrojowa. Na przykład scenariusze Markdown mogą łączyć helpery po stronie
transportu z helperami po stronie przeglądarki, które sterują osadzonym interfejsem Control UI przez
Wielokrotnego użytku powierzchnia runtime, która wspiera `qa-flow`, może pozostać ogólna
i przekrojowa. Na przykład scenariusze Markdown mogą łączyć pomocniki po stronie transportu
z pomocnikami po stronie przeglądarki, które sterują osadzonym Control UI przez
powierzchnię Gateway `browser.request`, bez dodawania runnera specjalnego przypadku.
Pliki scenariuszy powinny być grupowane według możliwości produktu, a nie według folderu
drzewa źródłowego. Zachowuj stabilność ID scenariuszy przy przenoszeniu plików; używaj `docsRefs` i `codeRefs`
Pliki scenariuszy powinny być grupowane według możliwości produktu, a nie folderu drzewa źródeł.
Zachowuj stabilność identyfikatorów scenariuszy przy przenoszeniu plików; używaj `docsRefs` i `codeRefs`
dla identyfikowalności implementacji.
Lista bazowa powinna pozostać wystarczająco szeroka, by obejmować:
Lista bazowa powinna pozostać wystarczająco szeroka, aby obejmować:
- czat DM i kanałowy
- zachowanie wątków
- cykl życia akcji na wiadomościach
- zachowanie wątku
- cykl życia akcji wiadomości
- wywołania zwrotne Cron
- przywoływanie pamięci
- przełączanie modeli
@ -159,33 +163,32 @@ Lista bazowa powinna pozostać wystarczająco szeroka, by obejmować:
- odczyt repozytorium i dokumentacji
- jedno małe zadanie build, takie jak Lobster Invaders
## Ścieżki z mockami dostawców
## Ścieżki mock dostawców
`qa suite` ma dwie lokalne ścieżki z mockami dostawców:
`qa suite` ma dwie lokalne ścieżki mock dostawców:
- `mock-openai` to świadomy scenariuszy mock OpenClaw. Pozostaje domyślną
deterministyczną ścieżką mock dla QA opartego na repozytorium i bramek zgodności.
- `aimock` uruchamia serwer dostawcy oparty na AIMock do eksperymentalnego pokrycia
protokołu, fixture, record/replay i chaos. Jest dodatkiem i nie zastępuje
dyspozytora scenariuszy `mock-openai`.
deterministyczną ścieżką mock dla QA opartego na repozytorium i bramek parzystości.
- `aimock` uruchamia serwer dostawcy oparty na AIMock do eksperymentalnego pokrycia protokołu,
fixture, record/replay i chaos. Jest dodatkiem i nie zastępuje dispatcher scenariuszy `mock-openai`.
Implementacja ścieżek dostawców znajduje się w `extensions/qa-lab/src/providers/`.
Każdy dostawca zarządza własnymi ustawieniami domyślnymi, uruchamianiem lokalnego serwera, konfiguracją modeli gateway,
potrzebami przygotowania profilu auth oraz flagami możliwości live/mock. Współdzielony kod suite i gateway
powinien routować przez rejestr dostawców zamiast rozgałęziać się według nazw dostawców.
Implementacja ścieżki dostawców znajduje się w `extensions/qa-lab/src/providers/`.
Każdy dostawca posiada własne ustawienia domyślne, uruchamianie lokalnego serwera,
konfigurację modelu Gateway, potrzeby przygotowania profilu auth oraz flagi możliwości live/mock. Współdzielony kod suite i Gateway
powinien przechodzić przez rejestr dostawców zamiast rozgałęziać się po nazwach dostawców.
## Adaptery transportu
`qa-lab` zarządza generyczną powierzchnią transportu dla scenariuszy QA Markdown.
`qa-channel` jest pierwszym adapterem na tej powierzchni, ale docelowy projekt jest szerszy:
przyszłe prawdziwe lub syntetyczne kanały powinny podłączać się do tego samego runnera suite
`qa-lab` posiada ogólną powierzchnię transportu dla scenariuszy QA w Markdown.
`qa-channel` jest pierwszym adapterem na tej powierzchni, ale cel projektu jest szerszy:
przyszłe rzeczywiste lub syntetyczne kanały powinny podłączać się do tego samego runnera suite
zamiast dodawania runnera QA specyficznego dla transportu.
Na poziomie architektury podział wygląda następująco:
- `qa-lab` zarządza generycznym wykonywaniem scenariuszy, współbieżnością workerów, zapisem artefaktów i raportowaniem.
- adapter transportu zarządza konfiguracją gateway, gotowością, obserwacją ruchu przychodzącego i wychodzącego, akcjami transportu oraz znormalizowanym stanem transportu.
- pliki scenariuszy Markdown w `qa/scenarios/` definiują przebieg testu; `qa-lab` zapewnia powtarzalną powierzchnię runtime, która je wykonuje.
- `qa-lab` odpowiada za ogólne wykonywanie scenariuszy, współbieżność workerów, zapisywanie artefaktów i raportowanie.
- adapter transportu odpowiada za konfigurację Gateway, gotowość, obserwację wejścia i wyjścia, akcje transportu oraz znormalizowany stan transportu.
- pliki scenariuszy Markdown w `qa/scenarios/` definiują uruchomienie testu; `qa-lab` dostarcza wielokrotnego użytku powierzchnię runtime, która je wykonuje.
Wskazówki wdrożeniowe dla maintainerów dotyczące nowych adapterów kanałów znajdują się w
[Testing](/pl/help/testing#adding-a-channel-to-qa).
@ -198,9 +201,9 @@ Raport powinien odpowiadać na pytania:
- Co zadziałało
- Co się nie udało
- Co pozostało zablokowane
- Jakie scenariusze uzupełniające warto dodać
- Jakie kolejne scenariusze warto dodać
Dla sprawdzania charakteru i stylu uruchom ten sam scenariusz na wielu refach modeli live
W przypadku kontroli charakteru i stylu uruchom ten sam scenariusz dla wielu referencji modeli live
i zapisz oceniony raport Markdown:
```bash
@ -220,34 +223,35 @@ pnpm openclaw qa character-eval \
--judge-concurrency 16
```
Polecenie uruchamia lokalne procesy podrzędne QA gateway, a nie Docker. Scenariusze
character eval powinny ustawiać personę przez `SOUL.md`, a następnie wykonywać zwykłe tury użytkownika,
Polecenie uruchamia lokalne podrzędne procesy Gateway QA, a nie Docker. Scenariusze oceny charakteru
powinny ustawiać personę przez `SOUL.md`, a następnie wykonywać zwykłe tury użytkownika,
takie jak czat, pomoc dotycząca workspace i małe zadania na plikach. Kandydacki model
nie powinien być informowany, że jest oceniany. Polecenie zachowuje każdy pełny
transkrypt, rejestruje podstawowe statystyki uruchomienia, a następnie prosi modele oceniające w trybie fast z
rozumowaniem `xhigh` o uszeregowanie uruchomień według naturalności, klimatu i humoru.
transkrypt, rejestruje podstawowe statystyki uruchomienia, a następnie prosi modele sędziowskie w trybie fast z
rozumowaniem `xhigh`, aby uszeregowały uruchomienia według naturalności, klimatu i humoru.
Użyj `--blind-judge-models` przy porównywaniu dostawców: prompt sędziego nadal otrzymuje
każdy transkrypt i status uruchomienia, ale refy kandydatów są zastępowane neutralnymi
etykietami takimi jak `candidate-01`; raport mapuje rankingi z powrotem na rzeczywiste refy po
każdy transkrypt i status uruchomienia, ale referencje kandydatów są zastępowane neutralnymi
etykietami, takimi jak `candidate-01`; raport mapuje rankingi z powrotem na rzeczywiste referencje po
parsowaniu.
Uruchomienia kandydatów domyślnie używają poziomu myślenia `high`, z `xhigh` dla modeli OpenAI,
które to obsługują. Zastąp ustawienie dla konkretnego kandydata inline przez
Uruchomienia kandydatów domyślnie używają myślenia `high`, z `xhigh` dla modeli OpenAI, które to
obsługują. Nadpisz konkretnego kandydata inline za pomocą
`--model provider/model,thinking=<level>`. `--thinking <level>` nadal ustawia
globalny fallback, a starsza forma `--model-thinking <provider/model=level>` jest
globalną wartość zapasową, a starsza forma `--model-thinking <provider/model=level>` jest
zachowana dla zgodności.
Refy kandydatów OpenAI domyślnie używają trybu fast, aby tam, gdzie dostawca to obsługuje, wykorzystywane było przetwarzanie priorytetowe. Dodaj inline `,fast`, `,no-fast` lub `,fast=false`, gdy
Referencje kandydatów OpenAI domyślnie używają trybu fast, dzięki czemu priorytetowe przetwarzanie jest stosowane tam,
gdzie dostawca je obsługuje. Dodaj inline `,fast`, `,no-fast` lub `,fast=false`, gdy
pojedynczy kandydat lub sędzia wymaga nadpisania. Przekaż `--fast` tylko wtedy, gdy chcesz
wymusić tryb fast dla każdego modelu kandydata. Czasy trwania kandydatów i sędziów są
rejestrowane w raporcie do analizy benchmarków, ale prompty sędziów wyraźnie mówią,
aby nie oceniać według szybkości.
Uruchomienia modeli kandydatów i sędziów domyślnie używają współbieżności 16. Zmniejsz
`--concurrency` lub `--judge-concurrency`, gdy limity dostawcy lub obciążenie lokalnego gateway
sprawiają, że uruchomienie jest zbyt zaszumione.
Gdy nie zostanie przekazany żaden kandydacki `--model`, character eval domyślnie używa
rejestrowane w raporcie do analizy benchmarków, ale prompty sędziowskie wyraźnie mówią,
aby nie ustalać rankingu według szybkości.
Zarówno uruchomienia modeli kandydatów, jak i sędziów domyślnie używają współbieżności 16. Zmniejsz
`--concurrency` lub `--judge-concurrency`, gdy limity dostawcy lub obciążenie lokalnego Gateway
powodują zbyt duży szum w uruchomieniu.
Gdy nie zostanie przekazany żaden kandydat `--model`, character eval domyślnie używa
`openai/gpt-5.4`, `openai/gpt-5.2`, `openai/gpt-5`, `anthropic/claude-opus-4-6`,
`anthropic/claude-sonnet-4-6`, `zai/glm-5.1`,
`moonshot/kimi-k2.5` oraz
`google/gemini-3.1-pro-preview`, gdy nie zostanie przekazany żaden `--model`.
`google/gemini-3.1-pro-preview`.
Gdy nie zostanie przekazany żaden `--judge-model`, sędziowie domyślnie używają
`openai/gpt-5.4,thinking=xhigh,fast` oraz
`anthropic/claude-opus-4-6,thinking=high`.

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,21 @@
---
read_when:
- Dodajesz lub modyfikujesz migracje Doctor
- Wprowadzasz niekompatybilne zmiany konfiguracji
summary: 'Komenda Doctor: kontrole kondycji, migracje konfiguracji i kroki naprawcze'
- Dodawanie lub modyfikowanie migracji doctor
- Wprowadzanie niezgodnych zmian konfiguracji
summary: 'Polecenie doctor: kontrole stanu, migracje konfiguracji i kroki naprawcze'
title: Doctor
x-i18n:
generated_at: "2026-04-09T01:29:21Z"
generated_at: "2026-04-20T09:58:28Z"
model: gpt-5.4
provider: openai
source_hash: 75d321bd1ad0e16c29f2382e249c51edfc3a8d33b55bdceea39e7dbcd4901fce
source_hash: 61a5e01a306058c49be6095f7c8082d779a55d63cf3b5f4c4096173943faf51b
source_path: gateway/doctor.md
workflow: 15
---
# Doctor
`openclaw doctor` to narzędzie naprawy i migracji dla OpenClaw. Naprawia nieaktualną
konfigurację i stan, sprawdza kondycję oraz podaje konkretne kroki naprawcze.
`openclaw doctor` to narzędzie naprawcze + migracyjne dla OpenClaw. Naprawia nieaktualną konfigurację/stan, sprawdza kondycję systemu i podaje konkretne kroki naprawcze.
## Szybki start
@ -30,13 +29,13 @@ openclaw doctor
openclaw doctor --yes
```
Akceptuje wartości domyślne bez pytania (w tym kroki naprawy restartu/usługi/sandboxa, gdy mają zastosowanie).
Akceptuje wartości domyślne bez pytań (w tym kroki naprawy restartu/usługi/sandboxa, gdy mają zastosowanie).
```bash
openclaw doctor --repair
```
Stosuje zalecane naprawy bez pytania (naprawy + restarty tam, gdzie to bezpieczne).
Stosuje zalecane naprawy bez pytań (naprawy + restarty tam, gdzie jest to bezpieczne).
```bash
openclaw doctor --repair --force
@ -48,16 +47,16 @@ Stosuje także agresywne naprawy (nadpisuje niestandardowe konfiguracje supervis
openclaw doctor --non-interactive
```
Uruchamia bez monitów i stosuje tylko bezpieczne migracje (normalizacja konfiguracji + przenoszenie stanu na dysku). Pomija działania restartu/usługi/sandboxa wymagające potwierdzenia człowieka.
Migracje starszego stanu uruchamiają się automatycznie po ich wykryciu.
Uruchamia bez pytań i stosuje tylko bezpieczne migracje (normalizacja konfiguracji + przenoszenie stanu na dysku). Pomija działania restartu/usługi/sandboxa wymagające potwierdzenia człowieka.
Migracje starszego stanu są uruchamiane automatycznie po wykryciu.
```bash
openclaw doctor --deep
```
Skanuje usługi systemowe w poszukiwaniu dodatkowych instalacji gateway (launchd/systemd/schtasks).
Skanuje usługi systemowe pod kątem dodatkowych instalacji Gateway (launchd/systemd/schtasks).
Jeśli chcesz przejrzeć zmiany przed zapisaniem, najpierw otwórz plik konfiguracji:
Jeśli chcesz przejrzeć zmiany przed zapisaniem, najpierw otwórz plik konfiguracyjny:
```bash
cat ~/.openclaw/openclaw.json
@ -66,105 +65,89 @@ cat ~/.openclaw/openclaw.json
## Co robi (podsumowanie)
- Opcjonalna aktualizacja przed uruchomieniem dla instalacji git (tylko interaktywnie).
- Kontrola aktualności protokołu UI (przebudowuje Control UI, gdy schemat protokołu jest nowszy).
- Kontrola kondycji + monit o restart.
- Podsumowanie stanu Skills (kwalifikujące się/brakujące/zablokowane) i stanu pluginów.
- Sprawdzenie aktualności protokołu UI (przebudowuje Control UI, gdy schemat protokołu jest nowszy).
- Kontrola stanu + monit o restart.
- Podsumowanie stanu Skills (dostępne/brakujące/zablokowane) i stanu Plugin.
- Normalizacja konfiguracji dla starszych wartości.
- Migracja konfiguracji Talk ze starszych płaskich pól `talk.*` do `talk.provider` + `talk.providers.<provider>`.
- Kontrole migracji przeglądarki dla starszych konfiguracji rozszerzenia Chrome i gotowości Chrome MCP.
- Ostrzeżenia o nadpisaniach dostawcy OpenCode (`models.providers.opencode` / `models.providers.opencode-go`).
- Ostrzeżenia o przysłanianiu OAuth Codex (`models.providers.openai-codex`).
- Kontrola wymagań wstępnych TLS dla profili OAuth OpenAI Codex.
- Migracja starszego stanu na dysku (sessions/agent dir/uwierzytelnianie WhatsApp).
- Migracja starszych kluczy kontraktów manifestu pluginów (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Migracja starszego magazynu cron (`jobId`, `schedule.cron`, pola delivery/payload na najwyższym poziomie, `provider` w payload, proste zadania zapasowe webhook z `notify: true`).
- Kontrola plików blokady sesji i czyszczenie przeterminowanych blokad.
- Kontrole integralności i uprawnień stanu (sessions, transcripts, katalog stanu).
- Kontrole uprawnień pliku konfiguracji (`chmod 600`) przy uruchamianiu lokalnie.
- Kondycja uwierzytelniania modeli: sprawdza wygaśnięcie OAuth, może odświeżać tokeny bliskie wygaśnięcia i raportuje stany cooldown/wyłączenia profilów uwierzytelniania.
- Ostrzeżenia o przesłanianiu OAuth Codex (`models.providers.openai-codex`).
- Sprawdzenie wymagań TLS dla profili OAuth OpenAI Codex.
- Migracja starszego stanu na dysku (sesje/katalog agenta/uwierzytelnianie WhatsApp).
- Migracja starszych kluczy kontraktu manifestu pluginu (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Migracja starszego magazynu Cron (`jobId`, `schedule.cron`, pola delivery/payload na najwyższym poziomie, `provider` w payload, proste zadania zapasowe Webhook z `notify: true`).
- Inspekcja plików blokady sesji i czyszczenie nieaktualnych blokad.
- Kontrole integralności stanu i uprawnień (sesje, transkrypcje, katalog stanu).
- Kontrole uprawnień pliku konfiguracyjnego (`chmod 600`) przy uruchomieniu lokalnym.
- Stan uwierzytelniania modelu: sprawdza wygaśnięcie OAuth, może odświeżyć tokeny bliskie wygaśnięcia i raportuje stany cooldown/disabled profilu uwierzytelniania.
- Wykrywanie dodatkowego katalogu workspace (`~/openclaw`).
- Naprawa obrazu sandboxa, gdy sandboxing jest włączony.
- Migracja starszych usług i wykrywanie dodatkowych gateway.
- Migracja starszej usługi i wykrywanie dodatkowych Gateway.
- Migracja starszego stanu kanału Matrix (w trybie `--fix` / `--repair`).
- Kontrole runtime gateway (usługa zainstalowana, ale nieuruchomiona; zapisany w pamięci podręcznej label launchd).
- Ostrzeżenia o stanie kanałów (sprawdzane z działającego gateway).
- Kontrole środowiska wykonawczego Gateway (usługa zainstalowana, ale nieuruchomiona; zbuforowana etykieta launchd).
- Ostrzeżenia o stanie kanałów (sprawdzane z działającego Gateway).
- Audyt konfiguracji supervisora (launchd/systemd/schtasks) z opcjonalną naprawą.
- Kontrole dobrych praktyk runtime gateway (Node vs Bun, ścieżki menedżera wersji).
- Diagnostyka konfliktów portu gateway (domyślnie `18789`).
- Ostrzeżenia bezpieczeństwa dla otwartych polityk DM.
- Kontrole uwierzytelniania gateway dla lokalnego trybu tokena (oferuje wygenerowanie tokena, gdy nie istnieje jego źródło; nie nadpisuje konfiguracji tokenów SecretRef).
- Kontrola `systemd linger` w Linuxie.
- Kontrola rozmiaru plików bootstrap workspace (ostrzeżenia o obcięciu / blisko limitu dla plików kontekstu).
- Kontrola stanu shell completion oraz automatyczna instalacja/aktualizacja.
- Kontrola gotowości dostawcy embeddingów do wyszukiwania pamięci (model lokalny, zdalny klucz API lub binarka QMD).
- Kontrole instalacji ze źródeł (niezgodność workspace pnpm, brakujące zasoby UI, brakująca binarka tsx).
- Kontrole dobrych praktyk środowiska uruchomieniowego Gateway (Node vs Bun, ścieżki menedżera wersji).
- Diagnostyka konfliktu portu Gateway (domyślnie `18789`).
- Ostrzeżenia bezpieczeństwa dla otwartych zasad DM.
- Kontrole uwierzytelniania Gateway dla lokalnego trybu tokenu (oferuje generowanie tokenu, gdy nie istnieje źródło tokenu; nie nadpisuje konfiguracji tokenu SecretRef).
- Wykrywanie problemów z parowaniem urządzeń (oczekujące żądania pierwszego parowania, oczekujące podniesienia roli/zakresu, nieaktualny dryf lokalnej pamięci podręcznej tokenu urządzenia i dryf uwierzytelniania sparowanych rekordów).
- Kontrola `linger` systemd w Linuksie.
- Kontrola rozmiaru pliku bootstrap workspace (ostrzeżenia o przycięciu/bliskości limitu dla plików kontekstowych).
- Kontrola stanu uzupełniania powłoki i automatyczna instalacja/aktualizacja.
- Kontrola gotowości dostawcy embeddingów wyszukiwania pamięci (model lokalny, zdalny klucz API lub binarka QMD).
- Kontrole instalacji ze źródeł (niedopasowanie workspace pnpm, brakujące zasoby UI, brakująca binarka tsx).
- Zapisuje zaktualizowaną konfigurację + metadane kreatora.
## Backfill i reset Dreams UI
## Uzupełnianie i resetowanie Dreams UI
Scena Dreams w Control UI zawiera działania **Backfill**, **Reset** i **Clear Grounded**
dla ugruntowanego przepływu dreaming. Te działania używają metod RPC
w stylu doctor gateway, ale **nie** są częścią naprawy/migracji w CLI `openclaw doctor`.
Scena Dreams w Control UI zawiera działania **Backfill**, **Reset** i **Clear Grounded** dla przepływu grounded dreaming. Działania te używają metod RPC w stylu doctor dla Gateway, ale **nie** są częścią naprawy/migracji w CLI `openclaw doctor`.
Co robią:
- **Backfill** skanuje historyczne pliki `memory/YYYY-MM-DD.md` w aktywnym
workspace, uruchamia ugruntowany przebieg dziennika REM i zapisuje odwracalne wpisy
backfill do `DREAMS.md`.
- **Reset** usuwa z `DREAMS.md` tylko te oznaczone wpisy dziennika backfill.
- **Clear Grounded** usuwa tylko przygotowane wpisy krótkoterminowe typu grounded-only,
które pochodzą z historycznego odtworzenia i nie zgromadziły jeszcze aktywnego wsparcia
z przypomnień ani z dziennych danych.
- **Backfill** skanuje historyczne pliki `memory/YYYY-MM-DD.md` w aktywnym workspace, uruchamia grounded REM diary pass i zapisuje odwracalne wpisy backfill do `DREAMS.md`.
- **Reset** usuwa z `DREAMS.md` tylko te oznaczone wpisy diary backfill.
- **Clear Grounded** usuwa tylko przygotowane krótkoterminowe wpisy wyłącznie grounded, które pochodzą z historycznego odtworzenia i nie zgromadziły jeszcze live recall ani dziennego wsparcia.
Czego same z siebie **nie** robią:
- nie edytują `MEMORY.md`
- nie uruchamiają pełnych migracji doctor
- nie przygotowują automatycznie ugruntowanych kandydatów w aktywnym magazynie
promocji krótkoterminowej, chyba że najpierw jawnie uruchomisz ścieżkę CLI z przygotowaniem
- nie przenoszą automatycznie kandydatów grounded do aktywnego magazynu promocji krótkoterminowej, chyba że najpierw jawnie uruchomisz przygotowaną ścieżkę CLI
Jeśli chcesz, aby ugruntowane historyczne odtworzenie wpływało na zwykłą ścieżkę
promocji deep, użyj zamiast tego przepływu CLI:
Jeśli chcesz, aby grounded historical replay wpływał na normalną ścieżkę deep promotion, użyj zamiast tego przepływu CLI:
```bash
openclaw memory rem-backfill --path ./memory --stage-short-term
```
To przygotowuje ugruntowanych trwałych kandydatów w krótkoterminowym magazynie dreaming, pozostawiając
`DREAMS.md` jako powierzchnię do przeglądu.
To przygotowuje grounded durable candidates w magazynie short-term dreaming, pozostawiając `DREAMS.md` jako powierzchnię przeglądu.
## Szczegółowe zachowanie i uzasadnienie
## Szczegółowe działanie i uzasadnienie
### 0) Opcjonalna aktualizacja (instalacje git)
Jeśli jest to checkout git, a doctor działa interaktywnie, oferuje
aktualizację (fetch/rebase/build) przed uruchomieniem doctor.
Jeśli to checkout git i doctor działa interaktywnie, oferuje aktualizację (fetch/rebase/build) przed uruchomieniem doctor.
### 1) Normalizacja konfiguracji
Jeśli konfiguracja zawiera starsze kształty wartości (na przykład `messages.ackReaction`
bez nadpisania specyficznego dla kanału), doctor normalizuje je do bieżącego
schematu.
Jeśli konfiguracja zawiera starsze kształty wartości (na przykład `messages.ackReaction` bez nadpisania specyficznego dla kanału), doctor normalizuje je do bieżącego schematu.
Obejmuje to starsze płaskie pola Talk. Bieżąca publiczna konfiguracja Talk to
`talk.provider` + `talk.providers.<provider>`. Doctor przepisuje stare
kształty `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` /
`talk.apiKey` do mapy dostawcy.
Obejmuje to starsze płaskie pola Talk. Bieżąca publiczna konfiguracja Talk to `talk.provider` + `talk.providers.<provider>`. Doctor przepisuje stare kształty `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` do mapy dostawców.
### 2) Migracje starszych kluczy konfiguracji
Gdy konfiguracja zawiera przestarzałe klucze, inne polecenia odmawiają uruchomienia i proszą
o uruchomienie `openclaw doctor`.
Gdy konfiguracja zawiera przestarzałe klucze, inne polecenia odmawiają uruchomienia i proszą o uruchomienie `openclaw doctor`.
Doctor:
Doctor wykona wtedy:
- Wyjaśnia, które starsze klucze zostały znalezione.
- Pokazuje zastosowaną migrację.
- Przepisuje `~/.openclaw/openclaw.json` z użyciem zaktualizowanego schematu.
- Wyjaśni, które starsze klucze zostały znalezione.
- Pokaże zastosowaną migrację.
- Przepisze `~/.openclaw/openclaw.json` z użyciem zaktualizowanego schematu.
Gateway także automatycznie uruchamia migracje doctor przy starcie, gdy wykryje
starszy format konfiguracji, więc nieaktualne konfiguracje są naprawiane bez ręcznej interwencji.
Migracje magazynu zadań cron są obsługiwane przez `openclaw doctor --fix`.
Gateway również automatycznie uruchamia migracje doctor przy starcie, gdy wykryje starszy format konfiguracji, więc nieaktualne konfiguracje są naprawiane bez ręcznej interwencji.
Migracje magazynu zadań Cron są obsługiwane przez `openclaw doctor --fix`.
Bieżące migracje:
@ -173,7 +156,7 @@ Bieżące migracje:
- `routing.groupChat.historyLimit``messages.groupChat.historyLimit`
- `routing.groupChat.mentionPatterns``messages.groupChat.mentionPatterns`
- `routing.queue``messages.queue`
- `routing.bindings`najwyższy poziom `bindings`
- `routing.bindings``bindings` na najwyższym poziomie
- `routing.agents`/`routing.defaultAgentId` → `agents.list` + `agents.list[].default`
- starsze `talk.voiceId`/`talk.voiceAliases`/`talk.modelId`/`talk.outputFormat`/`talk.apiKey` → `talk.provider` + `talk.providers.<provider>`
- `routing.agentToAgent``tools.agentToAgent`
@ -188,86 +171,69 @@ Bieżące migracje:
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold`
`plugins.entries.voice-call.config.streaming.providers.openai.*`
- `bindings[].match.accountID``bindings[].match.accountId`
- Dla kanałów z nazwanymi `accounts`, ale z pozostawionymi na najwyższym poziomie wartościami kanału dla pojedynczego konta, przenieś te wartości ograniczone do konta do promowanego konta wybranego dla tego kanału (`accounts.default` dla większości kanałów; Matrix może zachować istniejący pasujący nazwany/domyślny cel)
- Dla kanałów z nazwanymi `accounts`, ale z pozostawionymi jednokontowymi wartościami kanału na najwyższym poziomie, przenosi te wartości o zakresie konta do promowanego konta wybranego dla tego kanału (`accounts.default` dla większości kanałów; Matrix może zachować istniejący pasujący nazwany/domyślny cel)
- `identity``agents.list[].identity`
- `agent.*``agents.defaults` + `tools.*` (tools/elevated/exec/sandbox/subagents)
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks`
`agents.defaults.models` + `agents.defaults.model.primary/fallbacks` + `agents.defaults.imageModel.primary/fallbacks`
- `browser.ssrfPolicy.allowPrivateNetwork``browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`
- `browser.profiles.*.driver: "extension"``"existing-session"`
- usuń `browser.relayBindHost` (starsze ustawienie relay rozszerzenia)
- usuwa `browser.relayBindHost` (starsze ustawienie relay rozszerzenia)
Ostrzeżenia doctor obejmują także wskazówki dotyczące domyślnego konta dla kanałów wielokontowych:
Ostrzeżenia doctor obejmują także wskazówki dotyczące kont domyślnych dla kanałów wielokontowych:
- Jeśli skonfigurowano co najmniej dwa wpisy `channels.<channel>.accounts` bez `channels.<channel>.defaultAccount` lub `accounts.default`, doctor ostrzega, że routowanie zapasowe może wybrać nieoczekiwane konto.
- Jeśli skonfigurowano dwa lub więcej wpisów `channels.<channel>.accounts` bez `channels.<channel>.defaultAccount` albo `accounts.default`, doctor ostrzega, że routowanie zapasowe może wybrać nieoczekiwane konto.
- Jeśli `channels.<channel>.defaultAccount` jest ustawione na nieznany identyfikator konta, doctor ostrzega i wypisuje skonfigurowane identyfikatory kont.
### 2b) Nadpisania dostawcy OpenCode
Jeśli ręcznie dodano `models.providers.opencode`, `opencode-zen` lub `opencode-go`,
nadpisuje to wbudowany katalog OpenCode z `@mariozechner/pi-ai`.
Może to wymusić przypisanie modeli do niewłaściwego API albo wyzerować koszty. Doctor ostrzega, aby można było
usunąć nadpisanie i przywrócić routowanie API oraz koszty per model.
Jeśli ręcznie dodano `models.providers.opencode`, `opencode-zen` lub `opencode-go`, nadpisuje to wbudowany katalog OpenCode z `@mariozechner/pi-ai`.
Może to wymusić użycie niewłaściwego API dla modeli albo wyzerować koszty. Doctor ostrzega, aby można było usunąć nadpisanie i przywrócić routowanie API oraz koszty per model.
### 2c) Migracja przeglądarki i gotowość Chrome MCP
Jeśli konfiguracja przeglądarki nadal wskazuje usuniętą ścieżkę rozszerzenia Chrome, doctor
normalizuje ją do obecnego modelu dołączania Chrome MCP host-local:
Jeśli konfiguracja przeglądarki nadal wskazuje na usuniętą ścieżkę rozszerzenia Chrome, doctor normalizuje ją do bieżącego modelu dołączania Chrome MCP hostowanego lokalnie:
- `browser.profiles.*.driver: "extension"` zmienia się na `"existing-session"`
- `browser.profiles.*.driver: "extension"` staje się `"existing-session"`
- `browser.relayBindHost` jest usuwane
Doctor audytuje też ścieżkę Chrome MCP host-local, gdy używasz `defaultProfile:
"user"` lub skonfigurowanego profilu `existing-session`:
Doctor audytuje także lokalną ścieżkę Chrome MCP na hoście, gdy używasz `defaultProfile:"user"` lub skonfigurowanego profilu `existing-session`:
- sprawdza, czy Google Chrome jest zainstalowane na tym samym hoście dla domyślnych
profili auto-connect
- sprawdza, czy Google Chrome jest zainstalowany na tym samym hoście dla domyślnych profili auto-connect
- sprawdza wykrytą wersję Chrome i ostrzega, gdy jest niższa niż Chrome 144
- przypomina o włączeniu zdalnego debugowania na stronie inspect przeglądarki (na
przykład `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging`,
lub `edge://inspect/#remote-debugging`)
- przypomina o włączeniu zdalnego debugowania na stronie inspect przeglądarki (na przykład `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` lub `edge://inspect/#remote-debugging`)
Doctor nie może włączyć za Ciebie ustawienia po stronie Chrome. Chrome MCP host-local
nadal wymaga:
Doctor nie może włączyć tego ustawienia po stronie Chrome za Ciebie. Lokalny Chrome MCP nadal wymaga:
- przeglądarki opartej na Chromium 144+ na hoście gateway/node
- lokalnie uruchomionej przeglądarki
- włączonego zdalnego debugowania w tej przeglądarce
- zatwierdzenia pierwszego monitu o zgodę na połączenie w przeglądarce
- zaakceptowania pierwszego monitu o zgodę na dołączenie w przeglądarce
Gotowość tutaj dotyczy wyłącznie lokalnych wymagań wstępnych dołączenia. Existing-session zachowuje
bieżące ograniczenia tras Chrome MCP; zaawansowane trasy, takie jak `responsebody`, eksport PDF,
przechwytywanie pobierania i działania wsadowe, nadal wymagają zarządzanej
przeglądarki lub surowego profilu CDP.
Gotowość w tym miejscu dotyczy wyłącznie lokalnych warunków wstępnych dołączenia. Existing-session zachowuje bieżące ograniczenia tras Chrome MCP; zaawansowane trasy, takie jak `responsebody`, eksport PDF, przechwytywanie pobierania i działania wsadowe, nadal wymagają zarządzanej przeglądarki albo surowego profilu CDP.
Ta kontrola **nie** dotyczy Docker, sandbox, remote-browser ani innych
przepływów bezgłowych. Nadal używają one surowego CDP.
Ta kontrola **nie** dotyczy Docker, sandbox, remote-browser ani innych przepływów bezgłowych. One nadal używają surowego CDP.
### 2d) Wymagania wstępne OAuth TLS
Gdy skonfigurowany jest profil OAuth OpenAI Codex, doctor sonduje endpoint
autoryzacji OpenAI, aby sprawdzić, czy lokalny stos TLS Node/OpenSSL potrafi
zweryfikować łańcuch certyfikatów. Jeśli sonda kończy się błędem certyfikatu (na
przykład `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, wygasły certyfikat lub certyfikat samopodpisany),
doctor wypisuje wskazówki naprawy specyficzne dla platformy. W macOS z Node z Homebrew
naprawą jest zwykle `brew postinstall ca-certificates`. Z `--deep` sonda uruchamia się
nawet wtedy, gdy gateway jest w dobrym stanie.
Gdy skonfigurowany jest profil OAuth OpenAI Codex, doctor sonduje punkt autoryzacji OpenAI, aby sprawdzić, czy lokalny stos TLS Node/OpenSSL potrafi zweryfikować łańcuch certyfikatów. Jeśli sonda kończy się błędem certyfikatu (na przykład `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, wygasły certyfikat lub certyfikat samopodpisany), doctor wyświetla wskazówki naprawy specyficzne dla platformy. W systemie macOS z Node z Homebrew naprawa zwykle polega na uruchomieniu `brew postinstall ca-certificates`. Z `--deep` sonda jest uruchamiana nawet wtedy, gdy Gateway jest w dobrym stanie.
### 2c) Nadpisania dostawcy OAuth Codex
### 2c) Nadpisania dostawcy Codex OAuth
Jeśli wcześniej dodano starsze ustawienia transportu OpenAI w
`models.providers.openai-codex`, mogą one przysłaniać wbudowaną ścieżkę dostawcy
Codex OAuth, której nowsze wydania używają automatycznie. Doctor ostrzega, gdy widzi
te stare ustawienia transportu obok Codex OAuth, aby można było usunąć lub przepisać
nieaktualne nadpisanie transportu i odzyskać wbudowane zachowanie routingu/fallbacków.
Niestandardowe proxy i nadpisania tylko nagłówków są nadal wspierane i nie
wywołują tego ostrzeżenia.
`models.providers.openai-codex`, mogą one przesłaniać wbudowaną ścieżkę
dostawcy Codex OAuth, której nowsze wydania używają automatycznie. Doctor
ostrzega, gdy wykryje te stare ustawienia transportu obok Codex OAuth, aby
umożliwić usunięcie lub przepisanie nieaktualnego nadpisania transportu i
przywrócenie wbudowanego routingu/zachowania fallback. Niestandardowe proxy i
nadpisania wyłącznie nagłówków są nadal obsługiwane i nie wywołują tego
ostrzeżenia.
### 3) Migracje starszego stanu (układ na dysku)
Doctor może migrować starsze układy na dysku do bieżącej struktury:
- Magazyn sessions + transcripts:
- Magazyn sesji + transkrypcje:
- z `~/.openclaw/sessions/` do `~/.openclaw/agents/<agentId>/sessions/`
- Katalog agenta:
- z `~/.openclaw/agent/` do `~/.openclaw/agents/<agentId>/agent/`
@ -275,264 +241,283 @@ Doctor może migrować starsze układy na dysku do bieżącej struktury:
- ze starszego `~/.openclaw/credentials/*.json` (z wyjątkiem `oauth.json`)
- do `~/.openclaw/credentials/whatsapp/<accountId>/...` (domyślny identyfikator konta: `default`)
Te migracje są wykonywane w trybie best-effort i są idempotentne; doctor będzie emitować ostrzeżenia, gdy
pozostawi jakiekolwiek starsze foldery jako kopie zapasowe. Gateway/CLI także automatycznie migruje
starsze sessions + katalog agenta przy starcie, dzięki czemu historia/uwierzytelnianie/modele trafiają do
ścieżki per agent bez ręcznego uruchamiania doctor. Uwierzytelnianie WhatsApp jest celowo migrowane wyłącznie
przez `openclaw doctor`. Normalizacja Talk provider/provider-map porównuje teraz
według równości strukturalnej, więc różnice wyłącznie w kolejności kluczy nie wywołują już
powtarzających się, pustych zmian `doctor --fix`.
Te migracje są wykonywane na zasadzie best-effort i są idempotentne; doctor emituje ostrzeżenia, gdy pozostawi starsze foldery jako kopie zapasowe. Gateway/CLI również automatycznie migruje starsze sesje + katalog agenta przy starcie, dzięki czemu historia/uwierzytelnianie/modele trafiają do ścieżki per-agent bez ręcznego uruchamiania doctor. Uwierzytelnianie WhatsApp jest celowo migrowane wyłącznie przez `openclaw doctor`. Normalizacja dostawcy Talk/mapy dostawców porównuje teraz według równości strukturalnej, więc różnice wyłącznie w kolejności kluczy nie wywołują już powtarzających się zmian bez efektu przy `doctor --fix`.
### 3a) Migracje starszych manifestów pluginów
Doctor skanuje wszystkie zainstalowane manifesty pluginów pod kątem przestarzałych kluczy
możliwości na najwyższym poziomie (`speechProviders`, `realtimeTranscriptionProviders`,
Doctor skanuje wszystkie zainstalowane manifesty pluginów pod kątem przestarzałych kluczy możliwości na najwyższym poziomie (`speechProviders`, `realtimeTranscriptionProviders`,
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
`imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`,
`webSearchProviders`). Gdy je znajdzie, oferuje przeniesienie ich do obiektu `contracts`
i przepisanie pliku manifestu na miejscu. Ta migracja jest idempotentna;
`webSearchProviders`). Po wykryciu oferuje przeniesienie ich do obiektu `contracts`
i przepisanie pliku manifestu w miejscu. Ta migracja jest idempotentna;
jeśli klucz `contracts` zawiera już te same wartości, starszy klucz jest usuwany
bez duplikowania danych.
### 3b) Migracje starszego magazynu cron
### 3b) Migracje starszego magazynu Cron
Doctor sprawdza też magazyn zadań cron (`~/.openclaw/cron/jobs.json` domyślnie,
lub `cron.store`, jeśli został nadpisany) pod kątem starych kształtów zadań, które scheduler nadal
Doctor sprawdza także magazyn zadań Cron (`~/.openclaw/cron/jobs.json` domyślnie,
lub `cron.store`, jeśli został nadpisany) pod kątem starych kształtów zadań, które harmonogram nadal
akceptuje dla zgodności.
Bieżące porządki cron obejmują:
Bieżące porządki w Cron obejmują:
- `jobId``id`
- `schedule.cron``schedule.expr`
- pola payload na najwyższym poziomie (`message`, `model`, `thinking`, ...) → `payload`
- pola delivery na najwyższym poziomie (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
- aliasy delivery `provider` w payload → jawne `delivery.channel`
- proste starsze zadania zapasowe webhook z `notify: true` → jawne `delivery.mode="webhook"` z `delivery.to=cron.webhook`
- proste starsze zadania zapasowe Webhook z `notify: true` → jawne `delivery.mode="webhook"` z `delivery.to=cron.webhook`
Doctor automatycznie migruje zadania `notify: true` tylko wtedy, gdy może to zrobić bez
zmiany zachowania. Jeśli zadanie łączy starszy fallback notify z istniejącym
trybem delivery innym niż webhook, doctor ostrzega i pozostawia to zadanie do ręcznego przeglądu.
Doctor automatycznie migruje zadania `notify: true` tylko wtedy, gdy może to zrobić
bez zmiany zachowania. Jeśli zadanie łączy starszy mechanizm zapasowy notify z istniejącym
trybem delivery innym niż webhook, doctor ostrzega i pozostawia takie zadanie do ręcznego przeglądu.
### 3c) Czyszczenie blokad sesji
Doctor skanuje każdy katalog sesji agenta w poszukiwaniu przeterminowanych plików blokad zapisu — plików pozostawionych
po nienormalnym zakończeniu sesji. Dla każdego znalezionego pliku blokady raportuje:
ścieżkę, PID, czy PID nadal żyje, wiek blokady oraz czy jest
uznawana za przeterminowaną (martwy PID lub starsza niż 30 minut). W trybie `--fix` / `--repair`
automatycznie usuwa przeterminowane pliki blokad; w przeciwnym razie wypisuje uwagę i
Doctor skanuje każdy katalog sesji agenta pod kątem nieaktualnych plików blokady zapisu — plików pozostawionych
po nieprawidłowym zakończeniu sesji. Dla każdego znalezionego pliku blokady raportuje:
ścieżkę, PID, czy PID nadal działa, wiek blokady oraz czy jest
uznawana za nieaktualną (martwy PID lub starsza niż 30 minut). W trybie `--fix` / `--repair`
automatycznie usuwa nieaktualne pliki blokady; w przeciwnym razie wyświetla uwagę i
poleca ponowne uruchomienie z `--fix`.
### 4) Kontrole integralności stanu (trwałość sesji, routing i bezpieczeństwo)
Katalog stanu to operacyjny pień mózgu. Jeśli zniknie, tracisz
sessions, credentials, logi i konfigurację (chyba że masz kopie zapasowe gdzie indziej).
Katalog stanu to operacyjny pień mózgu systemu. Jeśli zniknie, tracisz
sesje, poświadczenia, logi i konfigurację (chyba że masz kopie zapasowe gdzie indziej).
Doctor sprawdza:
- **Brak katalogu stanu**: ostrzega o katastrofalnej utracie stanu, prosi o odtworzenie
- **Brak katalogu stanu**: ostrzega o katastrofalnej utracie stanu, proponuje odtworzenie
katalogu i przypomina, że nie może odzyskać brakujących danych.
- **Uprawnienia katalogu stanu**: weryfikuje możliwość zapisu; oferuje naprawę uprawnień
(i emituje wskazówkę `chown`, gdy wykryje niezgodność właściciela/grupy).
- **Katalog stanu synchronizowany przez chmurę w macOS**: ostrzega, gdy stan rozwiązuje się do iCloud Drive
(i podaje wskazówkę `chown`, gdy wykryje niezgodność właściciela/grupy).
- **Katalog stanu synchronizowany z chmurą w macOS**: ostrzega, gdy stan znajduje się w iCloud Drive
(`~/Library/Mobile Documents/com~apple~CloudDocs/...`) lub
`~/Library/CloudStorage/...`, ponieważ ścieżki oparte na synchronizacji mogą powodować wolniejsze I/O
i wyścigi blokad/synchronizacji.
- **Katalog stanu na SD lub eMMC w Linuxie**: ostrzega, gdy stan rozwiązuje się do źródła montowania `mmcblk*`,
ponieważ losowe I/O na nośnikach SD lub eMMC może być wolniejsze i szybciej zużywać nośnik
przy zapisach sesji i credentials.
`~/Library/CloudStorage/...`, ponieważ ścieżki wspierane synchronizacją mogą powodować wolniejsze I/O
oraz wyścigi blokad/synchronizacji.
- **Katalog stanu na SD lub eMMC w Linuksie**: ostrzega, gdy stan znajduje się na źródle montowania `mmcblk*`,
ponieważ losowe I/O oparte na SD lub eMMC może być wolniejsze i szybciej zużywać nośnik przy zapisach sesji i poświadczeń.
- **Brak katalogów sesji**: `sessions/` i katalog magazynu sesji są
wymagane do utrwalenia historii i unikania awarii `ENOENT`.
- **Niezgodność transcript**: ostrzega, gdy ostatnie wpisy sesji mają brakujące
pliki transcript.
- **Główna sesja „1-line JSONL”**: oznacza sytuację, gdy główny transcript ma tylko jedną
wymagane do zachowania historii i uniknięcia awarii `ENOENT`.
- **Niezgodność transkrypcji**: ostrzega, gdy ostatnie wpisy sesji nie mają
odpowiadających plików transkrypcji.
- **Główna sesja „1-line JSONL”**: sygnalizuje, gdy główna transkrypcja ma tylko jedną
linię (historia się nie kumuluje).
- **Wiele katalogów stanu**: ostrzega, gdy istnieje wiele folderów `~/.openclaw` w różnych
katalogach domowych lub gdy `OPENCLAW_STATE_DIR` wskazuje inne miejsce (historia może
zostać rozdzielona między instalacje).
- **Przypomnienie o trybie zdalnym**: jeśli `gateway.mode=remote`, doctor przypomina o jego uruchomieniu
na zdalnym hoście (tam znajduje się stan).
- **Uprawnienia pliku konfiguracji**: ostrzega, jeśli `~/.openclaw/openclaw.json` jest
dzielić się między instalacjami).
- **Przypomnienie o trybie zdalnym**: jeśli `gateway.mode=remote`, doctor przypomina, aby uruchomić
go na hoście zdalnym (tam znajduje się stan).
- **Uprawnienia pliku konfiguracyjnego**: ostrzega, jeśli `~/.openclaw/openclaw.json` jest
czytelny dla grupy/świata, i oferuje zaostrzenie do `600`.
### 5) Kondycja uwierzytelniania modeli (wygaśnięcie OAuth)
### 5) Stan uwierzytelniania modelu (wygaśnięcie OAuth)
Doctor sprawdza profile OAuth w magazynie uwierzytelniania, ostrzega, gdy tokeny
wygasają lub wygasły, i może je odświeżyć, gdy jest to bezpieczne. Jeśli profil
OAuth/token Anthropic jest nieaktualny, sugeruje klucz API Anthropic lub
OAuth/token Anthropic jest nieaktualny, sugeruje klucz API Anthropic albo
ścieżkę setup-token Anthropic.
Monity o odświeżenie pojawiają się tylko w trybie interaktywnym (TTY); `--non-interactive`
pomija próby odświeżania.
Gdy odświeżenie OAuth kończy się trwałym niepowodzeniem (na przykład `refresh_token_reused`,
`invalid_grant` lub dostawca informuje, że trzeba zalogować się ponownie), doctor zgłasza,
że wymagana jest ponowna autoryzacja, i wypisuje dokładną komendę `openclaw models auth login --provider ...`,
którą należy uruchomić.
Gdy odświeżenie OAuth kończy się trwałym błędem (na przykład `refresh_token_reused`,
`invalid_grant` albo dostawca informuje, że trzeba zalogować się ponownie), doctor zgłasza,
że wymagana jest ponowna autoryzacja, i wyświetla dokładne polecenie `openclaw models auth login --provider ...`,
które należy uruchomić.
Doctor raportuje także profile uwierzytelniania, które są tymczasowo nieużywalne z powodu:
Doctor raportuje także profile uwierzytelniania, które są tymczasowo niedostępne z powodu:
- krótkich cooldownów (limity szybkości/timeouty/błędy uwierzytelniania)
- krótkich okresów cooldown (limity szybkości/timeouty/błędy uwierzytelniania)
- dłuższych wyłączeń (problemy z rozliczeniami/kredytami)
### 6) Walidacja modelu hooks
### 6) Walidacja modelu Hooks
Jeśli ustawiono `hooks.gmail.model`, doctor waliduje odwołanie do modelu względem
katalogu i listy dozwolonych modeli oraz ostrzega, gdy nie będzie się rozwiązywać lub jest niedozwolone.
Jeśli ustawiono `hooks.gmail.model`, doctor weryfikuje odwołanie do modelu względem
katalogu i allowlisty oraz ostrzega, gdy nie zostanie rozwiązane albo jest niedozwolone.
### 7) Naprawa obrazu sandboxa
Gdy sandboxing jest włączony, doctor sprawdza obrazy Docker i oferuje ich zbudowanie lub
przełączenie na starsze nazwy, jeśli bieżący obraz jest niedostępny.
Gdy sandboxing jest włączony, doctor sprawdza obrazy Docker i proponuje zbudowanie ich lub
przełączenie na starsze nazwy, jeśli bieżący obraz nie istnieje.
### 7b) Zależności runtime bundlowanych pluginów
### 7b) Runtime dependencies bundlowanych pluginów
Doctor weryfikuje, czy zależności runtime bundlowanych pluginów (na przykład
pakiety runtime pluginu Discord) są obecne w katalogu głównym instalacji OpenClaw.
Jeśli którychkolwiek brakuje, doctor raportuje pakiety i instaluje je w
trybie `openclaw doctor --fix` / `openclaw doctor --repair`.
Doctor weryfikuje, czy runtime dependencies bundlowanych pluginów (na przykład pakiety
runtime pluginu Discord) są obecne w katalogu głównym instalacji OpenClaw.
Jeśli jakichkolwiek brakuje, doctor zgłasza pakiety i instaluje je w trybie
`openclaw doctor --fix` / `openclaw doctor --repair`.
### 8) Migracje usług gateway i wskazówki czyszczenia
### 8) Migracje usług Gateway i wskazówki czyszczenia
Doctor wykrywa starsze usługi gateway (launchd/systemd/schtasks) i
oferuje ich usunięcie oraz instalację usługi OpenClaw z użyciem bieżącego portu gateway.
Może też skanować w poszukiwaniu dodatkowych usług podobnych do gateway i wypisywać wskazówki czyszczenia.
Usługi gateway OpenClaw nazwane profilem są traktowane jako pełnoprawne i nie są
oznaczane jako „dodatkowe”.
Doctor wykrywa starsze usługi Gateway (launchd/systemd/schtasks) i
oferuje ich usunięcie oraz zainstalowanie usługi OpenClaw przy użyciu bieżącego portu Gateway.
Może także skanować w poszukiwaniu dodatkowych usług podobnych do Gateway i wyświetlać wskazówki czyszczenia.
Usługi Gateway OpenClaw nazwane profilem są traktowane jako pełnoprawne i nie są oznaczane jako „dodatkowe”.
### 8b) Migracja Matrix przy uruchamianiu
### 8b) Migracja Matrix przy starcie
Gdy konto kanału Matrix ma oczekującą lub możliwą do wykonania migrację starszego stanu,
doctor (w trybie `--fix` / `--repair`) tworzy snapshot przed migracją, a następnie
uruchamia kroki migracji w trybie best-effort: migrację starszego stanu Matrix i przygotowanie starszego stanu szyfrowanego. Oba kroki nie są krytyczne; błędy są logowane i
uruchamia kroki migracji best-effort: migrację starszego stanu Matrix i przygotowanie starszego stanu szyfrowanego. Oba kroki nie są krytyczne; błędy są logowane, a
uruchamianie trwa dalej. W trybie tylko do odczytu (`openclaw doctor` bez `--fix`) ta kontrola
jest całkowicie pomijana.
### 8c) Parowanie urządzeń i dryf uwierzytelniania
Doctor sprawdza teraz stan parowania urządzeń w ramach normalnego przebiegu kontroli stanu.
Co raportuje:
- oczekujące żądania pierwszego parowania
- oczekujące podniesienia ról dla już sparowanych urządzeń
- oczekujące podniesienia zakresów dla już sparowanych urządzeń
- naprawy niezgodności klucza publicznego, gdy identyfikator urządzenia nadal się zgadza, ale tożsamość urządzenia
nie odpowiada już zatwierdzonemu rekordowi
- sparowane rekordy bez aktywnego tokenu dla zatwierdzonej roli
- sparowane tokeny, których zakresy odbiegają od zatwierdzonej bazy parowania
- lokalne wpisy pamięci podręcznej tokenu urządzenia dla bieżącej maszyny, które poprzedzają
rotację tokenu po stronie gateway lub zawierają nieaktualne metadane zakresu
Doctor nie zatwierdza automatycznie żądań parowania ani nie rotuje automatycznie tokenów urządzeń. Zamiast tego
wyświetla dokładne kolejne kroki:
- sprawdź oczekujące żądania za pomocą `openclaw devices list`
- zatwierdź konkretne żądanie za pomocą `openclaw devices approve <requestId>`
- zrotuj nowy token za pomocą `openclaw devices rotate --device <deviceId> --role <role>`
- usuń nieaktualny rekord i zatwierdź go ponownie za pomocą `openclaw devices remove <deviceId>`
To zamyka częstą lukę „już sparowane, ale nadal pojawia się pairing required”:
doctor rozróżnia teraz pierwsze parowanie od oczekujących podniesień roli/zakresu
oraz od nieaktualnego dryfu tokenu/tożsamości urządzenia.
### 9) Ostrzeżenia bezpieczeństwa
Doctor emituje ostrzeżenia, gdy dostawca jest otwarty na DM bez listy dozwolonych,
lub gdy polityka jest skonfigurowana w niebezpieczny sposób.
Doctor emituje ostrzeżenia, gdy dostawca jest otwarty na DM bez allowlisty lub
gdy polityka jest skonfigurowana w niebezpieczny sposób.
### 10) systemd linger (Linux)
Jeśli działa jako usługa użytkownika systemd, doctor upewnia się, że lingering jest włączony, aby
Jeśli działa jako usługa użytkownika systemd, doctor upewnia się, że linger jest włączony, aby
gateway pozostał aktywny po wylogowaniu.
### 11) Stan workspace (Skills, pluginy i starsze katalogi)
Doctor wypisuje podsumowanie stanu workspace dla domyślnego agenta:
Doctor wyświetla podsumowanie stanu workspace dla domyślnego agenta:
- **Stan Skills**: liczba Skills kwalifikujących się, z brakującymi wymaganiami i zablokowanych przez allowlist.
- **Stan Skills**: liczba Skills dostępnych, missing-requirements i allowlist-blocked.
- **Starsze katalogi workspace**: ostrzega, gdy `~/openclaw` lub inne starsze katalogi workspace
istnieją obok bieżącego workspace.
- **Stan pluginów**: liczby pluginów załadowanych/wyłączonych/z błędami; wypisuje identyfikatory pluginów dla
błędów; raportuje możliwości bundle plugin.
- **Ostrzeżenia o zgodności pluginów**: oznacza pluginy, które mają problemy zgodności z
- **Stan pluginów**: liczba pluginów loaded/disabled/errored; wypisuje identyfikatory pluginów dla
błędów; raportuje możliwości bundlowanych pluginów.
- **Ostrzeżenia zgodności pluginów**: oznacza pluginy mające problemy zgodności z
bieżącym runtime.
- **Diagnostyka pluginów**: pokazuje wszelkie ostrzeżenia lub błędy z czasu ładowania emitowane przez
- **Diagnostyka pluginów**: pokazuje ostrzeżenia lub błędy z czasu ładowania emitowane przez
rejestr pluginów.
### 11b) Rozmiar pliku bootstrap
Doctor sprawdza, czy pliki bootstrap workspace (na przykład `AGENTS.md`,
`CLAUDE.md` lub inne wstrzykiwane pliki kontekstowe) są blisko lub powyżej skonfigurowanego
budżetu znaków. Raportuje dla każdego pliku liczbę znaków surowych vs. wstrzykniętych, procent
obcięcia, przyczynę obcięcia (`max/file` lub `max/total`) oraz łączną liczbę wstrzykniętych
znaków jako ułamek całkowitego budżetu. Gdy pliki są obcięte lub blisko limitu, doctor wypisuje wskazówki
dotyczące dostrajania `agents.defaults.bootstrapMaxChars`
`CLAUDE.md` lub inne wstrzykiwane pliki kontekstowe) są blisko lub przekraczają
skonfigurowany budżet znaków. Raportuje dla każdego pliku liczbę znaków raw vs. injected, procent
przycięcia, przyczynę przycięcia (`max/file` lub `max/total`) oraz łączną liczbę wstrzykniętych
znaków jako ułamek całkowitego budżetu. Gdy pliki są przycinane lub zbliżają się do limitu,
doctor wyświetla wskazówki dotyczące strojenia `agents.defaults.bootstrapMaxChars`
i `agents.defaults.bootstrapTotalMaxChars`.
### 11c) Shell completion
### 11c) Uzupełnianie powłoki
Doctor sprawdza, czy autouzupełnianie jest zainstalowane dla bieżącej powłoki
Doctor sprawdza, czy uzupełnianie tabulatorem jest zainstalowane dla bieżącej powłoki
(zsh, bash, fish lub PowerShell):
- Jeśli profil powłoki używa wolnego wzorca dynamic completion
- Jeśli profil powłoki używa wolnego dynamicznego wzorca uzupełniania
(`source <(openclaw completion ...)`), doctor aktualizuje go do szybszego
wariantu z buforowanym plikiem.
- Jeśli completion jest skonfigurowane w profilu, ale brakuje pliku cache,
wariantu z plikiem cache.
- Jeśli uzupełnianie jest skonfigurowane w profilu, ale brakuje pliku cache,
doctor automatycznie regeneruje cache.
- Jeśli completion w ogóle nie jest skonfigurowane, doctor pyta o instalację
(tylko w trybie interaktywnym; pomijane przy `--non-interactive`).
- Jeśli uzupełnianie w ogóle nie jest skonfigurowane, doctor proponuje jego instalację
(tylko tryb interaktywny; pomijane z `--non-interactive`).
Uruchom `openclaw completion --write-state`, aby ręcznie zregenerować cache.
### 12) Kontrole uwierzytelniania gateway (lokalny token)
### 12) Kontrole uwierzytelniania Gateway (token lokalny)
Doctor sprawdza gotowość uwierzytelniania lokalnego tokena gateway.
Doctor sprawdza gotowość uwierzytelniania tokenem lokalnego Gateway.
- Jeśli tryb tokena wymaga tokena, a nie istnieje jego źródło, doctor oferuje jego wygenerowanie.
- Jeśli tryb tokenu wymaga tokenu i nie istnieje żadne jego źródło, doctor proponuje jego wygenerowanie.
- Jeśli `gateway.auth.token` jest zarządzany przez SecretRef, ale niedostępny, doctor ostrzega i nie nadpisuje go jawnym tekstem.
- `openclaw doctor --generate-gateway-token` wymusza generowanie tylko wtedy, gdy nie skonfigurowano SecretRef tokena.
- `openclaw doctor --generate-gateway-token` wymusza generowanie tylko wtedy, gdy nie skonfigurowano tokenu SecretRef.
### 12b) Naprawy tylko do odczytu uwzględniające SecretRef
### 12b) Naprawy tylko do odczytu z uwzględnieniem SecretRef
Niektóre przepływy naprawcze muszą sprawdzać skonfigurowane credentials bez osłabiania zachowania fail-fast w runtime.
Niektóre przepływy naprawcze muszą sprawdzać skonfigurowane poświadczenia bez osłabiania zachowania fail-fast w runtime.
- `openclaw doctor --fix` używa teraz tego samego modelu podsumowania SecretRef tylko do odczytu, co polecenia z rodziny status, do ukierunkowanych napraw konfiguracji.
- Przykład: naprawa `allowFrom` / `groupAllowFrom` Telegram z `@username` próbuje użyć skonfigurowanych credentials bota, gdy są dostępne.
- Jeśli token bota Telegram jest skonfigurowany przez SecretRef, ale niedostępny w bieżącej ścieżce polecenia, doctor zgłasza, że credential jest skonfigurowany, ale niedostępny, i pomija automatyczne rozwiązywanie zamiast kończyć się awarią lub błędnie raportować brak tokena.
- `openclaw doctor --fix` używa teraz tego samego modelu podsumowania SecretRef tylko do odczytu co polecenia z rodziny status dla ukierunkowanych napraw konfiguracji.
- Przykład: naprawa Telegram `allowFrom` / `groupAllowFrom` z `@username` próbuje użyć skonfigurowanych poświadczeń bota, jeśli są dostępne.
- Jeśli token bota Telegram jest skonfigurowany przez SecretRef, ale niedostępny w bieżącej ścieżce polecenia, doctor zgłasza, że poświadczenie jest skonfigurowane-ale-niedostępne, i pomija automatyczne rozwiązywanie zamiast kończyć się awarią lub błędnie zgłaszać brak tokenu.
### 13) Kontrola kondycji gateway + restart
### 13) Kontrola stanu Gateway + restart
Doctor uruchamia kontrolę kondycji i oferuje restart gateway, gdy wygląda
na niezdrowy.
Doctor uruchamia kontrolę stanu i proponuje restart gateway, gdy wygląda
na niezdatny do pracy.
### 13b) Gotowość wyszukiwania pamięci
Doctor sprawdza, czy skonfigurowany dostawca embeddingów do wyszukiwania pamięci jest gotowy
Doctor sprawdza, czy skonfigurowany dostawca embeddingów wyszukiwania pamięci jest gotowy
dla domyślnego agenta. Zachowanie zależy od skonfigurowanego backendu i dostawcy:
- **Backend QMD**: sonduje, czy binarka `qmd` jest dostępna i da się ją uruchomić.
Jeśli nie, wypisuje wskazówki naprawy, w tym pakiet npm i opcję ręcznej ścieżki do binarki.
- **Backend QMD**: sprawdza, czy binarka `qmd` jest dostępna i może się uruchomić.
Jeśli nie, wyświetla wskazówki naprawy, w tym pakiet npm i opcję ręcznej ścieżki do binarki.
- **Jawny dostawca lokalny**: sprawdza obecność lokalnego pliku modelu lub rozpoznawanego
zdalnego/pobieralnego URL modelu. Jeśli go brakuje, sugeruje przełączenie na zdalnego dostawcę.
- **Jawny dostawca zdalny** (`openai`, `voyage` itp.): sprawdza, czy klucz API jest
obecny w środowisku lub magazynie uwierzytelniania. W razie braku wypisuje konkretne wskazówki naprawy.
- **Jawny dostawca zdalny** (`openai`, `voyage` itd.): weryfikuje, czy klucz API jest
obecny w środowisku lub magazynie uwierzytelniania. Jeśli go brakuje, wyświetla praktyczne wskazówki naprawy.
- **Dostawca auto**: najpierw sprawdza dostępność modelu lokalnego, a następnie próbuje każdego zdalnego
dostawcy w kolejności automatycznego wyboru.
dostawcę w kolejności automatycznego wyboru.
Gdy wynik sondy gateway jest dostępny (gateway był zdrowy w momencie
kontroli), doctor porównuje go z konfiguracją widoczną dla CLI i odnotowuje
sprawdzenia), doctor porównuje jego wynik z konfiguracją widoczną dla CLI i wskazuje
wszelkie rozbieżności.
Użyj `openclaw memory status --deep`, aby zweryfikować gotowość embeddingów w runtime.
### 14) Ostrzeżenia o stanie kanałów
Jeśli gateway jest zdrowy, doctor uruchamia sondę stanu kanałów i zgłasza
ostrzeżenia wraz z proponowanymi poprawkami.
Jeśli gateway jest w dobrym stanie, doctor uruchamia sondę stanu kanałów i zgłasza
ostrzeżenia wraz z sugerowanymi poprawkami.
### 15) Audyt konfiguracji supervisora + naprawa
Doctor sprawdza zainstalowaną konfigurację supervisora (launchd/systemd/schtasks) pod kątem
brakujących lub nieaktualnych wartości domyślnych (np. zależności systemd od network-online oraz
opóźnienia restartu). Gdy znajdzie niezgodność, zaleca aktualizację i może
przepisać plik usługi/zadanie do bieżących wartości domyślnych.
brakujących lub nieaktualnych ustawień domyślnych (np. zależności systemd network-online i
opóźnienia restartu). Gdy wykryje niezgodność, zaleca aktualizację i może
przepisać plik usługi/zadanie do bieżących ustawień domyślnych.
Uwagi:
- `openclaw doctor` pyta przed przepisaniem konfiguracji supervisora.
- `openclaw doctor --yes` akceptuje domyślne monity naprawy.
- `openclaw doctor --repair` stosuje zalecane poprawki bez monitów.
- `openclaw doctor --repair` stosuje zalecane poprawki bez pytań.
- `openclaw doctor --repair --force` nadpisuje niestandardowe konfiguracje supervisora.
- Jeśli uwierzytelnianie tokenem wymaga tokena, a `gateway.auth.token` jest zarządzany przez SecretRef, doctor przy instalacji/naprawie usługi waliduje SecretRef, ale nie zapisuje rozwiązanych wartości tokena w jawnym tekście w metadanych środowiska usługi supervisora.
- Jeśli uwierzytelnianie tokenem wymaga tokena, a skonfigurowany SecretRef tokena nie jest rozwiązany, doctor blokuje ścieżkę instalacji/naprawy i podaje konkretne wskazówki.
- Jeśli skonfigurowano zarówno `gateway.auth.token`, jak i `gateway.auth.password`, a `gateway.auth.mode` nie jest ustawione, doctor blokuje instalację/naprawę do czasu jawnego ustawienia trybu.
- W przypadku jednostek user-systemd w Linuxie kontrole dryfu tokena w doctor obejmują teraz zarówno źródła `Environment=`, jak i `EnvironmentFile=` przy porównywaniu metadanych uwierzytelniania usługi.
- Jeśli uwierzytelnianie tokenem wymaga tokenu, a `gateway.auth.token` jest zarządzany przez SecretRef, instalacja/naprawa usługi doctor weryfikuje SecretRef, ale nie zapisuje rozwiązanego tokenu w jawnym tekście do metadanych środowiska usługi supervisora.
- Jeśli uwierzytelnianie tokenem wymaga tokenu, a skonfigurowany token SecretRef nie jest rozwiązany, doctor blokuje ścieżkę instalacji/naprawy i podaje praktyczne wskazówki.
- Jeśli skonfigurowano zarówno `gateway.auth.token`, jak i `gateway.auth.password`, a `gateway.auth.mode` nie jest ustawione, doctor blokuje instalację/naprawę, dopóki tryb nie zostanie ustawiony jawnie.
- W przypadku jednostek user-systemd w Linuksie kontrole dryfu tokenu doctor uwzględniają teraz zarówno źródła `Environment=`, jak i `EnvironmentFile=` przy porównywaniu metadanych uwierzytelniania usługi.
- Zawsze możesz wymusić pełne przepisanie przez `openclaw gateway install --force`.
### 16) Diagnostyka runtime gateway i portu
### 16) Diagnostyka runtime Gateway + portu
Doctor sprawdza runtime usługi (PID, ostatni status wyjścia) i ostrzega, gdy
usługa jest zainstalowana, ale faktycznie nie działa. Sprawdza też konflikty portu
usługa jest zainstalowana, ale faktycznie nie działa. Sprawdza także konflikty portów
na porcie gateway (domyślnie `18789`) i raportuje prawdopodobne przyczyny (gateway już
działa, tunel SSH).
### 17) Dobre praktyki runtime gateway
### 17) Dobre praktyki runtime Gateway
Doctor ostrzega, gdy usługa gateway działa na Bun lub na ścieżce Node zarządzanej przez menedżer wersji
(`nvm`, `fnm`, `volta`, `asdf` itd.). Kanały WhatsApp i Telegram wymagają Node,
(`nvm`, `fnm`, `volta`, `asdf` itd.). Kanały WhatsApp + Telegram wymagają Node,
a ścieżki menedżera wersji mogą przestać działać po aktualizacjach, ponieważ usługa nie
ładuje inicjalizacji powłoki. Doctor oferuje migrację do systemowej instalacji Node, gdy
ładuje inicjalizacji powłoki. Doctor proponuje migrację do systemowej instalacji Node, gdy
jest dostępna (Homebrew/apt/choco).
### 18) Zapis konfiguracji + metadane kreatora
@ -540,10 +525,9 @@ jest dostępna (Homebrew/apt/choco).
Doctor zapisuje wszelkie zmiany konfiguracji i oznacza metadane kreatora, aby zarejestrować
uruchomienie doctor.
### 19) Wskazówki dotyczące workspace (backup + system pamięci)
### 19) Wskazówki dotyczące workspace (kopia zapasowa + system pamięci)
Doctor sugeruje system pamięci workspace, jeśli go brakuje, i wypisuje wskazówkę dotyczącą backupu,
Doctor sugeruje system pamięci workspace, jeśli go brakuje, i wyświetla wskazówkę dotyczącą kopii zapasowej,
jeśli workspace nie jest już pod kontrolą git.
Zobacz [/concepts/agent-workspace](/pl/concepts/agent-workspace), aby przeczytać pełny przewodnik po
strukturze workspace i backupie git (zalecany prywatny GitHub lub GitLab).
Zobacz pełny przewodnik po strukturze workspace i kopii zapasowej git na stronie [/concepts/agent-workspace](/pl/concepts/agent-workspace) (zalecane prywatne GitHub lub GitLab).

View File

@ -1,33 +1,33 @@
---
read_when:
- Uruchamiasz lub debugujesz proces gateway
summary: Runbook dla usługi Gateway, jej cyklu życia i operacji
title: Runbook Gateway
- Uruchamianie lub debugowanie procesu Gateway
summary: Instrukcja operacyjna dla usługi Gateway, jej cyklu życia i operacji
title: Instrukcja operacyjna Gateway
x-i18n:
generated_at: "2026-04-07T09:45:29Z"
generated_at: "2026-04-20T09:58:22Z"
model: gpt-5.4
provider: openai
source_hash: fd2c21036e88612861ef2195b8ff7205aca31386bb11558614ade8d1a54fdebd
source_hash: e1004cdd43b1db6794f3ca83da38dbdb231a1976329d9d6d851e2b02405278d8
source_path: gateway/index.md
workflow: 15
---
# Runbook Gateway
# Instrukcja operacyjna Gateway
Używaj tej strony do uruchomienia usługi Gateway w pierwszym dniu oraz do operacji w kolejnych dniach.
Użyj tej strony do uruchamiania usługi Gateway w pierwszym dniu oraz do operacji eksploatacyjnych w kolejnych dniach.
<CardGroup cols={2}>
<Card title="Głębokie rozwiązywanie problemów" icon="siren" href="/pl/gateway/troubleshooting">
<Card title="Zaawansowane rozwiązywanie problemów" icon="siren" href="/pl/gateway/troubleshooting">
Diagnostyka oparta na objawach z dokładnymi sekwencjami poleceń i sygnaturami logów.
</Card>
<Card title="Konfiguracja" icon="sliders" href="/pl/gateway/configuration">
Przewodnik konfiguracji zorientowany na zadania + pełna dokumentacja konfiguracji.
Przewodnik konfiguracji zorientowany na zadania + pełne odniesienie do konfiguracji.
</Card>
<Card title="Zarządzanie sekretami" icon="key-round" href="/pl/gateway/secrets">
Kontrakt SecretRef, zachowanie snapshotów w czasie wykonywania oraz operacje migracji/przeładowania.
Kontrakt SecretRef, zachowanie snapshotów w czasie działania oraz operacje migracji/przeładowania.
</Card>
<Card title="Kontrakt planu sekretów" icon="shield-check" href="/pl/gateway/secrets-plan-contract">
Dokładne reguły target/path dla `secrets apply` oraz zachowanie profilu uwierzytelniania tylko z referencjami.
Dokładne reguły `secrets apply` dotyczące celu/ścieżki oraz zachowanie profilu uwierzytelniania tylko z referencjami.
</Card>
</CardGroup>
@ -38,9 +38,9 @@ Używaj tej strony do uruchomienia usługi Gateway w pierwszym dniu oraz do oper
```bash
openclaw gateway --port 18789
# debug/trace odbijane do stdio
# debug/trace odzwierciedlane do stdio
openclaw gateway --port 18789 --verbose
# wymuś zabicie procesu nasłuchującego na wybranym porcie, a następnie uruchom
# wymuś zakończenie nasłuchu na wybranym porcie, a następnie uruchom
openclaw gateway --force
```
@ -54,7 +54,7 @@ openclaw status
openclaw logs --follow
```
Prawidłowa baza: `Runtime: running` i `RPC probe: ok`.
Prawidłowy stan bazowy: `Runtime: running`, `Connectivity probe: ok` oraz `Capability: ...` zgodne z oczekiwaniami. Użyj `openclaw gateway status --require-rpc`, gdy potrzebujesz potwierdzenia RPC w zakresie odczytu, a nie tylko osiągalności.
</Step>
@ -64,35 +64,35 @@ Prawidłowa baza: `Runtime: running` i `RPC probe: ok`.
openclaw channels status --probe
```
Przy osiągalnym gateway to polecenie uruchamia aktywne sondy kanałów dla każdego konta oraz opcjonalne audyty.
Jeśli gateway jest nieosiągalny, CLI przełącza się na podsumowania kanałów oparte wyłącznie na konfiguracji zamiast
wyświetlać wynik aktywnego sondowania.
Przy osiągalnym Gateway uruchamia to aktywne sondy kanałów dla każdego konta oraz opcjonalne audyty.
Jeśli Gateway jest nieosiągalny, CLI przechodzi awaryjnie do podsumowań kanałów opartych wyłącznie na konfiguracji
zamiast wyjścia z aktywnej sondy.
</Step>
</Steps>
<Note>
Przeładowanie konfiguracji gateway obserwuje ścieżkę aktywnego pliku konfiguracji (ustalaną na podstawie wartości domyślnych profilu/stanu lub `OPENCLAW_CONFIG_PATH`, jeśli jest ustawione).
Przeładowanie konfiguracji Gateway obserwuje ścieżkę aktywnego pliku konfiguracji (ustaloną na podstawie domyślnych ustawień profilu/stanu albo `OPENCLAW_CONFIG_PATH`, jeśli jest ustawione).
Tryb domyślny to `gateway.reload.mode="hybrid"`.
Po pierwszym udanym wczytaniu działający proces udostępnia aktywny snapshot konfiguracji w pamięci; udane przeładowanie podmienia ten snapshot atomowo.
Po pierwszym pomyślnym wczytaniu działający proces obsługuje aktywny snapshot konfiguracji w pamięci; pomyślne przeładowanie atomowo podmienia ten snapshot.
</Note>
## Model działania w czasie wykonywania
## Model działania
- Jeden stale uruchomiony proces do routingu, control plane i połączeń kanałów.
- Jeden zawsze uruchomiony proces do routingu, płaszczyzny sterowania i połączeń kanałów.
- Jeden multipleksowany port dla:
- control/RPC przez WebSocket
- API HTTP, zgodnych z OpenAI (`/v1/models`, `/v1/embeddings`, `/v1/chat/completions`, `/v1/responses`, `/tools/invoke`)
- sterowania/RPC przez WebSocket
- interfejsów HTTP API zgodnych z OpenAI (`/v1/models`, `/v1/embeddings`, `/v1/chat/completions`, `/v1/responses`, `/tools/invoke`)
- Control UI i hooków
- Domyślny tryb bindowania: `loopback`.
- Uwierzytelnianie jest domyślnie wymagane. Konfiguracje ze współdzielonym sekretem używają
`gateway.auth.token` / `gateway.auth.password` (lub
`OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD`), a konfiguracje reverse proxy
poza `loopback` mogą używać `gateway.auth.mode: "trusted-proxy"`.
`OPENCLAW_GATEWAY_TOKEN` / `OPENCLAW_GATEWAY_PASSWORD`), a konfiguracje
reverse proxy spoza loopback mogą używać `gateway.auth.mode: "trusted-proxy"`.
## Punkty końcowe zgodne z OpenAI
## Endpointy zgodne z OpenAI
Najważniejsza powierzchnia zgodności OpenClaw to obecnie:
Najważniejsza warstwa zgodności OpenClaw to obecnie:
- `GET /v1/models`
- `GET /v1/models/{id}`
@ -100,24 +100,24 @@ Najważniejsza powierzchnia zgodności OpenClaw to obecnie:
- `POST /v1/chat/completions`
- `POST /v1/responses`
Dlaczego ten zestaw ma znaczenie:
Dlaczego ten zestaw jest istotny:
- Większość integracji Open WebUI, LobeChat i LibreChat najpierw sonduje `/v1/models`.
- Wiele pipelineów RAG i pamięci oczekuje `/v1/embeddings`.
- Klienci natywnie agentowi coraz częściej preferują `/v1/responses`.
- Wiele potoków RAG i pamięci oczekuje `/v1/embeddings`.
- Klienci natywni dla agentów coraz częściej preferują `/v1/responses`.
Uwaga planistyczna:
- `/v1/models` jest zorientowane agentowo: zwraca `openclaw`, `openclaw/default` i `openclaw/<agentId>`.
- `openclaw/default` to stabilny alias, który zawsze mapuje się do skonfigurowanego agenta domyślnego.
- Użyj `x-openclaw-model`, jeśli chcesz nadpisać dostawcę/model po stronie backendu; w przeciwnym razie kontrolę zachowuje zwykła konfiguracja modelu i embeddingów wybranego agenta.
- `/v1/models` jest agent-first: zwraca `openclaw`, `openclaw/default` i `openclaw/<agentId>`.
- `openclaw/default` to stabilny alias, który zawsze mapuje na skonfigurowanego domyślnego agenta.
- Użyj `x-openclaw-model`, gdy chcesz wymusić nadpisanie dostawcy/modelu zaplecza; w przeciwnym razie kontrolę zachowują zwykłe ustawienia modelu i embeddingów wybranego agenta.
Wszystkie te punkty końcowe działają na głównym porcie Gateway i używają tej samej granicy uwierzytelniania zaufanego operatora co reszta HTTP API Gateway.
Wszystkie te endpointy działają na głównym porcie Gateway i używają tej samej granicy uwierzytelniania zaufanego operatora co reszta HTTP API Gateway.
### Priorytet portu i trybu bindowania
| Ustawienie | Kolejność ustalania |
| ------------- | -------------------------------------------------------------- |
| Ustawienie | Kolejność rozstrzygania |
| ------------- | ------------------------------------------------------------- |
| Port Gateway | `--port``OPENCLAW_GATEWAY_PORT``gateway.port``18789` |
| Tryb bindowania | CLI/override → `gateway.bind``loopback` |
@ -127,8 +127,8 @@ Wszystkie te punkty końcowe działają na głównym porcie Gateway i używają
| --------------------- | ------------------------------------------ |
| `off` | Brak przeładowania konfiguracji |
| `hot` | Zastosuj tylko zmiany bezpieczne dla hot reload |
| `restart` | Restart przy zmianach wymagających przeładowania |
| `hybrid` (domyślny) | Zastosuj na gorąco, gdy jest bezpiecznie, restartuj, gdy to wymagane |
| `restart` | Restart przy zmianach wymagających restartu |
| `hybrid` (domyślny) | Zastosuj na gorąco, gdy to bezpieczne, restartuj, gdy to wymagane |
## Zestaw poleceń operatora
@ -144,37 +144,37 @@ openclaw logs --follow
openclaw doctor
```
`gateway status --deep` służy do dodatkowego wykrywania usług (jednostki systemowe LaunchDaemons/systemd/schtasks),
a nie do głębszego sondowania stanu RPC.
`gateway status --deep` służy do dodatkowego wykrywania usług (LaunchDaemons/systemowe
jednostki systemd/schtasks), a nie do głębszej sondy stanu RPC.
## Wiele gateway na jednym hoście
## Wiele Gatewayów (ten sam host)
Większość instalacji powinna uruchamiać jeden gateway na maszynę. Jeden gateway może hostować wielu
agentów i kanały.
W większości instalacji należy uruchamiać jeden Gateway na maszynę. Jeden Gateway może obsługiwać wielu
agentów i wiele kanałów.
Wiele gateway jest potrzebnych tylko wtedy, gdy celowo chcesz izolacji lub bota ratunkowego.
Wiele Gatewayów jest potrzebnych tylko wtedy, gdy celowo chcesz izolacji albo bota ratunkowego.
Przydatne sprawdzenia:
Przydatne kontrole:
```bash
openclaw gateway status --deep
openclaw gateway probe
```
Czego oczekiwać:
Czego się spodziewać:
- `gateway status --deep` może zgłosić `Other gateway-like services detected (best effort)`
i wyświetlić wskazówki czyszczenia, gdy nadal istnieją stare instalacje launchd/systemd/schtasks.
- `gateway probe` może ostrzec o `multiple reachable gateways`, gdy odpowiada
i wyświetlić wskazówki czyszczenia, gdy nadal istnieją przestarzałe instalacje launchd/systemd/schtasks.
- `gateway probe` może ostrzegać o `multiple reachable gateways`, gdy odpowiada
więcej niż jeden cel.
- Jeśli jest to zamierzone, izoluj porty, konfigurację/stan oraz katalogi workspace dla każdego gateway.
- Jeśli jest to zamierzone, odizoluj porty, konfigurację/stany i katalogi workspace dla każdego Gateway.
Szczegółowa konfiguracja: [/gateway/multiple-gateways](/pl/gateway/multiple-gateways).
## Dostęp zdalny
Preferowane: Tailscale/VPN.
Zapasowo: tunel SSH.
Zalecane: Tailscale/VPN.
Awaryjnie: tunel SSH.
```bash
ssh -N -L 18789:127.0.0.1:18789 user@host
@ -183,16 +183,17 @@ ssh -N -L 18789:127.0.0.1:18789 user@host
Następnie połącz klientów lokalnie z `ws://127.0.0.1:18789`.
<Warning>
Tunele SSH nie omijają uwierzytelniania gateway. W przypadku uwierzytelniania współdzielonym sekretem klienci nadal
Tunele SSH nie omijają uwierzytelniania Gateway. W przypadku uwierzytelniania
współdzielonym sekretem klienci nadal
muszą wysyłać `token`/`password` nawet przez tunel. W trybach opartych na tożsamości
żądanie nadal musi spełniać tę ścieżkę uwierzytelniania.
żądanie nadal musi spełniać wymagania tej ścieżki uwierzytelniania.
</Warning>
Zobacz: [Gateway zdalny](/pl/gateway/remote), [Uwierzytelnianie](/pl/gateway/authentication), [Tailscale](/pl/gateway/tailscale).
Zobacz: [Remote Gateway](/pl/gateway/remote), [Authentication](/pl/gateway/authentication), [Tailscale](/pl/gateway/tailscale).
## Nadzór i cykl życia usługi
W przypadku niezawodności zbliżonej do produkcyjnej używaj uruchomień nadzorowanych.
Dla niezawodności zbliżonej do produkcyjnej używaj uruchomień nadzorowanych.
<Tabs>
<Tab title="macOS (launchd)">
@ -204,7 +205,7 @@ openclaw gateway restart
openclaw gateway stop
```
Etykiety LaunchAgent to `ai.openclaw.gateway` (domyślna) lub `ai.openclaw.<profile>` (profil nazwany). `openclaw doctor` audytuje i naprawia dryf konfiguracji usługi.
Etykiety LaunchAgent to `ai.openclaw.gateway` (domyślna) albo `ai.openclaw.<profile>` (profil nazwany). `openclaw doctor` audytuje i naprawia dryf konfiguracji usługi.
</Tab>
@ -245,7 +246,7 @@ WantedBy=default.target
</Tab>
<Tab title="Windows (natywnie)">
<Tab title="Windows (native)">
```powershell
openclaw gateway install
@ -254,16 +255,16 @@ openclaw gateway restart
openclaw gateway stop
```
Natywne zarządzane uruchamianie w Windows używa Harmonogramu zadań o nazwie `OpenClaw Gateway`
(lub `OpenClaw Gateway (<profile>)` dla nazwanych profili). Jeśli tworzenie zadania Harmonogramu zadań
zostanie odrzucone, OpenClaw przełącza się na launcher per użytkownik w folderze Autostart,
Natywne zarządzane uruchamianie w Windows używa Zadania Harmonogramu o nazwie `OpenClaw Gateway`
(albo `OpenClaw Gateway (<profile>)` dla nazwanych profili). Jeśli utworzenie Zadania Harmonogramu
zostanie odrzucone, OpenClaw przechodzi awaryjnie do programu uruchamiającego w folderze Startup dla użytkownika,
który wskazuje na `gateway.cmd` w katalogu stanu.
</Tab>
<Tab title="Linux (usługa systemowa)">
<Tab title="Linux (system service)">
Użyj jednostki systemowej dla hostów wieloużytkownikowych/zawsze włączonych.
Użyj jednostki systemowej dla hostów wieloużytkownikowych lub zawsze włączonych.
```bash
sudo systemctl daemon-reload
@ -277,14 +278,14 @@ Użyj tej samej treści usługi co dla jednostki użytkownika, ale zainstaluj j
</Tab>
</Tabs>
## Wiele gateway na jednym hoście
## Wiele Gatewayów na jednym hoście
Większość konfiguracji powinna uruchamiać **jeden** Gateway.
Używaj wielu tylko dla ścisłej izolacji/nadmiarowości (na przykład profil ratunkowy).
W większości konfiguracji należy uruchamiać **jeden** Gateway.
Wielu używaj tylko dla ścisłej izolacji/nadmiarowości (na przykład profil ratunkowy).
Lista kontrolna dla każdej instancji:
- Unikalny `gateway.port`
- Unikalne `gateway.port`
- Unikalne `OPENCLAW_CONFIG_PATH`
- Unikalne `OPENCLAW_STATE_DIR`
- Unikalne `agents.defaults.workspace`
@ -296,7 +297,7 @@ OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a opencla
OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
```
Zobacz: [Wiele gateway](/pl/gateway/multiple-gateways).
Zobacz: [Multiple gateways](/pl/gateway/multiple-gateways).
### Szybka ścieżka dla profilu deweloperskiego
@ -306,25 +307,25 @@ openclaw --dev gateway --allow-unconfigured
openclaw --dev status
```
Wartości domyślne obejmują odizolowany stan/konfigurację oraz bazowy port gateway `19001`.
Domyślne ustawienia obejmują odizolowany stan/konfigurację oraz bazowy port Gateway `19001`.
## Szybka dokumentacja protokołu (widok operatora)
## Szybkie odniesienie do protokołu (widok operatora)
- Pierwsza ramka klienta musi być `connect`.
- Gateway zwraca snapshot `hello-ok` (`presence`, `health`, `stateVersion`, `uptimeMs`, limity/politykę).
- `hello-ok.features.methods` / `events` to zachowawcza lista wykrywania, a nie
- Pierwszą ramką klienta musi być `connect`.
- Gateway zwraca snapshot `hello-ok` (`presence`, `health`, `stateVersion`, `uptimeMs`, limits/policy).
- `hello-ok.features.methods` / `events` to konserwatywna lista wykrywania, a nie
wygenerowany zrzut każdej wywoływalnej ścieżki pomocniczej.
- Żądania: `req(method, params)``res(ok/payload|error)`.
- Typowe zdarzenia obejmują `connect.challenge`, `agent`, `chat`,
`session.message`, `session.tool`, `sessions.changed`, `presence`, `tick`,
`health`, `heartbeat`, zdarzenia cyklu życia parowania/akceptacji oraz `shutdown`.
Uruchomienia agenta są dwuetapowe:
Uruchomienia agentów są dwuetapowe:
1. Natychmiastowe potwierdzenie przyjęcia (`status:"accepted"`)
2. Ostateczna odpowiedź zakończenia (`status:"ok"|"error"`), z przesyłanymi strumieniowo zdarzeniami `agent` pomiędzy nimi.
2. Ostateczna odpowiedź zakończenia (`status:"ok"|"error"`), ze strumieniowanymi zdarzeniami `agent` pomiędzy nimi.
Zobacz pełną dokumentację protokołu: [Protokół Gateway](/pl/gateway/protocol).
Pełna dokumentacja protokołu: [Gateway Protocol](/pl/gateway/protocol).
## Kontrole operacyjne
@ -343,32 +344,32 @@ openclaw health
### Odtwarzanie po lukach
Zdarzenia nie są odtwarzane ponownie. Przy lukach sekwencji odśwież stan (`health`, `system-presence`) przed kontynuacją.
Zdarzenia nie są odtwarzane. Przy lukach w sekwencji odśwież stan (`health`, `system-presence`) przed kontynuacją.
## Typowe sygnatury awarii
| Sygnatura | Prawdopodobny problem |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| `refusing to bind gateway ... without auth` | Bindowanie poza loopback bez prawidłowej ścieżki uwierzytelniania gateway |
| Sygnatura | Prawdopodobny problem |
| ------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `refusing to bind gateway ... without auth` | Bindowanie poza loopback bez prawidłowej ścieżki uwierzytelniania Gateway |
| `another gateway instance is already listening` / `EADDRINUSE` | Konflikt portu |
| `Gateway start blocked: set gateway.mode=local` | Konfiguracja ustawiona na tryb zdalny lub brak znacznika trybu lokalnego w uszkodzonej konfiguracji |
| `unauthorized` during connect | Niezgodność uwierzytelniania między klientem a gateway |
| `Gateway start blocked: set gateway.mode=local` | Konfiguracja ustawiona na tryb zdalny albo brakuje stempla trybu lokalnego w uszkodzonej konfiguracji |
| `unauthorized` during connect | Niezgodność uwierzytelniania między klientem a Gateway |
Aby uzyskać pełne sekwencje diagnostyczne, użyj [Rozwiązywanie problemów z Gateway](/pl/gateway/troubleshooting).
Pełne sekwencje diagnostyczne znajdziesz w [Gateway Troubleshooting](/pl/gateway/troubleshooting).
## Gwarancje bezpieczeństwa
- Klienci protokołu Gateway kończą działanie szybko, gdy Gateway jest niedostępny (bez niejawnego bezpośredniego fallbacku kanału).
- Nieprawidłowe/pierwsze ramki inne niż `connect` są odrzucane i połączenie jest zamykane.
- Uprzejme zamknięcie emituje zdarzenie `shutdown` przed zamknięciem gniazda.
- Klienci protokołu Gateway szybko kończą pracę, gdy Gateway jest niedostępny (bez domyślnego awaryjnego przejścia bezpośrednio do kanału).
- Nieprawidłowe pierwsze ramki inne niż `connect` są odrzucane, a połączenie zamykane.
- Przy łagodnym zamknięciu emitowane jest zdarzenie `shutdown` przed zamknięciem gniazda.
---
Powiązane:
- [Rozwiązywanie problemów](/pl/gateway/troubleshooting)
- [Proces w tle](/pl/gateway/background-process)
- [Konfiguracja](/pl/gateway/configuration)
- [Stan zdrowia](/pl/gateway/health)
- [Troubleshooting](/pl/gateway/troubleshooting)
- [Background Process](/pl/gateway/background-process)
- [Configuration](/pl/gateway/configuration)
- [Health](/pl/gateway/health)
- [Doctor](/pl/gateway/doctor)
- [Uwierzytelnianie](/pl/gateway/authentication)
- [Authentication](/pl/gateway/authentication)

View File

@ -1,24 +1,24 @@
---
read_when:
- Centrum rozwiązywania problemów skierowało Cię tutaj po dokładniejszą diagnozę
- Potrzebujesz stabilnych sekcji runbooka opartych na objawach z dokładnymi poleceniami
summary: Szczegółowy runbook rozwiązywania problemów dla gateway, kanałów, automatyzacji, węzłów i przeglądarki
- Centrum rozwiązywania problemów skierowało Cię tutaj w celu przeprowadzenia głębszej diagnostyki.
- Potrzebujesz stabilnych sekcji podręcznika opartych na objawach z dokładnymi poleceniami.
summary: Szczegółowy podręcznik rozwiązywania problemów dla Gateway, kanałów, automatyzacji, Node i przeglądarki
title: Rozwiązywanie problemów
x-i18n:
generated_at: "2026-04-11T02:45:08Z"
generated_at: "2026-04-20T09:58:27Z"
model: gpt-5.4
provider: openai
source_hash: 7ef2faccba26ede307861504043a6415bc1f12dc64407771106f63ddc5b107f5
source_hash: d93a82407dbb1314b91a809ff9433114e1e9a3b56d46547ef53a8196bac06260
source_path: gateway/troubleshooting.md
workflow: 15
---
# Rozwiązywanie problemów z gateway
# Rozwiązywanie problemów z Gateway
Ta strona to szczegółowy runbook.
Jeśli najpierw chcesz skorzystać z szybkiego przepływu triage, zacznij od [/help/troubleshooting](/pl/help/troubleshooting).
Ta strona jest szczegółowym podręcznikiem.
Zacznij od [/help/troubleshooting](/pl/help/troubleshooting), jeśli najpierw chcesz skorzystać z szybkiego przepływu triage.
## Drabina poleceń
## Drabinka poleceń
Uruchom najpierw te polecenia, w tej kolejności:
@ -32,9 +32,10 @@ openclaw channels status --probe
Oczekiwane sygnały zdrowego działania:
- `openclaw gateway status` pokazuje `Runtime: running` i `RPC probe: ok`.
- `openclaw doctor` nie zgłasza blokujących problemów z konfiguracją ani usługami.
- `openclaw channels status --probe` pokazuje aktywny stan transportu dla każdego konta oraz, tam gdzie jest to obsługiwane, wyniki probe/audytu, takie jak `works` lub `audit ok`.
- `openclaw gateway status` pokazuje `Runtime: running`, `Connectivity probe: ok` oraz wiersz `Capability: ...`.
- `openclaw doctor` nie zgłasza blokujących problemów z konfiguracją/usługą.
- `openclaw channels status --probe` pokazuje bieżący status transportu dla każdego konta oraz,
tam gdzie jest to obsługiwane, wyniki probe/audit, takie jak `works` lub `audit ok`.
## Anthropic 429: wymagane dodatkowe użycie dla długiego kontekstu
@ -51,12 +52,12 @@ Szukaj:
- Wybrany model Anthropic Opus/Sonnet ma `params.context1m: true`.
- Bieżące poświadczenie Anthropic nie kwalifikuje się do użycia długiego kontekstu.
- Żądania kończą się błędem tylko w długich sesjach/uruchomieniach modelu, które wymagają ścieżki beta 1M.
- Żądania kończą się niepowodzeniem tylko w długich sesjach/uruchomieniach modelu, które wymagają ścieżki beta 1M.
Opcje naprawy:
1. Wyłącz `context1m` dla tego modelu, aby wrócić do zwykłego okna kontekstu.
2. Użyj poświadczenia Anthropic, które kwalifikuje się do żądań długiego kontekstu, albo przełącz się na klucz API Anthropic.
2. Użyj poświadczenia Anthropic, które kwalifikuje się do żądań z długim kontekstem, albo przełącz się na klucz API Anthropic.
3. Skonfiguruj modele zapasowe, aby uruchomienia były kontynuowane, gdy żądania Anthropic z długim kontekstem są odrzucane.
Powiązane:
@ -65,13 +66,13 @@ Powiązane:
- [/reference/token-use](/pl/reference/token-use)
- [/help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic](/pl/help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic)
## Lokalny backend zgodny z OpenAI przechodzi bezpośrednie probe, ale uruchomienia agenta kończą się błędem
## Lokalny backend zgodny z OpenAI przechodzi bezpośrednie probe, ale uruchomienia agenta kończą się niepowodzeniem
Użyj tego, gdy:
- `curl ... /v1/models` działa
- małe bezpośrednie wywołania `/v1/chat/completions` działają
- uruchomienia modeli OpenClaw kończą się błędem tylko podczas zwykłych tur agenta
- uruchomienia modeli OpenClaw kończą się niepowodzeniem tylko podczas zwykłych tur agenta
```bash
curl http://127.0.0.1:1234/v1/models
@ -84,22 +85,33 @@ openclaw logs --follow
Szukaj:
- małe bezpośrednie wywołania kończą się sukcesem, ale uruchomienia OpenClaw kończą się błędem tylko przy większych promptach
- błędów backendu o `messages[].content`, które oczekuje ciągu znaków
- awarii backendu, które pojawiają się tylko przy większej liczbie tokenów promptu lub pełnych promptach środowiska uruchomieniowego agenta
- małe bezpośrednie wywołania kończą się powodzeniem, ale uruchomienia OpenClaw kończą się niepowodzeniem tylko przy większych promptach
- błędów backendu mówiących, że `messages[].content` oczekuje ciągu znaków
- awarii backendu, które pojawiają się tylko przy większej liczbie tokenów promptu lub pełnych promptach środowiska wykonawczego agenta
Typowe sygnatury:
- `messages[...].content: invalid type: sequence, expected a string` → backend odrzuca strukturalne części treści Chat Completions. Naprawa: ustaw `models.providers.<provider>.models[].compat.requiresStringContent: true`.
- małe bezpośrednie żądania kończą się sukcesem, ale uruchomienia agenta OpenClaw kończą się błędami backendu/modelu (na przykład Gemma w niektórych buildach `inferrs`) → transport OpenClaw najprawdopodobniej jest już poprawny; backend nie radzi sobie z większym kształtem promptu środowiska uruchomieniowego agenta.
- błędy zmniejszają się po wyłączeniu narzędzi, ale nie znikają → schematy narzędzi były częścią obciążenia, ale pozostały problem nadal leży po stronie upstream modelu/serwera albo jest błędem backendu.
- `messages[...].content: invalid type: sequence, expected a string` → backend
odrzuca strukturalne części zawartości Chat Completions. Naprawa: ustaw
`models.providers.<provider>.models[].compat.requiresStringContent: true`.
- małe bezpośrednie żądania kończą się powodzeniem, ale uruchomienia agenta OpenClaw kończą się awariami backendu/modelu
(na przykład Gemma w niektórych buildach `inferrs`) → transport OpenClaw
prawdopodobnie jest już poprawny; to backend zawodzi na większym kształcie promptu
środowiska wykonawczego agenta.
- awarie zmniejszają się po wyłączeniu narzędzi, ale nie znikają → schematy narzędzi
były częścią obciążenia, ale pozostały problem nadal leży po stronie upstream:
pojemności modelu/serwera albo błędu backendu.
Opcje naprawy:
1. Ustaw `compat.requiresStringContent: true` dla backendów Chat Completions obsługujących wyłącznie treść tekstową.
2. Ustaw `compat.supportsTools: false` dla modeli/backendów, które nie potrafią niezawodnie obsłużyć powierzchni schematu narzędzi OpenClaw.
3. Tam, gdzie to możliwe, zmniejsz obciążenie promptu: mniejszy bootstrap workspace, krótsza historia sesji, lżejszy model lokalny albo backend z lepszym wsparciem dla długiego kontekstu.
4. Jeśli małe bezpośrednie żądania nadal przechodzą, a tury agenta OpenClaw wciąż powodują awarie w backendzie, potraktuj to jako ograniczenie upstream serwera/modelu i zgłoś tam reprodukcję z zaakceptowanym kształtem payloadu.
1. Ustaw `compat.requiresStringContent: true` dla backendów Chat Completions obsługujących wyłącznie ciągi znaków.
2. Ustaw `compat.supportsTools: false` dla modeli/backendów, które nie potrafią
niezawodnie obsłużyć powierzchni schematu narzędzi OpenClaw.
3. Zmniejsz obciążenie promptu tam, gdzie to możliwe: mniejszy bootstrap workspace, krótsza
historia sesji, lżejszy model lokalny albo backend z lepszym wsparciem dla długiego kontekstu.
4. Jeśli małe bezpośrednie żądania nadal przechodzą, a tury agenta OpenClaw wciąż powodują awarie
wewnątrz backendu, potraktuj to jako ograniczenie upstream serwera/modelu i zgłoś
tam reprodukcję z zaakceptowanym kształtem ładunku.
Powiązane:
@ -109,7 +121,7 @@ Powiązane:
## Brak odpowiedzi
Jeśli kanały działają, ale nic nie odpowiada, sprawdź routing i politykę, zanim cokolwiek ponownie połączysz.
Jeśli kanały działają, ale nic nie odpowiada, sprawdź routing i politykę, zanim ponownie połączysz cokolwiek.
```bash
openclaw status
@ -121,13 +133,13 @@ openclaw logs --follow
Szukaj:
- Oczekującego parowania dla nadawców wiadomości prywatnych.
- Wymogu wzmianki w grupie (`requireMention`, `mentionPatterns`).
- Niezgodności listy dozwolonych kanałów/grup.
- Oczekiwania na parowanie dla nadawców wiadomości prywatnych.
- Wymuszania wzmianek w grupach (`requireMention`, `mentionPatterns`).
- Niezgodności list dozwolonych kanałów/grup.
Typowe sygnatury:
- `drop guild message (mention required` → wiadomość grupowa została zignorowana do momentu wzmianki.
- `drop guild message (mention required` → wiadomość grupowa jest ignorowana do czasu wzmianki.
- `pairing request` → nadawca wymaga zatwierdzenia.
- `blocked` / `allowlist` → nadawca/kanał został odfiltrowany przez politykę.
@ -139,7 +151,7 @@ Powiązane:
## Łączność dashboard/control UI
Gdy dashboard/control UI nie może się połączyć, zweryfikuj URL, tryb uwierzytelniania i założenia dotyczące bezpiecznego kontekstu.
Gdy dashboard/control UI nie może się połączyć, sprawdź adres URL, tryb uwierzytelniania i założenia dotyczące bezpiecznego kontekstu.
```bash
openclaw gateway status
@ -152,35 +164,48 @@ openclaw gateway status --json
Szukaj:
- Poprawnego probe URL i dashboard URL.
- Niezgodności trybu/tokena uwierzytelniania między klientem a gateway.
- Niezgodności trybu uwierzytelniania/tokenu między klientem a Gateway.
- Użycia HTTP tam, gdzie wymagana jest tożsamość urządzenia.
Typowe sygnatury:
- `device identity required` → niezabezpieczony kontekst lub brak uwierzytelniania urządzenia.
- `origin not allowed` → przeglądarkowe `Origin` nie znajduje się w `gateway.controlUi.allowedOrigins` (albo łączysz się z pochodzenia przeglądarki innego niż loopback bez jawnej listy dozwolonych).
- `device nonce required` / `device nonce mismatch` → klient nie kończy przepływu uwierzytelniania urządzenia opartego na wyzwaniu (`connect.challenge` + `device.nonce`).
- `device signature invalid` / `device signature expired` → klient podpisał nieprawidłowy payload (albo użył nieaktualnego znacznika czasu) dla bieżącego handshake.
- `AUTH_TOKEN_MISMATCH` z `canRetryWithDeviceToken=true` → klient może wykonać jedną zaufaną ponowną próbę z użyciem buforowanego tokena urządzenia.
- Ta ponowna próba z buforowanym tokenem używa ponownie zestawu zakresów przechowywanego wraz z tokenem sparowanego urządzenia. Wywołania z jawnym `deviceToken` / jawnymi `scopes` zachowują swój żądany zestaw zakresów.
- Poza tą ścieżką ponownej próby pierwszeństwo uwierzytelniania połączenia jest następujące: najpierw jawny współdzielony token/hasło, potem jawny `deviceToken`, potem zapisany token urządzenia, a na końcu token bootstrap.
- W asynchronicznej ścieżce Tailscale Serve Control UI nieudane próby dla tego samego `{scope, ip}` są serializowane, zanim limiter zapisze niepowodzenie. Dwie błędne równoległe ponowne próby od tego samego klienta mogą więc spowodować `retry later` przy drugiej próbie zamiast dwóch zwykłych niezgodności.
- `too many failed authentication attempts (retry later)` z klienta loopback o pochodzeniu przeglądarkowym → powtarzające się niepowodzenia z tego samego znormalizowanego `Origin` są tymczasowo blokowane; inne pochodzenie localhost używa osobnego kubełka.
- powtarzające się `unauthorized` po tej ponownej próbie → rozjazd współdzielonego tokena/tokena urządzenia; odśwież konfigurację tokena i w razie potrzeby ponownie zatwierdź/obróć token urządzenia.
- `device identity required` → kontekst nie jest bezpieczny albo brakuje uwierzytelnienia urządzenia.
- `origin not allowed``Origin` przeglądarki nie znajduje się w `gateway.controlUi.allowedOrigins`
(albo łączysz się z pochodzenia przeglądarki innego niż loopback bez jawnej
listy dozwolonych źródeł).
- `device nonce required` / `device nonce mismatch` → klient nie kończy
opartego na wyzwaniu przepływu uwierzytelniania urządzenia (`connect.challenge` + `device.nonce`).
- `device signature invalid` / `device signature expired` → klient podpisał niewłaściwy
ładunek (albo użył nieaktualnego znacznika czasu) dla bieżącego handshake.
- `AUTH_TOKEN_MISMATCH` z `canRetryWithDeviceToken=true` → klient może wykonać jedną zaufaną ponowną próbę z użyciem pamiętanego tokenu urządzenia.
- Ta ponowna próba z użyciem pamiętanego tokenu ponownie wykorzystuje przechowywany zestaw zakresów powiązany ze sparowanym
tokenem urządzenia. Wywołania z jawnym `deviceToken` / jawnymi `scopes` zachowują
natomiast żądany zestaw zakresów.
- Poza tą ścieżką ponownej próby, pierwszeństwo uwierzytelniania przy łączeniu wygląda tak: jawny współdzielony
token/hasło, potem jawny `deviceToken`, potem zapisany token urządzenia,
a na końcu token bootstrap.
- Na asynchronicznej ścieżce Tailscale Serve Control UI nieudane próby dla tego samego
`{scope, ip}` są serializowane, zanim limiter zarejestruje niepowodzenie. Dwie błędne
równoległe ponowne próby od tego samego klienta mogą więc spowodować odpowiedź `retry later`
przy drugiej próbie zamiast dwóch zwykłych niedopasowań.
- `too many failed authentication attempts (retry later)` z klienta loopback o pochodzeniu przeglądarki
→ powtarzające się niepowodzenia z tego samego znormalizowanego `Origin` powodują
tymczasową blokadę; inne pochodzenie localhost używa osobnego bucketu.
- powtarzające się `unauthorized` po tej ponownej próbie → rozjazd współdzielonego tokenu/tokenu urządzenia; odśwież konfigurację tokenu i w razie potrzeby ponownie zatwierdź/obróć token urządzenia.
- `gateway connect failed:` → nieprawidłowy host/port/docelowy URL.
### Krótka mapa kodów szczegółów uwierzytelniania
### Szybka mapa kodów szczegółów uwierzytelniania
Użyj `error.details.code` z nieudanego wyniku `connect`, aby wybrać kolejne działanie:
Użyj `error.details.code` z nieudanego `connect`, aby wybrać następne działanie:
| Kod szczegółu | Znaczenie | Zalecane działanie |
| ---------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `AUTH_TOKEN_MISSING` | Klient nie wysłał wymaganego współdzielonego tokena. | Wklej/ustaw token w kliencie i spróbuj ponownie. Dla ścieżek dashboard: `openclaw config get gateway.auth.token`, a następnie wklej go w ustawieniach Control UI. |
| `AUTH_TOKEN_MISMATCH` | Współdzielony token nie zgadzał się z tokenem gateway auth. | Jeśli `canRetryWithDeviceToken=true`, pozwól na jedną zaufaną ponowną próbę. Ponowne próby z buforowanym tokenem używają zapisanych zatwierdzonych zakresów; wywołania z jawnym `deviceToken` / `scopes` zachowują żądane zakresy. Jeśli nadal się nie udaje, wykonaj [listę kontrolną odzyskiwania po rozjeździe tokena](/cli/devices#token-drift-recovery-checklist). |
| `AUTH_DEVICE_TOKEN_MISMATCH` | Buforowany token dla urządzenia jest nieaktualny lub cofnięty. | Obróć/ponownie zatwierdź token urządzenia za pomocą [CLI devices](/cli/devices), a następnie połącz się ponownie. |
| `PAIRING_REQUIRED` | Tożsamość urządzenia jest znana, ale niezatwierdzona dla tej roli. | Zatwierdź oczekujące żądanie: `openclaw devices list`, a następnie `openclaw devices approve <requestId>`. |
| Kod szczegółu | Znaczenie | Zalecane działanie |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUTH_TOKEN_MISSING` | Klient nie wysłał wymaganego współdzielonego tokenu. | Wklej/ustaw token w kliencie i spróbuj ponownie. Dla ścieżek dashboard: `openclaw config get gateway.auth.token`, a następnie wklej go w ustawieniach Control UI. |
| `AUTH_TOKEN_MISMATCH` | Współdzielony token nie pasował do tokenu uwierzytelniania Gateway. | Jeśli `canRetryWithDeviceToken=true`, dopuść jedną zaufaną ponowną próbę. Ponowne próby z pamiętanym tokenem używają zapisanych zatwierdzonych zakresów; wywołania z jawnym `deviceToken` / `scopes` zachowują żądane zakresy. Jeśli nadal się nie uda, wykonaj [listę kontrolną odzyskiwania po rozjeździe tokenów](/cli/devices#token-drift-recovery-checklist). |
| `AUTH_DEVICE_TOKEN_MISMATCH` | Pamiętany token dla urządzenia jest nieaktualny albo cofnięty. | Obróć/ponownie zatwierdź token urządzenia przy użyciu [CLI urządzeń](/cli/devices), a następnie połącz się ponownie. |
| `PAIRING_REQUIRED` | Tożsamość urządzenia wymaga zatwierdzenia. Sprawdź `error.details.reason`, czy jest to `not-paired`, `scope-upgrade`, `role-upgrade` lub `metadata-upgrade`, i użyj `requestId` / `remediationHint`, jeśli są obecne. | Zatwierdź oczekujące żądanie: `openclaw devices list`, a następnie `openclaw devices approve <requestId>`. Podwyższenia zakresu/roli używają tego samego przepływu po przejrzeniu żądanego dostępu. |
Kontrola migracji do device auth v2:
Kontrola migracji device auth v2:
```bash
openclaw --version
@ -188,26 +213,28 @@ openclaw doctor
openclaw gateway status
```
Jeśli logi pokazują błędy nonce/podpisu, zaktualizuj łączącego się klienta i zweryfikuj, że:
Jeśli logi pokazują błędy nonce/podpisu, zaktualizuj łączącego się klienta i sprawdź, czy:
1. czeka na `connect.challenge`
2. podpisuje payload powiązany z wyzwaniem
2. podpisuje ładunek powiązany z wyzwaniem
3. wysyła `connect.params.device.nonce` z tym samym nonce wyzwania
Jeśli `openclaw devices rotate` / `revoke` / `remove` jest niespodziewanie odrzucane:
Jeśli `openclaw devices rotate` / `revoke` / `remove` jest nieoczekiwanie odrzucane:
- sesje tokenów sparowanych urządzeń mogą zarządzać tylko **własnym** urządzeniem, chyba że wywołujący ma również `operator.admin`
- `openclaw devices rotate --scope ...` może żądać tylko takich zakresów operatora, które sesja wywołująca już posiada
- sesje tokenów sparowanych urządzeń mogą zarządzać tylko **własnym** urządzeniem, chyba że
wywołujący ma także `operator.admin`
- `openclaw devices rotate --scope ...` może żądać tylko tych zakresów operatora,
które sesja wywołująca już posiada
Powiązane:
- [/web/control-ui](/web/control-ui)
- [/gateway/configuration](/pl/gateway/configuration) (tryby gateway auth)
- [/gateway/configuration](/pl/gateway/configuration) (tryby uwierzytelniania Gateway)
- [/gateway/trusted-proxy-auth](/pl/gateway/trusted-proxy-auth)
- [/gateway/remote](/pl/gateway/remote)
- [/cli/devices](/cli/devices)
## Usługa gateway nie działa
## Usługa Gateway nie działa
Użyj tego, gdy usługa jest zainstalowana, ale proces nie utrzymuje się w działaniu.
@ -221,18 +248,18 @@ openclaw gateway status --deep # skanuje też usługi na poziomie systemu
Szukaj:
- `Runtime: stopped` z podpowiedziami dotyczącymi zakończenia.
- `Runtime: stopped` ze wskazówkami dotyczącymi zakończenia.
- Niezgodności konfiguracji usługi (`Config (cli)` vs `Config (service)`).
- Konfliktów portów/listenerów.
- Konfliktów portów/nasłuchu.
- Dodatkowych instalacji launchd/systemd/schtasks przy użyciu `--deep`.
- Podpowiedzi czyszczenia `Other gateway-like services detected (best effort)`.
- Wskazówek czyszczenia `Other gateway-like services detected (best effort)`.
Typowe sygnatury:
- `Gateway start blocked: set gateway.mode=local` lub `existing config is missing gateway.mode`lokalny tryb gateway nie jest włączony albo plik konfiguracyjny został nadpisany i utracił `gateway.mode`. Naprawa: ustaw `gateway.mode="local"` w konfiguracji albo ponownie uruchom `openclaw onboard --mode local` / `openclaw setup`, aby ponownie zapisać oczekiwaną konfigurację trybu lokalnego. Jeśli uruchamiasz OpenClaw przez Podman, domyślną ścieżką konfiguracji jest `~/.openclaw/openclaw.json`.
- `refusing to bind gateway ... without auth`powiązanie inne niż loopback bez prawidłowej ścieżki gateway auth (token/hasło albo trusted-proxy, jeśli skonfigurowano).
- `Gateway start blocked: set gateway.mode=local` lub `existing config is missing gateway.mode`tryb lokalny Gateway nie jest włączony albo plik konfiguracyjny został nadpisany i utracił `gateway.mode`. Naprawa: ustaw `gateway.mode="local"` w swojej konfiguracji albo ponownie uruchom `openclaw onboard --mode local` / `openclaw setup`, aby ponownie odcisnąć oczekiwaną konfigurację trybu lokalnego. Jeśli uruchamiasz OpenClaw przez Podman, domyślna ścieżka konfiguracji to `~/.openclaw/openclaw.json`.
- `refusing to bind gateway ... without auth`dowiązanie do adresu innego niż loopback bez prawidłowej ścieżki uwierzytelniania Gateway (token/hasło albo `trusted-proxy`, jeśli jest skonfigurowane).
- `another gateway instance is already listening` / `EADDRINUSE` → konflikt portu.
- `Other gateway-like services detected (best effort)` → istnieją przestarzałe lub równoległe jednostki launchd/systemd/schtasks. W większości konfiguracji należy utrzymywać jeden gateway na maszynę; jeśli rzeczywiście potrzebujesz więcej niż jednego, odizoluj porty oraz config/state/workspace. Zobacz [/gateway#multiple-gateways-same-host](/pl/gateway#multiple-gateways-same-host).
- `Other gateway-like services detected (best effort)` → istnieją przestarzałe lub równoległe jednostki launchd/systemd/schtasks. W większości konfiguracji powinien działać jeden Gateway na maszynę; jeśli rzeczywiście potrzebujesz więcej niż jednego, odizoluj porty + konfigurację/stan/workspace. Zobacz [/gateway#multiple-gateways-same-host](/pl/gateway#multiple-gateways-same-host).
Powiązane:
@ -240,9 +267,9 @@ Powiązane:
- [/gateway/configuration](/pl/gateway/configuration)
- [/gateway/doctor](/pl/gateway/doctor)
## Ostrzeżenia probe gateway
## Ostrzeżenia probe Gateway
Użyj tego, gdy `openclaw gateway probe` dociera do jakiegoś celu, ale nadal wyświetla blok ostrzeżeń.
Użyj tego, gdy `openclaw gateway probe` dociera do celu, ale nadal wyświetla blok ostrzeżenia.
```bash
openclaw gateway probe
@ -253,14 +280,15 @@ openclaw gateway probe --ssh user@gateway-host
Szukaj:
- `warnings[].code` i `primaryTargetId` w wyjściu JSON.
- Czy ostrzeżenie dotyczy fallbacku SSH, wielu gateway, brakujących zakresów czy nierozwiązanych odwołań auth.
- Czy ostrzeżenie dotyczy fallback SSH, wielu Gateway, brakujących zakresów czy nierozwiązanych auth ref.
Typowe sygnatury:
- `SSH tunnel failed to start; falling back to direct probes.` → konfiguracja SSH nie powiodła się, ale polecenie nadal próbowało bezpośrednich skonfigurowanych/celów loopback.
- `multiple reachable gateways detected` → odpowiedział więcej niż jeden cel. Zwykle oznacza to zamierzoną konfigurację wielogatewayową albo nieaktualne/zduplikowane listenery.
- `Probe diagnostics are limited by gateway scopes (missing operator.read)` → połączenie zadziałało, ale szczegółowe RPC jest ograniczone zakresem; sparuj tożsamość urządzenia albo użyj poświadczeń z `operator.read`.
- nierozwiązany tekst ostrzeżenia `gateway.auth.*` / `gateway.remote.*` SecretRef → materiał uwierzytelniający nie był dostępny w tej ścieżce polecenia dla nieudanego celu.
- `multiple reachable gateways detected` → odpowiedział więcej niż jeden cel. Zwykle oznacza to zamierzoną konfigurację z wieloma Gateway albo przestarzałe/zduplikowane nasłuchujące procesy.
- `Read-probe diagnostics are limited by gateway scopes (missing operator.read)` → połączenie zadziałało, ale szczegółowe RPC są ograniczone zakresem; sparuj tożsamość urządzenia albo użyj poświadczeń z `operator.read`.
- `Capability: pairing-pending` lub `gateway closed (1008): pairing required` → Gateway odpowiedział, ale ten klient nadal wymaga parowania/zatwierdzenia przed uzyskaniem zwykłego dostępu operatora.
- nierozwiązany tekst ostrzeżenia `gateway.auth.*` / `gateway.remote.*` SecretRef → materiał uwierzytelniający był niedostępny w tej ścieżce polecenia dla nieudanego celu.
Powiązane:
@ -268,9 +296,9 @@ Powiązane:
- [/gateway#multiple-gateways-same-host](/pl/gateway#multiple-gateways-same-host)
- [/gateway/remote](/pl/gateway/remote)
## Kanał połączony, ale wiadomości nie przepływają
## Kanał jest połączony, ale wiadomości nie przepływają
Jeśli stan kanału jest połączony, ale przepływ wiadomości nie działa, skup się na polityce, uprawnieniach i regułach dostarczania specyficznych dla kanału.
Jeśli stan kanału to connected, ale przepływ wiadomości nie działa, skup się na polityce, uprawnieniach i regułach dostarczania specyficznych dla kanału.
```bash
openclaw channels status --probe
@ -283,13 +311,13 @@ openclaw config get channels
Szukaj:
- Polityki DM (`pairing`, `allowlist`, `open`, `disabled`).
- Listy dozwolonych grup i wymagań wzmianki.
- Listy dozwolonych grup i wymagań dotyczących wzmianek.
- Brakujących uprawnień/zakresów API kanału.
Typowe sygnatury:
- `mention required` → wiadomość została zignorowana przez politykę wzmianki w grupie.
- ślady `pairing` / oczekującego zatwierdzenia → nadawca nie został zatwierdzony.
- `mention required` → wiadomość została zignorowana przez politykę wymuszającą wzmianki w grupie.
- ślady `pairing` / oczekującego zatwierdzenia → nadawca nie jest zatwierdzony.
- `missing_scope`, `not_in_channel`, `Forbidden`, `401/403` → problem z uwierzytelnianiem/uprawnieniami kanału.
Powiązane:
@ -299,9 +327,9 @@ Powiązane:
- [/channels/telegram](/pl/channels/telegram)
- [/channels/discord](/pl/channels/discord)
## Dostarczanie cron i heartbeat
## Dostarczanie Cron i Heartbeat
Jeśli cron lub heartbeat nie uruchomiły się albo nic nie dostarczyły, najpierw zweryfikuj stan harmonogramu, a potem cel dostarczania.
Jeśli Cron lub Heartbeat nie uruchomił się albo nie dostarczył wyniku, najpierw zweryfikuj stan harmonogramu, a potem cel dostarczenia.
```bash
openclaw cron status
@ -313,19 +341,19 @@ openclaw logs --follow
Szukaj:
- Włączonego cron i obecnego następnego wybudzenia.
- Stanu historii uruchomień zadania (`ok`, `skipped`, `error`).
- Powodów pominięcia heartbeat (`quiet-hours`, `requests-in-flight`, `alerts-disabled`, `empty-heartbeat-file`, `no-tasks-due`).
- Czy Cron jest włączony i czy obecny jest następny czas wybudzenia.
- Statusu historii uruchomień zadania (`ok`, `skipped`, `error`).
- Powodów pominięcia Heartbeat (`quiet-hours`, `requests-in-flight`, `alerts-disabled`, `empty-heartbeat-file`, `no-tasks-due`).
Typowe sygnatury:
- `cron: scheduler disabled; jobs will not run automatically`cron jest wyłączony.
- `cron: timer tick failed`tick harmonogramu zakończył się błędem; sprawdź błędy plików/logów/runtime.
- `cron: scheduler disabled; jobs will not run automatically`Cron jest wyłączony.
- `cron: timer tick failed`niepowodzenie tyknięcia harmonogramu; sprawdź błędy plików/logów/runtime.
- `heartbeat skipped` z `reason=quiet-hours` → poza oknem aktywnych godzin.
- `heartbeat skipped` z `reason=empty-heartbeat-file``HEARTBEAT.md` istnieje, ale zawiera tylko puste linie / nagłówki markdown, więc OpenClaw pomija wywołanie modelu.
- `heartbeat skipped` z `reason=no-tasks-due``HEARTBEAT.md` zawiera blok `tasks:`, ale żadne zadania nie są zaplanowane na ten tick.
- `heartbeat: unknown accountId` → nieprawidłowy account id dla celu dostarczania heartbeat.
- `heartbeat skipped` z `reason=dm-blocked` → cel heartbeat został rozwiązany jako miejsce docelowe w stylu DM, podczas gdy `agents.defaults.heartbeat.directPolicy` (lub nadpisanie dla konkretnego agenta) ma wartość `block`.
- `heartbeat skipped` z `reason=empty-heartbeat-file``HEARTBEAT.md` istnieje, ale zawiera tylko puste wiersze / nagłówki markdown, więc OpenClaw pomija wywołanie modelu.
- `heartbeat skipped` z `reason=no-tasks-due``HEARTBEAT.md` zawiera blok `tasks:`, ale żadne z zadań nie przypada na to tyknięcie.
- `heartbeat: unknown accountId` → nieprawidłowy account id dla celu dostarczenia Heartbeat.
- `heartbeat skipped` z `reason=dm-blocked` → cel Heartbeat został rozwiązany do miejsca docelowego w stylu DM, podczas gdy `agents.defaults.heartbeat.directPolicy` (lub nadpisanie per agent) ma wartość `block`.
Powiązane:
@ -333,9 +361,9 @@ Powiązane:
- [/automation/cron-jobs](/pl/automation/cron-jobs)
- [/gateway/heartbeat](/pl/gateway/heartbeat)
## Sparowane narzędzie węzła kończy się błędem
## Narzędzie sparowanego Node kończy się niepowodzeniem
Jeśli węzeł jest sparowany, ale narzędzia nie działają, odizoluj stan pierwszego planu, uprawnień i zatwierdzeń.
Jeśli Node jest sparowany, ale narzędzia kończą się niepowodzeniem, odizoluj stan pierwszego planu, uprawnień i zatwierdzeń.
```bash
openclaw nodes status
@ -347,16 +375,16 @@ openclaw status
Szukaj:
- Węzła online z oczekiwanymi możliwościami.
- Przyznanych przez system operacyjny uprawnień do kamery/mikrofonu/lokalizacji/ekranu.
- Czy Node jest online z oczekiwanymi możliwościami.
- Przyznania uprawnień systemu operacyjnego dla kamery/mikrofonu/lokalizacji/ekranu.
- Stanu zatwierdzeń exec i listy dozwolonych.
Typowe sygnatury:
- `NODE_BACKGROUND_UNAVAILABLE` → aplikacja węzła musi być na pierwszym planie.
- `*_PERMISSION_REQUIRED` / `LOCATION_PERMISSION_REQUIRED` → brakuje uprawnienia systemowego.
- `SYSTEM_RUN_DENIED: approval required` → oczekuje zatwierdzenie exec.
- `SYSTEM_RUN_DENIED: allowlist miss` → polecenie zablokowane przez listę dozwolonych.
- `NODE_BACKGROUND_UNAVAILABLE` → aplikacja Node musi być na pierwszym planie.
- `*_PERMISSION_REQUIRED` / `LOCATION_PERMISSION_REQUIRED` → brak wymaganego uprawnienia systemu operacyjnego.
- `SYSTEM_RUN_DENIED: approval required` → oczekujące zatwierdzenie exec.
- `SYSTEM_RUN_DENIED: allowlist miss` → polecenie zablokowane przez allowlist.
Powiązane:
@ -364,9 +392,9 @@ Powiązane:
- [/nodes/index](/pl/nodes/index)
- [/tools/exec-approvals](/pl/tools/exec-approvals)
## Narzędzie przeglądarki kończy się błędem
## Narzędzie przeglądarki kończy się niepowodzeniem
Użyj tego, gdy działania narzędzia przeglądarki kończą się błędem, mimo że sam gateway działa prawidłowo.
Użyj tego, gdy działania narzędzia przeglądarki kończą się niepowodzeniem, mimo że sam Gateway działa prawidłowo.
```bash
openclaw browser status
@ -385,23 +413,23 @@ Szukaj:
Typowe sygnatury:
- `unknown command "browser"` lub `unknown command 'browser'`wbudowany plugin przeglądarki jest wykluczony przez `plugins.allow`.
- brak / niedostępność narzędzia przeglądarki przy `browser.enabled=true``plugins.allow` wyklucza `browser`, więc plugin nigdy się nie załadował.
- `Failed to start Chrome CDP on port` → proces przeglądarki nie uruchomił się.
- `unknown command "browser"` lub `unknown command 'browser'`dołączony Plugin przeglądarki jest wykluczony przez `plugins.allow`.
- brak/niedostępność narzędzia przeglądarki przy `browser.enabled=true``plugins.allow` wyklucza `browser`, więc Plugin nigdy się nie załadował.
- `Failed to start Chrome CDP on port`nie udało się uruchomić procesu przeglądarki.
- `browser.executablePath not found` → skonfigurowana ścieżka jest nieprawidłowa.
- `browser.cdpUrl must be http(s) or ws(s)` → skonfigurowany URL CDP używa nieobsługiwanego schematu, takiego jak `file:` lub `ftp:`.
- `browser.cdpUrl has invalid port` → skonfigurowany URL CDP ma nieprawidłowy port lub port spoza zakresu.
- `No Chrome tabs found for profile="user"` → profil podłączenia Chrome MCP nie ma otwartych lokalnych kart Chrome.
- `Remote CDP for profile "<name>" is not reachable` → skonfigurowany zdalny endpoint CDP nie jest osiągalny z hosta gateway.
- `Browser attachOnly is enabled ... not reachable` lub `Browser attachOnly is enabled and CDP websocket ... is not reachable` → profil tylko-dołączenia nie ma osiągalnego celu albo endpoint HTTP odpowiedział, ale nadal nie udało się otworzyć WebSocket CDP.
- `Playwright is not available in this gateway build; '<feature>' is unsupported.` → bieżąca instalacja gateway nie zawiera pełnego pakietu Playwright; migawki ARIA i podstawowe zrzuty ekranu strony nadal mogą działać, ale nawigacja, migawki AI, zrzuty ekranu elementów według selektorów CSS i eksport PDF pozostają niedostępne.
- `fullPage is not supported for element screenshots` → żądanie zrzutu ekranu łączy `--full-page` z `--ref` lub `--element`.
- `element screenshots are not supported for existing-session profiles; use ref from snapshot.` → wywołania zrzutów ekranu Chrome MCP / `existing-session` muszą używać przechwycenia strony albo `--ref` z migawki, a nie CSS `--element`.
- `existing-session file uploads do not support element selectors; use ref/inputRef.` → hooki przesyłania plików Chrome MCP wymagają odwołań do migawki, a nie selektorów CSS.
- `existing-session file uploads currently support one file at a time.`dla profili Chrome MCP wysyłaj jeden upload na wywołanie.
- `existing-session dialog handling does not support timeoutMs.` → hooki dialogów w profilach Chrome MCP nie obsługują nadpisania timeout.
- `browser.cdpUrl has invalid port` → skonfigurowany URL CDP ma nieprawidłowy port albo port spoza zakresu.
- `No Chrome tabs found for profile="user"` → profil dołączania Chrome MCP nie ma otwartych lokalnych kart Chrome.
- `Remote CDP for profile "<name>" is not reachable` → skonfigurowany zdalny endpoint CDP nie jest osiągalny z hosta Gateway.
- `Browser attachOnly is enabled ... not reachable` lub `Browser attachOnly is enabled and CDP websocket ... is not reachable` → profil wyłącznie dołączany nie ma osiągalnego celu albo endpoint HTTP odpowiedział, ale nadal nie udało się otworzyć WebSocket CDP.
- `Playwright is not available in this gateway build; '<feature>' is unsupported.` → bieżąca instalacja Gateway nie ma pełnego pakietu Playwright; snapshoty ARIA i podstawowe zrzuty ekranu stron nadal mogą działać, ale nawigacja, snapshoty AI, zrzuty ekranu elementów według selektora CSS oraz eksport PDF pozostają niedostępne.
- `fullPage is not supported for element screenshots` → żądanie zrzutu ekranu łączyło `--full-page` z `--ref` lub `--element`.
- `element screenshots are not supported for existing-session profiles; use ref from snapshot.` → wywołania zrzutów ekranu Chrome MCP / `existing-session` muszą używać przechwytywania strony albo `--ref` ze snapshotu, a nie CSS `--element`.
- `existing-session file uploads do not support element selectors; use ref/inputRef.` → hooki przesyłania plików Chrome MCP wymagają referencji snapshotu, a nie selektorów CSS.
- `existing-session file uploads currently support one file at a time.`w profilach Chrome MCP wysyłaj jedno przesłanie na jedno wywołanie.
- `existing-session dialog handling does not support timeoutMs.` → hooki okien dialogowych w profilach Chrome MCP nie obsługują nadpisania limitu czasu.
- `response body is not supported for existing-session profiles yet.``responsebody` nadal wymaga zarządzanej przeglądarki albo surowego profilu CDP.
- nieaktualne nadpisania viewport / dark-mode / locale / offline w profilach tylko-dołączenia lub zdalnych CDP → uruchom `openclaw browser stop --browser-profile <name>`, aby zamknąć aktywną sesję sterowania i zwolnić stan emulacji Playwright/CDP bez restartowania całego gateway.
- nieaktualne nadpisania viewport/dark-mode/locale/offline w profilach wyłącznie dołączanych albo zdalnych CDP → uruchom `openclaw browser stop --browser-profile <name>`, aby zamknąć aktywną sesję sterowania i zwolnić stan emulacji Playwright/CDP bez ponownego uruchamiania całego Gateway.
Powiązane:
@ -410,9 +438,9 @@ Powiązane:
## Jeśli po aktualizacji coś nagle przestało działać
Większość problemów po aktualizacji wynika z rozjazdu konfiguracji albo z bardziej rygorystycznie egzekwowanych ustawień domyślnych.
Większość problemów po aktualizacji to rozjazd konfiguracji albo bardziej rygorystyczne domyślne ustawienia, które są teraz egzekwowane.
### 1) Zmieniło się zachowanie auth i nadpisywania URL
### 1) Zmieniło się zachowanie uwierzytelniania i nadpisywania URL
```bash
openclaw gateway status
@ -423,15 +451,15 @@ openclaw config get gateway.auth.mode
Co sprawdzić:
- Jeśli `gateway.mode=remote`, wywołania CLI mogą kierować ruch do zdalnego celu, mimo że lokalna usługa działa prawidłowo.
- Jawne wywołania `--url` nie wracają do zapisanych poświadczeń.
- Jeśli `gateway.mode=remote`, wywołania CLI mogą kierować ruch do zdalnego celu, podczas gdy lokalna usługa działa poprawnie.
- Jawne wywołania `--url` nie przełączają się awaryjnie na zapisane poświadczenia.
Typowe sygnatury:
- `gateway connect failed:` → nieprawidłowy docelowy URL.
- `unauthorized` → endpoint jest osiągalny, ale auth jest nieprawidłowe.
- `unauthorized` → endpoint jest osiągalny, ale uwierzytelnianie jest nieprawidłowe.
### 2) Reguły bind i auth są bardziej rygorystyczne
### 2) Ograniczenia bind i auth są bardziej rygorystyczne
```bash
openclaw config get gateway.bind
@ -443,13 +471,13 @@ openclaw logs --follow
Co sprawdzić:
- Powiązania inne niż loopback (`lan`, `tailnet`, `custom`) wymagają prawidłowej ścieżki gateway auth: współdzielonego uwierzytelniania tokenem/hasłem albo poprawnie skonfigurowanego wdrożenia `trusted-proxy` innego niż loopback.
- Dowiązania inne niż loopback (`lan`, `tailnet`, `custom`) wymagają prawidłowej ścieżki uwierzytelniania Gateway: współdzielonego tokenu/hasła albo poprawnie skonfigurowanego wdrożenia `trusted-proxy` poza loopback.
- Starsze klucze, takie jak `gateway.token`, nie zastępują `gateway.auth.token`.
Typowe sygnatury:
- `refusing to bind gateway ... without auth`powiązanie inne niż loopback bez prawidłowej ścieżki gateway auth.
- `RPC probe: failed` przy działającym runtime → gateway działa, ale jest niedostępny przy bieżącym auth/url.
- `refusing to bind gateway ... without auth`dowiązanie inne niż loopback bez prawidłowej ścieżki uwierzytelniania Gateway.
- `Connectivity probe: failed` przy działającym runtime → Gateway działa, ale jest niedostępny przy bieżącym auth/url.
### 3) Zmienił się stan parowania i tożsamości urządzenia
@ -463,14 +491,14 @@ openclaw doctor
Co sprawdzić:
- Oczekujące zatwierdzenia urządzeń dla dashboard/nodes.
- Oczekujące zatwierdzenia parowania DM po zmianach polityki lub tożsamości.
- Oczekujące zatwierdzenia parowania DM po zmianach polityki albo tożsamości.
Typowe sygnatury:
- `device identity required` → uwierzytelnianie urządzenia nie zostało spełnione.
- `pairing required` → nadawca/urządzenie musi zostać zatwierdzone.
Jeśli konfiguracja usługi i runtime nadal się nie zgadzają po tych kontrolach, ponownie zainstaluj metadane usługi z tego samego katalogu profile/state:
Jeśli po tych kontrolach konfiguracja usługi i runtime nadal się różnią, ponownie zainstaluj metadane usługi z tego samego katalogu profilu/stanu:
```bash
openclaw gateway install --force

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +1,25 @@
---
read_when:
- OpenClaw nie działa i potrzebujesz najszybszej drogi do rozwiązania problemu
- Chcesz przejść przez proces wstępnej diagnostyki, zanim zagłębisz się w szczegółowe instrukcje postępowania
summary: Hub rozwiązywania problemów dla OpenClaw według objawów
- Potrzebujesz procesu triage, zanim przejdziesz do szczegółowych instrukcji operacyjnych
summary: Centrum rozwiązywania problemów OpenClaw oparte na objawach
title: Ogólne rozwiązywanie problemów
x-i18n:
generated_at: "2026-04-11T02:45:34Z"
generated_at: "2026-04-20T09:59:13Z"
model: gpt-5.4
provider: openai
source_hash: 16b38920dbfdc8d4a79bbb5d6fab2c67c9f218a97c36bb4695310d7db9c4614a
source_hash: cc5d8c9f804084985c672c5a003ce866e8142ab99fe81abb7a0d38e22aea4b88
source_path: help/troubleshooting.md
workflow: 15
---
# Rozwiązywanie problemów
Jeśli masz tylko 2 minuty, użyj tej strony jako punktu wejścia do wstępnej diagnostyki.
Jeśli masz tylko 2 minuty, użyj tej strony jako punktu wejścia do triage.
## Pierwsze 60 sekund
Uruchom dokładnie tę sekwencję poleceń, w tej kolejności:
Uruchom dokładnie tę sekwencję poleceń w podanej kolejności:
```bash
openclaw status
@ -31,17 +31,17 @@ openclaw channels status --probe
openclaw logs --follow
```
Prawidłowy wynik w jednym wierszu:
Prawidłowe wyjście w jednym wierszu:
- `openclaw status` → pokazuje skonfigurowane kanały i brak oczywistych błędów uwierzytelniania.
- `openclaw status --all` → pełny raport jest dostępny i nadaje się do udostępnienia.
- `openclaw gateway probe` → oczekiwany cel bramy jest osiągalny (`Reachable: yes`). `RPC: limited - missing scope: operator.read` oznacza ograniczoną diagnostykę, a nie błąd połączenia.
- `openclaw gateway status``Runtime: running` oraz `RPC probe: ok`.
- `openclaw gateway probe` → oczekiwany cel Gateway jest osiągalny (`Reachable: yes`). `Capability: ...` informuje, jaki poziom uwierzytelniania udało się potwierdzić sondą, a `Read probe: limited - missing scope: operator.read` oznacza pogorszoną diagnostykę, a nie błąd połączenia.
- `openclaw gateway status``Runtime: running`, `Connectivity probe: ok` i wiarygodny wiersz `Capability: ...`. Użyj `--require-rpc`, jeśli potrzebujesz także potwierdzenia RPC w zakresie odczytu.
- `openclaw doctor` → brak blokujących błędów konfiguracji/usługi.
- `openclaw channels status --probe` → osiągalna brama zwraca stan transportu na żywo dla każdego konta
- `openclaw channels status --probe` → osiągalny Gateway zwraca aktywny stan transportu dla każdego konta
oraz wyniki sondy/audytu, takie jak `works` lub `audit ok`; jeśli
brama jest nieosiągalna, polecenie przechodzi do podsumowań opartych tylko na konfiguracji.
- `openclaw logs --follow` → stabilna aktywność, bez powtarzających się krytycznych błędów.
Gateway jest nieosiągalny, polecenie przechodzi awaryjnie do podsumowań opartych wyłącznie na konfiguracji.
- `openclaw logs --follow` → stabilna aktywność, brak powtarzających się krytycznych błędów.
## Anthropic long context 429
@ -51,29 +51,29 @@ przejdź do [/gateway/troubleshooting#anthropic-429-extra-usage-required-for-lon
## Lokalny backend zgodny z OpenAI działa bezpośrednio, ale nie działa w OpenClaw
Jeśli lokalny lub hostowany samodzielnie backend `/v1` odpowiada na małe
bezpośrednie sondy `/v1/chat/completions`, ale nie działa przy `openclaw infer model run` lub zwykłych
Jeśli lokalny lub self-hosted backend `/v1` odpowiada na małe bezpośrednie
sondy `/v1/chat/completions`, ale kończy się błędem przy `openclaw infer model run` lub zwykłych
turach agenta:
1. Jeśli błąd wspomina o `messages[].content`, które ma oczekiwać ciągu znaków, ustaw
1. Jeśli błąd wspomina o oczekiwaniu ciągu znaków w `messages[].content`, ustaw
`models.providers.<provider>.models[].compat.requiresStringContent: true`.
2. Jeśli backend nadal nie działa tylko podczas tur agenta OpenClaw, ustaw
2. Jeśli backend nadal kończy się błędem tylko podczas tur agenta OpenClaw, ustaw
`models.providers.<provider>.models[].compat.supportsTools: false` i spróbuj ponownie.
3. Jeśli małe bezpośrednie wywołania nadal działają, ale większe monity OpenClaw powodują awarię
3. Jeśli małe bezpośrednie wywołania nadal działają, ale większe prompty OpenClaw powodują awarię
backendu, potraktuj pozostały problem jako ograniczenie modelu/serwera po stronie upstream i
przejdź do szczegółowej instrukcji:
przejdź dalej do szczegółowej instrukcji operacyjnej:
[/gateway/troubleshooting#local-openai-compatible-backend-passes-direct-probes-but-agent-runs-fail](/pl/gateway/troubleshooting#local-openai-compatible-backend-passes-direct-probes-but-agent-runs-fail)
## Instalacja pluginu kończy się niepowodzeniem z powodu braku rozszerzeń openclaw
## Instalacja Plugin kończy się błędem z brakującym openclaw extensions
Jeśli instalacja kończy się błędem `package.json missing openclaw.extensions`, pakiet pluginu
używa starego formatu, którego OpenClaw już nie akceptuje.
Jeśli instalacja kończy się błędem `package.json missing openclaw.extensions`, pakiet Plugin
używa starej struktury, której OpenClaw już nie akceptuje.
Poprawka w pakiecie pluginu:
Naprawa w pakiecie Plugin:
1. Dodaj `openclaw.extensions` do `package.json`.
2. Skieruj wpisy na zbudowane pliki środowiska uruchomieniowego (zwykle `./dist/index.js`).
3. Opublikuj plugin ponownie i uruchom `openclaw plugins install <package>` jeszcze raz.
2. Skieruj wpisy na zbudowane pliki runtime (zwykle `./dist/index.js`).
3. Opublikuj Plugin ponownie i uruchom `openclaw plugins install <package>` jeszcze raz.
Przykład:
@ -87,27 +87,27 @@ Przykład:
}
```
Dokument referencyjny: [Architektura pluginów](/pl/plugins/architecture)
Odniesienie: [Architektura Plugin](/pl/plugins/architecture)
## Drzewo decyzyjne
## Drzewo decyzji
```mermaid
flowchart TD
A[OpenClaw nie działa] --> B{Co psuje się najpierw}
B --> C[Brak odpowiedzi]
B --> D[Dashboard lub Control UI nie może się połączyć]
B --> E[Brama nie uruchamia się lub usługa nie działa]
B --> F[Kanał się łączy, ale wiadomości nie przepływają]
B --> G[Cron lub heartbeat nie uruchomił się albo nic nie dostarczył]
B --> H[Węzeł jest sparowany, ale camera canvas screen exec nie działa]
B --> I[Narzędzie browser nie działa]
B --> E[Gateway nie uruchamia się lub usługa nie działa]
B --> F[Kanał łączy się, ale wiadomości nie przepływają]
B --> G[Cron lub Heartbeat nie uruchomił się albo nic nie dostarczył]
B --> H[Node jest sparowany, ale camera canvas screen exec kończy się błędem]
B --> I[Narzędzie Browser kończy się błędem]
C --> C1[/Sekcja Brak odpowiedzi/]
D --> D1[/Sekcja Control UI/]
E --> E1[/Sekcja Brama/]
F --> F1[/Sekcja Przepływ kanału/]
G --> G1[/Sekcja Automatyzacja/]
H --> H1[/Sekcja Narzędzia węzła/]
E --> E1[/Sekcja Gateway/]
F --> F1[/Sekcja przepływu kanałów/]
G --> G1[/Sekcja automatyzacji/]
H --> H1[/Sekcja narzędzi Node/]
I --> I1[/Sekcja Browser/]
```
@ -121,18 +121,19 @@ flowchart TD
openclaw logs --follow
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- `Runtime: running`
- `RPC probe: ok`
- Kanał pokazuje połączony transport i, tam gdzie jest to obsługiwane, `works` lub `audit ok` w `channels status --probe`
- Nadawca wydaje się zatwierdzony (albo zasada DM jest otwarta/lista dozwolonych)
- `Connectivity probe: ok`
- `Capability: read-only`, `write-capable` lub `admin-capable`
- Twój kanał pokazuje podłączony transport i, tam gdzie to obsługiwane, `works` lub `audit ok` w `channels status --probe`
- Nadawca jest oznaczony jako zatwierdzony (albo polityka DM jest otwarta/lista dozwolonych)
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `drop guild message (mention required`blokada wzmianki zablokowała wiadomość w Discordzie.
- `pairing request` → nadawca nie jest zatwierdzony i czeka na zatwierdzenie parowania DM.
- `blocked` / `allowlist` w logach kanału → nadawca, pokój lub grupa jest filtrowana.
- `drop guild message (mention required`wymóg wzmianki zablokował wiadomość w Discord.
- `pairing request` → nadawca nie jest zatwierdzony i czeka na zatwierdzenie parowania w DM.
- `blocked` / `allowlist` w logach kanału → nadawca, pokój lub grupa są filtrowane.
Szczegółowe strony:
@ -151,29 +152,30 @@ flowchart TD
openclaw channels status --probe
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- `Dashboard: http://...` jest pokazywane w `openclaw gateway status`
- `RPC probe: ok`
- `Dashboard: http://...` jest pokazane w `openclaw gateway status`
- `Connectivity probe: ok`
- `Capability: read-only`, `write-capable` lub `admin-capable`
- Brak pętli uwierzytelniania w logach
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `device identity required`kontekst HTTP/niezabezpieczony nie może ukończyć uwierzytelniania urządzenia.
- `origin not allowed`przeglądarkowe `Origin` nie jest dozwolone dla
celu bramy Control UI.
- `AUTH_TOKEN_MISMATCH` ze wskazówkami ponowienia (`canRetryWithDeviceToken=true`) → jedna zaufana próba ponowienia z tokenem urządzenia może nastąpić automatycznie.
- To ponowienie z użyciem tokenu z pamięci podręcznej wykorzystuje zapisany wraz ze sparowanym
tokenem urządzenia zestaw zakresów. Wywołujący z jawnym `deviceToken` / jawnymi `scopes` zachowują
zamiast tego żądany zestaw zakresów.
- W asynchronicznej ścieżce Tailscale Serve Control UI nieudane próby dla tego samego
`{scope, ip}` są serializowane, zanim ogranicznik zarejestruje niepowodzenie, więc
drugie równoległe błędne ponowienie może już pokazać `retry later`.
- `device identity required`HTTP/kontekst niezabezpieczony nie może zakończyć uwierzytelniania urządzenia.
- `origin not allowed``Origin` przeglądarki nie jest dozwolony dla
celu Gateway w Control UI.
- `AUTH_TOKEN_MISMATCH` z podpowiedziami ponowienia (`canRetryWithDeviceToken=true`) → automatycznie może zostać wykonana jedna ponowna próba z zaufanym tokenem urządzenia.
- Ta ponowna próba z tokenem z pamięci podręcznej używa tego samego zestawu zakresów zapisanego razem ze sparowanym
tokenem urządzenia. Wywołania z jawnym `deviceToken` / jawnymi `scopes` zachowują zamiast tego
żądany zestaw zakresów.
- W asynchronicznej ścieżce Tailscale Serve dla Control UI nieudane próby dla tego samego
`{scope, ip}` są serializowane, zanim limiter zarejestruje niepowodzenie, więc
druga równoległa błędna próba może już pokazać `retry later`.
- `too many failed authentication attempts (retry later)` z lokalnego
pochodzenia przeglądarki localhost → powtarzające się nieudane próby z tego samego `Origin` są tymczasowo
blokowane; inne pochodzenie localhost używa osobnego przedziału.
- powtarzające się `unauthorized` po tej próbie ponowienia → zły token/hasło, niedopasowany tryb uwierzytelniania lub nieaktualny sparowany token urządzenia.
- `gateway connect failed:` → UI kieruje na zły URL/port lub nieosiągalną bramę.
źródła przeglądarki localhost → powtarzające się błędy z tego samego `Origin` są tymczasowo
blokowane; inne źródło localhost używa osobnego koszyka.
- powtarzające się `unauthorized` po tej ponownej próbie → zły token/hasło, niezgodność trybu uwierzytelniania lub nieaktualny sparowany token urządzenia.
- `gateway connect failed:` → UI wskazuje zły URL/port albo nieosiągalny Gateway.
Szczegółowe strony:
@ -183,7 +185,7 @@ flowchart TD
</Accordion>
<Accordion title="Brama nie uruchamia się lub usługa jest zainstalowana, ale nie działa">
<Accordion title="Gateway nie uruchamia się lub usługa jest zainstalowana, ale nie działa">
```bash
openclaw status
openclaw gateway status
@ -192,16 +194,17 @@ flowchart TD
openclaw channels status --probe
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- `Service: ... (loaded)`
- `Runtime: running`
- `RPC probe: ok`
- `Connectivity probe: ok`
- `Capability: read-only`, `write-capable` lub `admin-capable`
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `Gateway start blocked: set gateway.mode=local` lub `existing config is missing gateway.mode` → tryb bramy to remote albo w pliku konfiguracji brakuje oznaczenia trybu lokalnego i należy to naprawić.
- `refusing to bind gateway ... without auth`powiązanie poza loopback bez prawidłowej ścieżki uwierzytelniania bramy (token/hasło albo zaufany serwer proxy, jeśli skonfigurowano).
- `Gateway start blocked: set gateway.mode=local` lub `existing config is missing gateway.mode` → tryb Gateway jest ustawiony na zdalny albo w pliku konfiguracji brakuje znacznika trybu lokalnego i należy go naprawić.
- `refusing to bind gateway ... without auth`bindowanie poza loopback bez prawidłowej ścieżki uwierzytelniania Gateway (token/hasło lub `trusted-proxy`, jeśli skonfigurowano).
- `another gateway instance is already listening` lub `EADDRINUSE` → port jest już zajęty.
Szczegółowe strony:
@ -212,7 +215,7 @@ flowchart TD
</Accordion>
<Accordion title="Kanał się łączy, ale wiadomości nie przepływają">
<Accordion title="Kanał łączy się, ale wiadomości nie przepływają">
```bash
openclaw status
openclaw gateway status
@ -221,15 +224,15 @@ flowchart TD
openclaw channels status --probe
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- Transport kanału jest połączony.
- Kontrole parowania/listy dozwolonych przechodzą pomyślnie.
- Wzmianki są wykrywane tam, gdzie są wymagane.
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `mention required` → blokada wymagająca wzmianki zablokowała przetwarzanie.
- `mention required` → blokada wymogu wzmianki w grupie zablokowała przetwarzanie.
- `pairing` / `pending` → nadawca DM nie jest jeszcze zatwierdzony.
- `not_in_channel`, `missing_scope`, `Forbidden`, `401/403` → problem z tokenem uprawnień kanału.
@ -240,7 +243,7 @@ flowchart TD
</Accordion>
<Accordion title="Cron lub heartbeat nie uruchomił się albo nic nie dostarczył">
<Accordion title="Cron lub Heartbeat nie uruchomił się albo nic nie dostarczył">
```bash
openclaw status
openclaw gateway status
@ -250,21 +253,21 @@ flowchart TD
openclaw logs --follow
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- `cron.status` pokazuje, że funkcja jest włączona i ma następne wybudzenie.
- `cron.status` pokazuje, że jest włączony i ma następne wybudzenie.
- `cron runs` pokazuje ostatnie wpisy `ok`.
- Heartbeat jest włączony i nie znajduje się poza aktywnymi godzinami.
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `cron: scheduler disabled; jobs will not run automatically`cron jest wyłączony.
- `cron: scheduler disabled; jobs will not run automatically`Cron jest wyłączony.
- `heartbeat skipped` z `reason=quiet-hours` → poza skonfigurowanymi aktywnymi godzinami.
- `heartbeat skipped` z `reason=empty-heartbeat-file``HEARTBEAT.md` istnieje, ale zawiera tylko pusty/nagłówkowy szkielet.
- `heartbeat skipped` z `reason=no-tasks-due` → tryb zadań `HEARTBEAT.md` jest aktywny, ale żaden z interwałów zadań nie jest jeszcze wymagalny.
- `heartbeat skipped` z `reason=alerts-disabled` → cała widoczność heartbeat jest wyłączona (`showOk`, `showAlerts` i `useIndicator` są wyłączone).
- `requests-in-flight` → główna ścieżka jest zajęta; wybudzenie heartbeat zostało odroczone.
- `unknown accountId` → docelowe konto dostarczania heartbeat nie istnieje.
- `heartbeat skipped` z `reason=empty-heartbeat-file``HEARTBEAT.md` istnieje, ale zawiera tylko pustą treść/szkielet nagłówków.
- `heartbeat skipped` z `reason=no-tasks-due` → tryb zadań `HEARTBEAT.md` jest aktywny, ale żaden z interwałów zadań jeszcze nie jest należny.
- `heartbeat skipped` z `reason=alerts-disabled` → cała widoczność Heartbeat jest wyłączona (`showOk`, `showAlerts` i `useIndicator` wszystkie wyłączone).
- `requests-in-flight` → główny tor jest zajęty; wybudzenie Heartbeat zostało odroczone.
- `unknown accountId` → docelowe konto dostarczania Heartbeat nie istnieje.
Szczegółowe strony:
@ -274,7 +277,7 @@ flowchart TD
</Accordion>
<Accordion title="Węzeł jest sparowany, ale narzędzie camera canvas screen exec nie działa">
<Accordion title="Node jest sparowany, ale narzędzie kończy się błędem camera canvas screen exec">
```bash
openclaw status
openclaw gateway status
@ -283,18 +286,18 @@ flowchart TD
openclaw logs --follow
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- Węzeł jest widoczny jako połączony i sparowany dla roli `node`.
- Dla wywoływanego polecenia istnieje odpowiednia zdolność.
- Stan uprawnień dla narzędzia to granted.
- Node jest wymieniony jako połączony i sparowany dla roli `node`.
- Istnieje Capability dla wywoływanego polecenia.
- Stan uprawnień jest przyznany dla narzędzia.
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `NODE_BACKGROUND_UNAVAILABLE` → przenieś aplikację węzła na pierwszy plan.
- `*_PERMISSION_REQUIRED` → uprawnienie systemowe zostało odrzucone lub nie istnieje.
- `NODE_BACKGROUND_UNAVAILABLE` → przenieś aplikację Node na pierwszy plan.
- `*_PERMISSION_REQUIRED` → uprawnienie systemowe zostało odrzucone/brakuje go.
- `SYSTEM_RUN_DENIED: approval required` → zatwierdzenie exec oczekuje.
- `SYSTEM_RUN_DENIED: allowlist miss` → polecenia nie ma na liście dozwolonych exec.
- `SYSTEM_RUN_DENIED: allowlist miss` → polecenia nie ma na liście dozwolonych dla exec.
Szczegółowe strony:
@ -304,7 +307,7 @@ flowchart TD
</Accordion>
<Accordion title="Exec nagle wymaga zatwierdzenia">
<Accordion title="Exec nagle prosi o zatwierdzenie">
```bash
openclaw config get tools.exec.host
openclaw config get tools.exec.security
@ -315,13 +318,13 @@ flowchart TD
Co się zmieniło:
- Jeśli `tools.exec.host` nie jest ustawione, wartością domyślną jest `auto`.
- `host=auto` rozstrzyga na `sandbox`, gdy środowisko sandbox jest aktywne, w przeciwnym razie na `gateway`.
- `host=auto` odpowiada tylko za trasowanie; zachowanie „YOLO” bez pytań wynika z `security=full` oraz `ask=off` na gateway/node.
- W `gateway` i `node` brak ustawienia `tools.exec.security` oznacza domyślnie `full`.
- `host=auto` rozstrzyga się do `sandbox`, gdy aktywne jest środowisko sandbox, w przeciwnym razie do `gateway`.
- `host=auto` dotyczy tylko routingu; zachowanie bez potwierdzeń typu „YOLO” wynika z `security=full` wraz z `ask=off` na gateway/node.
- Dla `gateway` i `node` brak ustawienia `tools.exec.security` oznacza domyślnie `full`.
- Brak ustawienia `tools.exec.ask` oznacza domyślnie `off`.
- Wynik: jeśli widzisz prośby o zatwierdzenie, jakaś lokalna dla hosta lub konkretnej sesji polityka exec została zaostrzona względem bieżących ustawień domyślnych.
- W rezultacie: jeśli widzisz żądania zatwierdzenia, jakaś lokalna dla hosta lub specyficzna dla sesji polityka zaostrzyła reguły exec względem obecnych ustawień domyślnych.
Przywrócenie bieżącego domyślnego zachowania bez zatwierdzania:
Przywróć bieżące domyślne zachowanie bez zatwierdzeń:
```bash
openclaw config set tools.exec.host gateway
@ -332,14 +335,14 @@ flowchart TD
Bezpieczniejsze alternatywy:
- Ustaw tylko `tools.exec.host=gateway`, jeśli chcesz po prostu stabilnego trasowania hosta.
- Ustaw tylko `tools.exec.host=gateway`, jeśli chcesz po prostu stabilnego routingu hosta.
- Użyj `security=allowlist` z `ask=on-miss`, jeśli chcesz exec na hoście, ale nadal chcesz przeglądu przy brakach na liście dozwolonych.
- Włącz tryb sandbox, jeśli chcesz, aby `host=auto` ponownie rozstrzygało do `sandbox`.
- Włącz tryb sandbox, jeśli chcesz, aby `host=auto` ponownie rozstrzygał się do `sandbox`.
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `Approval required.` → polecenie czeka na `/approve ...`.
- `SYSTEM_RUN_DENIED: approval required` → zatwierdzenie exec na hoście węzła oczekuje.
- `SYSTEM_RUN_DENIED: approval required` → zatwierdzenie exec na hoście Node oczekuje.
- `exec host=sandbox requires a sandbox runtime for this session` → niejawny/jawny wybór sandbox, ale tryb sandbox jest wyłączony.
Szczegółowe strony:
@ -350,7 +353,7 @@ flowchart TD
</Accordion>
<Accordion title="Narzędzie browser nie działa">
<Accordion title="Narzędzie Browser kończy się błędem">
```bash
openclaw status
openclaw gateway status
@ -359,22 +362,22 @@ flowchart TD
openclaw doctor
```
Prawidłowy wynik wygląda tak:
Prawidłowe wyjście wygląda tak:
- Status przeglądarki pokazuje `running: true` oraz wybraną przeglądarkę/profil.
- `openclaw` się uruchamia albo `user` widzi lokalne karty Chrome.
- Status Browser pokazuje `running: true` oraz wybraną przeglądarkę/profil.
- `openclaw` uruchamia się albo `user` widzi lokalne karty Chrome.
Typowe sygnatury w logach:
Typowe sygnatury logów:
- `unknown command "browser"` lub `unknown command 'browser'` → ustawiono `plugins.allow` i nie zawiera ono `browser`.
- `Failed to start Chrome CDP on port` → nie udało się uruchomić lokalnej przeglądarki.
- `browser.executablePath not found` → skonfigurowana ścieżka do pliku wykonywalnego jest nieprawidłowa.
- `browser.cdpUrl must be http(s) or ws(s)` → skonfigurowany adres URL CDP używa nieobsługiwanego schematu.
- `browser.cdpUrl has invalid port` → skonfigurowany adres URL CDP ma nieprawidłowy lub spoza zakresu port.
- `No Chrome tabs found for profile="user"` → profil do dołączania Chrome MCP nie ma otwartych lokalnych kart Chrome.
- `Remote CDP for profile "<name>" is not reachable` → skonfigurowany zdalny punkt końcowy CDP nie jest osiągalny z tego hosta.
- `Browser attachOnly is enabled ... not reachable` lub `Browser attachOnly is enabled and CDP websocket ... is not reachable` → profil tylko-dołączania nie ma aktywnego celu CDP.
- nieaktualne nadpisania viewport / trybu ciemnego / ustawień regionalnych / trybu offline w profilach tylko-dołączania lub zdalnego CDP → uruchom `openclaw browser stop --browser-profile <name>`, aby zamknąć aktywną sesję sterowania i zwolnić stan emulacji bez restartowania bramy.
- `browser.executablePath not found` → skonfigurowana ścieżka do binarki jest nieprawidłowa.
- `browser.cdpUrl must be http(s) or ws(s)` → skonfigurowany URL CDP używa nieobsługiwanego schematu.
- `browser.cdpUrl has invalid port` → skonfigurowany URL CDP ma nieprawidłowy lub spoza zakresu port.
- `No Chrome tabs found for profile="user"` → profil podłączania Chrome MCP nie ma otwartych lokalnych kart Chrome.
- `Remote CDP for profile "<name>" is not reachable` → skonfigurowany zdalny endpoint CDP jest nieosiągalny z tego hosta.
- `Browser attachOnly is enabled ... not reachable` lub `Browser attachOnly is enabled and CDP websocket ... is not reachable` → profil tylko do podłączenia nie ma aktywnego celu CDP.
- nieaktualne nadpisania viewport / dark-mode / locale / offline na profilach tylko do podłączenia lub zdalnych CDP → uruchom `openclaw browser stop --browser-profile <name>`, aby zamknąć aktywną sesję sterowania i zwolnić stan emulacji bez restartowania Gateway.
Szczegółowe strony:
@ -390,7 +393,7 @@ flowchart TD
## Powiązane
- [FAQ](/pl/help/faq) — często zadawane pytania
- [Rozwiązywanie problemów z bramą](/pl/gateway/troubleshooting) — problemy specyficzne dla bramy
- [Doctor](/pl/gateway/doctor) — automatyczne kontrole kondycji i naprawy
- [Rozwiązywanie problemów z kanałami](/pl/channels/troubleshooting) — problemy z łącznością kanałów
- [Rozwiązywanie problemów z automatyzacją](/pl/automation/cron-jobs#troubleshooting) — problemy z cronem i heartbeat
- [Gateway Troubleshooting](/pl/gateway/troubleshooting) — problemy specyficzne dla Gateway
- [Doctor](/pl/gateway/doctor) — zautomatyzowane kontrole kondycji i naprawy
- [Channel Troubleshooting](/pl/channels/troubleshooting) — problemy z łącznością kanałów
- [Automation Troubleshooting](/pl/automation/cron-jobs#troubleshooting) — problemy z Cron i Heartbeat

File diff suppressed because it is too large Load Diff