From 20b2c4ef13ddda2e3cb4f81c2c301cb7282b7436 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Fri, 24 Apr 2026 09:54:37 +0000 Subject: [PATCH] chore(i18n): refresh pl translations --- docs/pl/plugins/google-meet.md | 279 +++++++++++++++------------- docs/pl/plugins/voice-call.md | 317 +++++++++++++++++++++----------- docs/pl/tools/media-overview.md | 91 ++++----- 3 files changed, 401 insertions(+), 286 deletions(-) diff --git a/docs/pl/plugins/google-meet.md b/docs/pl/plugins/google-meet.md index 3f1b02ff6..8acb8182a 100644 --- a/docs/pl/plugins/google-meet.md +++ b/docs/pl/plugins/google-meet.md @@ -1,54 +1,57 @@ --- read_when: - Chcesz, aby agent OpenClaw dołączył do rozmowy Google Meet - - Konfigurujesz Chrome, Chrome Node lub Twilio jako transport Google Meet -summary: 'Plugin Google Meet: dołączanie do jawnych URL-i Meet przez Chrome lub Twilio z domyślnymi ustawieniami głosu w czasie rzeczywistym' + - Konfigurujesz Chrome, węzeł Chrome lub Twilio jako transport Google Meet +summary: 'Plugin Google Meet: dołączanie do jawnych adresów URL Meet przez Chrome lub Twilio z domyślnymi ustawieniami głosu w czasie rzeczywistym' title: Plugin Google Meet x-i18n: - generated_at: "2026-04-24T09:22:43Z" + generated_at: "2026-04-24T09:53:34Z" model: gpt-5.4 provider: openai - source_hash: 8d430a1f2d6ee7fc1d997ef388a2e0d2915a6475480343e7060edac799dfc027 + source_hash: f1673ac4adc9cf163194a340dd6e451d0e4d28bb62adeb126898298e62106d43 source_path: plugins/google-meet.md workflow: 15 --- # Google Meet (Plugin) -Obsługa uczestników Google Meet dla OpenClaw. +Obsługa uczestnika Google Meet dla OpenClaw. -Ten Plugin jest z założenia jawny: +Plugin jest celowo jawny: -- Dołącza tylko do jawnego URL `https://meet.google.com/...`. -- Domyślnym trybem głosowym jest `realtime`. -- Głos w czasie rzeczywistym może wywoływać pełnego agenta OpenClaw, gdy potrzebne są głębsze +- Dołącza tylko do jawnego adresu URL `https://meet.google.com/...`. +- Głos `realtime` jest trybem domyślnym. +- Głos w czasie rzeczywistym może wywołać pełnego agenta OpenClaw, gdy potrzebne są głębsze rozumowanie lub narzędzia. -- Uwierzytelnianie zaczyna się od osobistego Google OAuth albo już zalogowanego profilu Chrome. +- Uwierzytelnianie zaczyna się od osobistego Google OAuth lub już zalogowanego profilu Chrome. - Nie ma automatycznego komunikatu o zgodzie. - Domyślnym backendem audio Chrome jest `BlackHole 2ch`. -- Chrome może działać lokalnie albo na sparowanym hoście Node. -- Twilio akceptuje numer dial-in oraz opcjonalny PIN lub sekwencję DTMF. -- Polecenie CLI to `googlemeet`; `meet` jest zarezerwowane dla szerszych - przepływów telekonferencji agentów. +- Chrome może działać lokalnie lub na sparowanym hoście Node. +- Twilio przyjmuje numer do połączenia oraz opcjonalny PIN lub sekwencję DTMF. +- Poleceniem CLI jest `googlemeet`; `meet` jest zarezerwowane dla szerszych + przepływów telekonferencyjnych agenta. ## Szybki start -Zainstaluj lokalne zależności audio i upewnij się, że dostawca realtime może używać -OpenAI: +Zainstaluj lokalne zależności audio i skonfiguruj dostawcę głosu działającego w czasie rzeczywistym +w backendzie. OpenAI jest domyślne; Google Gemini Live również działa z +`realtime.provider: "google"`: ```bash brew install blackhole-2ch sox export OPENAI_API_KEY=sk-... +# lub +export GEMINI_API_KEY=... ``` `blackhole-2ch` instaluje wirtualne urządzenie audio `BlackHole 2ch`. Instalator -Homebrew wymaga restartu, zanim macOS udostępni to urządzenie: +Homebrew wymaga ponownego uruchomienia, zanim macOS udostępni to urządzenie: ```bash sudo reboot ``` -Po restarcie zweryfikuj oba elementy: +Po ponownym uruchomieniu sprawdź oba elementy: ```bash system_profiler SPAudioDataType | grep -i BlackHole @@ -92,38 +95,39 @@ Albo pozwól agentowi dołączyć przez narzędzie `google_meet`: ``` Chrome dołącza jako zalogowany profil Chrome. W Meet wybierz `BlackHole 2ch` dla -ścieżki mikrofonu/głośnika używanej przez OpenClaw. Aby uzyskać czysty dźwięk -dupleksowy, użyj oddzielnych urządzeń wirtualnych albo grafu w stylu Loopback; jedno urządzenie BlackHole wystarczy -do pierwszego testu smoke, ale może powodować echo. +ścieżki mikrofonu/głośnika używanej przez OpenClaw. Aby uzyskać czysty dźwięk dupleksowy, użyj +osobnych urządzeń wirtualnych lub grafu w stylu Loopback; pojedyncze urządzenie BlackHole +wystarcza do pierwszego testu smoke, ale może powodować echo. ### Lokalny Gateway + Chrome w Parallels -Nie potrzebujesz pełnego Gateway OpenClaw ani klucza API modelu wewnątrz maszyny wirtualnej macOS -tylko po to, aby to VM było właścicielem Chrome. Uruchom Gateway i agenta lokalnie, a następnie uruchom -hosta Node w VM. Włącz dołączony Plugin w VM raz, aby Node +**Nie** potrzebujesz pełnego OpenClaw Gateway ani klucza API modelu wewnątrz macOS VM +tylko po to, aby VM był hostem dla Chrome. Uruchom Gateway i agenta lokalnie, a następnie uruchom +hosta Node w VM. Włącz dołączony Plugin w VM jeden raz, aby Node ogłaszał polecenie Chrome: Co działa gdzie: -- Host Gateway: Gateway OpenClaw, obszar roboczy agenta, klucze modelu/API, dostawca realtime - oraz konfiguracja Pluginu Google Meet. -- VM macOS w Parallels: CLI/node host OpenClaw, Google Chrome, SoX, BlackHole 2ch, +- Host Gateway: OpenClaw Gateway, przestrzeń robocza agenta, klucze modelu/API, dostawca + `realtime` oraz konfiguracja pluginu Google Meet. +- Parallels macOS VM: CLI/host Node OpenClaw, Google Chrome, SoX, BlackHole 2ch oraz profil Chrome zalogowany do Google. -- Niewymagane w VM: usługa Gateway, konfiguracja agenta, klucz OpenAI/GPT ani konfiguracja dostawcy modelu. +- Niepotrzebne w VM: usługa Gateway, konfiguracja agenta, klucz OpenAI/GPT ani konfiguracja + dostawcy modelu. -Zainstaluj zależności VM: +Zainstaluj zależności w VM: ```bash brew install blackhole-2ch sox ``` -Uruchom ponownie VM po instalacji BlackHole, aby macOS udostępnił `BlackHole 2ch`: +Uruchom ponownie VM po zainstalowaniu BlackHole, aby macOS udostępnił `BlackHole 2ch`: ```bash sudo reboot ``` -Po restarcie sprawdź, czy VM widzi urządzenie audio i polecenia SoX: +Po ponownym uruchomieniu sprawdź, czy VM widzi urządzenie audio i polecenia SoX: ```bash system_profiler SPAudioDataType | grep -i BlackHole @@ -142,15 +146,15 @@ Uruchom hosta Node w VM: openclaw node run --host --port 18789 --display-name parallels-macos ``` -Jeśli `` jest adresem IP LAN i nie używasz TLS, Node odrzuci to -jawne połączenie WebSocket, chyba że jawnie zezwolisz na tę zaufaną sieć prywatną: +Jeśli `` jest adresem IP w LAN i nie używasz TLS, Node odrzuca +nieszyfrowany WebSocket, chyba że jawnie włączysz to dla tej zaufanej sieci prywatnej: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ openclaw node run --host --port 18789 --display-name parallels-macos ``` -Użyj tej samej zmiennej środowiskowej przy instalowaniu Node jako LaunchAgent: +Użyj tej samej zmiennej środowiskowej podczas instalowania Node jako LaunchAgent: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ @@ -158,8 +162,8 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ openclaw node restart ``` -`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` to środowisko procesu, a nie -ustawienie `openclaw.json`. `openclaw node install` zapisuje je w środowisku LaunchAgent, +`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` jest środowiskiem procesu, a nie ustawieniem +`openclaw.json`. `openclaw node install` zapisuje je w środowisku LaunchAgent, gdy jest obecne w poleceniu instalacji. Zatwierdź Node z hosta Gateway: @@ -169,13 +173,13 @@ openclaw devices list openclaw devices approve ``` -Potwierdź, że Gateway widzi Node i że ogłasza `googlemeet.chrome`: +Potwierdź, że Gateway widzi Node i że ogłasza on `googlemeet.chrome`: ```bash openclaw nodes status ``` -Skieruj Meet przez ten Node na hoście Gateway: +Kieruj Meet przez ten Node na hoście Gateway: ```json5 { @@ -206,63 +210,64 @@ Teraz dołącz normalnie z hosta Gateway: openclaw googlemeet join https://meet.google.com/abc-defg-hij ``` -albo poproś agenta, aby użył narzędzia `google_meet` z `transport: "chrome-node"`. +albo poproś agenta o użycie narzędzia `google_meet` z `transport: "chrome-node"`. -Jeśli `chromeNode.node` zostanie pominięte, OpenClaw automatycznie wybiera tylko wtedy, gdy dokładnie jeden -podłączony Node ogłasza `googlemeet.chrome`. Jeśli podłączonych jest kilka +Jeśli `chromeNode.node` zostanie pominięte, OpenClaw wybiera automatycznie tylko wtedy, gdy dokładnie jeden +połączony Node ogłasza `googlemeet.chrome`. Jeśli podłączonych jest kilka obsługiwanych Node, ustaw `chromeNode.node` na identyfikator Node, nazwę wyświetlaną lub zdalny adres IP. -Typowe kontrole awarii: +Typowe kontrole w przypadku błędów: - `No connected Google Meet-capable node`: uruchom `openclaw node run` w VM, - zatwierdź parowanie i upewnij się, że w VM uruchomiono `openclaw plugins enable google-meet`. - Potwierdź też, że host Gateway zezwala na polecenie Node przez + zatwierdź parowanie i upewnij się, że uruchomiono `openclaw plugins enable google-meet` + w VM. Potwierdź też, że host Gateway zezwala na polecenie Node przez `gateway.nodes.allowCommands: ["googlemeet.chrome"]`. - `BlackHole 2ch audio device not found on the node`: zainstaluj `blackhole-2ch` - w VM i uruchom ponownie VM. -- Chrome otwiera się, ale nie może dołączyć: zaloguj się do Chrome wewnątrz VM i potwierdź, że - ten profil może ręcznie dołączyć do URL Meet. -- Brak audio: w Meet skieruj mikrofon/głośnik przez ścieżkę wirtualnego urządzenia audio - używaną przez OpenClaw; dla czystego dupleksu użyj oddzielnych urządzeń wirtualnych albo routingu - w stylu Loopback. + w VM i uruchom VM ponownie. +- Chrome otwiera się, ale nie może dołączyć: zaloguj się do Chrome wewnątrz VM i potwierdź, że ten + profil może ręcznie dołączyć do adresu URL Meet. +- Brak dźwięku: w Meet kieruj mikrofon/głośnik przez ścieżkę wirtualnego urządzenia audio + używaną przez OpenClaw; użyj osobnych urządzeń wirtualnych lub routingu w stylu Loopback, + aby uzyskać czysty dupleks audio. ## Uwagi dotyczące instalacji -Domyślna ścieżka Chrome realtime używa dwóch zewnętrznych narzędzi: +Domyślna konfiguracja Chrome `realtime` używa dwóch narzędzi zewnętrznych: - `sox`: narzędzie audio w wierszu poleceń. Plugin używa jego poleceń `rec` i `play` - dla domyślnego mostu audio 8 kHz G.711 mu-law. -- `blackhole-2ch`: wirtualny sterownik audio macOS. Tworzy urządzenie audio `BlackHole 2ch`, - przez które Chrome/Meet mogą kierować dźwięk. + dla domyślnego mostka audio 8 kHz G.711 mu-law. +- `blackhole-2ch`: wirtualny sterownik audio dla macOS. Tworzy urządzenie audio `BlackHole 2ch`, + przez które Chrome/Meet może kierować dźwięk. -OpenClaw nie dołącza ani nie redystrybuuje żadnego z tych pakietów. Dokumentacja prosi użytkowników o -instalację ich jako zależności hosta przez Homebrew. SoX jest licencjonowany jako -`LGPL-2.0-only AND GPL-2.0-only`; BlackHole jako GPL-3.0. Jeśli budujesz -instalator lub appliance, który dołącza BlackHole do OpenClaw, sprawdź -warunki licencyjne upstream BlackHole albo uzyskaj osobną licencję od Existential Audio. +OpenClaw nie dołącza ani nie redystrybuuje żadnego z tych pakietów. Dokumentacja prosi użytkowników +o zainstalowanie ich jako zależności hosta przez Homebrew. SoX jest licencjonowany na +`LGPL-2.0-only AND GPL-2.0-only`; BlackHole na GPL-3.0. Jeśli budujesz +instalator lub appliance, który dołącza BlackHole do OpenClaw, przejrzyj warunki licencyjne +BlackHole u źródła albo uzyskaj osobną licencję od Existential Audio. ## Transporty ### Chrome -Transport Chrome otwiera URL Meet w Google Chrome i dołącza jako zalogowany -profil Chrome. Na macOS Plugin sprawdza obecność `BlackHole 2ch` przed uruchomieniem. -Jeśli jest skonfigurowany, uruchamia też polecenie sprawdzania kondycji mostu audio oraz polecenie startowe -przed otwarciem Chrome. Użyj `chrome`, gdy Chrome/audio działają na hoście Gateway; -użyj `chrome-node`, gdy Chrome/audio działają na sparowanym Node, takim jak VM macOS w Parallels. +Transport Chrome otwiera adres URL Meet w Google Chrome i dołącza jako zalogowany +profil Chrome. W macOS Plugin sprawdza obecność `BlackHole 2ch` przed uruchomieniem. +Jeśli skonfigurowano, uruchamia też polecenie sprawdzania kondycji mostka audio oraz polecenie +startowe przed otwarciem Chrome. Użyj `chrome`, gdy Chrome/audio działa na hoście Gateway; +użyj `chrome-node`, gdy Chrome/audio działa na sparowanym Node, takim jak Parallels +macOS VM. ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome-node ``` -Skieruj dźwięk mikrofonu i głośnika Chrome przez lokalny most audio OpenClaw. -Jeśli `BlackHole 2ch` nie jest zainstalowane, dołączenie kończy się błędem konfiguracji -zamiast po cichu dołączyć bez ścieżki audio. +Kieruj dźwięk mikrofonu i głośnika Chrome przez lokalny mostek audio OpenClaw. +Jeśli `BlackHole 2ch` nie jest zainstalowany, dołączenie kończy się błędem konfiguracji +zamiast cichego dołączenia bez ścieżki audio. ### Twilio -Transport Twilio to ścisły plan wybierania delegowany do Pluginu Voice Call. Nie +Transport Twilio to ścisły plan wybierania delegowany do pluginu Voice Call. Nie parsuje stron Meet w poszukiwaniu numerów telefonów. ```bash @@ -281,7 +286,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ --dtmf-sequence ww123456# ``` -## OAuth i preflight +## OAuth i wstępna kontrola Dostęp do Google Meet Media API najpierw używa osobistego klienta OAuth. Skonfiguruj `oauth.clientId` i opcjonalnie `oauth.clientSecret`, a następnie uruchom: @@ -291,47 +296,50 @@ openclaw googlemeet auth login --json ``` Polecenie wypisuje blok konfiguracji `oauth` z tokenem odświeżania. Używa PKCE, -callbacku localhost pod `http://localhost:8085/oauth2callback` oraz ręcznego +wywołania zwrotnego localhost pod `http://localhost:8085/oauth2callback` oraz ręcznego przepływu kopiuj/wklej z `--manual`. -Te zmienne środowiskowe są akceptowane jako fallbacki: +Te zmienne środowiskowe są akceptowane jako wartości zapasowe: -- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` albo `GOOGLE_MEET_CLIENT_ID` -- `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` albo `GOOGLE_MEET_CLIENT_SECRET` -- `OPENCLAW_GOOGLE_MEET_REFRESH_TOKEN` albo `GOOGLE_MEET_REFRESH_TOKEN` -- `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN` albo `GOOGLE_MEET_ACCESS_TOKEN` -- `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT` albo +- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` lub `GOOGLE_MEET_CLIENT_ID` +- `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` lub `GOOGLE_MEET_CLIENT_SECRET` +- `OPENCLAW_GOOGLE_MEET_REFRESH_TOKEN` lub `GOOGLE_MEET_REFRESH_TOKEN` +- `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN` lub `GOOGLE_MEET_ACCESS_TOKEN` +- `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT` lub `GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT` -- `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` albo `GOOGLE_MEET_DEFAULT_MEETING` -- `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` albo `GOOGLE_MEET_PREVIEW_ACK` +- `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` lub `GOOGLE_MEET_DEFAULT_MEETING` +- `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` lub `GOOGLE_MEET_PREVIEW_ACK` -Rozwiąż URL Meet, kod albo `spaces/{id}` przez `spaces.get`: +Rozwiąż adres URL Meet, kod lub `spaces/{id}` przez `spaces.get`: ```bash openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij ``` -Uruchom preflight przed pracą z multimediami: +Uruchom wstępną kontrolę przed pracą z mediami: ```bash openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij ``` -Ustaw `preview.enrollmentAcknowledged: true` dopiero po potwierdzeniu, że twój -projekt Cloud, principal OAuth i uczestnicy spotkania są zapisani do programu Google -Workspace Developer Preview dla interfejsów Meet media API. +Ustaw `preview.enrollmentAcknowledged: true` dopiero po potwierdzeniu, że Twój projekt Cloud, +podmiot OAuth i uczestnicy spotkania są zapisani do Google +Workspace Developer Preview Program dla interfejsów API mediów Meet. ## Konfiguracja -Typowa ścieżka Chrome realtime wymaga tylko włączenia Pluginu, BlackHole, SoX -i klucza OpenAI: +Typowa ścieżka Chrome `realtime` wymaga tylko włączonego pluginu, BlackHole, SoX +oraz klucza dostawcy głosu działającego w czasie rzeczywistym w backendzie. OpenAI jest domyślne; ustaw +`realtime.provider: "google"`, aby używać Google Gemini Live: ```bash brew install blackhole-2ch sox export OPENAI_API_KEY=sk-... +# lub +export GEMINI_API_KEY=... ``` -Ustaw konfigurację Pluginu pod `plugins.entries.google-meet.config`: +Ustaw konfigurację pluginu w `plugins.entries.google-meet.config`: ```json5 { @@ -350,18 +358,18 @@ Wartości domyślne: - `defaultTransport: "chrome"` - `defaultMode: "realtime"` -- `chromeNode.node`: opcjonalny identyfikator/nazwa/IP Node dla `chrome-node` +- `chromeNode.node`: opcjonalny identyfikator/nazwa/adres IP Node dla `chrome-node` - `chrome.audioBackend: "blackhole-2ch"` -- `chrome.audioInputCommand`: polecenie SoX `rec` zapisujące 8 kHz G.711 mu-law - audio do stdout -- `chrome.audioOutputCommand`: polecenie SoX `play` odczytujące 8 kHz G.711 mu-law - audio ze stdin +- `chrome.audioInputCommand`: polecenie SoX `rec` zapisujące dźwięk 8 kHz G.711 mu-law + na stdout +- `chrome.audioOutputCommand`: polecenie SoX `play` odczytujące dźwięk 8 kHz G.711 mu-law + ze stdin - `realtime.provider: "openai"` - `realtime.toolPolicy: "safe-read-only"` - `realtime.instructions`: krótkie odpowiedzi mówione, z `openclaw_agent_consult` dla głębszych odpowiedzi -- `realtime.introMessage`: krótki mówiony komunikat gotowości, gdy most realtime - się połączy; ustaw na `""`, aby dołączać po cichu +- `realtime.introMessage`: krótki mówiony test gotowości po połączeniu mostka `realtime`; + ustaw na `""`, aby dołączyć po cichu Opcjonalne nadpisania: @@ -377,8 +385,15 @@ Opcjonalne nadpisania: node: "parallels-macos", }, realtime: { + provider: "google", toolPolicy: "owner", - introMessage: "Say exactly: I'm here.", + introMessage: "Powiedz dokładnie: Jestem tutaj.", + providers: { + google: { + model: "gemini-2.5-flash-native-audio-preview-12-2025", + voice: "Kore", + }, + }, }, } ``` @@ -412,46 +427,46 @@ Agenci mogą używać narzędzia `google_meet`: ``` Użyj `transport: "chrome"`, gdy Chrome działa na hoście Gateway. Użyj -`transport: "chrome-node"`, gdy Chrome działa na sparowanym Node, takim jak VM -w Parallels. W obu przypadkach model realtime i `openclaw_agent_consult` działają na -hoście Gateway, więc poświadczenia modelu tam pozostają. +`transport: "chrome-node"`, gdy Chrome działa na sparowanym Node, takim jak Parallels +VM. W obu przypadkach model `realtime` i `openclaw_agent_consult` działają na +hoście Gateway, więc poświadczenia modelu pozostają tam. -Użyj `action: "status"`, aby wyświetlić aktywne sesje albo sprawdzić identyfikator sesji. Użyj -`action: "speak"` z `sessionId` i `message`, aby agent realtime +Użyj `action: "status"`, aby wyświetlić aktywne sesje lub sprawdzić identyfikator sesji. Użyj +`action: "speak"` z `sessionId` i `message`, aby agent `realtime` natychmiast coś powiedział. Użyj `action: "leave"`, aby oznaczyć sesję jako zakończoną. ```json { "action": "speak", "sessionId": "meet_...", - "message": "Say exactly: I'm here and listening." + "message": "Powiedz dokładnie: Jestem tutaj i słucham." } ``` -## Realtime agent consult +## Konsultacja z agentem realtime -Tryb Chrome realtime jest zoptymalizowany pod żywą pętlę głosową. Dostawca -głosu realtime słyszy dźwięk spotkania i mówi przez skonfigurowany most audio. -Gdy model realtime potrzebuje głębszego rozumowania, bieżących informacji albo zwykłych +Tryb Chrome `realtime` jest zoptymalizowany pod kątem pętli głosowej na żywo. Dostawca głosu +działającego w czasie rzeczywistym słyszy dźwięk spotkania i mówi przez skonfigurowany mostek audio. +Gdy model `realtime` potrzebuje głębszego rozumowania, aktualnych informacji lub zwykłych narzędzi OpenClaw, może wywołać `openclaw_agent_consult`. -Narzędzie consult uruchamia w tle zwykłego agenta OpenClaw z ostatnim -kontekstem transkryptu spotkania i zwraca zwięzłą odpowiedź mówioną do sesji -głosowej realtime. Model głosowy może następnie wypowiedzieć tę odpowiedź z powrotem w spotkaniu. +Narzędzie konsultacji uruchamia w tle zwykłego agenta OpenClaw z kontekstem +ostatniej transkrypcji spotkania i zwraca zwięzłą odpowiedź mówioną do sesji głosowej +`realtime`. Model głosowy może następnie wypowiedzieć tę odpowiedź z powrotem na spotkaniu. -`realtime.toolPolicy` steruje przebiegiem consult: +`realtime.toolPolicy` steruje przebiegiem konsultacji: -- `safe-read-only`: udostępnia narzędzie consult i ogranicza zwykłego agenta do +- `safe-read-only`: udostępnij narzędzie konsultacji i ogranicz zwykłego agenta do `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` oraz `memory_get`. -- `owner`: udostępnia narzędzie consult i pozwala zwykłemu agentowi używać normalnej +- `owner`: udostępnij narzędzie konsultacji i pozwól zwykłemu agentowi używać normalnej polityki narzędzi agenta. -- `none`: nie udostępnia narzędzia consult modelowi głosowemu realtime. +- `none`: nie udostępniaj narzędzia konsultacji modelowi głosowemu `realtime`. -Klucz sesji consult jest ograniczony per sesja Meet, dzięki czemu kolejne wywołania consult -mogą ponownie używać wcześniejszego kontekstu consult podczas tego samego spotkania. +Klucz sesji konsultacji jest ograniczony do danej sesji Meet, więc kolejne wywołania +konsultacji mogą ponownie używać wcześniejszego kontekstu konsultacji podczas tego samego spotkania. -Aby wymusić mówiony komunikat gotowości po pełnym dołączeniu Chrome do połączenia: +Aby wymusić mówiony test gotowości po pełnym dołączeniu Chrome do rozmowy: ```bash openclaw googlemeet speak meet_... "Say exactly: I'm here and listening." @@ -459,29 +474,29 @@ openclaw googlemeet speak meet_... "Say exactly: I'm here and listening." ## Uwagi -Oficjalne media API Google Meet jest zorientowane na odbiór, więc mówienie do -połączenia Meet nadal wymaga ścieżki uczestnika. Ten Plugin utrzymuje tę granicę jako widoczną: -Chrome obsługuje udział przeglądarki i lokalny routing audio; Twilio obsługuje +Oficjalne media API Google Meet jest zorientowane na odbiór, więc mówienie podczas rozmowy Meet +nadal wymaga ścieżki uczestnika. Ten Plugin zachowuje tę granicę jako widoczną: +Chrome obsługuje udział z poziomu przeglądarki i lokalne routowanie audio; Twilio obsługuje udział przez połączenie telefoniczne. -Tryb Chrome realtime wymaga jednego z poniższych: +Tryb Chrome `realtime` wymaga jednego z poniższych: -- `chrome.audioInputCommand` plus `chrome.audioOutputCommand`: OpenClaw przejmuje - most modelu realtime i przesyła audio 8 kHz G.711 mu-law między tymi - poleceniami a wybranym dostawcą głosu realtime. -- `chrome.audioBridgeCommand`: zewnętrzne polecenie mostu przejmuje całą lokalną - ścieżkę audio i musi zakończyć się po uruchomieniu lub zweryfikowaniu swojego demona. +- `chrome.audioInputCommand` oraz `chrome.audioOutputCommand`: OpenClaw zarządza + mostkiem modelu `realtime` i przesyła dźwięk 8 kHz G.711 mu-law między tymi + poleceniami a wybranym dostawcą głosu `realtime`. +- `chrome.audioBridgeCommand`: zewnętrzne polecenie mostka zarządza całą lokalną + ścieżką audio i musi zakończyć działanie po uruchomieniu lub sprawdzeniu swojego demona. -Aby uzyskać czysty dźwięk dupleksowy, kieruj wyjście Meet i mikrofon Meet przez oddzielne -urządzenia wirtualne albo graf urządzeń wirtualnych w stylu Loopback. Pojedyncze współdzielone -urządzenie BlackHole może odbijać innych uczestników z powrotem do połączenia. +Aby uzyskać czysty dźwięk dupleksowy, kieruj wyjście Meet i mikrofon Meet przez osobne +urządzenia wirtualne lub graf urządzeń wirtualnych w stylu Loopback. Pojedyncze współdzielone +urządzenie BlackHole może powodować echo innych uczestników z powrotem do rozmowy. -`googlemeet speak` wyzwala aktywny most audio realtime dla sesji Chrome. -`googlemeet leave` zatrzymuje ten most. Dla sesji Twilio delegowanych -przez Plugin Voice Call `leave` rozłącza także bazowe połączenie głosowe. +`googlemeet speak` wyzwala aktywny mostek audio `realtime` dla sesji Chrome. +`googlemeet leave` zatrzymuje ten mostek. W przypadku sesji Twilio delegowanych +przez Plugin Voice Call, `leave` również rozłącza bazowe połączenie głosowe. ## Powiązane -- [Plugin połączeń głosowych](/pl/plugins/voice-call) -- [Tryb talk](/pl/nodes/talk) -- [Tworzenie Pluginów](/pl/plugins/building-plugins) +- [Plugin Voice call](/pl/plugins/voice-call) +- [Tryb Talk](/pl/nodes/talk) +- [Tworzenie pluginów](/pl/plugins/building-plugins) diff --git a/docs/pl/plugins/voice-call.md b/docs/pl/plugins/voice-call.md index 650e60ff5..730056965 100644 --- a/docs/pl/plugins/voice-call.md +++ b/docs/pl/plugins/voice-call.md @@ -1,42 +1,42 @@ --- read_when: - - Chcesz wykonać wychodzące połączenie głosowe z OpenClaw - - Konfigurujesz lub rozwijasz Plugin voice-call -summary: 'Plugin Voice Call: połączenia wychodzące + przychodzące przez Twilio/Telnyx/Plivo (instalacja Pluginu + konfiguracja + CLI)' -title: Plugin Voice Call + - Chcesz wykonać wychodzące połączenie głosowe z OpenClaw. + - Konfigurujesz lub rozwijasz plugin voice-call. +summary: 'Plugin Voice Call: połączenia wychodzące i przychodzące przez Twilio/Telnyx/Plivo (instalacja pluginu + konfiguracja + CLI)' +title: plugin Voice Call x-i18n: - generated_at: "2026-04-24T09:25:46Z" + generated_at: "2026-04-24T09:53:25Z" model: gpt-5.4 provider: openai - source_hash: 4cd57118133506c22604ab9592a823546a91795ab425de4b7a81edbbb8374e6d + source_hash: 6aed4e33ce090c86f43c71280f033e446f335c53d42456fdc93c9938250e9af6 source_path: plugins/voice-call.md workflow: 15 --- -# Plugin Voice Call +# Voice Call (plugin) -Połączenia głosowe dla OpenClaw przez Plugin. Obsługuje powiadomienia wychodzące i -rozmowy wieloturowe z politykami przychodzącymi. +Połączenia głosowe dla OpenClaw przez plugin. Obsługuje powiadomienia wychodzące oraz +wieloturowe rozmowy z zasadami dla połączeń przychodzących. -Obecni providerzy: +Obecni dostawcy: - `twilio` (Programmable Voice + Media Streams) - `telnyx` (Call Control v2) -- `plivo` (Voice API + transfer XML + GetInput speech) +- `plivo` (Voice API + transfer XML + mowa GetInput) - `mock` (dev/bez sieci) -Szybki model mentalny: +Szybki model działania: -- Zainstaluj Plugin +- Zainstaluj plugin - Uruchom ponownie Gateway -- Skonfiguruj pod `plugins.entries.voice-call.config` -- Użyj `openclaw voicecall ...` albo narzędzia `voice_call` +- Skonfiguruj w `plugins.entries.voice-call.config` +- Użyj `openclaw voicecall ...` lub narzędzia `voice_call` -## Gdzie to działa (local vs remote) +## Gdzie to działa (lokalnie vs zdalnie) Plugin Voice Call działa **wewnątrz procesu Gateway**. -Jeśli używasz zdalnego Gateway, zainstaluj/skonfiguruj Plugin na **maszynie uruchamiającej Gateway**, a następnie uruchom ponownie Gateway, aby go załadować. +Jeśli używasz zdalnego Gateway, zainstaluj/skonfiguruj plugin na **maszynie, na której działa Gateway**, a następnie uruchom ponownie Gateway, aby go załadować. ## Instalacja @@ -60,7 +60,7 @@ Następnie uruchom ponownie Gateway. ## Konfiguracja -Ustaw konfigurację pod `plugins.entries.voice-call.config`: +Ustaw konfigurację w `plugins.entries.voice-call.config`: ```json5 { @@ -69,8 +69,8 @@ Ustaw konfigurację pod `plugins.entries.voice-call.config`: "voice-call": { enabled: true, config: { - provider: "twilio", // albo "telnyx" | "plivo" | "mock" - fromNumber: "+15550001234", // albo TWILIO_FROM_NUMBER dla Twilio + provider: "twilio", // lub "telnyx" | "plivo" | "mock" + fromNumber: "+15550001234", // lub TWILIO_FROM_NUMBER dla Twilio toNumber: "+15550005678", twilio: { @@ -81,7 +81,7 @@ Ustaw konfigurację pod `plugins.entries.voice-call.config`: telnyx: { apiKey: "...", connectionId: "...", - // Klucz publiczny webhooka Telnyx z portalu Telnyx Mission Control + // Publiczny klucz webhooka Telnyx z Telnyx Mission Control Portal // (ciąg Base64; można też ustawić przez TELNYX_PUBLIC_KEY). publicKey: "...", }, @@ -91,13 +91,13 @@ Ustaw konfigurację pod `plugins.entries.voice-call.config`: authToken: "...", }, - // Serwer webhook + // Serwer Webhook serve: { port: 3334, path: "/voice/webhook", }, - // Bezpieczeństwo webhooków (zalecane dla tuneli/proxy) + // Zabezpieczenia Webhook (zalecane dla tuneli/proxy) webhookSecurity: { allowedHosts: ["voice.example.com"], trustedProxyIPs: ["100.64.0.1"], @@ -114,7 +114,7 @@ Ustaw konfigurację pod `plugins.entries.voice-call.config`: streaming: { enabled: true, - provider: "openai", // opcjonalne; pierwszy zarejestrowany provider transkrypcji realtime, jeśli nie ustawiono + provider: "openai", // opcjonalne; pierwszy zarejestrowany dostawca transkrypcji realtime, gdy nie ustawiono streamPath: "/voice/stream", providers: { openai: { @@ -129,6 +129,17 @@ Ustaw konfigurację pod `plugins.entries.voice-call.config`: maxPendingConnectionsPerIp: 4, maxConnections: 128, }, + + realtime: { + enabled: false, + provider: "google", // opcjonalne; pierwszy zarejestrowany dostawca głosu realtime, gdy nie ustawiono + providers: { + google: { + model: "gemini-2.5-flash-native-audio-preview-12-2025", + voice: "Kore", + }, + }, + }, }, }, }, @@ -138,48 +149,132 @@ Ustaw konfigurację pod `plugins.entries.voice-call.config`: Uwagi: -- Twilio/Telnyx wymagają **publicznie osiągalnego** URL-a webhooka. -- Plivo wymaga **publicznie osiągalnego** URL-a webhooka. -- `mock` to lokalny provider deweloperski (bez wywołań sieciowych). -- Jeśli starsze konfiguracje nadal używają `provider: "log"`, `twilio.from` albo starszych kluczy OpenAI `streaming.*`, uruchom `openclaw doctor --fix`, aby je przepisać. -- Telnyx wymaga `telnyx.publicKey` (albo `TELNYX_PUBLIC_KEY`), chyba że `skipSignatureVerification` ma wartość true. -- `skipSignatureVerification` służy wyłącznie do testów lokalnych. -- Jeśli używasz darmowego planu ngrok, ustaw `publicUrl` na dokładny URL ngrok; weryfikacja podpisu jest zawsze wymuszana. -- `tunnel.allowNgrokFreeTierLoopbackBypass: true` pozwala na webhooki Twilio z nieprawidłowymi podpisami **tylko** wtedy, gdy `tunnel.provider="ngrok"` i `serve.bind` jest loopback (lokalny agent ngrok). Używaj tylko do lokalnego dev. -- URL-e ngrok w darmowym planie mogą się zmieniać albo dodawać zachowanie pośrednie; jeśli `publicUrl` przestanie być aktualny, podpisy Twilio będą zawodzić. W produkcji preferuj stabilną domenę albo Tailscale funnel. -- Domyślne ustawienia bezpieczeństwa streamingu: - - `streaming.preStartTimeoutMs` zamyka sockety, które nigdy nie wysyłają prawidłowej ramki `start`. -- `streaming.maxPendingConnections` ogranicza całkowitą liczbę nieuwierzytelnionych socketów przed startem. -- `streaming.maxPendingConnectionsPerIp` ogranicza liczbę nieuwierzytelnionych socketów przed startem dla źródłowego IP. -- `streaming.maxConnections` ogranicza całkowitą liczbę otwartych socketów strumienia mediów (oczekujące + aktywne). -- Fallback runtime nadal tymczasowo akceptuje te stare klucze `voice-call`, ale ścieżką przepisywania jest `openclaw doctor --fix`, a shim zgodności jest tymczasowy. +- Twilio/Telnyx wymagają **publicznie dostępnego** adresu URL webhooka. +- Plivo wymaga **publicznie dostępnego** adresu URL webhooka. +- `mock` to lokalny dostawca deweloperski (bez wywołań sieciowych). +- Jeśli starsze konfiguracje nadal używają `provider: "log"`, `twilio.from` lub starszych kluczy OpenAI `streaming.*`, uruchom `openclaw doctor --fix`, aby je przepisać. +- Telnyx wymaga `telnyx.publicKey` (lub `TELNYX_PUBLIC_KEY`), chyba że `skipSignatureVerification` ma wartość true. +- `skipSignatureVerification` jest tylko do testów lokalnych. +- Jeśli używasz darmowego planu ngrok, ustaw `publicUrl` na dokładny adres URL ngrok; weryfikacja podpisu jest zawsze wymuszana. +- `tunnel.allowNgrokFreeTierLoopbackBypass: true` pozwala na webhooki Twilio z nieprawidłowymi podpisami **tylko** gdy `tunnel.provider="ngrok"` i `serve.bind` jest loopback (lokalny agent ngrok). Używaj wyłącznie do lokalnego dev. +- Adresy URL darmowego planu ngrok mogą się zmieniać lub dodawać zachowanie z interstitial; jeśli `publicUrl` się rozjedzie, podpisy Twilio będą nieprawidłowe. W środowisku produkcyjnym preferuj stabilną domenę lub Tailscale funnel. +- `realtime.enabled` uruchamia pełne rozmowy voice-to-voice; nie włączaj tego razem z `streaming.enabled`. +- Domyślne zabezpieczenia streamingu: + - `streaming.preStartTimeoutMs` zamyka gniazda, które nigdy nie wysyłają prawidłowej ramki `start`. +- `streaming.maxPendingConnections` ogranicza łączną liczbę nieuwierzytelnionych gniazd oczekujących przed startem. +- `streaming.maxPendingConnectionsPerIp` ogranicza liczbę nieuwierzytelnionych gniazd oczekujących przed startem na źródłowy adres IP. +- `streaming.maxConnections` ogranicza łączną liczbę otwartych gniazd strumienia mediów (oczekujące + aktywne). +- Fallback środowiska wykonawczego nadal tymczasowo akceptuje te stare klucze voice-call, ale ścieżką przepisywania jest `openclaw doctor --fix`, a shim zgodności jest tymczasowy. -## Streaming transkrypcji +## Rozmowy głosowe realtime -`streaming` wybiera providera transkrypcji realtime dla dźwięku połączenia na żywo. +`realtime` wybiera w pełni dupleksowego dostawcę głosu realtime dla dźwięku połączenia na żywo. +Jest to oddzielne od `streaming`, które tylko przekazuje dźwięk do dostawców +transkrypcji realtime. -Bieżące zachowanie runtime: +Obecne zachowanie środowiska wykonawczego: + +- `realtime.enabled` jest obsługiwane dla Twilio Media Streams. +- `realtime.enabled` nie można łączyć z `streaming.enabled`. +- `realtime.provider` jest opcjonalne. Jeśli nie jest ustawione, Voice Call używa pierwszego + zarejestrowanego dostawcy głosu realtime. +- Dołączani dostawcy głosu realtime obejmują Google Gemini Live (`google`) oraz + OpenAI (`openai`), rejestrowanych przez ich pluginy dostawców. +- Surowa konfiguracja należąca do dostawcy znajduje się w `realtime.providers.`. +- Jeśli `realtime.provider` wskazuje niezarejestrowanego dostawcę lub w ogóle nie jest zarejestrowany + żaden dostawca głosu realtime, Voice Call zapisuje ostrzeżenie w logu i pomija + media realtime zamiast wywoływać błąd całego pluginu. + +Domyślne ustawienia Google Gemini Live realtime: + +- Klucz API: `realtime.providers.google.apiKey`, `GEMINI_API_KEY` lub + `GOOGLE_GENERATIVE_AI_API_KEY` +- model: `gemini-2.5-flash-native-audio-preview-12-2025` +- voice: `Kore` + +Przykład: + +```json5 +{ + plugins: { + entries: { + "voice-call": { + config: { + provider: "twilio", + inboundPolicy: "allowlist", + allowFrom: ["+15550005678"], + realtime: { + enabled: true, + provider: "google", + instructions: "Mów krótko i pytaj przed użyciem narzędzi.", + providers: { + google: { + apiKey: "${GEMINI_API_KEY}", + model: "gemini-2.5-flash-native-audio-preview-12-2025", + voice: "Kore", + }, + }, + }, + }, + }, + }, + }, +} +``` + +Użyj zamiast tego OpenAI: + +```json5 +{ + plugins: { + entries: { + "voice-call": { + config: { + realtime: { + enabled: true, + provider: "openai", + providers: { + openai: { + apiKey: "${OPENAI_API_KEY}", + }, + }, + }, + }, + }, + }, + }, +} +``` + +Zobacz [dostawcę Google](/pl/providers/google) i [dostawcę OpenAI](/pl/providers/openai), +aby poznać opcje głosu realtime specyficzne dla dostawcy. + +## Transkrypcja strumieniowa + +`streaming` wybiera dostawcę transkrypcji realtime dla dźwięku połączenia na żywo. + +Obecne zachowanie środowiska wykonawczego: - `streaming.provider` jest opcjonalne. Jeśli nie jest ustawione, Voice Call używa pierwszego - zarejestrowanego providera transkrypcji realtime. -- Dołączeni providerzy transkrypcji realtime obejmują Deepgram (`deepgram`), + zarejestrowanego dostawcy transkrypcji realtime. +- Dołączani dostawcy transkrypcji realtime obejmują Deepgram (`deepgram`), ElevenLabs (`elevenlabs`), Mistral (`mistral`), OpenAI (`openai`) i xAI - (`xai`), rejestrowanych przez ich Pluginy providerów. -- Surowa konfiguracja należąca do providera znajduje się pod `streaming.providers.`. -- Jeśli `streaming.provider` wskazuje na niezarejestrowanego providera albo w ogóle nie jest zarejestrowany żaden - provider transkrypcji realtime, Voice Call zapisuje ostrzeżenie w logu i - pomija streaming mediów zamiast wywracać cały Plugin. + (`xai`), rejestrowanych przez ich pluginy dostawców. +- Surowa konfiguracja należąca do dostawcy znajduje się w `streaming.providers.`. +- Jeśli `streaming.provider` wskazuje niezarejestrowanego dostawcę lub w ogóle nie jest zarejestrowany + żaden dostawca transkrypcji realtime, Voice Call zapisuje ostrzeżenie w logu i + pomija strumieniowanie mediów zamiast wywoływać błąd całego pluginu. -Domyślne ustawienia transkrypcji streamingowej OpenAI: +Domyślne ustawienia transkrypcji strumieniowej OpenAI: -- Klucz API: `streaming.providers.openai.apiKey` albo `OPENAI_API_KEY` +- Klucz API: `streaming.providers.openai.apiKey` lub `OPENAI_API_KEY` - model: `gpt-4o-transcribe` - `silenceDurationMs`: `800` - `vadThreshold`: `0.5` -Domyślne ustawienia transkrypcji streamingowej xAI: +Domyślne ustawienia transkrypcji strumieniowej xAI: -- Klucz API: `streaming.providers.xai.apiKey` albo `XAI_API_KEY` +- Klucz API: `streaming.providers.xai.apiKey` lub `XAI_API_KEY` - endpoint: `wss://api.x.ai/v1/stt` - `encoding`: `mulaw` - `sampleRate`: `8000` @@ -214,7 +309,7 @@ Przykład: } ``` -Zamiast tego użyj xAI: +Użyj zamiast tego xAI: ```json5 { @@ -249,17 +344,17 @@ Starsze klucze są nadal automatycznie migrowane przez `openclaw doctor --fix`: - `streaming.silenceDurationMs` → `streaming.providers.openai.silenceDurationMs` - `streaming.vadThreshold` → `streaming.providers.openai.vadThreshold` -## Reaper nieaktualnych połączeń +## Oczyszczanie nieaktualnych połączeń -Użyj `staleCallReaperSeconds`, aby kończyć połączenia, które nigdy nie otrzymują terminalowego webhooka -(na przykład połączenia w trybie notify, które nigdy się nie kończą). Domyślna wartość to `0` +Użyj `staleCallReaperSeconds`, aby kończyć połączenia, które nigdy nie otrzymują terminalnego webhooka +(na przykład połączenia w trybie notify, które nigdy się nie kończą). Wartość domyślna to `0` (wyłączone). Zalecane zakresy: - **Produkcja:** `120`–`300` sekund dla przepływów w stylu notify. - Utrzymuj tę wartość **wyższą niż `maxDurationSeconds`**, aby zwykłe połączenia mogły - się zakończyć. Dobry punkt startowy to `maxDurationSeconds + 30–60` sekund. + się zakończyć. Dobrym punktem wyjścia jest `maxDurationSeconds + 30–60` sekund. Przykład: @@ -278,29 +373,30 @@ Przykład: } ``` -## Bezpieczeństwo webhooków +## Zabezpieczenia Webhook -Gdy przed Gateway stoi proxy albo tunel, Plugin rekonstruuje -publiczny URL do weryfikacji podpisu. Te opcje kontrolują, którym nagłówkom forwarding ufać. +Gdy przed Gateway znajduje się proxy lub tunel, plugin odtwarza +publiczny adres URL do weryfikacji podpisu. Te opcje kontrolują, którym +nagłówkom przekazywania można ufać. -`webhookSecurity.allowedHosts` tworzy listę dozwolonych hostów z nagłówków forwarding. +`webhookSecurity.allowedHosts` tworzy listę dozwolonych hostów z nagłówków przekazywania. -`webhookSecurity.trustForwardingHeaders` ufa nagłówkom forwarding bez listy dozwolonych. +`webhookSecurity.trustForwardingHeaders` ufa nagłówkom przekazywania bez listy dozwolonych hostów. -`webhookSecurity.trustedProxyIPs` ufa nagłówkom forwarding tylko wtedy, gdy zdalny IP żądania -pasuje do listy. +`webhookSecurity.trustedProxyIPs` ufa nagłówkom przekazywania tylko wtedy, gdy zdalny adres IP +żądania pasuje do listy. -Ochrona przed replay webhooków jest włączona dla Twilio i Plivo. Ponownie odtworzone prawidłowe żądania webhook -są potwierdzane, ale pomijane dla skutków ubocznych. +Ochrona przed powtórzeniem webhooka jest włączona dla Twilio i Plivo. Powtórzone prawidłowe żądania webhooka +są potwierdzane, ale pomijane pod kątem skutków ubocznych. -Tury rozmowy Twilio zawierają token per tura w callbackach ``, więc -nieaktualne/odtworzone callbacki mowy nie mogą spełnić nowszej oczekującej tury transkryptu. +Tury rozmów Twilio zawierają token dla każdej tury w callbackach ``, więc +nieaktualne/powtórzone callbacki mowy nie mogą spełnić warunków nowszej oczekującej tury transkrypcji. -Nieuwierzytelnione żądania webhooków są odrzucane przed odczytem body, gdy -brakuje wymaganych przez providera nagłówków podpisu. +Nieuwierzytelnione żądania webhooka są odrzucane przed odczytem treści, gdy brakuje +wymaganych przez dostawcę nagłówków podpisu. -Webhook voice-call używa współdzielonego profilu body pre-auth (64 KB / 5 sekund) -plus limitu in-flight per IP przed weryfikacją podpisu. +Webhook voice-call używa współdzielonego profilu treści przed uwierzytelnieniem (64 KB / 5 sekund) +plus limitu aktywnych żądań na IP przed weryfikacją podpisu. Przykład ze stabilnym publicznym hostem: @@ -324,8 +420,8 @@ Przykład ze stabilnym publicznym hostem: ## TTS dla połączeń Voice Call używa podstawowej konfiguracji `messages.tts` do -streamowania mowy w połączeniach. Możesz ją nadpisać w konfiguracji Pluginu, używając -**tego samego kształtu** — jest głęboko scalana z `messages.tts`. +strumieniowania mowy w połączeniach. Możesz ją nadpisać w konfiguracji pluginu, używając +**tego samego kształtu** — jest ona głęboko scalana z `messages.tts`. ```json5 { @@ -343,15 +439,15 @@ streamowania mowy w połączeniach. Możesz ją nadpisać w konfiguracji Pluginu Uwagi: -- Starsze klucze `tts.` wewnątrz konfiguracji Pluginu (`openai`, `elevenlabs`, `microsoft`, `edge`) są automatycznie migrowane przy ładowaniu do `tts.providers.`. W zapisanej konfiguracji preferuj kształt `providers`. -- **Microsoft speech jest ignorowany dla połączeń głosowych** (audio telefoniczne wymaga PCM; bieżący transport Microsoft nie udostępnia wyjścia PCM dla telefonii). -- Główny TTS jest używany, gdy włączony jest streaming mediów Twilio; w przeciwnym razie połączenia wracają do natywnych głosów providera. -- Jeśli strumień mediów Twilio jest już aktywny, Voice Call nie wraca do TwiML ``. Jeśli telefoniczny TTS jest w tym stanie niedostępny, żądanie odtworzenia kończy się błędem zamiast mieszać dwie ścieżki odtwarzania. -- Gdy telefoniczny TTS wraca do drugiego providera, Voice Call zapisuje ostrzeżenie z łańcuchem providerów (`from`, `to`, `attempts`) do debugowania. +- Starsze klucze `tts.` wewnątrz konfiguracji pluginu (`openai`, `elevenlabs`, `microsoft`, `edge`) są automatycznie migrowane do `tts.providers.` podczas ładowania. W zatwierdzonej konfiguracji preferuj kształt `providers`. +- **Mowa Microsoft jest ignorowana dla połączeń głosowych** (dźwięk telefoniczny wymaga PCM; obecny transport Microsoft nie udostępnia telefonicznego wyjścia PCM). +- Podstawowy TTS jest używany, gdy włączone jest strumieniowanie mediów Twilio; w przeciwnym razie połączenia przechodzą na natywne głosy dostawcy. +- Jeśli strumień mediów Twilio jest już aktywny, Voice Call nie przechodzi awaryjnie do TwiML ``. Jeśli telefoniczny TTS jest niedostępny w tym stanie, żądanie odtwarzania kończy się niepowodzeniem zamiast mieszać dwie ścieżki odtwarzania. +- Gdy telefoniczny TTS przechodzi awaryjnie na drugiego dostawcę, Voice Call zapisuje ostrzeżenie z łańcuchem dostawców (`from`, `to`, `attempts`) na potrzeby debugowania. ### Więcej przykładów -Użyj tylko podstawowego TTS (bez nadpisania): +Używaj tylko podstawowego TTS (bez nadpisania): ```json5 { @@ -391,7 +487,7 @@ Nadpisz na ElevenLabs tylko dla połączeń (zachowaj podstawowe ustawienie gdzi } ``` -Nadpisz tylko model OpenAI dla połączeń (przykład deep-merge): +Nadpisz tylko model OpenAI dla połączeń (przykład głębokiego scalania): ```json5 { @@ -416,55 +512,56 @@ Nadpisz tylko model OpenAI dla połączeń (przykład deep-merge): ## Połączenia przychodzące -Domyślna polityka połączeń przychodzących to `disabled`. Aby włączyć połączenia przychodzące, ustaw: +Domyślna zasada połączeń przychodzących to `disabled`. Aby włączyć połączenia przychodzące, ustaw: ```json5 { inboundPolicy: "allowlist", allowFrom: ["+15550001234"], - inboundGreeting: "Hello! How can I help?", + inboundGreeting: "Cześć! Jak mogę pomóc?", } ``` -`inboundPolicy: "allowlist"` to filtr caller ID o niskim poziomie pewności. Plugin -normalizuje wartość `From` dostarczoną przez providera i porównuje ją z `allowFrom`. -Weryfikacja webhooków uwierzytelnia dostarczenie przez providera i integralność ładunku, ale -nie dowodzi własności numeru dzwoniącego PSTN/VoIP. Traktuj `allowFrom` jako filtrowanie caller ID, a nie silną tożsamość rozmówcy. +`inboundPolicy: "allowlist"` to ekran caller ID o niskim poziomie zaufania. Plugin +normalizuje wartość `From` dostarczoną przez dostawcę i porównuje ją z `allowFrom`. +Weryfikacja webhooka uwierzytelnia dostarczenie przez dostawcę i integralność ładunku, +ale nie potwierdza własności numeru dzwoniącego PSTN/VoIP. Traktuj `allowFrom` jako +filtrowanie caller ID, a nie silną tożsamość dzwoniącego. -Automatyczne odpowiedzi używają systemu agenta. Dostrajasz je przez: +Automatyczne odpowiedzi używają systemu agentów. Dostosuj je za pomocą: - `responseModel` - `responseSystemPrompt` - `responseTimeoutMs` -### Kontrakt danych mówionych +### Kontrakt wypowiedzi mówionej -Dla automatycznych odpowiedzi Voice Call dołącza do promptu systemowego ścisły kontrakt danych mówionych: +W przypadku automatycznych odpowiedzi Voice Call dołącza ścisły kontrakt wypowiedzi mówionej do system prompt: - `{"spoken":"..."}` -Voice Call następnie defensywnie wyciąga tekst mowy: +Następnie Voice Call defensywnie wyodrębnia tekst mowy: - Ignoruje ładunki oznaczone jako treść rozumowania/błędu. -- Parsuje bezpośredni JSON, JSON w ogrodzeniu albo inline’owe klucze `"spoken"`. -- Wraca do zwykłego tekstu i usuwa prawdopodobne wiodące akapity planowania/meta. +- Parsuje bezpośredni JSON, JSON w blokach kodu lub wbudowane klucze `"spoken"`. +- Przechodzi awaryjnie do zwykłego tekstu i usuwa prawdopodobne początkowe akapity planowania/meta. -Dzięki temu odtwarzanie mowy pozostaje skupione na tekście skierowanym do rozmówcy i unika przedostawania się tekstu planowania do audio. +Dzięki temu odtwarzana mowa pozostaje skupiona na tekście dla dzwoniącego i unika przeciekania tekstu planowania do dźwięku. -### Zachowanie przy starcie rozmowy +### Zachowanie przy uruchamianiu rozmowy -Dla połączeń wychodzących w trybie `conversation` obsługa pierwszej wiadomości jest powiązana ze stanem odtwarzania na żywo: +W przypadku wychodzących połączeń `conversation` obsługa pierwszej wiadomości jest powiązana ze stanem odtwarzania na żywo: -- Czyszczenie kolejki barge-in i automatyczna odpowiedź są tłumione tylko wtedy, gdy początkowe powitanie jest aktywnie odtwarzane. -- Jeśli początkowe odtwarzanie się nie powiedzie, połączenie wraca do `listening`, a początkowa wiadomość pozostaje w kolejce do ponownej próby. -- Początkowe odtwarzanie dla streamingu Twilio startuje przy połączeniu strumienia bez dodatkowego opóźnienia. +- Czyszczenie kolejki barging-in i automatyczna odpowiedź są wstrzymywane tylko wtedy, gdy początkowe powitanie jest aktywnie odtwarzane. +- Jeśli początkowe odtwarzanie zakończy się niepowodzeniem, połączenie wraca do stanu `listening`, a początkowa wiadomość pozostaje w kolejce do ponownej próby. +- Początkowe odtwarzanie dla streamingu Twilio uruchamia się po połączeniu strumienia bez dodatkowego opóźnienia. -### Grace dla rozłączenia strumienia Twilio +### Grace przy rozłączeniu strumienia Twilio -Gdy strumień mediów Twilio się rozłącza, Voice Call czeka `2000ms`, zanim automatycznie zakończy połączenie: +Gdy strumień mediów Twilio zostaje rozłączony, Voice Call czeka `2000ms`, zanim automatycznie zakończy połączenie: -- Jeśli strumień połączy się ponownie w tym oknie, automatyczne zakończenie zostaje anulowane. -- Jeśli po okresie grace żaden strumień nie zostanie ponownie zarejestrowany, połączenie jest kończone, aby zapobiec utknięciu aktywnych połączeń. +- Jeśli strumień połączy się ponownie w tym oknie, automatyczne zakończenie zostanie anulowane. +- Jeśli po upływie okresu grace żaden strumień nie zostanie ponownie zarejestrowany, połączenie zostanie zakończone, aby zapobiec zawieszonym aktywnym połączeniom. ## CLI @@ -477,14 +574,14 @@ openclaw voicecall dtmf --call-id --digits "ww123456#" openclaw voicecall end --call-id openclaw voicecall status --call-id openclaw voicecall tail -openclaw voicecall latency # podsumowanie opóźnienia tur z logów +openclaw voicecall latency # podsumowanie opóźnień tur z logów openclaw voicecall expose --mode funnel ``` -`latency` odczytuje `calls.jsonl` z domyślnej ścieżki storage voice-call. Użyj +`latency` odczytuje `calls.jsonl` z domyślnej ścieżki przechowywania voice-call. Użyj `--file `, aby wskazać inny log, oraz `--last `, aby ograniczyć analizę do ostatnich N rekordów (domyślnie 200). Dane wyjściowe obejmują p50/p90/p99 dla -opóźnienia tury i czasów listen-wait. +opóźnienia tur i czasów oczekiwania nasłuchu. ## Narzędzie agenta @@ -499,7 +596,7 @@ Akcje: - `end_call` (callId) - `get_status` (callId) -To repozytorium dostarcza pasujący dokument skill pod `skills/voice-call/SKILL.md`. +To repozytorium zawiera pasujący dokument Skills w `skills/voice-call/SKILL.md`. ## Gateway RPC @@ -513,5 +610,5 @@ To repozytorium dostarcza pasujący dokument skill pod `skills/voice-call/SKILL. ## Powiązane - [Text-to-speech](/pl/tools/tts) -- [Talk mode](/pl/nodes/talk) -- [Voice wake](/pl/nodes/voicewake) +- [Tryb rozmowy](/pl/nodes/talk) +- [Wybudzanie głosowe](/pl/nodes/voicewake) diff --git a/docs/pl/tools/media-overview.md b/docs/pl/tools/media-overview.md index dc3215fec..d89cb46bf 100644 --- a/docs/pl/tools/media-overview.md +++ b/docs/pl/tools/media-overview.md @@ -1,87 +1,90 @@ --- read_when: - - Szukasz przeglądu możliwości multimedialnych - - Decydowanie, którego dostawcę multimediów skonfigurować - - Zrozumienie, jak działa asynchroniczne generowanie multimediów -summary: Ujednolicona strona docelowa dla możliwości generowania, rozumienia i mowy dla multimediów + - Szukasz przeglądu możliwości multimedialnych? + - Wybierasz dostawcę multimediów do skonfigurowania + - Zrozumienie działania asynchronicznego generowania multimediów +summary: Ujednolicona strona docelowa dla możliwości generowania multimediów, rozumienia ich i obsługi mowy title: Przegląd multimediów x-i18n: - generated_at: "2026-04-24T09:37:29Z" + generated_at: "2026-04-24T09:53:29Z" model: gpt-5.4 provider: openai - source_hash: 469fb173ac3853011b8cd4f89f3ab97dd7d14e12e4e1d7d87e84de05d025a593 + source_hash: 39848c6104ebd4feeb37b233b70f3312fa076b535c3b3780336729eb9fdfa4e6 source_path: tools/media-overview.md workflow: 15 --- # Generowanie i rozumienie multimediów -OpenClaw generuje obrazy, filmy i muzykę, rozumie multimedia przychodzące (obrazy, audio, wideo) oraz odczytuje odpowiedzi na głos za pomocą text-to-speech. Wszystkie możliwości multimedialne są sterowane narzędziami: agent decyduje, kiedy ich użyć na podstawie rozmowy, a każde narzędzie pojawia się tylko wtedy, gdy skonfigurowano co najmniej jednego dostawcę zaplecza. +OpenClaw generuje obrazy, filmy i muzykę, rozumie przychodzące multimedia (obrazy, dźwięk, wideo) oraz odtwarza odpowiedzi na głos za pomocą syntezy mowy. Wszystkie możliwości multimedialne są sterowane narzędziami: agent decyduje, kiedy ich użyć, na podstawie rozmowy, a każde narzędzie pojawia się tylko wtedy, gdy skonfigurowano co najmniej jednego obsługującego je dostawcę. ## Możliwości w skrócie -| Możliwość | Narzędzie | Dostawcy | Co robi | -| --------------------- | ---------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| Generowanie obrazów | `image_generate` | ComfyUI, fal, Google, MiniMax, OpenAI, Vydra, xAI | Tworzy lub edytuje obrazy na podstawie promptów tekstowych lub referencji | +| Możliwość | Narzędzie | Dostawcy | Co robi | +| --------------------- | ---------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------- | +| Generowanie obrazów | `image_generate` | ComfyUI, fal, Google, MiniMax, OpenAI, Vydra, xAI | Tworzy lub edytuje obrazy na podstawie promptów tekstowych lub materiałów referencyjnych | | Generowanie wideo | `video_generate` | Alibaba, BytePlus, ComfyUI, fal, Google, MiniMax, OpenAI, Qwen, Runway, Together, Vydra, xAI | Tworzy filmy na podstawie tekstu, obrazów lub istniejących filmów | | Generowanie muzyki | `music_generate` | ComfyUI, Google, MiniMax | Tworzy muzykę lub ścieżki audio na podstawie promptów tekstowych | -| Text-to-speech (TTS) | `tts` | ElevenLabs, Microsoft, MiniMax, OpenAI, xAI | Zamienia odpowiedzi wychodzące na mowę | -| Rozumienie multimediów| (automatyczne) | Dowolny dostawca modeli z obsługą vision/audio oraz fallbacki CLI | Podsumowuje obrazy, audio i wideo przychodzące | +| Synteza mowy (TTS) | `tts` | ElevenLabs, Google, Microsoft, MiniMax, OpenAI, xAI | Zamienia wychodzące odpowiedzi na mowę | +| Rozumienie multimediów | (automatycznie) | Dowolny dostawca modelu obsługujący wizję lub dźwięk, plus rozwiązania zapasowe CLI | Podsumowuje przychodzące obrazy, dźwięk i wideo | ## Macierz możliwości dostawców -Ta tabela pokazuje, którzy dostawcy obsługują które możliwości multimedialne na całej platformie. +Ta tabela pokazuje, którzy dostawcy obsługują poszczególne możliwości multimedialne na całej platformie. -| Dostawca | Obrazy | Wideo | Muzyka | TTS | STT / Transkrypcja | Rozumienie multimediów | -| --------- | ------ | ----- | ------ | --- | ------------------ | ---------------------- | -| Alibaba | | Tak | | | | | -| BytePlus | | Tak | | | | | -| ComfyUI | Tak | Tak | Tak | | | | -| Deepgram | | | | | Tak | | -| ElevenLabs| | | | Tak | Tak | | -| fal | Tak | Tak | | | | | -| Google | Tak | Tak | Tak | | | Tak | -| Microsoft | | | | Tak | | | -| MiniMax | Tak | Tak | Tak | Tak | | | -| Mistral | | | | | Tak | | -| OpenAI | Tak | Tak | | Tak | Tak | Tak | -| Qwen | | Tak | | | | | -| Runway | | Tak | | | | | -| Together | | Tak | | | | | -| Vydra | Tak | Tak | | | | | -| xAI | Tak | Tak | | Tak | Tak | Tak | +| Dostawca | Obrazy | Wideo | Muzyka | TTS | STT / Transkrypcja | Głos w czasie rzeczywistym | Rozumienie multimediów | +| ---------- | ------ | ----- | ------ | --- | ------------------ | -------------------------- | ---------------------- | +| Alibaba | | Tak | | | | | | +| BytePlus | | Tak | | | | | | +| ComfyUI | Tak | Tak | Tak | | | | | +| Deepgram | | | | | Tak | | | +| ElevenLabs | | | | Tak | Tak | | | +| fal | Tak | Tak | | | | | | +| Google | Tak | Tak | Tak | Tak | | Tak | Tak | +| Microsoft | | | | Tak | | | | +| MiniMax | Tak | Tak | Tak | Tak | | | | +| Mistral | | | | | Tak | | | +| OpenAI | Tak | Tak | | Tak | Tak | Tak | Tak | +| Qwen | | Tak | | | | | | +| Runway | | Tak | | | | | | +| Together | | Tak | | | | | | +| Vydra | Tak | Tak | | | | | | +| xAI | Tak | Tak | | Tak | Tak | | Tak | -Rozumienie multimediów wykorzystuje dowolny model z obsługą vision lub audio zarejestrowany w konfiguracji dostawców. Powyższa tabela wyróżnia dostawców z dedykowaną obsługą rozumienia multimediów; większość dostawców LLM z modelami multimodalnymi (Anthropic, Google, OpenAI itd.) również potrafi rozumieć multimedia przychodzące, gdy są skonfigurowani jako aktywny model odpowiedzi. +Rozumienie multimediów wykorzystuje dowolny model obsługujący wizję lub dźwięk zarejestrowany w konfiguracji dostawcy. Powyższa tabela wyróżnia dostawców z dedykowaną obsługą rozumienia multimediów; większość dostawców LLM z modelami multimodalnymi (Anthropic, Google, OpenAI itd.) może także rozumieć przychodzące multimedia, gdy są skonfigurowani jako aktywny model odpowiedzi. ## Jak działa generowanie asynchroniczne -Generowanie wideo i muzyki działa jako zadania w tle, ponieważ przetwarzanie po stronie dostawców zwykle trwa od 30 sekund do kilku minut. Gdy agent wywołuje `video_generate` lub `music_generate`, OpenClaw wysyła żądanie do dostawcy, natychmiast zwraca identyfikator zadania i śledzi zadanie w rejestrze zadań. Agent nadal odpowiada na inne wiadomości podczas działania zadania. Gdy dostawca zakończy pracę, OpenClaw wybudza agenta, aby mógł opublikować gotowe multimedia z powrotem w oryginalnym kanale. Generowanie obrazów i TTS są synchroniczne i kończą się inline wraz z odpowiedzią. +Generowanie wideo i muzyki działa jako zadania w tle, ponieważ przetwarzanie po stronie dostawcy zwykle trwa od 30 sekund do kilku minut. Gdy agent wywołuje `video_generate` lub `music_generate`, OpenClaw przesyła żądanie do dostawcy, natychmiast zwraca identyfikator zadania i śledzi zadanie w rejestrze zadań. Agent nadal odpowiada na inne wiadomości, podczas gdy zadanie jest wykonywane. Gdy dostawca zakończy przetwarzanie, OpenClaw wybudza agenta, aby mógł opublikować gotowe multimedia z powrotem w oryginalnym kanale. Generowanie obrazów i TTS są synchroniczne i kończą się bezpośrednio w ramach odpowiedzi. -Deepgram, ElevenLabs, Mistral, OpenAI i xAI mogą transkrybować przychodzące -audio przez ścieżkę wsadową `tools.media.audio`, jeśli są skonfigurowane. Deepgram, -ElevenLabs, Mistral, OpenAI i xAI rejestrują też dostawców strumieniowego STT dla Voice Call, +Deepgram, ElevenLabs, Mistral, OpenAI i xAI mogą transkrybować przychodzący +dźwięk przez ścieżkę wsadową `tools.media.audio`, jeśli są skonfigurowane. Deepgram, +ElevenLabs, Mistral, OpenAI i xAI rejestrują także dostawców STT strumieniowego dla Połączeń Głosowych, dzięki czemu dźwięk z rozmów telefonicznych na żywo może być przekazywany do wybranego dostawcy bez czekania na ukończenie nagrania. -OpenAI mapuje się na powierzchnie OpenClaw dla obrazów, wideo, wsadowego TTS, wsadowego STT, strumieniowego STT dla Voice Call, głosu realtime i osadzania pamięci. xAI obecnie -mapuje się na powierzchnie OpenClaw dla obrazów, wideo, wyszukiwania, wykonywania kodu, wsadowego TTS, wsadowego STT -oraz strumieniowego STT dla Voice Call. Głos xAI Realtime jest możliwością upstream, -ale nie jest rejestrowany w OpenClaw, dopóki współdzielony kontrakt -głosu realtime nie będzie mógł go reprezentować. +Google mapuje się na powierzchnie obrazu, wideo, muzyki, wsadowego TTS, backendowego głosu w czasie rzeczywistym +i rozumienia multimediów w OpenClaw. OpenAI mapuje się na powierzchnie obrazu, +wideo, wsadowego TTS, wsadowego STT, strumieniowego STT dla Połączeń Głosowych, backendowego głosu w czasie rzeczywistym +oraz osadzania pamięci w OpenClaw. xAI obecnie mapuje się na powierzchnie obrazu, wideo, +wyszukiwania, wykonywania kodu, wsadowego TTS, wsadowego STT oraz strumieniowego STT dla Połączeń Głosowych +w OpenClaw. Głos xAI Realtime jest funkcją dostępną upstreamowo, ale nie jest +rejestrowany w OpenClaw, dopóki współdzielony kontrakt głosu w czasie rzeczywistym nie będzie mógł go +reprezentować. ## Szybkie linki - [Generowanie obrazów](/pl/tools/image-generation) -- generowanie i edytowanie obrazów - [Generowanie wideo](/pl/tools/video-generation) -- tekst na wideo, obraz na wideo i wideo na wideo - [Generowanie muzyki](/pl/tools/music-generation) -- tworzenie muzyki i ścieżek audio -- [Text-to-Speech](/pl/tools/tts) -- zamienianie odpowiedzi na mowę -- [Rozumienie multimediów](/pl/nodes/media-understanding) -- rozumienie przychodzących obrazów, audio i wideo +- [Synteza mowy](/pl/tools/tts) -- zamienianie odpowiedzi na dźwięk mowy +- [Rozumienie multimediów](/pl/nodes/media-understanding) -- rozumienie przychodzących obrazów, dźwięku i wideo ## Powiązane - [Generowanie obrazów](/pl/tools/image-generation) - [Generowanie wideo](/pl/tools/video-generation) - [Generowanie muzyki](/pl/tools/music-generation) -- [Text-to-speech](/pl/tools/tts) +- [Synteza mowy](/pl/tools/tts)