chore(i18n): refresh pl translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-24 09:54:37 +00:00
parent bdbf79b61c
commit 20b2c4ef13
3 changed files with 401 additions and 286 deletions

View File

@ -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 <gateway-host> --port 18789 --display-name parallels-macos
```
Jeśli `<gateway-host>` 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 `<gateway-host>` 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 <gateway-lan-ip> --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 <requestId>
```
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 mo 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)

View File

@ -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.<providerId>`.
- 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.<providerId>`.
- 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.<providerId>`.
- 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 + 3060` sekund.
się zakończyć. Dobrym punktem wyjścia jest `maxDurationSeconds + 3060` 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 `<Gather>`, 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 `<Gather>`, 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.<provider>` wewnątrz konfiguracji Pluginu (`openai`, `elevenlabs`, `microsoft`, `edge`) są automatycznie migrowane przy ładowaniu do `tts.providers.<provider>`. 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 `<Say>`. 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.<provider>` wewnątrz konfiguracji pluginu (`openai`, `elevenlabs`, `microsoft`, `edge`) są automatycznie migrowane do `tts.providers.<provider>` 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 `<Say>`. 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 inlineowe 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 <id> --digits "ww123456#"
openclaw voicecall end --call-id <id>
openclaw voicecall status --call-id <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 <path>`, aby wskazać inny log, oraz `--last <n>`, 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)

View File

@ -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 |
<Note>
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.
</Note>
## 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)