chore(i18n): refresh pl translations
This commit is contained in:
parent
91b4e5a5cc
commit
495ff00380
@ -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
@ -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)
|
||||
|
||||
@ -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ępniać
|
||||
Ta ścieżka celuje w jedną rzeczywistą prywatną grupę Telegram zamiast provisionować
|
||||
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
@ -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).
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
1768
docs/pl/help/faq.md
1768
docs/pl/help/faq.md
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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` są 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
Loading…
Reference in New Issue
Block a user