diff --git a/docs/pl/gateway/local-models.md b/docs/pl/gateway/local-models.md index ca3c68f65..3295d1878 100644 --- a/docs/pl/gateway/local-models.md +++ b/docs/pl/gateway/local-models.md @@ -3,26 +3,26 @@ read_when: - Chcesz udostępniać modele z własnej maszyny z GPU - Konfigurujesz LM Studio lub proxy zgodne z OpenAI - Potrzebujesz najbezpieczniejszych wskazówek dotyczących modeli lokalnych -summary: Uruchom OpenClaw na lokalnych LLM-ach (LM Studio, vLLM, LiteLLM, niestandardowe endpointy OpenAI) +summary: Uruchamiaj OpenClaw na lokalnych LLM-ach (LM Studio, vLLM, LiteLLM, niestandardowe endpointy OpenAI) title: Modele lokalne x-i18n: - generated_at: "2026-04-13T08:50:43Z" + generated_at: "2026-04-14T09:50:55Z" model: gpt-5.4 provider: openai - source_hash: 3ecb61b3e6e34d3666f9b688cd694d92c5fb211cf8c420fa876f7ccf5789154a + source_hash: 1544c522357ba4b18dfa6d05ea8d60c7c6262281b53863d9aee7002464703ca7 source_path: gateway/local-models.md workflow: 15 --- # Modele lokalne -Środowisko lokalne jest wykonalne, ale OpenClaw oczekuje dużego kontekstu + silnej ochrony przed prompt injection. Małe karty obcinają kontekst i osłabiają bezpieczeństwo. Celuj wysoko: **≥2 w pełni wyposażone Mac Studio lub równoważny zestaw GPU (~30 tys. USD+)**. Pojedynczy procesor graficzny **24 GB** działa tylko przy lżejszych promptach i z większym opóźnieniem. Używaj **największego / pełnowymiarowego wariantu modelu, jaki możesz uruchomić**; agresywnie kwantyzowane lub „małe” checkpointy zwiększają ryzyko prompt injection (zobacz [Bezpieczeństwo](/pl/gateway/security)). +Lokalnie da się to zrobić, ale OpenClaw oczekuje dużego kontekstu + silnych zabezpieczeń przed prompt injection. Małe karty obcinają kontekst i osłabiają bezpieczeństwo. Celuj wysoko: **≥2 w pełni wyposażone Mac Studio lub równoważny zestaw GPU (~30 tys. USD+)**. Pojedyncze GPU **24 GB** działa tylko przy lżejszych promptach i z większymi opóźnieniami. Używaj **największego / pełnowymiarowego wariantu modelu, jaki jesteś w stanie uruchomić**; agresywnie kwantyzowane lub „małe” checkpointy zwiększają ryzyko prompt injection (zobacz [Bezpieczeństwo](/pl/gateway/security)). -Jeśli chcesz uzyskać lokalną konfigurację z najmniejszym tarciem, zacznij od [LM Studio](/pl/providers/lmstudio) lub [Ollama](/pl/providers/ollama) i `openclaw onboard`. Ta strona to praktyczny przewodnik dla bardziej zaawansowanych lokalnych stosów oraz niestandardowych lokalnych serwerów zgodnych z OpenAI. +Jeśli chcesz najprostszej konfiguracji lokalnej, zacznij od [LM Studio](/pl/providers/lmstudio) lub [Ollama](/pl/providers/ollama) i `openclaw onboard`. Ta strona to praktyczny przewodnik po bardziej zaawansowanych stosach lokalnych i niestandardowych lokalnych serwerach zgodnych z OpenAI. ## Zalecane: LM Studio + duży model lokalny (Responses API) -Obecnie najlepszy lokalny stos. Załaduj duży model w LM Studio (na przykład pełnowymiarową kompilację Qwen, DeepSeek lub Llama), włącz lokalny serwer (domyślnie `http://127.0.0.1:1234`), a następnie użyj Responses API, aby oddzielić rozumowanie od końcowego tekstu. +Obecnie najlepszy lokalny stos. Załaduj duży model w LM Studio (na przykład pełnowymiarową wersję Qwen, DeepSeek lub Llama), włącz serwer lokalny (domyślnie `http://127.0.0.1:1234`), i użyj Responses API, aby oddzielić rozumowanie od końcowego tekstu. ```json5 { @@ -62,13 +62,13 @@ Obecnie najlepszy lokalny stos. Załaduj duży model w LM Studio (na przykład p **Lista kontrolna konfiguracji** - Zainstaluj LM Studio: [https://lmstudio.ai](https://lmstudio.ai) -- W LM Studio pobierz **największą dostępną kompilację modelu** (unikaj wariantów „small” / mocno kwantyzowanych), uruchom serwer i potwierdź, że `http://127.0.0.1:1234/v1/models` go wyświetla. +- W LM Studio pobierz **największą dostępną wersję modelu** (unikaj wariantów „small” / mocno kwantyzowanych), uruchom serwer i potwierdź, że `http://127.0.0.1:1234/v1/models` go wyświetla. - Zastąp `my-local-model` rzeczywistym identyfikatorem modelu widocznym w LM Studio. -- Utrzymuj model załadowany; zimne ładowanie zwiększa opóźnienie uruchamiania. -- Dostosuj `contextWindow`/`maxTokens`, jeśli Twoja kompilacja LM Studio różni się od tej przykładowej. +- Utrzymuj model załadowany; zimne ładowanie zwiększa opóźnienie startu. +- Dostosuj `contextWindow` / `maxTokens`, jeśli Twoja wersja LM Studio różni się od tej tutaj. - W przypadku WhatsApp trzymaj się Responses API, aby wysyłany był tylko końcowy tekst. -Utrzymuj skonfigurowane także modele hostowane, nawet jeśli działasz lokalnie; używaj `models.mode: "merge"`, aby fallbacki pozostawały dostępne. +Zachowaj też konfigurację modeli hostowanych, nawet jeśli działasz lokalnie; użyj `models.mode: "merge"`, aby fallbacki pozostały dostępne. ### Konfiguracja hybrydowa: hostowany model główny, lokalny fallback @@ -111,18 +111,18 @@ Utrzymuj skonfigurowane także modele hostowane, nawet jeśli działasz lokalnie } ``` -### Najpierw lokalnie, z hostowaną siatką bezpieczeństwa +### Podejście local-first z hostowaną siatką bezpieczeństwa -Zamień kolejność modelu głównego i fallbacku; pozostaw ten sam blok providers oraz `models.mode: "merge"`, aby w razie awarii lokalnej maszyny można było przełączyć się na Sonnet lub Opus. +Zamień miejscami kolejność modelu głównego i fallbacków; zachowaj ten sam blok providerów oraz `models.mode: "merge"`, aby móc przełączyć się na Sonnet lub Opus, gdy lokalna maszyna będzie niedostępna. -### Hosting regionalny / routing danych +### Hosting regionalny / trasowanie danych -- Hostowane warianty MiniMax/Kimi/GLM są także dostępne w OpenRouter z endpointami przypisanymi do regionu (np. hostowane w USA). Wybierz tam wariant regionalny, aby utrzymać ruch w wybranej jurysdykcji, nadal używając `models.mode: "merge"` dla fallbacków Anthropic/OpenAI. -- Tryb wyłącznie lokalny pozostaje najmocniejszą ścieżką prywatności; hostowany routing regionalny to rozwiązanie pośrednie, gdy potrzebujesz funkcji dostawcy, ale chcesz zachować kontrolę nad przepływem danych. +- Hostowane warianty MiniMax / Kimi / GLM są też dostępne w OpenRouter z endpointami przypiętymi do regionu (np. hostowanymi w USA). Wybierz tam wariant regionalny, aby utrzymać ruch w wybranej jurysdykcji, jednocześnie nadal używając `models.mode: "merge"` dla fallbacków Anthropic / OpenAI. +- Podejście wyłącznie lokalne pozostaje najlepszą ścieżką prywatności; hostowane trasowanie regionalne to rozwiązanie pośrednie, gdy potrzebujesz funkcji dostawcy, ale chcesz zachować kontrolę nad przepływem danych. ## Inne lokalne proxy zgodne z OpenAI -vLLM, LiteLLM, OAI-proxy lub niestandardowe Gateway działają, jeśli udostępniają endpoint `/v1` w stylu OpenAI. Zastąp powyższy blok provider własnym endpointem i identyfikatorem modelu: +vLLM, LiteLLM, OAI-proxy lub niestandardowe Gateway działają, jeśli udostępniają endpoint `/v1` w stylu OpenAI. Zastąp powyższy blok providera swoim endpointem i identyfikatorem modelu: ```json5 { @@ -150,43 +150,42 @@ vLLM, LiteLLM, OAI-proxy lub niestandardowe Gateway działają, jeśli udostępn } ``` -Utrzymuj `models.mode: "merge"`, aby hostowane modele nadal były dostępne jako fallbacki. +Zachowaj `models.mode: "merge"`, aby hostowane modele nadal były dostępne jako fallbacki. -Uwaga dotycząca działania lokalnych / proxy backendów `/v1`: +Uwaga dotycząca działania backendów lokalnych / proxowanych `/v1`: -- OpenClaw traktuje je jako trasy proxy zgodne z OpenAI, a nie natywne - endpointy OpenAI -- natywne formatowanie żądań przeznaczone wyłącznie dla OpenAI nie ma tu - zastosowania: brak `service_tier`, brak `store` dla Responses, brak - formatowania ładunku zgodności rozumowania OpenAI i brak wskazówek - dotyczących cache promptów +- OpenClaw traktuje je jako trasy zgodne z OpenAI w stylu proxy, a nie natywne endpointy OpenAI +- natywne formatowanie żądań przeznaczone wyłącznie dla OpenAI nie ma tu zastosowania: brak + `service_tier`, brak `store` w Responses, brak formatowania payloadu zgodności rozumowania OpenAI + i brak wskazówek dotyczących pamięci podręcznej promptów - ukryte nagłówki atrybucji OpenClaw (`originator`, `version`, `User-Agent`) nie są wstrzykiwane do tych niestandardowych URL-i proxy -Uwagi o zgodności dla bardziej restrykcyjnych backendów zgodnych z OpenAI: +Uwagi dotyczące zgodności z bardziej restrykcyjnymi backendami zgodnymi z OpenAI: -- Niektóre serwery akceptują w Chat Completions tylko ciąg znaków w `messages[].content`, a nie +- Niektóre serwery akceptują tylko ciąg znaków w `messages[].content` dla Chat Completions, a nie ustrukturyzowane tablice części treści. Ustaw `models.providers..models[].compat.requiresStringContent: true` dla takich endpointów. - Niektóre mniejsze lub bardziej restrykcyjne lokalne backendy są niestabilne przy pełnym - kształcie promptu środowiska uruchomieniowego agenta OpenClaw, zwłaszcza gdy dołączone są - schematy narzędzi. Jeśli backend działa dla małych bezpośrednich wywołań `/v1/chat/completions`, - ale zawodzi przy normalnych turach agenta OpenClaw, najpierw spróbuj + kształcie promptu środowiska uruchomieniowego agenta OpenClaw, zwłaszcza gdy dołączone są schematy narzędzi. Jeśli + backend działa dla małych bezpośrednich wywołań `/v1/chat/completions`, ale zawodzi przy zwykłych + turach agenta OpenClaw, najpierw spróbuj `models.providers..models[].compat.supportsTools: false`. - Jeśli backend nadal zawodzi tylko przy większych uruchomieniach OpenClaw, pozostały problem - zwykle leży po stronie pojemności modelu/serwera albo błędu backendu, a nie warstwy + zwykle leży po stronie pojemności modelu / serwera albo błędu backendu, a nie warstwy transportowej OpenClaw. ## Rozwiązywanie problemów - Gateway może połączyć się z proxy? `curl http://127.0.0.1:1234/v1/models`. - Model LM Studio został wyładowany? Załaduj go ponownie; zimny start to częsta przyczyna „zawieszania się”. -- Błędy kontekstu? Zmniejsz `contextWindow` lub zwiększ limit serwera. +- OpenClaw ostrzega, gdy wykryte okno kontekstu jest mniejsze niż **32k**, i blokuje działanie poniżej **16k**. Jeśli trafisz na ten preflight, zwiększ limit kontekstu serwera / modelu albo wybierz większy model. +- Błędy kontekstu? Zmniejsz `contextWindow` albo zwiększ limit serwera. - Serwer zgodny z OpenAI zwraca `messages[].content ... expected a string`? - Dodaj `compat.requiresStringContent: true` do tego wpisu modelu. -- Małe bezpośrednie wywołania `/v1/chat/completions` działają, ale `openclaw infer model run` + Dodaj `compat.requiresStringContent: true` do wpisu tego modelu. +- Bezpośrednie małe wywołania `/v1/chat/completions` działają, ale `openclaw infer model run` zawodzi na Gemma lub innym modelu lokalnym? Najpierw wyłącz schematy narzędzi przez - `compat.supportsTools: false`, a następnie przetestuj ponownie. Jeśli serwer nadal ulega awarii tylko - przy większych promptach OpenClaw, traktuj to jako ograniczenie modelu/serwera po stronie upstream. -- Bezpieczeństwo: modele lokalne pomijają filtry po stronie dostawcy; utrzymuj wąski zakres działania agentów i włączoną Compaction, aby ograniczyć promień rażenia prompt injection. + `compat.supportsTools: false`, a potem przetestuj ponownie. Jeśli serwer nadal zawiesza się tylko + przy większych promptach OpenClaw, traktuj to jako ograniczenie modelu / serwera po stronie upstream. +- Bezpieczeństwo: modele lokalne pomijają filtry po stronie dostawcy; ograniczaj zakres agentów i pozostaw Compaction włączone, aby zmniejszyć skutki prompt injection. diff --git a/docs/pl/reference/RELEASING.md b/docs/pl/reference/RELEASING.md index 917b0cd08..d3ddddcdc 100644 --- a/docs/pl/reference/RELEASING.md +++ b/docs/pl/reference/RELEASING.md @@ -1,184 +1,144 @@ --- read_when: - Szukasz definicji publicznych kanałów wydań - - Szukasz nazewnictwa wersji i harmonogramu cyklu wydań -summary: Publiczne kanały wydań, nazewnictwo wersji i harmonogram cyklu wydań + - Szukasz nazewnictwa wersji i harmonogramu wydań +summary: Publiczne kanały wydań, nazewnictwo wersji i harmonogram wydawniczy title: Zasady wydań x-i18n: - generated_at: "2026-04-14T02:08:50Z" + generated_at: "2026-04-14T09:50:55Z" model: gpt-5.4 provider: openai - source_hash: fdc32839447205d74ba7a20a45fbac8e13b199174b442a1e260e3fce056c63da + source_hash: 3eaf9f1786b8c9fd4f5a9c657b623cb69d1a485958e1a9b8f108511839b63587 source_path: reference/RELEASING.md workflow: 15 --- # Zasady wydań -OpenClaw ma trzy publiczne ścieżki wydań: +OpenClaw ma trzy publiczne kanały wydań: -- stable: oznaczone tagami wydania, które domyślnie publikują do npm `beta`, albo do npm `latest`, gdy zostanie to wyraźnie wskazane -- beta: tagi wydań przedpremierowych publikowane do npm `beta` -- dev: bieżący stan gałęzi `main` +- stable: tagowane wydania, które domyślnie publikują do npm `beta`, albo do npm `latest`, gdy zostanie to wyraźnie wskazane +- beta: tagi wydań przedpremierowych, które publikują do npm `beta` +- dev: ruchoma głowa gałęzi `main` ## Nazewnictwo wersji - Wersja wydania stable: `YYYY.M.D` - Tag Git: `vYYYY.M.D` -- Wersja wydania poprawkowego stable: `YYYY.M.D-N` +- Wersja poprawkowego wydania stable: `YYYY.M.D-N` - Tag Git: `vYYYY.M.D-N` -- Wersja przedpremierowa beta: `YYYY.M.D-beta.N` +- Wersja wydania przedpremierowego beta: `YYYY.M.D-beta.N` - Tag Git: `vYYYY.M.D-beta.N` - Nie dodawaj zer wiodących do miesiąca ani dnia - `latest` oznacza aktualne promowane stabilne wydanie npm -- `beta` oznacza aktualny docelowy kanał instalacji beta -- Wydania stable i poprawkowe stable domyślnie publikują do npm `beta`; operatorzy wydań mogą jawnie wskazać `latest` albo później promować zweryfikowaną kompilację beta +- `beta` oznacza aktualny cel instalacji beta +- Wydania stable i poprawkowe wydania stable domyślnie publikują do npm `beta`; operatorzy wydań mogą jawnie wskazać `latest` albo później promować zweryfikowaną kompilację beta - Każde wydanie OpenClaw obejmuje jednocześnie pakiet npm i aplikację macOS -## Częstotliwość wydań +## Harmonogram wydań - Wydania przechodzą najpierw przez beta -- Stable następuje dopiero po zweryfikowaniu najnowszej wersji beta -- Szczegółowa procedura wydań, akceptacje, poświadczenia i informacje o odzyskiwaniu są - dostępne wyłącznie dla maintainerów +- Stable pojawia się dopiero po zweryfikowaniu najnowszej bety +- Szczegółowa procedura wydania, zatwierdzenia, poświadczenia i uwagi dotyczące odzyskiwania są przeznaczone wyłącznie dla maintainerów ## Kontrola przed wydaniem -- Uruchom `pnpm build && pnpm ui:build` przed `pnpm release:check`, aby oczekiwane - artefakty wydania `dist/*` i pakiet interfejsu Control UI istniały na potrzeby - kroku walidacji pakietu -- Uruchamiaj `pnpm release:check` przed każdym oznaczonym tagiem wydaniu -- Kontrole wydań są teraz uruchamiane w osobnym ręcznym workflow: +- Uruchom `pnpm build && pnpm ui:build` przed `pnpm release:check`, aby oczekiwane artefakty wydania `dist/*` oraz pakiet Control UI istniały na potrzeby kroku walidacji pakietu +- Uruchom `pnpm release:check` przed każdym tagowanym wydaniem +- Kontrole wydania są teraz uruchamiane w osobnym ręcznym workflow: `OpenClaw Release Checks` -- Ten podział jest celowy: pozwala utrzymać właściwą ścieżkę wydania npm krótką, - deterministyczną i skoncentrowaną na artefaktach, podczas gdy wolniejsze testy live działają - we własnej ścieżce, aby nie opóźniać ani nie blokować publikacji -- Kontrole wydań muszą być uruchamiane z referencji workflow `main`, aby - logika workflow i sekrety pozostawały kanoniczne -- Ten workflow akceptuje istniejący tag wydania albo aktualny pełny - 40-znakowy SHA commita `main` -- W trybie SHA commita akceptowany jest tylko aktualny HEAD `origin/main`; dla - starszych commitów wydań użyj tagu wydania -- Walidacyjny preflight `OpenClaw NPM Release` również akceptuje aktualny pełny - 40-znakowy SHA commita `main` bez wymogu wypchniętego tagu -- Ta ścieżka SHA służy tylko do walidacji i nie może zostać promowana do rzeczywistej publikacji -- W trybie SHA workflow syntetyzuje `v` wyłącznie na potrzeby - sprawdzenia metadanych pakietu; rzeczywista publikacja nadal wymaga prawdziwego tagu wydania -- Oba workflow pozostawiają właściwą ścieżkę publikacji i promocji na runnerach - hostowanych przez GitHub, natomiast niemutująca ścieżka walidacji może używać większych - runnerów Blacksmith Linux +- Ten podział jest celowy: rzeczywista ścieżka wydania npm ma pozostać krótka, deterministyczna i skoncentrowana na artefaktach, podczas gdy wolniejsze testy live mają pozostać w osobnym kanale, aby nie opóźniały ani nie blokowały publikacji +- Kontrole wydania muszą być uruchamiane z referencji workflow `main`, aby logika workflow i sekrety pozostały kanoniczne +- Ten workflow akceptuje istniejący tag wydania albo bieżący pełny 40-znakowy SHA commita `main` +- W trybie commit-SHA akceptowany jest tylko bieżący HEAD `origin/main`; dla starszych commitów wydania użyj tagu wydania +- Walidacyjny preflight `OpenClaw NPM Release` również akceptuje bieżący pełny 40-znakowy SHA commita `main` bez wymagania wypchniętego tagu +- Ścieżka SHA jest tylko walidacyjna i nie może zostać promowana do rzeczywistej publikacji +- W trybie SHA workflow syntetyzuje `v` wyłącznie na potrzeby sprawdzenia metadanych pakietu; rzeczywista publikacja nadal wymaga prawdziwego tagu wydania +- Oba workflow utrzymują rzeczywistą ścieżkę publikacji i promocji na runnerach hostowanych przez GitHub, podczas gdy niemutująca ścieżka walidacji może używać większych runnerów Blacksmith Linux - Ten workflow uruchamia `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cache` z użyciem sekretów workflow `OPENAI_API_KEY` i `ANTHROPIC_API_KEY` -- Preflight wydania npm nie czeka już na oddzielną ścieżkę kontroli wydań -- Przed akceptacją uruchom `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts` +- Preflight wydania npm nie czeka już na osobny kanał kontroli wydania +- Przed zatwierdzeniem uruchom `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts` (albo odpowiadający tag beta/poprawkowy) - Po publikacji do npm uruchom `node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D` - (albo odpowiadającą wersję beta/poprawkową), aby zweryfikować opublikowaną ścieżkę - instalacji z rejestru w nowym tymczasowym prefiksie + (albo odpowiadającą wersję beta/poprawkową), aby zweryfikować opublikowaną ścieżkę instalacji z rejestru w świeżym tymczasowym prefiksie - Automatyzacja wydań maintainerów używa teraz modelu preflight-then-promote: - - rzeczywista publikacja npm musi przejść pomyślny `preflight_run_id` npm - - stabilne wydania npm domyślnie trafiają do `beta` - - stabilna publikacja npm może jawnie wskazać `latest` przez input workflow - - promocja stabilnego wydania npm z `beta` do `latest` jest nadal dostępna jako jawny tryb ręczny w zaufanym workflow `OpenClaw NPM Release` - - bezpośrednie stabilne publikacje mogą również uruchamiać jawny tryb synchronizacji dist-tagów, który - ustawia zarówno `latest`, jak i `beta` na już opublikowaną stabilną wersję - - te tryby dist-tag nadal wymagają poprawnego `NPM_TOKEN` w środowisku `npm-release`, ponieważ zarządzanie npm `dist-tag` jest oddzielne od trusted publishing - - publiczny `macOS Release` służy wyłącznie do walidacji - - rzeczywista prywatna publikacja mac musi przejść pomyślny prywatny mac + - rzeczywista publikacja npm musi przejść pomyślny npm `preflight_run_id` + - wydania stable do npm domyślnie trafiają do `beta` + - publikacja stable do npm może jawnie wskazać `latest` przez input workflow + - promocja stable w npm z `beta` do `latest` nadal jest dostępna jako jawny tryb ręczny w zaufanym workflow `OpenClaw NPM Release` + - bezpośrednie publikacje stable mogą także uruchamiać jawny tryb synchronizacji dist-tag, który kieruje zarówno `latest`, jak i `beta` na już opublikowaną wersję stable + - te tryby dist-tag nadal wymagają poprawnego `NPM_TOKEN` w środowisku `npm-release`, ponieważ zarządzanie `npm dist-tag` jest oddzielne od zaufanej publikacji + - publiczne `macOS Release` służy wyłącznie do walidacji + - rzeczywista prywatna publikacja mac musi przejść pomyślne prywatne mac `preflight_run_id` i `validate_run_id` - - rzeczywiste ścieżki publikacji promują przygotowane artefakty zamiast budować - je ponownie -- W przypadku wydań poprawkowych stable, takich jak `YYYY.M.D-N`, weryfikator po publikacji - sprawdza również tę samą ścieżkę aktualizacji w tymczasowym prefiksie z `YYYY.M.D` do `YYYY.M.D-N`, - aby poprawki wydań nie pozostawiały po cichu starszych instalacji globalnych na - bazowym stabilnym payloadzie -- Preflight wydania npm kończy się błędem domyślnie, jeśli tarball nie zawiera zarówno - `dist/control-ui/index.html`, jak i niepustego payloadu `dist/control-ui/assets/`, - abyśmy nie opublikowali ponownie pustego panelu przeglądarkowego -- Jeśli prace nad wydaniem dotyczyły planowania CI, manifestów czasowych rozszerzeń albo - macierzy testów rozszerzeń, przed akceptacją zregeneruj i przejrzyj - wyjścia macierzy workflow `checks-node-extensions` zarządzane przez planner z `.github/workflows/ci.yml`, - aby informacje o wydaniu nie opisywały nieaktualnego układu CI -- Gotowość stabilnego wydania macOS obejmuje również powierzchnie aktualizatora: + - rzeczywiste ścieżki publikacji promują przygotowane artefakty zamiast ponownie je budować +- W przypadku poprawkowych wydań stable, takich jak `YYYY.M.D-N`, weryfikator po publikacji sprawdza również tę samą ścieżkę aktualizacji w tymczasowym prefiksie z `YYYY.M.D` do `YYYY.M.D-N`, aby poprawki wydań nie mogły po cichu pozostawić starszych globalnych instalacji przy bazowym ładunku stable +- Preflight wydania npm kończy się błędem w trybie fail-closed, chyba że tarball zawiera zarówno `dist/control-ui/index.html`, jak i niepustą zawartość `dist/control-ui/assets/`, abyśmy nie wysłali ponownie pustego panelu przeglądarkowego +- `pnpm test:install:smoke` wymusza również limit `unpackedSize` dla `npm pack` na kandydacie tarballa aktualizacji, dzięki czemu e2e instalatora wychwytuje przypadkowe zwiększenie rozmiaru pakietu przed ścieżką publikacji wydania +- Jeśli prace nad wydaniem dotyczyły planowania CI, manifestów czasu rozszerzeń albo macierzy testów rozszerzeń, przed zatwierdzeniem zregeneruj i przejrzyj należące do planera wyjścia macierzy workflow `checks-node-extensions` z `.github/workflows/ci.yml`, aby informacje o wydaniu nie opisywały nieaktualnego układu CI +- Gotowość stabilnego wydania macOS obejmuje także powierzchnie aktualizatora: - wydanie GitHub musi ostatecznie zawierać spakowane `.zip`, `.dmg` i `.dSYM.zip` - `appcast.xml` na `main` musi po publikacji wskazywać nowy stabilny plik zip - - spakowana aplikacja musi zachować niedebugowy bundle id, niepusty adres - URL feedu Sparkle oraz `CFBundleVersion` równy lub wyższy od kanonicznego - minimalnego progu kompilacji Sparkle dla tej wersji wydania + - spakowana aplikacja musi zachować niedebugowe bundle id, niepusty adres URL kanału Sparkle oraz `CFBundleVersion` równy lub wyższy od kanonicznego minimalnego poziomu kompilacji Sparkle dla tej wersji wydania ## Inputy workflow NPM -`OpenClaw NPM Release` akceptuje następujące inputy kontrolowane przez operatora: +`OpenClaw NPM Release` akceptuje następujące inputy sterowane przez operatora: - `tag`: wymagany tag wydania, taki jak `v2026.4.2`, `v2026.4.2-1` albo - `v2026.4.2-beta.1`; gdy `preflight_only=true`, może to być również aktualny - pełny 40-znakowy SHA commita `main` dla preflightu służącego wyłącznie do walidacji -- `preflight_only`: `true` dla samej walidacji/budowania/pakowania, `false` dla - rzeczywistej ścieżki publikacji -- `preflight_run_id`: wymagane w rzeczywistej ścieżce publikacji, aby workflow ponownie użył - przygotowanego tarballa z pomyślnie zakończonego przebiegu preflight + `v2026.4.2-beta.1`; gdy `preflight_only=true`, może to być również bieżący + pełny 40-znakowy SHA commita `main` dla walidacyjnego preflightu +- `preflight_only`: `true` dla samej walidacji/budowania/pakowania, `false` dla rzeczywistej ścieżki publikacji +- `preflight_run_id`: wymagany w rzeczywistej ścieżce publikacji, aby workflow ponownie wykorzystał przygotowany tarball z pomyślnego uruchomienia preflightu - `npm_dist_tag`: docelowy tag npm dla ścieżki publikacji; domyślnie `beta` -- `promote_beta_to_latest`: `true`, aby pominąć publikację i przenieść już opublikowaną - stabilną kompilację `beta` do `latest` -- `sync_stable_dist_tags`: `true`, aby pominąć publikację i skierować zarówno `latest`, jak i - `beta` na już opublikowaną stabilną wersję +- `promote_beta_to_latest`: `true`, aby pominąć publikację i przenieść już opublikowaną stabilną kompilację `beta` na `latest` +- `sync_stable_dist_tags`: `true`, aby pominąć publikację i skierować zarówno `latest`, jak i `beta` na już opublikowaną stabilną wersję -`OpenClaw Release Checks` akceptuje następujące inputy kontrolowane przez operatora: +`OpenClaw Release Checks` akceptuje następujące inputy sterowane przez operatora: -- `ref`: istniejący tag wydania albo aktualny pełny 40-znakowy SHA commita `main` - do walidacji +- `ref`: istniejący tag wydania albo bieżący pełny 40-znakowy SHA commita `main` do zweryfikowania -Zasady: +Reguły: - Tagi stable i poprawkowe mogą publikować zarówno do `beta`, jak i do `latest` -- Tagi przedpremierowe beta mogą publikować wyłącznie do `beta` +- Tagi wydań przedpremierowych beta mogą publikować wyłącznie do `beta` - Pełny input SHA commita jest dozwolony tylko wtedy, gdy `preflight_only=true` -- Tryb commit-SHA w kontrolach wydań również wymaga aktualnego HEAD `origin/main` -- Rzeczywista ścieżka publikacji musi używać tego samego `npm_dist_tag`, którego użyto podczas preflightu; - workflow weryfikuje te metadane, zanim publikacja będzie kontynuowana -- Tryb promocji musi używać tagu stable lub poprawkowego, `preflight_only=false`, +- Tryb commit-SHA kontroli wydania wymaga również bieżącego HEAD `origin/main` +- Rzeczywista ścieżka publikacji musi używać tego samego `npm_dist_tag`, który został użyty podczas preflightu; workflow weryfikuje te metadane przed kontynuacją publikacji +- Tryb promocji musi używać tagu stable albo poprawkowego, `preflight_only=false`, pustego `preflight_run_id` oraz `npm_dist_tag=beta` -- Tryb synchronizacji dist-tagów musi używać tagu stable lub poprawkowego, +- Tryb synchronizacji dist-tag musi używać tagu stable albo poprawkowego, `preflight_only=false`, pustego `preflight_run_id`, `npm_dist_tag=latest` oraz `promote_beta_to_latest=false` -- Tryby promocji i synchronizacji dist-tagów również wymagają poprawnego `NPM_TOKEN`, ponieważ - `npm dist-tag add` nadal wymaga zwykłego uwierzytelnienia npm; trusted publishing obejmuje - wyłącznie ścieżkę publikacji pakietu +- Tryby promocji i synchronizacji dist-tag również wymagają poprawnego `NPM_TOKEN`, ponieważ `npm dist-tag add` nadal wymaga zwykłego uwierzytelnienia npm; zaufana publikacja obejmuje tylko ścieżkę publikacji pakietu -## Sekwencja stabilnego wydania npm +## Sekwencja wydania stable npm Podczas przygotowywania stabilnego wydania npm: 1. Uruchom `OpenClaw NPM Release` z `preflight_only=true` - - Zanim tag zacznie istnieć, możesz użyć aktualnego pełnego SHA commita `main` - do walidacyjnego dry run workflow preflight -2. Wybierz `npm_dist_tag=beta` dla normalnego przepływu beta-first albo `latest` tylko - wtedy, gdy celowo chcesz bezpośredniej stabilnej publikacji -3. Uruchom osobno `OpenClaw Release Checks` z tym samym tagiem albo - pełnym aktualnym SHA `main`, gdy chcesz objąć testami live prompt cache - - To rozdzielenie jest celowe, aby testy live pozostawały dostępne bez - ponownego sprzęgania długotrwałych lub niestabilnych kontroli z workflow publikacji + - Zanim tag będzie istniał, możesz użyć bieżącego pełnego SHA commita `main` + do walidacyjnego próbnego uruchomienia workflow preflight +2. Wybierz `npm_dist_tag=beta` dla zwykłego przepływu beta-first albo `latest` tylko wtedy, gdy celowo chcesz wykonać bezpośrednią publikację stable +3. Uruchom osobno `OpenClaw Release Checks` z tym samym tagiem albo pełnym bieżącym SHA `main`, gdy chcesz uzyskać pokrycie live dla cache promptów + - To rozdzielenie jest celowe, aby pokrycie live pozostawało dostępne bez ponownego łączenia długotrwałych albo niestabilnych kontroli z workflow publikacji 4. Zapisz pomyślny `preflight_run_id` 5. Uruchom ponownie `OpenClaw NPM Release` z `preflight_only=false`, tym samym `tag`, tym samym `npm_dist_tag` i zapisanym `preflight_run_id` -6. Jeśli wydanie trafiło do `beta`, uruchom później `OpenClaw NPM Release` z tym - samym stabilnym `tag`, `promote_beta_to_latest=true`, `preflight_only=false`, +6. Jeśli wydanie trafiło do `beta`, uruchom później `OpenClaw NPM Release` z tym samym stabilnym `tag`, `promote_beta_to_latest=true`, `preflight_only=false`, pustym `preflight_run_id` i `npm_dist_tag=beta`, gdy chcesz przenieść tę opublikowaną kompilację do `latest` 7. Jeśli wydanie zostało celowo opublikowane bezpośrednio do `latest` i `beta` - ma wskazywać tę samą stabilną kompilację, uruchom `OpenClaw NPM Release` z tym samym - stabilnym `tag`, `sync_stable_dist_tags=true`, `promote_beta_to_latest=false`, - `preflight_only=false`, pustym `preflight_run_id` i `npm_dist_tag=latest` + powinno wskazywać tę samą stabilną kompilację, uruchom `OpenClaw NPM Release` z tym samym stabilnym `tag`, `sync_stable_dist_tags=true`, `promote_beta_to_latest=false`, `preflight_only=false`, pustym `preflight_run_id` i `npm_dist_tag=latest` -Tryby promocji i synchronizacji dist-tagów nadal wymagają akceptacji środowiska `npm-release` -oraz poprawnego `NPM_TOKEN` dostępnego dla tego przebiegu workflow. +Tryby promocji i synchronizacji dist-tag nadal wymagają zatwierdzenia środowiska `npm-release` oraz poprawnego `NPM_TOKEN` dostępnego dla tego uruchomienia workflow. -Dzięki temu zarówno ścieżka publikacji bezpośredniej, jak i ścieżka promocji beta-first pozostają -udokumentowane i widoczne dla operatora. +Dzięki temu zarówno ścieżka bezpośredniej publikacji, jak i ścieżka promocji beta-first pozostają udokumentowane i widoczne dla operatora. -## Publiczne odwołania +## Publiczne odniesienia - [`.github/workflows/openclaw-npm-release.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/openclaw-npm-release.yml) - [`.github/workflows/openclaw-release-checks.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/openclaw-release-checks.yml) @@ -186,6 +146,6 @@ udokumentowane i widoczne dla operatora. - [`scripts/package-mac-dist.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/package-mac-dist.sh) - [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/make_appcast.sh) -Maintainerzy korzystają z prywatnej dokumentacji wydań w +Maintainerzy używają prywatnej dokumentacji wydań w [`openclaw/maintainers/release/README.md`](https://github.com/openclaw/maintainers/blob/main/release/README.md) jako właściwego runbooka. diff --git a/docs/pl/tools/browser.md b/docs/pl/tools/browser.md index 430bf4ebc..e542f48e6 100644 --- a/docs/pl/tools/browser.md +++ b/docs/pl/tools/browser.md @@ -1,41 +1,41 @@ --- read_when: - Dodawanie automatyzacji przeglądarki sterowanej przez agenta - - Diagnozowanie, dlaczego openclaw ingeruje w Twojego Chrome’a - - Implementowanie ustawień i cyklu życia przeglądarki w aplikacji macOS + - Debugowanie, dlaczego openclaw zakłóca działanie Twojej własnej przeglądarki Chrome + - Implementowanie ustawień przeglądarki i cyklu życia w aplikacji macOS summary: Zintegrowana usługa sterowania przeglądarką + polecenia akcji -title: Browser (zarządzana przez OpenClaw) +title: Przeglądarka (zarządzana przez OpenClaw) x-i18n: - generated_at: "2026-04-11T02:48:09Z" + generated_at: "2026-04-14T09:50:55Z" model: gpt-5.4 provider: openai - source_hash: da6fed36a6f40a50e825f90e5616778954545bd7e52397f7e088b85251ee024f + source_hash: ae9ef725f544d4236d229f498c7187871c69bd18d31069b30a7e67fac53166a2 source_path: tools/browser.md workflow: 15 --- -# Browser (zarządzana przez openclaw) +# Przeglądarka (zarządzana przez openclaw) OpenClaw może uruchamiać **dedykowany profil Chrome/Brave/Edge/Chromium**, którym steruje agent. -Jest on odizolowany od Twojej osobistej przeglądarki i zarządzany przez małą lokalną -usługę sterowania wewnątrz bramy (tylko loopback). +Jest on odizolowany od Twojej osobistej przeglądarki i zarządzany przez niewielką lokalną +usługę sterowania wewnątrz Gateway (tylko loopback). Widok dla początkujących: -- Traktuj to jak **oddzielną przeglądarkę tylko dla agenta**. -- Profil `openclaw` **nie** ingeruje w Twój osobisty profil przeglądarki. -- Agent może **otwierać karty, czytać strony, klikać i wpisywać tekst** w bezpiecznym obszarze. -- Wbudowany profil `user` dołącza do Twojej rzeczywistej zalogowanej sesji Chrome przez Chrome MCP. +- Potraktuj to jako **oddzielną przeglądarkę tylko dla agenta**. +- Profil `openclaw` **nie** dotyka Twojego osobistego profilu przeglądarki. +- Agent może **otwierać karty, odczytywać strony, klikać i pisać** w bezpiecznym środowisku. +- Wbudowany profil `user` dołącza do Twojej prawdziwej zalogowanej sesji Chrome przez Chrome MCP. ## Co otrzymujesz - Oddzielny profil przeglądarki o nazwie **openclaw** (domyślnie z pomarańczowym akcentem). -- Deterministyczne sterowanie kartami (lista/otwieranie/przełączanie/zamykanie). +- Deterministyczne sterowanie kartami (lista/otwieranie/ustawianie fokusu/zamykanie). - Działania agenta (kliknięcie/pisanie/przeciąganie/zaznaczanie), snapshoty, zrzuty ekranu, pliki PDF. -- Opcjonalną obsługę wielu profili (`openclaw`, `work`, `remote`, ...). +- Opcjonalna obsługa wielu profili (`openclaw`, `work`, `remote`, ...). -Ta przeglądarka **nie** jest Twoją codzienną przeglądarką. To bezpieczna, izolowana powierzchnia do -automatyzacji i weryfikacji przez agenta. +Ta przeglądarka **nie** jest Twoją codzienną przeglądarką. To bezpieczna, odizolowana powierzchnia do +automatyzacji i weryfikacji wykonywanych przez agenta. ## Szybki start @@ -46,17 +46,17 @@ openclaw browser --browser-profile openclaw open https://example.com openclaw browser --browser-profile openclaw snapshot ``` -Jeśli zobaczysz „Browser disabled”, włącz tę funkcję w konfiguracji (patrz niżej) i uruchom ponownie -bramę. +Jeśli pojawi się komunikat „Browser disabled”, włącz przeglądarkę w konfiguracji (patrz niżej) i uruchom ponownie +Gateway. -Jeśli `openclaw browser` całkowicie zniknęło albo agent zgłasza, że narzędzie browser -jest niedostępne, przejdź do [Brak polecenia lub narzędzia browser](/pl/tools/browser#missing-browser-command-or-tool). +Jeśli `openclaw browser` całkowicie zniknęło albo agent mówi, że narzędzie przeglądarki +jest niedostępne, przejdź do [Brak polecenia lub narzędzia przeglądarki](/pl/tools/browser#missing-browser-command-or-tool). -## Sterowanie pluginem +## Sterowanie Plugin -Domyślne narzędzie `browser` jest teraz bundlowanym pluginem dostarczanym i włączonym -domyślnie. Oznacza to, że możesz je wyłączyć lub zastąpić bez usuwania reszty -systemu pluginów OpenClaw: +Domyślne narzędzie `browser` jest teraz dołączonym Plugin, który jest dostarczany jako włączony +domyślnie. Oznacza to, że możesz go wyłączyć lub zastąpić bez usuwania reszty +systemu Plugin OpenClaw: ```json5 { @@ -70,30 +70,30 @@ systemu pluginów OpenClaw: } ``` -Wyłącz bundlowany plugin przed zainstalowaniem innego pluginu, który udostępnia tę -samą nazwę narzędzia `browser`. Domyślne środowisko browser wymaga obu warunków: +Wyłącz dołączony Plugin przed zainstalowaniem innego Plugin, który udostępnia tę +samą nazwę narzędzia `browser`. Domyślne środowisko przeglądarki wymaga obu warunków: - `plugins.entries.browser.enabled` nie może być wyłączone - `browser.enabled=true` -Jeśli wyłączysz tylko plugin, bundlowane CLI przeglądarki (`openclaw browser`), -metoda bramy (`browser.request`), narzędzie agenta oraz domyślna usługa sterowania przeglądarką -znikną razem. Twoja konfiguracja `browser.*` pozostanie nienaruszona, aby -zastępczy plugin mógł z niej skorzystać. +Jeśli wyłączysz tylko Plugin, dołączone CLI przeglądarki (`openclaw browser`), +metoda gateway (`browser.request`), narzędzie agenta i domyślna usługa sterowania +przeglądarką znikną razem. Twoja konfiguracja `browser.*` pozostanie nienaruszona, +aby mogła zostać ponownie użyta przez zastępczy Plugin. -Bundlowany plugin browser odpowiada teraz także za implementację środowiska uruchomieniowego przeglądarki. -Rdzeń zachowuje tylko współdzielone helpery Plugin SDK oraz eksporty zgodności dla -starszych wewnętrznych ścieżek importu. W praktyce usunięcie lub zastąpienie pakietu pluginu browser -usuwa zestaw funkcji przeglądarki zamiast pozostawiać drugie środowisko uruchomieniowe należące do rdzenia. +Dołączony Plugin przeglądarki jest teraz również właścicielem implementacji środowiska wykonawczego przeglądarki. +Rdzeń zachowuje tylko współdzielone pomocniki Plugin SDK oraz kompatybilnościowe re-exporty dla +starszych wewnętrznych ścieżek importu. W praktyce usunięcie lub zastąpienie pakietu Plugin przeglądarki +usuwa zestaw funkcji przeglądarki zamiast pozostawiać drugie środowisko wykonawcze należące do rdzenia. -Zmiany konfiguracji browser nadal wymagają restartu bramy, aby bundlowany plugin +Zmiany konfiguracji przeglądarki nadal wymagają ponownego uruchomienia Gateway, aby dołączony Plugin mógł ponownie zarejestrować swoją usługę przeglądarki z nowymi ustawieniami. -## Brak polecenia lub narzędzia browser +## Brak polecenia lub narzędzia przeglądarki -Jeśli `openclaw browser` nagle stało się nieznanym poleceniem po aktualizacji albo -agent zgłasza brak narzędzia browser, najczęstszą przyczyną jest restrykcyjna -lista `plugins.allow`, która nie zawiera `browser`. +Jeśli po aktualizacji `openclaw browser` nagle stanie się nieznanym poleceniem albo +agent zgłasza, że brakuje narzędzia przeglądarki, najczęstszą przyczyną jest +restrykcyjna lista `plugins.allow`, która nie zawiera `browser`. Przykład błędnej konfiguracji: @@ -105,7 +105,7 @@ Przykład błędnej konfiguracji: } ``` -Napraw to, dodając `browser` do listy dozwolonych pluginów: +Napraw to, dodając `browser` do listy dozwolonych Plugin: ```json5 { @@ -117,48 +117,48 @@ Napraw to, dodając `browser` do listy dozwolonych pluginów: Ważne uwagi: -- `browser.enabled=true` samo w sobie nie wystarcza, gdy ustawiono `plugins.allow`. -- `plugins.entries.browser.enabled=true` samo w sobie również nie wystarcza, gdy ustawiono `plugins.allow`. -- `tools.alsoAllow: ["browser"]` **nie** ładuje bundlowanego pluginu browser. To ustawienie jedynie dostosowuje politykę narzędzi po załadowaniu pluginu. -- Jeśli nie potrzebujesz restrykcyjnej listy dozwolonych pluginów, usunięcie `plugins.allow` także przywraca domyślne zachowanie bundlowanej przeglądarki. +- Samo `browser.enabled=true` nie wystarczy, gdy ustawione jest `plugins.allow`. +- Samo `plugins.entries.browser.enabled=true` również nie wystarczy, gdy ustawione jest `plugins.allow`. +- `tools.alsoAllow: ["browser"]` **nie** ładuje dołączonego Plugin przeglądarki. Tylko dostosowuje politykę narzędzi po tym, jak Plugin został już załadowany. +- Jeśli nie potrzebujesz restrykcyjnej listy dozwolonych Plugin, usunięcie `plugins.allow` również przywraca domyślne zachowanie dołączonej przeglądarki. Typowe objawy: - `openclaw browser` jest nieznanym poleceniem. - Brakuje `browser.request`. -- Agent zgłasza, że narzędzie browser jest niedostępne lub brakuje go. +- Agent zgłasza, że narzędzie przeglądarki jest niedostępne lub go brakuje. ## Profile: `openclaw` vs `user` -- `openclaw`: zarządzana, izolowana przeglądarka (nie wymaga rozszerzenia). -- `user`: wbudowany profil dołączania Chrome MCP do Twojej **rzeczywistej zalogowanej sesji Chrome**. +- `openclaw`: zarządzana, odizolowana przeglądarka (nie wymaga rozszerzenia). +- `user`: wbudowany profil dołączania Chrome MCP do Twojej **prawdziwej zalogowanej sesji Chrome**. -Dla wywołań narzędzia browser przez agenta: +Dla wywołań narzędzia przeglądarki przez agenta: -- Domyślnie: używaj izolowanej przeglądarki `openclaw`. +- Domyślnie: używaj odizolowanej przeglądarki `openclaw`. - Preferuj `profile="user"`, gdy znaczenie mają istniejące zalogowane sesje i użytkownik jest przy komputerze, aby kliknąć/zatwierdzić ewentualny monit o dołączenie. -- `profile` jest jawnym nadpisaniem, gdy chcesz określony tryb przeglądarki. +- `profile` jest jawnym nadpisaniem, gdy chcesz określonego trybu przeglądarki. Ustaw `browser.defaultProfile: "openclaw"`, jeśli chcesz domyślnie używać trybu zarządzanego. ## Konfiguracja -Ustawienia browser znajdują się w `~/.openclaw/openclaw.json`. +Ustawienia przeglądarki znajdują się w `~/.openclaw/openclaw.json`. ```json5 { browser: { - enabled: true, // default: true + enabled: true, // domyślnie: true ssrfPolicy: { - // dangerouslyAllowPrivateNetwork: true, // opt in only for trusted private-network access - // allowPrivateNetwork: true, // legacy alias + // dangerouslyAllowPrivateNetwork: true, // włącz tylko dla zaufanego dostępu do sieci prywatnej + // allowPrivateNetwork: true, // starszy alias // hostnameAllowlist: ["*.example.com", "example.com"], // allowedHostnames: ["localhost"], }, - // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override - remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms) - remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms) + // cdpUrl: "http://127.0.0.1:18792", // starsze nadpisanie pojedynczego profilu + remoteCdpTimeoutMs: 1500, // limit czasu HTTP zdalnego CDP (ms) + remoteCdpHandshakeTimeoutMs: 3000, // limit czasu handshake WebSocket zdalnego CDP (ms) defaultProfile: "openclaw", color: "#FF4500", headless: false, @@ -187,30 +187,30 @@ Ustawienia browser znajdują się w `~/.openclaw/openclaw.json`. Uwagi: -- Usługa sterowania przeglądarką nasłuchuje na loopback na porcie wyliczanym z `gateway.port` - (domyślnie: `18791`, czyli brama + 2). -- Jeśli nadpiszesz port bramy (`gateway.port` lub `OPENCLAW_GATEWAY_PORT`), - wyliczane porty przeglądarki przesuną się, aby pozostać w tej samej „rodzinie”. +- Usługa sterowania przeglądarką wiąże się z loopback na porcie wyprowadzonym z `gateway.port` + (domyślnie: `18791`, czyli gateway + 2). +- Jeśli nadpiszesz port Gateway (`gateway.port` lub `OPENCLAW_GATEWAY_PORT`), + wyprowadzone porty przeglądarki przesuną się tak, aby pozostać w tej samej „rodzinie”. - `cdpUrl` domyślnie wskazuje zarządzany lokalny port CDP, jeśli nie jest ustawiony. -- `remoteCdpTimeoutMs` dotyczy sprawdzania osiągalności zdalnego (nie-loopback) CDP. -- `remoteCdpHandshakeTimeoutMs` dotyczy sprawdzania osiągalności połączenia WebSocket zdalnego CDP. -- Nawigacja/otwieranie kart przeglądarki jest chronione przed SSRF przed rozpoczęciem nawigacji i ponownie sprawdzane w trybie best-effort po nawigacji dla końcowego adresu `http(s)`. -- W ścisłym trybie SSRF sprawdzane są również wykrywanie/sondy zdalnych punktów końcowych CDP (`cdpUrl`, w tym wyszukiwania `/json/version`). +- `remoteCdpTimeoutMs` ma zastosowanie do sprawdzania osiągalności zdalnego CDP (nie-loopback). +- `remoteCdpHandshakeTimeoutMs` ma zastosowanie do sprawdzania osiągalności handshake WebSocket zdalnego CDP. +- Nawigacja przeglądarki/otwieranie kart jest chronione przed SSRF przed nawigacją i ponownie sprawdzane metodą best-effort pod kątem końcowego adresu URL `http(s)` po nawigacji. +- W ścisłym trybie SSRF sprawdzane są także wykrywanie/sprawdzanie zdalnych punktów końcowych CDP (`cdpUrl`, w tym wyszukiwania `/json/version`). - `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` jest domyślnie wyłączone. Ustaw `true` tylko wtedy, gdy świadomie ufasz dostępowi przeglądarki do sieci prywatnej. - `browser.ssrfPolicy.allowPrivateNetwork` pozostaje obsługiwane jako starszy alias dla zgodności. -- `attachOnly: true` oznacza „nigdy nie uruchamiaj lokalnej przeglądarki; dołączaj tylko wtedy, gdy już działa”. -- `color` + `color` dla poszczególnych profili zabarwiają interfejs przeglądarki, aby było widać, który profil jest aktywny. -- Domyślny profil to `openclaw` (samodzielna przeglądarka zarządzana przez OpenClaw). Użyj `defaultProfile: "user"`, aby przełączyć domyślnie na zalogowaną przeglądarkę użytkownika. -- Kolejność automatycznego wykrywania: domyślna przeglądarka systemowa, jeśli jest oparta na Chromium; w przeciwnym razie Chrome → Brave → Edge → Chromium → Chrome Canary. +- `attachOnly: true` oznacza „nigdy nie uruchamiaj lokalnej przeglądarki; dołączaj tylko wtedy, gdy jest już uruchomiona”. +- `color` i per-profilowe `color` nadają odcień interfejsowi przeglądarki, aby było widać, który profil jest aktywny. +- Profilem domyślnym jest `openclaw` (samodzielna przeglądarka zarządzana przez OpenClaw). Użyj `defaultProfile: "user"`, aby wybrać przeglądarkę zalogowanego użytkownika. +- Kolejność automatycznego wykrywania: systemowa domyślna przeglądarka, jeśli jest oparta na Chromium; w przeciwnym razie Chrome → Brave → Edge → Chromium → Chrome Canary. - Lokalne profile `openclaw` automatycznie przypisują `cdpPort`/`cdpUrl` — ustawiaj je tylko dla zdalnego CDP. - `driver: "existing-session"` używa Chrome DevTools MCP zamiast surowego CDP. Nie ustawiaj `cdpUrl` dla tego sterownika. - Ustaw `browser.profiles..userDataDir`, gdy profil existing-session ma dołączać do niestandardowego profilu użytkownika Chromium, takiego jak Brave lub Edge. -## Użyj Brave (lub innej przeglądarki opartej na Chromium) +## Używanie Brave (lub innej przeglądarki opartej na Chromium) -Jeśli Twoja **domyślna przeglądarka systemowa** jest oparta na Chromium (Chrome/Brave/Edge itp.), +Jeśli Twoja **systemowa domyślna** przeglądarka jest oparta na Chromium (Chrome/Brave/Edge itd.), OpenClaw użyje jej automatycznie. Ustaw `browser.executablePath`, aby nadpisać automatyczne wykrywanie: @@ -245,49 +245,48 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome" ## Sterowanie lokalne vs zdalne -- **Sterowanie lokalne (domyślne):** brama uruchamia usługę sterowania loopback i może uruchomić lokalną przeglądarkę. -- **Sterowanie zdalne (host węzła):** uruchom host węzła na maszynie, na której jest przeglądarka; brama przekazuje do niego działania przeglądarki. -- **Zdalne CDP:** ustaw `browser.profiles..cdpUrl` (lub `browser.cdpUrl`), aby +- **Sterowanie lokalne (domyślne):** Gateway uruchamia usługę sterowania loopback i może uruchomić lokalną przeglądarkę. +- **Sterowanie zdalne (host Node):** uruchom hosta Node na komputerze, na którym jest przeglądarka; Gateway będzie przekazywać do niego działania przeglądarki. +- **Zdalny CDP:** ustaw `browser.profiles..cdpUrl` (lub `browser.cdpUrl`), aby dołączyć do zdalnej przeglądarki opartej na Chromium. W takim przypadku OpenClaw nie uruchomi lokalnej przeglądarki. -Zachowanie przy zatrzymywaniu różni się zależnie od trybu profilu: +Zachowanie przy zatrzymywaniu różni się w zależności od trybu profilu: -- lokalne profile zarządzane: `openclaw browser stop` zatrzymuje proces przeglądarki, który - uruchomił OpenClaw -- profile tylko-dołączania i zdalnego CDP: `openclaw browser stop` zamyka aktywną +- lokalne zarządzane profile: `openclaw browser stop` zatrzymuje proces przeglądarki, + który uruchomił OpenClaw +- profile tylko-dołączane i zdalne profile CDP: `openclaw browser stop` zamyka aktywną sesję sterowania i zwalnia nadpisania emulacji Playwright/CDP (viewport, - schemat kolorów, ustawienia regionalne, strefa czasowa, tryb offline i podobny stan), nawet - jeśli OpenClaw nie uruchomił żadnego procesu przeglądarki + schemat kolorów, ustawienia regionalne, strefa czasowa, tryb offline i podobny stan), + mimo że żaden proces przeglądarki nie został uruchomiony przez OpenClaw Zdalne adresy URL CDP mogą zawierać uwierzytelnianie: -- Tokeny w zapytaniu (np. `https://provider.example?token=`) +- Tokeny zapytania (np. `https://provider.example?token=`) - Uwierzytelnianie HTTP Basic (np. `https://user:pass@provider.example`) -OpenClaw zachowuje uwierzytelnianie przy wywoływaniu punktów końcowych `/json/*` oraz podczas łączenia -z WebSocketem CDP. Dla tokenów preferuj zmienne środowiskowe lub menedżery sekretów -zamiast zapisywania ich w plikach konfiguracji. +OpenClaw zachowuje dane uwierzytelniające przy wywoływaniu punktów końcowych `/json/*` oraz podczas łączenia +z WebSocket CDP. Zamiast zatwierdzać tokeny w plikach konfiguracyjnych, preferuj zmienne środowiskowe lub menedżery sekretów. -## Proxy browser węzła (domyślnie bez konfiguracji) +## Proxy przeglądarki Node (domyślnie bez konfiguracji) -Jeśli uruchamiasz **host węzła** na maszynie, na której znajduje się Twoja przeglądarka, OpenClaw może -automatycznie kierować wywołania narzędzia browser do tego węzła bez dodatkowej konfiguracji browser. +Jeśli uruchamiasz **hosta Node** na komputerze, na którym znajduje się Twoja przeglądarka, OpenClaw może +automatycznie kierować wywołania narzędzia przeglądarki do tego node bez dodatkowej konfiguracji przeglądarki. To domyślna ścieżka dla zdalnych bram. Uwagi: -- Host węzła udostępnia swój lokalny serwer sterowania przeglądarką przez **polecenie proxy**. -- Profile pochodzą z własnej konfiguracji `browser.profiles` węzła (takiej samej jak lokalnie). -- `nodeHost.browserProxy.allowProfiles` jest opcjonalne. Pozostaw je puste dla starszego/domyślnego zachowania: wszystkie skonfigurowane profile pozostają osiągalne przez proxy, włącznie z trasami tworzenia/usuwania profili. -- Jeśli ustawisz `nodeHost.browserProxy.allowProfiles`, OpenClaw potraktuje to jako granicę najmniejszych uprawnień: można kierować tylko do profili z listy dozwolonych, a trwałe trasy tworzenia/usuwania profili są blokowane na powierzchni proxy. +- Host Node udostępnia swój lokalny serwer sterowania przeglądarką przez **polecenie proxy**. +- Profile pochodzą z własnej konfiguracji `browser.profiles` node (takiej samej jak lokalnie). +- `nodeHost.browserProxy.allowProfiles` jest opcjonalne. Pozostaw puste, aby zachować starsze/domyslne zachowanie: wszystkie skonfigurowane profile pozostają osiągalne przez proxy, w tym trasy tworzenia/usuwania profili. +- Jeśli ustawisz `nodeHost.browserProxy.allowProfiles`, OpenClaw traktuje to jako granicę minimalnych uprawnień: tylko profile z listy dozwolonych mogą być wskazywane, a trasy trwałego tworzenia/usuwania profili są blokowane na powierzchni proxy. - Wyłącz tę funkcję, jeśli jej nie chcesz: - - Na węźle: `nodeHost.browserProxy.enabled=false` - - Na bramie: `gateway.nodes.browser.mode="off"` + - Na node: `nodeHost.browserProxy.enabled=false` + - Na gateway: `gateway.nodes.browser.mode="off"` ## Browserless (hostowany zdalny CDP) [Browserless](https://browserless.io) to hostowana usługa Chromium, która udostępnia -adresy połączeń CDP przez HTTPS i WebSocket. OpenClaw może używać obu form, ale +adresy URL połączeń CDP przez HTTPS i WebSocket. OpenClaw może używać obu form, ale dla zdalnego profilu przeglądarki najprostszą opcją jest bezpośredni adres WebSocket z dokumentacji połączeń Browserless. @@ -312,30 +311,30 @@ Przykład: Uwagi: -- Zamień `` na swój rzeczywisty token Browserless. +- Zastąp `` swoim prawdziwym tokenem Browserless. - Wybierz punkt końcowy regionu zgodny z Twoim kontem Browserless (zobacz ich dokumentację). -- Jeśli Browserless podaje bazowy adres URL HTTPS, możesz albo przekształcić go do - `wss://` dla bezpośredniego połączenia CDP, albo zachować adres HTTPS i pozwolić OpenClaw +- Jeśli Browserless podaje bazowy adres URL HTTPS, możesz albo przekształcić go na + `wss://` w celu bezpośredniego połączenia CDP, albo pozostawić adres HTTPS i pozwolić OpenClaw wykryć `/json/version`. -## Bezpośredni dostawcy WebSocket CDP +## Dostawcy bezpośredniego WebSocket CDP -Niektóre hostowane usługi przeglądarki udostępniają **bezpośredni punkt końcowy WebSocket** -zamiast standardowego wykrywania CDP opartego na HTTP (`/json/version`). OpenClaw obsługuje oba: +Niektóre hostowane usługi przeglądarki udostępniają **bezpośredni punkt końcowy WebSocket** zamiast +standardowego wykrywania CDP opartego na HTTP (`/json/version`). OpenClaw obsługuje oba warianty: - **Punkty końcowe HTTP(S)** — OpenClaw wywołuje `/json/version`, aby wykryć adres URL debuggera WebSocket, a następnie się łączy. - **Punkty końcowe WebSocket** (`ws://` / `wss://`) — OpenClaw łączy się bezpośrednio, - pomijając `/json/version`. Używaj tego dla usług takich jak + pomijając `/json/version`. Używaj tego w usługach takich jak [Browserless](https://browserless.io), - [Browserbase](https://www.browserbase.com) lub dowolnego dostawcy, który przekazuje + [Browserbase](https://www.browserbase.com) lub u dowolnego dostawcy, który przekazuje Ci adres URL WebSocket. ### Browserbase -[Browserbase](https://www.browserbase.com) to chmurowa platforma do uruchamiania +[Browserbase](https://www.browserbase.com) to platforma chmurowa do uruchamiania przeglądarek headless z wbudowanym rozwiązywaniem CAPTCHA, trybem stealth i -rezydencjalnymi serwerami proxy. +proxy rezydencyjnymi. ```json5 { @@ -358,57 +357,58 @@ Uwagi: - [Zarejestruj się](https://www.browserbase.com/sign-up) i skopiuj swój **API Key** z [panelu Overview](https://www.browserbase.com/overview). -- Zamień `` na swój rzeczywisty klucz API Browserbase. +- Zastąp `` swoim prawdziwym kluczem API Browserbase. - Browserbase automatycznie tworzy sesję przeglądarki przy połączeniu WebSocket, więc - ręczne tworzenie sesji nie jest potrzebne. -- Darmowy plan pozwala na jedną równoczesną sesję i jedną godzinę przeglądarki miesięcznie. - Limity płatnych planów znajdziesz w [cenniku](https://www.browserbase.com/pricing). -- Pełne informacje referencyjne o API, przewodniki SDK i przykłady integracji znajdziesz w [dokumentacji Browserbase](https://docs.browserbase.com). + nie jest potrzebny ręczny krok tworzenia sesji. +- Warstwa darmowa pozwala na jedną współbieżną sesję i jedną godzinę przeglądarki miesięcznie. + Zobacz [cennik](https://www.browserbase.com/pricing), aby poznać limity planów płatnych. +- Zobacz [dokumentację Browserbase](https://docs.browserbase.com), aby uzyskać pełne + informacje referencyjne o API, przewodniki po SDK i przykłady integracji. ## Bezpieczeństwo -Najważniejsze założenia: +Kluczowe założenia: -- Sterowanie przeglądarką jest dostępne tylko przez loopback; dostęp przechodzi przez uwierzytelnianie bramy lub parowanie węzła. +- Sterowanie przeglądarką jest dostępne tylko przez loopback; dostęp odbywa się przez uwierzytelnianie Gateway lub parowanie node. - Samodzielne loopback API HTTP przeglądarki używa **wyłącznie uwierzytelniania wspólnym sekretem**: - token bearer bramy, `x-openclaw-password` albo HTTP Basic auth z - skonfigurowanym hasłem bramy. -- Nagłówki tożsamości Tailscale Serve oraz `gateway.auth.mode: "trusted-proxy"` **nie** + token bearer gateway, `x-openclaw-password` lub uwierzytelnianie HTTP Basic z + skonfigurowanym hasłem gateway. +- Nagłówki tożsamości Tailscale Serve i `gateway.auth.mode: "trusted-proxy"` **nie** uwierzytelniają tego samodzielnego loopback API przeglądarki. - Jeśli sterowanie przeglądarką jest włączone i nie skonfigurowano uwierzytelniania wspólnym sekretem, OpenClaw - automatycznie generuje `gateway.auth.token` przy starcie i zapisuje go w konfiguracji. -- OpenClaw **nie** generuje automatycznie tego tokenu, gdy `gateway.auth.mode` ma już wartość - `password`, `none` lub `trusted-proxy`. -- Utrzymuj bramę i wszystkie hosty węzłów w sieci prywatnej (Tailscale); unikaj publicznej ekspozycji. -- Traktuj zdalne adresy URL/tokeny CDP jak sekrety; preferuj zmienne env lub menedżer sekretów. + automatycznie generuje `gateway.auth.token` przy uruchomieniu i zapisuje go w konfiguracji. +- OpenClaw **nie** generuje tego tokenu automatycznie, gdy `gateway.auth.mode` jest + już ustawione na `password`, `none` lub `trusted-proxy`. +- Utrzymuj Gateway i wszystkie hosty node w sieci prywatnej (Tailscale); unikaj publicznej ekspozycji. +- Traktuj zdalne adresy URL/tokeny CDP jako sekrety; preferuj zmienne środowiskowe lub menedżer sekretów. -Wskazówki dla zdalnego CDP: +Wskazówki dotyczące zdalnego CDP: -- Jeśli to możliwe, preferuj szyfrowane punkty końcowe (HTTPS lub WSS) oraz tokeny krótkotrwałe. -- Unikaj osadzania długotrwałych tokenów bezpośrednio w plikach konfiguracji. +- Jeśli to możliwe, preferuj szyfrowane punkty końcowe (HTTPS lub WSS) i tokeny o krótkim czasie życia. +- Unikaj osadzania długowiecznych tokenów bezpośrednio w plikach konfiguracyjnych. ## Profile (wiele przeglądarek) OpenClaw obsługuje wiele nazwanych profili (konfiguracji routingu). Profile mogą być: -- **zarządzane przez openclaw**: dedykowana instancja przeglądarki opartej na Chromium z własnym katalogiem danych użytkownika + portem CDP +- **zarządzane przez OpenClaw**: dedykowana instancja przeglądarki opartej na Chromium z własnym katalogiem danych użytkownika i portem CDP - **zdalne**: jawny adres URL CDP (przeglądarka oparta na Chromium uruchomiona gdzie indziej) -- **istniejąca sesja**: istniejący profil Chrome przez automatyczne łączenie Chrome DevTools MCP +- **istniejąca sesja**: Twój istniejący profil Chrome przez automatyczne połączenie Chrome DevTools MCP Ustawienia domyślne: - Profil `openclaw` jest tworzony automatycznie, jeśli go brakuje. -- Profil `user` jest wbudowany do dołączania existing-session przez Chrome MCP. -- Profile existing-session poza `user` są opcjonalne; twórz je za pomocą `--driver existing-session`. +- Profil `user` jest wbudowany do dołączania istniejącej sesji Chrome MCP. +- Profile istniejącej sesji poza `user` są opcjonalne; utwórz je za pomocą `--driver existing-session`. - Lokalne porty CDP są domyślnie przydzielane z zakresu **18800–18899**. - Usunięcie profilu przenosi jego lokalny katalog danych do Kosza. Wszystkie punkty końcowe sterowania akceptują `?profile=`; CLI używa `--browser-profile`. -## Existing-session przez Chrome DevTools MCP +## Istniejąca sesja przez Chrome DevTools MCP OpenClaw może także dołączyć do uruchomionego profilu przeglądarki opartej na Chromium przez -oficjalny serwer Chrome DevTools MCP. Pozwala to ponownie wykorzystać karty i stan logowania, +oficjalny serwer Chrome DevTools MCP. Pozwala to ponownie użyć kart i stanu logowania, które są już otwarte w tym profilu przeglądarki. Oficjalne materiały referencyjne i instrukcje konfiguracji: @@ -420,12 +420,12 @@ Wbudowany profil: - `user` -Opcjonalnie: utwórz własny niestandardowy profil existing-session, jeśli chcesz użyć +Opcjonalnie: utwórz własny niestandardowy profil istniejącej sesji, jeśli chcesz innej nazwy, koloru lub katalogu danych przeglądarki. -Zachowanie domyślne: +Domyślne zachowanie: -- Wbudowany profil `user` używa automatycznego łączenia Chrome MCP, które kieruje na +- Wbudowany profil `user` używa automatycznego połączenia Chrome MCP, które jest kierowane na domyślny lokalny profil Google Chrome. Użyj `userDataDir` dla Brave, Edge, Chromium lub niestandardowego profilu Chrome: @@ -457,7 +457,7 @@ Typowe strony inspect: - Brave: `brave://inspect/#remote-debugging` - Edge: `edge://inspect/#remote-debugging` -Test smoke działania dołączenia na żywo: +Test smoke dla aktywnego dołączania: ```bash openclaw browser --browser-profile user start @@ -471,65 +471,65 @@ Jak wygląda powodzenie: - `status` pokazuje `driver: existing-session` - `status` pokazuje `transport: chrome-mcp` - `status` pokazuje `running: true` -- `tabs` wyświetla już otwarte karty przeglądarki -- `snapshot` zwraca refy z wybranej aktywnej karty +- `tabs` wyświetla listę już otwartych kart przeglądarki +- `snapshot` zwraca refs z wybranej aktywnej karty Co sprawdzić, jeśli dołączenie nie działa: - docelowa przeglądarka oparta na Chromium ma wersję `144+` -- w stronie inspect tej przeglądarki włączono zdalne debugowanie +- zdalne debugowanie jest włączone na stronie inspect tej przeglądarki - przeglądarka wyświetliła monit o zgodę na dołączenie i został on zaakceptowany -- `openclaw doctor` migruje starą konfigurację przeglądarki opartą na rozszerzeniu i sprawdza, czy - Chrome jest zainstalowany lokalnie dla domyślnych profili auto-connect, ale nie może - włączyć zdalnego debugowania po stronie przeglądarki za Ciebie +- `openclaw doctor` migruje starą konfigurację przeglądarki opartą na rozszerzeniu i sprawdza, + czy Chrome jest zainstalowane lokalnie dla domyślnych profili auto-connect, ale nie może + włączyć za Ciebie zdalnego debugowania po stronie przeglądarki Użycie przez agenta: - Użyj `profile="user"`, gdy potrzebujesz zalogowanego stanu przeglądarki użytkownika. -- Jeśli używasz niestandardowego profilu existing-session, przekaż jawną nazwę tego profilu. -- Wybieraj ten tryb tylko wtedy, gdy użytkownik jest przy komputerze, aby zatwierdzić monit - o dołączenie. -- brama lub host węzła może uruchomić `npx chrome-devtools-mcp@latest --autoConnect` +- Jeśli używasz niestandardowego profilu istniejącej sesji, przekaż jawną nazwę tego profilu. +- Wybieraj ten tryb tylko wtedy, gdy użytkownik jest przy komputerze, aby zatwierdzić + monit o dołączenie. +- Gateway lub host node może uruchomić `npx chrome-devtools-mcp@latest --autoConnect` Uwagi: -- Ta ścieżka jest bardziej ryzykowna niż izolowany profil `openclaw`, ponieważ może +- Ta ścieżka wiąże się z większym ryzykiem niż odizolowany profil `openclaw`, ponieważ może działać wewnątrz Twojej zalogowanej sesji przeglądarki. - OpenClaw nie uruchamia przeglądarki dla tego sterownika; dołącza tylko do istniejącej sesji. - OpenClaw używa tutaj oficjalnego przepływu Chrome DevTools MCP `--autoConnect`. Jeśli - ustawiono `userDataDir`, OpenClaw przekazuje je dalej, aby kierować na jawny + ustawiono `userDataDir`, OpenClaw przekazuje je dalej, aby wskazać jawnie ten katalog danych użytkownika Chromium. -- Zrzuty ekranu existing-session obsługują przechwytywanie stron i przechwytywanie elementów `--ref` - ze snapshotów, ale nie obsługują selektorów CSS `--element`. -- Zrzuty ekranu stron existing-session działają bez Playwright przez Chrome MCP. - Zrzuty elementów oparte na refach (`--ref`) również działają, ale `--full-page` +- Zrzuty ekranu istniejącej sesji obsługują przechwycenia strony i przechwycenia elementów przez `--ref` + ze snapshotów, ale nie selektory CSS `--element`. +- Zrzuty ekranu stron istniejącej sesji działają bez Playwright przez Chrome MCP. + Oparte na ref zrzuty ekranu elementów (`--ref`) również tam działają, ale `--full-page` nie może być łączone z `--ref` ani `--element`. -- Działania existing-session są nadal bardziej ograniczone niż w ścieżce +- Działania istniejącej sesji są nadal bardziej ograniczone niż w ścieżce zarządzanej przeglądarki: - `click`, `type`, `hover`, `scrollIntoView`, `drag` i `select` wymagają - refów snapshotu zamiast selektorów CSS - - `click` obsługuje tylko lewy przycisk (bez nadpisywania przycisku ani modyfikatorów) + refs ze snapshotów zamiast selektorów CSS + - `click` obsługuje tylko lewy przycisk (bez nadpisywania przycisku i modyfikatorów) - `type` nie obsługuje `slowly=true`; użyj `fill` lub `press` - `press` nie obsługuje `delayMs` - `hover`, `scrollIntoView`, `drag`, `select`, `fill` i `evaluate` nie obsługują nadpisywania limitu czasu dla pojedynczego wywołania - `select` obecnie obsługuje tylko jedną wartość -- Existing-session `wait --url` obsługuje wzorce dokładne, częściowe i glob, +- `wait --url` dla istniejącej sesji obsługuje dokładne, częściowe i globowe wzorce tak jak inne sterowniki przeglądarki. `wait --load networkidle` nie jest jeszcze obsługiwane. -- Hooki uploadu existing-session wymagają `ref` lub `inputRef`, obsługują po jednym pliku - naraz i nie obsługują kierowania przez CSS `element`. -- Hooki dialogów existing-session nie obsługują nadpisywania limitu czasu. -- Niektóre funkcje nadal wymagają ścieżki zarządzanej przeglądarki, w tym działania - wsadowe, eksport PDF, przechwytywanie pobrań i `responsebody`. -- Existing-session jest lokalne dla hosta. Jeśli Chrome znajduje się na innej maszynie lub - w innej przestrzeni nazw sieci, użyj zdalnego CDP albo hosta węzła. +- Hooki przesyłania plików dla istniejącej sesji wymagają `ref` lub `inputRef`, obsługują jeden plik naraz + i nie obsługują wskazywania CSS `element`. +- Hooki dialogów istniejącej sesji nie obsługują nadpisywania limitu czasu. +- Niektóre funkcje nadal wymagają ścieżki zarządzanej przeglądarki, w tym działania wsadowe, + eksport PDF, przechwytywanie pobrań i `responsebody`. +- Istniejąca sesja jest lokalna względem hosta. Jeśli Chrome znajduje się na innej maszynie lub + w innej przestrzeni nazw sieci, użyj zamiast tego zdalnego CDP lub hosta node. ## Gwarancje izolacji -- **Dedykowany katalog danych użytkownika**: nigdy nie ingeruje w Twój osobisty profil przeglądarki. -- **Dedykowane porty**: unika `9222`, aby zapobiec kolizjom z przepływami pracy deweloperskiej. -- **Deterministyczne sterowanie kartami**: kierowanie kart według `targetId`, a nie „ostatniej karty”. +- **Dedykowany katalog danych użytkownika**: nigdy nie dotyka Twojego osobistego profilu przeglądarki. +- **Dedykowane porty**: unika `9222`, aby zapobiegać kolizjom z przepływami pracy deweloperskiej. +- **Deterministyczne sterowanie kartami**: kierowanie na karty według `targetId`, a nie „ostatnia karta”. ## Wybór przeglądarki @@ -541,7 +541,7 @@ Przy lokalnym uruchamianiu OpenClaw wybiera pierwszą dostępną: 4. Chromium 5. Chrome Canary -Możesz to nadpisać przez `browser.executablePath`. +Możesz to nadpisać za pomocą `browser.executablePath`. Platformy: @@ -549,9 +549,9 @@ Platformy: - Linux: szuka `google-chrome`, `brave`, `microsoft-edge`, `chromium` itd. - Windows: sprawdza typowe lokalizacje instalacji. -## API sterowania (opcjonalne) +## API sterowania (opcjonalnie) -Tylko dla integracji lokalnych brama udostępnia małe loopback API HTTP: +Tylko dla integracji lokalnych Gateway udostępnia niewielkie loopback API HTTP: - Status/start/stop: `GET /`, `POST /start`, `POST /stop` - Karty: `GET /tabs`, `POST /tabs/open`, `POST /tabs/focus`, `DELETE /tabs/:targetId` @@ -568,38 +568,38 @@ Tylko dla integracji lokalnych brama udostępnia małe loopback API HTTP: Wszystkie punkty końcowe akceptują `?profile=`. -Jeśli skonfigurowano uwierzytelnianie bramy wspólnym sekretem, trasy HTTP browser także wymagają uwierzytelniania: +Jeśli skonfigurowano uwierzytelnianie gateway wspólnym sekretem, trasy HTTP przeglądarki również wymagają uwierzytelniania: - `Authorization: Bearer ` -- `x-openclaw-password: ` lub HTTP Basic auth z tym hasłem +- `x-openclaw-password: ` lub uwierzytelnianie HTTP Basic z tym hasłem Uwagi: -- To samodzielne loopback API browser **nie** korzysta z trusted-proxy ani +- To samodzielne loopback API przeglądarki **nie** korzysta z trusted-proxy ani nagłówków tożsamości Tailscale Serve. -- Jeśli `gateway.auth.mode` ma wartość `none` lub `trusted-proxy`, te trasy loopback browser - nie dziedziczą tych trybów opartych na tożsamości; utrzymuj je wyłącznie na loopback. +- Jeśli `gateway.auth.mode` ma wartość `none` lub `trusted-proxy`, te loopback trasy przeglądarki + nie dziedziczą tych trybów opartych na tożsamości; utrzymuj je tylko na loopback. ### Kontrakt błędów `/act` -`POST /act` używa strukturalnej odpowiedzi błędu dla walidacji na poziomie trasy i +`POST /act` używa ustrukturyzowanej odpowiedzi błędu dla walidacji na poziomie trasy i błędów polityki: ```json { "error": "", "code": "ACT_*" } ``` -Bieżące wartości `code`: +Aktualne wartości `code`: -- `ACT_KIND_REQUIRED` (HTTP 400): brakuje `kind` albo jest nierozpoznane. -- `ACT_INVALID_REQUEST` (HTTP 400): ładunek działania nie przeszedł normalizacji lub walidacji. +- `ACT_KIND_REQUIRED` (HTTP 400): brakuje `kind` lub nie jest rozpoznawane. +- `ACT_INVALID_REQUEST` (HTTP 400): payload działania nie przeszedł normalizacji lub walidacji. - `ACT_SELECTOR_UNSUPPORTED` (HTTP 400): użyto `selector` z nieobsługiwanym rodzajem działania. -- `ACT_EVALUATE_DISABLED` (HTTP 403): `evaluate` (lub `wait --fn`) jest wyłączone przez konfigurację. -- `ACT_TARGET_ID_MISMATCH` (HTTP 403): najwyższopoziomowy lub wsadowy `targetId` koliduje z celem żądania. -- `ACT_EXISTING_SESSION_UNSUPPORTED` (HTTP 501): działanie nie jest obsługiwane dla profili existing-session. +- `ACT_EVALUATE_DISABLED` (HTTP 403): `evaluate` (lub `wait --fn`) jest wyłączone w konfiguracji. +- `ACT_TARGET_ID_MISMATCH` (HTTP 403): najwyższego poziomu lub wsadowe `targetId` koliduje z celem żądania. +- `ACT_EXISTING_SESSION_UNSUPPORTED` (HTTP 501): działanie nie jest obsługiwane dla profili istniejącej sesji. -Inne błędy środowiska uruchomieniowego nadal mogą zwracać `{ "error": "" }` bez -pola `code`. +Inne błędy czasu działania mogą nadal zwracać `{ "error": "" }` bez pola +`code`. ### Wymaganie Playwright @@ -611,29 +611,29 @@ Co nadal działa bez Playwright: - Snapshoty ARIA - Zrzuty ekranu stron dla zarządzanej przeglądarki `openclaw`, gdy dostępny jest - WebSocket CDP dla karty + WebSocket CDP dla danej karty - Zrzuty ekranu stron dla profili `existing-session` / Chrome MCP -- Zrzuty ekranu existing-session oparte na refach (`--ref`) z danych wyjściowych snapshotu +- Oparte na `ref` zrzuty ekranu istniejącej sesji (`--ref`) z danych wyjściowych snapshotu Co nadal wymaga Playwright: - `navigate` - `act` -- snapshoty AI / snapshoty roli -- zrzuty ekranu elementów z selektorem CSS (`--element`) -- pełny eksport PDF przeglądarki +- Snapshoty AI / snapshoty roli +- Zrzuty ekranu elementów przez selektor CSS (`--element`) +- Eksport pełnego PDF przeglądarki Zrzuty ekranu elementów odrzucają też `--full-page`; trasa zwraca `fullPage is not supported for element screenshots`. Jeśli widzisz `Playwright is not available in this gateway build`, zainstaluj pełny -pakiet Playwright (nie `playwright-core`) i uruchom ponownie bramę albo zainstaluj -OpenClaw ponownie z obsługą browser. +pakiet Playwright (nie `playwright-core`) i uruchom gateway ponownie albo zainstaluj +OpenClaw ponownie z obsługą przeglądarki. -#### Instalacja Playwright w Dockerze +#### Instalacja Playwright w Docker -Jeśli Twoja brama działa w Dockerze, unikaj `npx playwright` (konflikty nadpisań npm). -Zamiast tego użyj bundlowanego CLI: +Jeśli Twój Gateway działa w Docker, unikaj `npx playwright` (konflikty nadpisań npm). +Użyj zamiast tego dołączonego CLI: ```bash docker compose run --rm openclaw-cli \ @@ -641,26 +641,26 @@ docker compose run --rm openclaw-cli \ ``` Aby zachować pobrane przeglądarki, ustaw `PLAYWRIGHT_BROWSERS_PATH` (na przykład -`/home/node/.cache/ms-playwright`) i upewnij się, że `/home/node` jest trwałe przez +`/home/node/.cache/ms-playwright`) i upewnij się, że `/home/node` jest zachowywane przez `OPENCLAW_HOME_VOLUME` lub bind mount. Zobacz [Docker](/pl/install/docker). ## Jak to działa (wewnętrznie) Przepływ na wysokim poziomie: -- Mały **serwer sterowania** przyjmuje żądania HTTP. +- Niewielki **serwer sterowania** akceptuje żądania HTTP. - Łączy się z przeglądarkami opartymi na Chromium (Chrome/Brave/Edge/Chromium) przez **CDP**. -- Do zaawansowanych działań (kliknięcie/pisanie/snapshot/PDF) używa **Playwright** ponad +- Do zaawansowanych działań (kliknięcie/pisanie/snapshot/PDF) używa **Playwright** na warstwie CDP. - Gdy brakuje Playwright, dostępne są tylko operacje niewymagające Playwright. -Ten projekt utrzymuje agenta na stabilnym, deterministycznym interfejsie, jednocześnie pozwalając -wymieniać lokalne/zdalne przeglądarki i profile. +Taka konstrukcja zapewnia agentowi stabilny, deterministyczny interfejs, a jednocześnie pozwala +Ci wymieniać lokalne/zdalne przeglądarki i profile. -## Krótkie omówienie CLI +## Szybkie odniesienie do CLI -Wszystkie polecenia akceptują `--browser-profile `, aby kierować na konkretny profil. -Wszystkie polecenia akceptują też `--json` dla danych wyjściowych czytelnych maszynowo (stabilne ładunki). +Wszystkie polecenia akceptują `--browser-profile `, aby wskazać konkretny profil. +Wszystkie polecenia akceptują też `--json` dla danych wyjściowych czytelnych maszynowo (stabilne payloady). Podstawy: @@ -693,7 +693,7 @@ Inspekcja: Uwaga dotycząca cyklu życia: -- Dla profili tylko-dołączania i zdalnego CDP `openclaw browser stop` nadal jest +- Dla profili tylko-dołączanych i zdalnych profili CDP `openclaw browser stop` nadal jest właściwym poleceniem czyszczenia po testach. Zamyka aktywną sesję sterowania i usuwa tymczasowe nadpisania emulacji zamiast zabijać bazową przeglądarkę. @@ -749,58 +749,58 @@ Uwagi: - `upload` i `dialog` to wywołania **uzbrajające**; uruchom je przed kliknięciem/naciśnięciem, które wywołuje selektor plików/okno dialogowe. -- Ścieżki wyjściowe pobrań i śladów są ograniczone do tymczasowych katalogów OpenClaw: - - ślady: `/tmp/openclaw` (awaryjnie: `${os.tmpdir()}/openclaw`) - - pobrania: `/tmp/openclaw/downloads` (awaryjnie: `${os.tmpdir()}/openclaw/downloads`) -- Ścieżki uploadu są ograniczone do tymczasowego katalogu uploadów OpenClaw: - - uploady: `/tmp/openclaw/uploads` (awaryjnie: `${os.tmpdir()}/openclaw/uploads`) -- `upload` może też ustawiać inputy plików bezpośrednio przez `--input-ref` lub `--element`. +- Ścieżki wyjściowe pobrań i trace są ograniczone do tymczasowych katalogów głównych OpenClaw: + - trace: `/tmp/openclaw` (zapasowo: `${os.tmpdir()}/openclaw`) + - pobrania: `/tmp/openclaw/downloads` (zapasowo: `${os.tmpdir()}/openclaw/downloads`) +- Ścieżki przesyłania są ograniczone do tymczasowego katalogu głównego uploadów OpenClaw: + - uploady: `/tmp/openclaw/uploads` (zapasowo: `${os.tmpdir()}/openclaw/uploads`) +- `upload` może również ustawiać wejścia plików bezpośrednio przez `--input-ref` lub `--element`. - `snapshot`: - - `--format ai` (domyślnie, gdy zainstalowano Playwright): zwraca snapshot AI z liczbowymi refami (`aria-ref=""`). - - `--format aria`: zwraca drzewo dostępności (bez refów; tylko do inspekcji). - - `--efficient` (lub `--mode efficient`): kompaktowy preset snapshotu roli (interactive + compact + depth + niższe maxChars). - - Domyślna konfiguracja (tylko narzędzie/CLI): ustaw `browser.snapshotDefaults.mode: "efficient"`, aby używać wydajnych snapshotów, gdy wywołujący nie przekazuje trybu (zobacz [Konfiguracja bramy](/pl/gateway/configuration-reference#browser)). - - Opcje snapshotu roli (`--interactive`, `--compact`, `--depth`, `--selector`) wymuszają snapshot oparty na rolach z refami typu `ref=e12`. - - `--frame "