chore(i18n): refresh de translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-16 19:32:11 +00:00
parent a7ce59a7f0
commit 90ba1358ca
3 changed files with 308 additions and 229 deletions

View File

@ -1,36 +1,36 @@
---
read_when:
- Sie möchten einen zuverlässigen Fallback, wenn API-Anbieter ausfallen
- Sie verwenden Codex CLI oder andere lokale KI-CLIs und möchten sie wiederverwenden
- Sie möchten die MCP-Loopback-Bridge für den Tool-Zugriff des CLI-Backends verstehen
summary: 'CLI-Backends: lokaler KI-CLI-Fallback mit optionaler MCP-Tool-Bridge'
- Sie möchten eine zuverlässige Ausweichlösung, wenn API-Anbieter ausfallen
- Sie verwenden Codex CLI oder andere lokale AI-CLIs und möchten sie wiederverwenden
- Sie möchten die MCP-loopback-Bridge für den Tool-Zugriff des CLI-Backends verstehen
summary: 'CLI-Backends: lokale AI-CLI-Ausweichlösung mit optionaler MCP-Tool-Bridge'
title: CLI-Backends
x-i18n:
generated_at: "2026-04-11T02:44:18Z"
generated_at: "2026-04-16T19:31:12Z"
model: gpt-5.4
provider: openai
source_hash: d108dbea043c260a80d15497639298f71a6b4d800f68d7b39bc129f7667ca608
source_hash: 381273532a8622bc4628000a6fb999712b12af08faade2b5f2b7ac4cc7d23efe
source_path: gateway/cli-backends.md
workflow: 15
---
# CLI-Backends (Fallback-Laufzeit)
# CLI-Backends (Ausweich-Runtime)
OpenClaw kann **lokale KI-CLIs** als **reinen Text-Fallback** ausführen, wenn API-Anbieter ausfallen,
rate-limitiert sind oder sich vorübergehend fehlerhaft verhalten. Das ist bewusst konservativ:
OpenClaw kann **lokale AI-CLIs** als **reine Text-Ausweichlösung** ausführen, wenn API-Anbieter ausgefallen sind,
ratelimited werden oder sich vorübergehend fehlerhaft verhalten. Das ist bewusst konservativ:
- **OpenClaw-Tools werden nicht direkt injiziert**, aber Backends mit `bundleMcp: true`
können Gateway-Tools über eine Loopback-MCP-Bridge erhalten.
können Gateway-Tools über eine loopback-MCP-Bridge empfangen.
- **JSONL-Streaming** für CLIs, die es unterstützen.
- **Sitzungen werden unterstützt** (damit Folge-Turns kohärent bleiben).
- **Sitzungen werden unterstützt** (damit Folgedurchläufe konsistent bleiben).
- **Bilder können durchgereicht werden**, wenn die CLI Bildpfade akzeptiert.
Dies ist eher als **Sicherheitsnetz** als als primärer Pfad gedacht. Verwenden Sie es, wenn Sie
„funktioniert immer“-Textantworten möchten, ohne von externen APIs abhängig zu sein.
Dies ist als **Sicherheitsnetz** und nicht als primärer Pfad gedacht. Verwenden Sie es, wenn Sie
„funktioniert immer“-Textantworten möchten, ohne auf externe APIs angewiesen zu sein.
Wenn Sie stattdessen eine vollständige Harness-Laufzeit mit ACP-Sitzungssteuerung, Hintergrundaufgaben,
Thread-/Konversationsbindung und persistenten externen Coding-Sitzungen möchten, verwenden Sie
[ACP Agents](/de/tools/acp-agents). CLI-Backends sind kein ACP.
Wenn Sie eine vollständige Harness-Runtime mit ACP-Sitzungssteuerung, Hintergrundaufgaben,
Thread-/Konversationsbindung und persistenten externen Coding-Sitzungen benötigen, verwenden Sie
stattdessen [ACP Agents](/de/tools/acp-agents). CLI-Backends sind kein ACP.
## Einsteigerfreundlicher Schnellstart
@ -41,7 +41,7 @@ registriert ein Standard-Backend):
openclaw agent --message "hi" --model codex-cli/gpt-5.4
```
Wenn Ihr Gateway unter launchd/systemd läuft und `PATH` minimal ist, fügen Sie nur den
Wenn Ihr Gateway unter launchd/systemd läuft und PATH minimal ist, fügen Sie nur den
Befehlspfad hinzu:
```json5
@ -58,16 +58,16 @@ Befehlspfad hinzu:
}
```
Das ist alles. Keine Schlüssel, keine zusätzliche Auth-Konfiguration über die CLI selbst hinaus erforderlich.
Das ist alles. Keine Schlüssel, keine zusätzliche Auth-Konfiguration erforderlich, außer der CLI selbst.
Wenn Sie ein gebündeltes CLI-Backend als **primären Nachrichtenanbieter** auf einem
Gateway-Host verwenden, lädt OpenClaw jetzt automatisch das zugehörige gebündelte Plugin, wenn Ihre Konfiguration
dieses Backend explizit in einer Modell-Referenz oder unter
`agents.defaults.cliBackends` referenziert.
## Als Fallback verwenden
## Verwendung als Ausweichlösung
Fügen Sie Ihrer Fallback-Liste ein CLI-Backend hinzu, damit es nur ausgeführt wird, wenn primäre Modelle fehlschlagen:
Fügen Sie Ihrer Ausweichliste ein CLI-Backend hinzu, damit es nur ausgeführt wird, wenn primäre Modelle fehlschlagen:
```json5
{
@ -100,8 +100,8 @@ Alle CLI-Backends befinden sich unter:
agents.defaults.cliBackends
```
Jeder Eintrag ist durch eine **Anbieter-ID** gekennzeichnet (z. B. `codex-cli`, `my-cli`).
Die Anbieter-ID wird zur linken Seite Ihrer Modell-Referenz:
Jeder Eintrag ist über eine **Provider-ID** verschlüsselt (z. B. `codex-cli`, `my-cli`).
Die Provider-ID wird zur linken Seite Ihrer Modell-Referenz:
```
<provider>/<model>
@ -131,7 +131,7 @@ Die Anbieter-ID wird zur linken Seite Ihrer Modell-Referenz:
sessionMode: "existing",
sessionIdFields: ["session_id", "conversation_id"],
systemPromptArg: "--system",
// Codex-style CLIs can point at a prompt file instead:
// CLIs im Codex-Stil können stattdessen auf eine Prompt-Datei verweisen:
// systemPromptFileConfigArg: "-c",
// systemPromptFileConfigKey: "model_instructions_file",
systemPromptWhen: "first",
@ -145,55 +145,55 @@ Die Anbieter-ID wird zur linken Seite Ihrer Modell-Referenz:
}
```
## Funktionsweise
## So funktioniert es
1. **Wählt ein Backend aus** anhand des Anbieterpräfixes (`codex-cli/...`).
2. **Erstellt einen System-Prompt** unter Verwendung desselben OpenClaw-Prompts und Workspace-Kontexts.
1. **Wählt ein Backend aus** basierend auf dem Provider-Präfix (`codex-cli/...`).
2. **Erstellt einen System-Prompt** mit demselben OpenClaw-Prompt + Workspace-Kontext.
3. **Führt die CLI aus** mit einer Sitzungs-ID (falls unterstützt), damit der Verlauf konsistent bleibt.
4. **Parst die Ausgabe** (JSON oder Klartext) und gibt den finalen Text zurück.
5. **Persistiert Sitzungs-IDs** pro Backend, damit Folgeanfragen dieselbe CLI-Sitzung wiederverwenden.
5. **Speichert Sitzungs-IDs** pro Backend, damit Folgedurchläufe dieselbe CLI-Sitzung wiederverwenden.
<Note>
Das gebündelte Anthropic-`claude-cli`-Backend wird wieder unterstützt. Anthropic-Mitarbeiter
Das gebündelte Anthropic-`claude-cli`-Backend wird wieder unterstützt. Anthropic-Mitarbeitende
haben uns mitgeteilt, dass die Nutzung von Claude CLI im OpenClaw-Stil wieder zulässig ist, daher behandelt OpenClaw
die Verwendung von `claude -p` für diese Integration als erlaubt, sofern Anthropic keine
neue Richtlinie veröffentlicht.
die Nutzung von `claude -p` für diese Integration als genehmigt, sofern Anthropic
keine neue Richtlinie veröffentlicht.
</Note>
Das gebündelte OpenAI-`codex-cli`-Backend übergibt den System-Prompt von OpenClaw über
die `model_instructions_file`-Konfigurationsüberschreibung von Codex (`-c
model_instructions_file="..."`). Codex bietet kein Claude-ähnliches
`--append-system-prompt`-Flag, daher schreibt OpenClaw den zusammengesetzten Prompt für jede neue Codex-CLI-Sitzung
in eine temporäre Datei.
die Codex-Konfigurationsüberschreibung `model_instructions_file` (`-c
model_instructions_file="..."`). Codex stellt kein Claude-ähnliches
Flag `--append-system-prompt` bereit, daher schreibt OpenClaw den zusammengesetzten Prompt
für jede neue Codex-CLI-Sitzung in eine temporäre Datei.
Das gebündelte Anthropic-`claude-cli`-Backend erhält den OpenClaw-Skills-Snapshot
auf zwei Arten: den kompakten OpenClaw-Skills-Katalog im angehängten System-Prompt und
auf zwei Wegen: den kompakten OpenClaw-Skills-Katalog im angehängten System-Prompt sowie
ein temporäres Claude-Code-Plugin, das mit `--plugin-dir` übergeben wird. Das Plugin enthält
nur die zulässigen Skills für diese Agent-/Sitzung, sodass der native Skill-Resolver von Claude Code
dieselbe gefilterte Menge sieht, die OpenClaw andernfalls im Prompt bewerben würde.
Skill-Umgebungs-/API-Schlüssel-Überschreibungen werden weiterhin von OpenClaw auf die
Child-Process-Umgebung für den Lauf angewendet.
nur die zulässigen Skills für diesen Agenten bzw. diese Sitzung, sodass der native Skill-Resolver von Claude Code
dieselbe gefilterte Menge sieht, die OpenClaw ansonsten im Prompt bewerben würde.
Skill-Umgebungs-/API-Key-Überschreibungen werden von OpenClaw weiterhin auf die
Umgebung des Child-Prozesses für den Lauf angewendet.
## Sitzungen
- Wenn die CLI Sitzungen unterstützt, setzen Sie `sessionArg` (z. B. `--session-id`) oder
`sessionArgs` (Platzhalter `{sessionId}`), wenn die ID in mehrere Flags eingefügt
werden muss.
- Wenn die CLI einen **Resume-Subcommand** mit anderen Flags verwendet, setzen Sie
- Wenn die CLI einen **Resume-Unterbefehl** mit anderen Flags verwendet, setzen Sie
`resumeArgs` (ersetzt `args` beim Fortsetzen) und optional `resumeOutput`
(für nicht-JSON-Resumes).
- `sessionMode`:
- `always`: sendet immer eine Sitzungs-ID (neue UUID, falls keine gespeichert ist).
- `existing`: sendet eine Sitzungs-ID nur, wenn zuvor eine gespeichert wurde.
- `none`: sendet niemals eine Sitzungs-ID.
- `always`: immer eine Sitzungs-ID senden (neue UUID, wenn keine gespeichert ist).
- `existing`: nur dann eine Sitzungs-ID senden, wenn zuvor bereits eine gespeichert wurde.
- `none`: niemals eine Sitzungs-ID senden.
Hinweise zur Serialisierung:
- `serialize: true` hält Läufe auf derselben Lane in Reihenfolge.
- Die meisten CLIs serialisieren auf einer Anbieter-Lane.
- OpenClaw verwirft die Wiederverwendung gespeicherter CLI-Sitzungen, wenn sich der Auth-Status des Backends ändert, einschließlich erneuter Anmeldung, Token-Rotation oder geänderter Anmeldedaten eines Auth-Profils.
- `serialize: true` hält Läufe auf derselben Lane in geordneter Reihenfolge.
- Die meisten CLIs serialisieren auf einer Provider-Lane.
- OpenClaw verwirft die Wiederverwendung gespeicherter CLI-Sitzungen, wenn sich der Auth-Status des Backends ändert, einschließlich erneuter Anmeldung, Token-Rotation oder geänderter Zugangsdaten eines Auth-Profils.
## Bilder (Durchreichen)
## Bilder (Pass-through)
Wenn Ihre CLI Bildpfade akzeptiert, setzen Sie `imageArg`:
@ -202,18 +202,18 @@ imageArg: "--image",
imageMode: "repeat"
```
OpenClaw schreibt Base64-Bilder in temporäre Dateien. Wenn `imageArg` gesetzt ist, werden diese
OpenClaw schreibt base64-Bilder in temporäre Dateien. Wenn `imageArg` gesetzt ist, werden diese
Pfade als CLI-Argumente übergeben. Wenn `imageArg` fehlt, hängt OpenClaw die
Dateipfade an den Prompt an (Path Injection), was für CLIs ausreicht, die lokale
Dateipfade an den Prompt an (Pfad-Injektion), was für CLIs ausreicht, die lokale
Dateien aus einfachen Pfaden automatisch laden.
## Ein- / Ausgaben
- `output: "json"` (Standard) versucht, JSON zu parsen und Text + Sitzungs-ID zu extrahieren.
- Für die JSON-Ausgabe von Gemini CLI liest OpenClaw den Antworttext aus `response` und
die Nutzung aus `stats`, wenn `usage` fehlt oder leer ist.
- Für die JSON-Ausgabe von Gemini CLI liest OpenClaw Antworttext aus `response` und
Nutzungsdaten aus `stats`, wenn `usage` fehlt oder leer ist.
- `output: "jsonl"` parst JSONL-Streams (zum Beispiel Codex CLI `--json`) und extrahiert die finale Agent-Nachricht sowie Sitzungs-
kennungen, sofern vorhanden.
Kennungen, sofern vorhanden.
- `output: "text"` behandelt stdout als finale Antwort.
Eingabemodi:
@ -224,18 +224,18 @@ Eingabemodi:
## Standards (plugin-eigen)
Das gebündelte OpenAI-Plugin registriert außerdem einen Standard für `codex-cli`:
Das gebündelte OpenAI-Plugin registriert außerdem einen Standardwert für `codex-cli`:
- `command: "codex"`
- `args: ["exec","--json","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
- `resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
- `resumeArgs: ["exec","resume","{sessionId}","-c","sandbox_mode=\"workspace-write\"","--skip-git-repo-check"]`
- `output: "jsonl"`
- `resumeOutput: "text"`
- `modelArg: "--model"`
- `imageArg: "--image"`
- `sessionMode: "existing"`
Das gebündelte Google-Plugin registriert außerdem einen Standard für `google-gemini-cli`:
Das gebündelte Google-Plugin registriert außerdem einen Standardwert für `google-gemini-cli`:
- `command: "gemini"`
- `args: ["--output-format", "json", "--prompt", "{prompt}"]`
@ -250,28 +250,28 @@ Voraussetzung: Die lokale Gemini CLI muss installiert und als
`gemini` auf `PATH` verfügbar sein (`brew install gemini-cli` oder
`npm install -g @google/gemini-cli`).
Hinweise zu Gemini-CLI-JSON:
Hinweise zur Gemini-CLI-JSON-Ausgabe:
- Antworttext wird aus dem JSON-Feld `response` gelesen.
- Die Nutzung fällt auf `stats` zurück, wenn `usage` fehlt oder leer ist.
- `stats.cached` wird in OpenClaw-`cacheRead` normalisiert.
- Wenn `stats.input` fehlt, leitet OpenClaw Eingabetoken aus
- Die Nutzung greift auf `stats` zurück, wenn `usage` fehlt oder leer ist.
- `stats.cached` wird zu OpenClaw-`cacheRead` normalisiert.
- Wenn `stats.input` fehlt, leitet OpenClaw Eingabe-Token aus
`stats.input_tokens - stats.cached` ab.
Überschreiben Sie dies nur bei Bedarf (üblich: absoluter `command`-Pfad).
Nur bei Bedarf überschreiben (üblich: absoluter `command`-Pfad).
## Plugin-eigene Standards
CLI-Backend-Standards sind jetzt Teil der Plugin-Oberfläche:
- Plugins registrieren sie mit `api.registerCliBackend(...)`.
- Die `id` des Backends wird zum Anbieterpräfix in Modell-Referenzen.
- Benutzerkonfiguration in `agents.defaults.cliBackends.<id>` überschreibt weiterhin den Plugin-Standard.
- Die Backend-`id` wird zum Provider-Präfix in Modell-Referenzen.
- Benutzerkonfiguration unter `agents.defaults.cliBackends.<id>` überschreibt weiterhin den Plugin-Standard.
- Backend-spezifische Konfigurationsbereinigung bleibt über den optionalen
Hook `normalizeConfig` plugin-eigen.
Plugins, die kleine Kompatibilitäts-Shims für Prompt/Nachrichten benötigen, können
bidirektionale Texttransformationen deklarieren, ohne einen Anbieter oder ein CLI-Backend zu ersetzen:
Plugins, die kleine Kompatibilitäts-Shims für Prompts/Nachrichten benötigen, können
bidirektionale Texttransformationen deklarieren, ohne einen Provider oder ein CLI-Backend zu ersetzen:
```typescript
api.registerTextTransforms({
@ -288,16 +288,16 @@ api.registerTextTransforms({
});
```
`input` schreibt den System-Prompt und den Benutzer-Prompt um, die an die CLI übergeben werden. `output`
schreibt gestreamte Assistant-Deltas und geparsten finalen Text um, bevor OpenClaw seine
eigenen Kontrollmarker und die Zustellung an den Kanal verarbeitet.
`input` schreibt den an die CLI übergebenen System-Prompt und Benutzer-Prompt um. `output`
schreibt gestreamte Assistant-Deltas und geparsten finalen Text um, bevor OpenClaw
seine eigenen Kontrollmarker und die Channel-Auslieferung verarbeitet.
Für CLIs, die JSONL ausgeben, das mit Claude Code stream-json kompatibel ist, setzen Sie
Für CLIs, die mit Claude Code stream-json kompatibles JSONL ausgeben, setzen Sie
`jsonlDialect: "claude-stream-json"` in der Konfiguration dieses Backends.
## Bundle-MCP-Overlays
CLI-Backends erhalten **keine** OpenClaw-Tool-Aufrufe direkt, aber ein Backend kann
CLI-Backends erhalten **keine** direkten OpenClaw-Tool-Aufrufe, aber ein Backend kann
sich mit `bundleMcp: true` für ein generiertes MCP-Konfigurations-Overlay anmelden.
Aktuelles gebündeltes Verhalten:
@ -308,32 +308,32 @@ Aktuelles gebündeltes Verhalten:
Wenn Bundle MCP aktiviert ist, führt OpenClaw Folgendes aus:
- startet einen Loopback-HTTP-MCP-Server, der Gateway-Tools für den CLI-Prozess bereitstellt
- authentifiziert die Bridge mit einem Sitzungstoken pro Sitzung (`OPENCLAW_MCP_TOKEN`)
- begrenzt den Tool-Zugriff auf die aktuelle Sitzung, das Konto und den Kanalkontext
- lädt aktivierte Bundle-MCP-Server für den aktuellen Workspace
- führt sie mit einer eventuell vorhandenen MCP-Konfigurations-/Einstellungsstruktur des Backends zusammen
- schreibt die Startkonfiguration unter Verwendung des backend-eigenen Integrationsmodus aus der besitzenden Erweiterung um
- es startet einen loopback-HTTP-MCP-Server, der Gateway-Tools für den CLI-Prozess bereitstellt
- es authentifiziert die Bridge mit einem Token pro Sitzung (`OPENCLAW_MCP_TOKEN`)
- es begrenzt den Tool-Zugriff auf die aktuelle Sitzung sowie den Account- und Channel-Kontext
- es lädt aktivierte Bundle-MCP-Server für den aktuellen Workspace
- es führt sie mit einer vorhandenen backend-spezifischen MCP-Konfigurations-/Einstellungsstruktur zusammen
- es schreibt die Startkonfiguration mit dem backend-eigenen Integrationsmodus der zugehörigen Erweiterung um
Wenn keine MCP-Server aktiviert sind, injiziert OpenClaw dennoch eine strikte Konfiguration, wenn ein
Backend sich für Bundle MCP anmeldet, damit Hintergrundläufe isoliert bleiben.
Wenn keine MCP-Server aktiviert sind, injiziert OpenClaw dennoch eine strikte Konfiguration, wenn sich ein
Backend für Bundle MCP anmeldet, damit Hintergrundläufe isoliert bleiben.
## Einschränkungen
- **Keine direkten OpenClaw-Tool-Aufrufe.** OpenClaw injiziert keine Tool-Aufrufe in
das CLI-Backend-Protokoll. Backends sehen Gateway-Tools nur, wenn sie sich für
das CLI-Backend-Protokoll. Backends sehen Gateway-Tools nur dann, wenn sie sich für
`bundleMcp: true` anmelden.
- **Streaming ist backend-spezifisch.** Einige Backends streamen JSONL; andere puffern
- **Streaming ist backend-spezifisch.** Manche Backends streamen JSONL, andere puffern
bis zum Beenden.
- **Strukturierte Ausgaben** hängen vom JSON-Format der CLI ab.
- **Codex-CLI-Sitzungen** werden per Textausgabe fortgesetzt (kein JSONL), was weniger
strukturiert ist als der anfängliche `--json`-Lauf. OpenClaw-Sitzungen funktionieren weiterhin
normal.
- **Codex-CLI-Sitzungen** werden über Textausgabe fortgesetzt (kein JSONL), was weniger
strukturiert ist als der anfängliche `--json`-Lauf. OpenClaw-Sitzungen funktionieren
weiterhin normal.
## Fehlerbehebung
- **CLI nicht gefunden**: Setzen Sie `command` auf einen vollständigen Pfad.
- **Falscher Modellname**: Verwenden Sie `modelAliases`, um `provider/model` → CLI-Modell abzubilden.
- **Falscher Modellname**: Verwenden Sie `modelAliases`, um `provider/model` → CLI-Modell zuzuordnen.
- **Keine Sitzungskontinuität**: Stellen Sie sicher, dass `sessionArg` gesetzt ist und `sessionMode` nicht
`none` ist (Codex CLI kann derzeit nicht mit JSON-Ausgabe fortsetzen).
- **Bilder werden ignoriert**: Setzen Sie `imageArg` (und prüfen Sie, ob die CLI Dateipfade unterstützt).

View File

@ -1,14 +1,14 @@
---
read_when:
- Sie möchten Google-Gemini-Modelle mit OpenClaw verwenden.
- Sie möchten Google Gemini-Modelle mit OpenClaw verwenden.
- Sie benötigen den API-Schlüssel oder den OAuth-Authentifizierungsablauf.
summary: Google-Gemini-Einrichtung (API-Schlüssel + OAuth, Bildgenerierung, Medienverständnis, Websuche)
summary: Google Gemini-Einrichtung (API-Schlüssel + OAuth, Bildgenerierung, Medienverständnis, TTS, Websuche)
title: Google (Gemini)
x-i18n:
generated_at: "2026-04-12T23:31:14Z"
generated_at: "2026-04-16T19:31:07Z"
model: gpt-5.4
provider: openai
source_hash: 64b848add89061b208a5d6b19d206c433cace5216a0ca4b63d56496aecbde452
source_hash: ec2d62855f5e80efda758aad71bcaa95c38b1e41761fa1100d47a06c62881419
source_path: providers/google.md
workflow: 15
---
@ -16,17 +16,17 @@ x-i18n:
# Google (Gemini)
Das Google-Plugin bietet Zugriff auf Gemini-Modelle über Google AI Studio sowie
Bildgenerierung, Medienverständnis (Bild/Audio/Video) und Websuche über
Bildgenerierung, Medienverständnis (Bild/Audio/Video), Text-to-Speech und Websuche über
Gemini Grounding.
- Provider: `google`
- Auth: `GEMINI_API_KEY` oder `GOOGLE_API_KEY`
- Anbieter: `google`
- Authentifizierung: `GEMINI_API_KEY` oder `GOOGLE_API_KEY`
- API: Google Gemini API
- Alternativer Provider: `google-gemini-cli` (OAuth)
- Alternativer Anbieter: `google-gemini-cli` (OAuth)
## Erste Schritte
Wählen Sie Ihre bevorzugte Authentifizierungsmethode und folgen Sie den Einrichtungsschritten.
Wählen Sie Ihre bevorzugte Authentifizierungsmethode und befolgen Sie die Einrichtungsschritte.
<Tabs>
<Tab title="API-Schlüssel">
@ -66,17 +66,17 @@ Wählen Sie Ihre bevorzugte Authentifizierungsmethode und folgen Sie den Einrich
</Steps>
<Tip>
Die Umgebungsvariablen `GEMINI_API_KEY` und `GOOGLE_API_KEY` werden beide akzeptiert. Verwenden Sie diejenige, die Sie bereits konfiguriert haben.
Die Umgebungsvariablen `GEMINI_API_KEY` und `GOOGLE_API_KEY` werden beide unterstützt. Verwenden Sie diejenige, die Sie bereits konfiguriert haben.
</Tip>
</Tab>
<Tab title="Gemini CLI (OAuth)">
**Am besten geeignet für:** die Wiederverwendung einer bestehenden Gemini-CLI-Anmeldung über PKCE-OAuth statt eines separaten API-Schlüssels.
**Am besten geeignet für:** die Wiederverwendung einer bestehenden Gemini-CLI-Anmeldung über PKCE OAuth anstelle eines separaten API-Schlüssels.
<Warning>
Der Provider `google-gemini-cli` ist eine inoffizielle Integration. Einige Nutzer
berichten bei dieser Verwendung von OAuth über Kontoeinschränkungen. Die Nutzung erfolgt auf eigenes Risiko.
Der Anbieter `google-gemini-cli` ist eine inoffizielle Integration. Einige Nutzer
berichten von Kontoeinschränkungen, wenn OAuth auf diese Weise verwendet wird. Die Nutzung erfolgt auf eigenes Risiko.
</Warning>
<Steps>
@ -92,7 +92,7 @@ Wählen Sie Ihre bevorzugte Authentifizierungsmethode und folgen Sie den Einrich
```
OpenClaw unterstützt sowohl Homebrew-Installationen als auch globale npm-Installationen, einschließlich
gängiger Windows-/npm-Layouts.
gängiger Windows/npm-Layouts.
</Step>
<Step title="Über OAuth anmelden">
```bash
@ -117,7 +117,7 @@ Wählen Sie Ihre bevorzugte Authentifizierungsmethode und folgen Sie den Einrich
(Oder die Varianten `GEMINI_CLI_*`.)
<Note>
Wenn OAuth-Anfragen der Gemini CLI nach der Anmeldung fehlschlagen, setzen Sie `GOOGLE_CLOUD_PROJECT` oder
Wenn Gemini-CLI-OAuth-Anfragen nach der Anmeldung fehlschlagen, setzen Sie `GOOGLE_CLOUD_PROJECT` oder
`GOOGLE_CLOUD_PROJECT_ID` auf dem Gateway-Host und versuchen Sie es erneut.
</Note>
@ -126,9 +126,9 @@ Wählen Sie Ihre bevorzugte Authentifizierungsmethode und folgen Sie den Einrich
installiert ist und sich auf `PATH` befindet.
</Note>
Der reine OAuth-Provider `google-gemini-cli` ist eine separate
Oberfläche für Textinferenz. Bildgenerierung, Medienverständnis und Gemini Grounding bleiben auf
der Provider-ID `google`.
Der reine OAuth-Anbieter `google-gemini-cli` ist eine separate Oberfläche für Textinferenz.
Bildgenerierung, Medienverständnis und Gemini Grounding bleiben auf der
Anbieter-ID `google`.
</Tab>
</Tabs>
@ -137,34 +137,35 @@ Wählen Sie Ihre bevorzugte Authentifizierungsmethode und folgen Sie den Einrich
| Fähigkeit | Unterstützt |
| ---------------------- | ----------------- |
| Chat Completions | Ja |
| Chat-Completions | Ja |
| Bildgenerierung | Ja |
| Musikgenerierung | Ja |
| Text-to-Speech | Ja |
| Bildverständnis | Ja |
| Audiotranskription | Ja |
| Videoverständnis | Ja |
| Websuche (Grounding) | Ja |
| Thinking/Reasoning | Ja (Gemini 3.1+) |
| Gemma-4-Modelle | Ja |
| Gemma 4-Modelle | Ja |
<Tip>
Gemma-4-Modelle (zum Beispiel `gemma-4-26b-a4b-it`) unterstützen den Thinking-Modus. OpenClaw
schreibt `thinkingBudget` für Gemma 4 in ein unterstütztes Google-`thinkingLevel` um.
Gemma 4-Modelle (zum Beispiel `gemma-4-26b-a4b-it`) unterstützen den Thinking-Modus. OpenClaw
schreibt `thinkingBudget` in ein unterstütztes Google-`thinkingLevel` für Gemma 4 um.
Wenn Thinking auf `off` gesetzt wird, bleibt Thinking deaktiviert, statt auf
`MINIMAL` abgebildet zu werden.
</Tip>
## Bildgenerierung
Der gebündelte Provider `google` für Bildgenerierung verwendet standardmäßig
Der gebündelte Bildgenerierungsanbieter `google` verwendet standardmäßig
`google/gemini-3.1-flash-image-preview`.
- Unterstützt außerdem `google/gemini-3-pro-image-preview`
- Generieren: bis zu 4 Bilder pro Anfrage
- Unterstützt auch `google/gemini-3-pro-image-preview`
- Generierung: bis zu 4 Bilder pro Anfrage
- Bearbeitungsmodus: aktiviert, bis zu 5 Eingabebilder
- Geometriesteuerungen: `size`, `aspectRatio` und `resolution`
So verwenden Sie Google als Standard-Provider für Bilder:
So verwenden Sie Google als Standardanbieter für Bilder:
```json5
{
@ -179,20 +180,20 @@ So verwenden Sie Google als Standard-Provider für Bilder:
```
<Note>
Siehe [Bildgenerierung](/de/tools/image-generation) für gemeinsame Tool-Parameter, Providerauswahl und Failover-Verhalten.
Siehe [Bildgenerierung](/de/tools/image-generation) für gemeinsame Tool-Parameter, Anbieterauswahl und Failover-Verhalten.
</Note>
## Videogenerierung
Das gebündelte Plugin `google` registriert außerdem Videogenerierung über das gemeinsame
Das gebündelte `google`-Plugin registriert auch Videogenerierung über das gemeinsame
Tool `video_generate`.
- Standard-Videomodell: `google/veo-3.1-fast-generate-preview`
- Modi: Text-zu-Video, Bild-zu-Video und Referenz-Abläufe mit einem einzelnen Video
- Modi: Text-zu-Video-, Bild-zu-Video- und Einzelvideo-Referenzabläufe
- Unterstützt `aspectRatio`, `resolution` und `audio`
- Aktuelle Begrenzung der Dauer: **4 bis 8 Sekunden**
So verwenden Sie Google als Standard-Provider für Video:
So verwenden Sie Google als Standardanbieter für Video:
```json5
{
@ -207,22 +208,22 @@ So verwenden Sie Google als Standard-Provider für Video:
```
<Note>
Siehe [Videogenerierung](/de/tools/video-generation) für gemeinsame Tool-Parameter, Providerauswahl und Failover-Verhalten.
Siehe [Videogenerierung](/de/tools/video-generation) für gemeinsame Tool-Parameter, Anbieterauswahl und Failover-Verhalten.
</Note>
## Musikgenerierung
Das gebündelte Plugin `google` registriert außerdem Musikgenerierung über das gemeinsame
Das gebündelte `google`-Plugin registriert auch Musikgenerierung über das gemeinsame
Tool `music_generate`.
- Standard-Musikmodell: `google/lyria-3-clip-preview`
- Unterstützt außerdem `google/lyria-3-pro-preview`
- Unterstützt auch `google/lyria-3-pro-preview`
- Prompt-Steuerungen: `lyrics` und `instrumental`
- Ausgabeformat: standardmäßig `mp3`, außerdem `wav` auf `google/lyria-3-pro-preview`
- Ausgabeformat: standardmäßig `mp3`, zusätzlich `wav` auf `google/lyria-3-pro-preview`
- Referenzeingaben: bis zu 10 Bilder
- Sitzungsgebundene Läufe werden über den gemeinsamen Task-/Status-Ablauf entkoppelt, einschließlich `action: "status"`
- Sitzungsbasierte Läufe werden über den gemeinsamen Task-/Status-Ablauf getrennt ausgeführt, einschließlich `action: "status"`
So verwenden Sie Google als Standard-Provider für Musik:
So verwenden Sie Google als Standardanbieter für Musik:
```json5
{
@ -237,21 +238,65 @@ So verwenden Sie Google als Standard-Provider für Musik:
```
<Note>
Siehe [Musikgenerierung](/de/tools/music-generation) für gemeinsame Tool-Parameter, Providerauswahl und Failover-Verhalten.
Siehe [Musikgenerierung](/de/tools/music-generation) für gemeinsame Tool-Parameter, Anbieterauswahl und Failover-Verhalten.
</Note>
## Text-to-Speech
Der gebündelte Sprachanbieter `google` verwendet den Gemini-API-TTS-Pfad mit
`gemini-3.1-flash-tts-preview`.
- Standardstimme: `Kore`
- Authentifizierung: `messages.tts.providers.google.apiKey`, `models.providers.google.apiKey`, `GEMINI_API_KEY` oder `GOOGLE_API_KEY`
- Ausgabe: WAV für reguläre TTS-Anhänge, PCM für Talk/Telefonie
- Native Sprachnachrichten-Ausgabe: auf diesem Gemini-API-Pfad nicht unterstützt, da die API PCM statt Opus zurückgibt
So verwenden Sie Google als Standardanbieter für TTS:
```json5
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
},
},
},
},
}
```
Gemini API TTS akzeptiert ausdrucksstarke Audio-Tags in eckigen Klammern im Text, wie
`[whispers]` oder `[laughs]`. Um Tags aus der sichtbaren Chat-Antwort herauszuhalten und sie gleichzeitig
an TTS zu senden, setzen Sie sie in einen `[[tts:text]]...[[/tts:text]]`-Block:
```text
Hier ist der saubere Antworttext.
[[tts:text]][whispers] Hier ist die gesprochene Version.[[/tts:text]]
```
<Note>
Ein Google-Cloud-Console-API-Schlüssel, der auf die Gemini API beschränkt ist, ist für diesen
Anbieter gültig. Dies ist nicht der separate Cloud-Text-to-Speech-API-Pfad.
</Note>
## Erweiterte Konfiguration
<AccordionGroup>
<Accordion title="Direkte Wiederverwendung des Gemini-Cache">
Für direkte Gemini-API-Läufe (`api: "google-generative-ai"`) übergibt OpenClaw
ein konfiguriertes `cachedContent`-Handle an Gemini-Anfragen.
Bei direkten Gemini-API-Läufen (`api: "google-generative-ai"`) gibt OpenClaw
ein konfiguriertes `cachedContent`-Handle an Gemini-Anfragen weiter.
- Konfigurieren Sie pro Modell oder global Parameter mit entweder
`cachedContent` oder dem veralteten `cached_content`
`cachedContent` oder dem älteren `cached_content`
- Wenn beide vorhanden sind, hat `cachedContent` Vorrang
- Beispielwert: `cachedContents/prebuilt-context`
- Gemini-Cache-Treffer bei der Nutzung werden von OpenClaw in `cacheRead` normalisiert, basierend auf
- Die Gemini-Cache-Treffernutzung wird in OpenClaw-`cacheRead` normalisiert aus
dem Upstream-Wert `cachedContentTokenCount`
```json5
@ -273,14 +318,14 @@ Siehe [Musikgenerierung](/de/tools/music-generation) für gemeinsame Tool-Parame
</Accordion>
<Accordion title="Hinweise zur JSON-Nutzung der Gemini CLI">
Wenn der OAuth-Provider `google-gemini-cli` verwendet wird, normalisiert OpenClaw
Bei Verwendung des OAuth-Anbieters `google-gemini-cli` normalisiert OpenClaw
die JSON-Ausgabe der CLI wie folgt:
- Antworttext stammt aus dem Feld `response` der CLI-JSON.
- Die Nutzung fällt auf `stats` zurück, wenn die CLI `usage` leer lässt.
- `stats.cached` wird in OpenClaw `cacheRead` normalisiert.
- Wenn `stats.input` fehlt, leitet OpenClaw Eingabetokens aus
`stats.input_tokens - stats.cached` ab.
- Der Antworttext stammt aus dem JSON-Feld `response` der CLI.
- Die Nutzungsdaten greifen auf `stats` zurück, wenn die CLI `usage` leer lässt.
- `stats.cached` wird in OpenClaw-`cacheRead` normalisiert.
- Wenn `stats.input` fehlt, leitet OpenClaw Eingabetoken ab aus
`stats.input_tokens - stats.cached`.
</Accordion>
@ -291,19 +336,19 @@ Siehe [Musikgenerierung](/de/tools/music-generation) für gemeinsame Tool-Parame
</Accordion>
</AccordionGroup>
## Verwandt
## Verwandte Themen
<CardGroup cols={2}>
<Card title="Modellauswahl" href="/de/concepts/model-providers" icon="layers">
Auswahl von Providern, Modell-Refs und Failover-Verhalten.
Auswahl von Anbietern, Modell-Referenzen und Failover-Verhalten.
</Card>
<Card title="Bildgenerierung" href="/de/tools/image-generation" icon="image">
Gemeinsame Bild-Tool-Parameter und Providerauswahl.
Gemeinsame Bild-Tool-Parameter und Anbieterauswahl.
</Card>
<Card title="Videogenerierung" href="/de/tools/video-generation" icon="video">
Gemeinsame Video-Tool-Parameter und Providerauswahl.
Gemeinsame Video-Tool-Parameter und Anbieterauswahl.
</Card>
<Card title="Musikgenerierung" href="/de/tools/music-generation" icon="music">
Gemeinsame Musik-Tool-Parameter und Providerauswahl.
Gemeinsame Musik-Tool-Parameter und Anbieterauswahl.
</Card>
</CardGroup>

View File

@ -1,81 +1,84 @@
---
read_when:
- Text-zu-Sprache für Antworten aktivieren
- TTS-Provider oder Limits konfigurieren
- '`/tts`-Befehle verwenden'
summary: Text-zu-Sprache (TTS) für ausgehende Antworten
title: Text-zu-Sprache
- Aktivieren von Text-to-Speech für Antworten
- Konfigurieren von TTS-Anbietern oder -Limits
- Verwenden von `/tts`-Befehlen
summary: Text-to-Speech (TTS) für ausgehende Antworten
title: Text-to-Speech
x-i18n:
generated_at: "2026-04-12T23:34:19Z"
generated_at: "2026-04-16T19:31:09Z"
model: gpt-5.4
provider: openai
source_hash: ad79a6be34879347dc73fdab1bd219823cd7c6aa8504e3e4c73e1a0554c837c5
source_hash: de7c1dc8831c1ba307596afd48cb4d36f844724887a13b17e35f41ef5174a86f
source_path: tools/tts.md
workflow: 15
---
# Text-zu-Sprache (TTS)
# Text-to-Speech (TTS)
OpenClaw kann ausgehende Antworten mit ElevenLabs, Microsoft, MiniMax oder OpenAI in Audio umwandeln.
Das funktioniert überall dort, wo OpenClaw Audio senden kann.
OpenClaw kann ausgehende Antworten mit ElevenLabs, Google Gemini, Microsoft, MiniMax oder OpenAI in Audio umwandeln.
Es funktioniert überall dort, wo OpenClaw Audio senden kann.
## Unterstützte Dienste
- **ElevenLabs** (primärer oder Fallback-Provider)
- **Microsoft** (primärer oder Fallback-Provider; die aktuelle gebündelte Implementierung verwendet `node-edge-tts`)
- **MiniMax** (primärer oder Fallback-Provider; verwendet die T2A-v2-API)
- **OpenAI** (primärer oder Fallback-Provider; wird auch für Zusammenfassungen verwendet)
- **ElevenLabs** (primärer oder Fallback-Anbieter)
- **Google Gemini** (primärer oder Fallback-Anbieter; verwendet Gemini API TTS)
- **Microsoft** (primärer oder Fallback-Anbieter; die aktuelle gebündelte Implementierung verwendet `node-edge-tts`)
- **MiniMax** (primärer oder Fallback-Anbieter; verwendet die T2A v2 API)
- **OpenAI** (primärer oder Fallback-Anbieter; wird auch für Zusammenfassungen verwendet)
### Hinweise zu Microsoft Speech
Der gebündelte Microsoft-Sprach-Provider verwendet derzeit den Online-
Neural-TTS-Dienst von Microsoft Edge über die Bibliothek `node-edge-tts`. Es handelt sich um einen gehosteten Dienst (nicht lokal), der Microsoft-Endpunkte verwendet und keinen API-Schlüssel erfordert.
Der gebündelte Microsoft-Sprachanbieter verwendet derzeit den gehosteten
neuronalen TTS-Dienst von Microsoft Edge über die Bibliothek `node-edge-tts`. Es handelt sich um einen gehosteten Dienst (nicht
lokal), der Microsoft-Endpunkte verwendet und keinen API-Schlüssel erfordert.
`node-edge-tts` stellt Sprachkonfigurationsoptionen und Ausgabeformate bereit,
aber nicht alle Optionen werden vom Dienst unterstützt. Legacy-Konfiguration und Direktiveingaben
aber nicht alle Optionen werden vom Dienst unterstützt. Legacy-Konfiguration und Direktiven-Eingaben
mit `edge` funktionieren weiterhin und werden zu `microsoft` normalisiert.
Da dieser Pfad ein öffentlicher Webdienst ohne veröffentlichte SLA oder Kontingente ist,
sollten Sie ihn als Best-Effort behandeln. Wenn Sie garantierte Limits und Support benötigen, verwenden Sie OpenAI
Da dieser Pfad ein öffentlicher Webdienst ohne veröffentlichte SLA oder Quoten ist,
solltest du ihn als Best-Effort betrachten. Wenn du garantierte Limits und Support benötigst, verwende OpenAI
oder ElevenLabs.
## Optionale Schlüssel
Wenn Sie OpenAI, ElevenLabs oder MiniMax verwenden möchten:
Wenn du OpenAI, ElevenLabs, Google Gemini oder MiniMax verwenden möchtest:
- `ELEVENLABS_API_KEY` (oder `XI_API_KEY`)
- `GEMINI_API_KEY` (oder `GOOGLE_API_KEY`)
- `MINIMAX_API_KEY`
- `OPENAI_API_KEY`
Microsoft Speech erfordert **keinen** API-Schlüssel.
Microsoft Speech benötigt **keinen** API-Schlüssel.
Wenn mehrere Provider konfiguriert sind, wird zuerst der ausgewählte Provider verwendet, die anderen dienen als Fallback-Optionen.
Wenn mehrere Anbieter konfiguriert sind, wird zuerst der ausgewählte Anbieter verwendet, die anderen dienen als Fallback-Optionen.
Die automatische Zusammenfassung verwendet das konfigurierte `summaryModel` (oder `agents.defaults.model.primary`),
daher muss dieser Provider ebenfalls authentifiziert sein, wenn Sie Zusammenfassungen aktivieren.
daher muss dieser Anbieter ebenfalls authentifiziert sein, wenn du Zusammenfassungen aktivierst.
## Dienstlinks
## Dienst-Links
- [OpenAI-Leitfaden für Text-zu-Sprache](https://platform.openai.com/docs/guides/text-to-speech)
- [OpenAI-Audio-API-Referenz](https://platform.openai.com/docs/api-reference/audio)
- [OpenAI Text-to-Speech guide](https://platform.openai.com/docs/guides/text-to-speech)
- [OpenAI Audio API reference](https://platform.openai.com/docs/api-reference/audio)
- [ElevenLabs Text to Speech](https://elevenlabs.io/docs/api-reference/text-to-speech)
- [ElevenLabs Authentication](https://elevenlabs.io/docs/api-reference/authentication)
- [MiniMax T2A v2 API](https://platform.minimaxi.com/document/T2A%20V2)
- [node-edge-tts](https://github.com/SchneeHertz/node-edge-tts)
- [Microsoft-Speech-Ausgabeformate](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
- [Microsoft Speech output formats](https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech#audio-outputs)
## Ist es standardmäßig aktiviert?
Nein. AutoTTS ist standardmäßig **deaktiviert**. Aktivieren Sie es in der Konfiguration mit
Nein. AutoTTS ist standardmäßig **deaktiviert**. Aktiviere es in der Konfiguration mit
`messages.tts.auto` oder lokal mit `/tts on`.
Wenn `messages.tts.provider` nicht gesetzt ist, wählt OpenClaw den ersten konfigurierten
Speech-Provider in der Auto-Select-Reihenfolge des Registry aus.
Sprachanbieter in der Auto-Select-Reihenfolge des Registrys aus.
## Konfiguration
Die TTS-Konfiguration liegt unter `messages.tts` in `openclaw.json`.
Das vollständige Schema finden Sie unter [Gateway-Konfiguration](/de/gateway/configuration).
Die TTS-Konfiguration befindet sich unter `messages.tts` in `openclaw.json`.
Das vollständige Schema findest du unter [Gateway-Konfiguration](/de/gateway/configuration).
### Minimale Konfiguration (aktivieren + Provider)
### Minimale Konfiguration (Aktivierung + Anbieter)
```json5
{
@ -88,7 +91,7 @@ Das vollständige Schema finden Sie unter [Gateway-Konfiguration](/de/gateway/co
}
```
### OpenAI primär mit ElevenLabs als Fallback
### OpenAI als primärer Anbieter mit ElevenLabs als Fallback
```json5
{
@ -129,7 +132,7 @@ Das vollständige Schema finden Sie unter [Gateway-Konfiguration](/de/gateway/co
}
```
### Microsoft primär (ohne API-Schlüssel)
### Microsoft als primärer Anbieter (kein API-Schlüssel)
```json5
{
@ -152,7 +155,7 @@ Das vollständige Schema finden Sie unter [Gateway-Konfiguration](/de/gateway/co
}
```
### MiniMax primär
### MiniMax als primärer Anbieter
```json5
{
@ -176,6 +179,32 @@ Das vollständige Schema finden Sie unter [Gateway-Konfiguration](/de/gateway/co
}
```
### Google Gemini als primärer Anbieter
```json5
{
messages: {
tts: {
auto: "always",
provider: "google",
providers: {
google: {
apiKey: "gemini_api_key",
model: "gemini-3.1-flash-tts-preview",
voiceName: "Kore",
},
},
},
},
}
```
Google Gemini TTS verwendet den Gemini-API-Schlüsselpfad. Ein API-Schlüssel aus der Google Cloud Console,
der auf die Gemini API beschränkt ist, ist hier gültig, und es ist derselbe Schlüsseltyp,
der vom gebündelten Google-Bildgenerierungsanbieter verwendet wird. Die Auflösungsreihenfolge ist
`messages.tts.providers.google.apiKey` -> `models.providers.google.apiKey` ->
`GEMINI_API_KEY` -> `GOOGLE_API_KEY`.
### Microsoft Speech deaktivieren
```json5
@ -207,7 +236,7 @@ Das vollständige Schema finden Sie unter [Gateway-Konfiguration](/de/gateway/co
}
```
### Nur nach einer eingehenden Sprachnachricht mit Audio antworten
### Nur mit Audio antworten nach einer eingehenden Sprachnachricht
```json5
{
@ -237,30 +266,30 @@ Dann ausführen:
/tts summary off
```
### Hinweise zu Feldern
### Hinweise zu den Feldern
- `auto`: AutoTTS-Modus (`off`, `always`, `inbound`, `tagged`).
- `inbound` sendet nur nach einer eingehenden Sprachnachricht Audio.
- `tagged` sendet nur dann Audio, wenn die Antwort `[[tts:key=value]]`-Direktiven oder einen Block `[[tts:text]]...[[/tts:text]]` enthält.
- `inbound` sendet Audio nur nach einer eingehenden Sprachnachricht.
- `tagged` sendet Audio nur, wenn die Antwort `[[tts:key=value]]`-Direktiven oder einen `[[tts:text]]...[[/tts:text]]`-Block enthält.
- `enabled`: Legacy-Schalter (doctor migriert dies zu `auto`).
- `mode`: `"final"` (Standard) oder `"all"` (einschließlich Tool-/Block-Antworten).
- `provider`: Speech-Provider-ID wie `"elevenlabs"`, `"microsoft"`, `"minimax"` oder `"openai"` (Fallback erfolgt automatisch).
- Wenn `provider` **nicht gesetzt** ist, verwendet OpenClaw den ersten konfigurierten Speech-Provider in der Auto-Select-Reihenfolge des Registry.
- Legacy `provider: "edge"` funktioniert weiterhin und wird zu `microsoft` normalisiert.
- `provider`: Sprachanbieter-ID wie `"elevenlabs"`, `"google"`, `"microsoft"`, `"minimax"` oder `"openai"` (Fallback erfolgt automatisch).
- Wenn `provider` **nicht gesetzt** ist, verwendet OpenClaw den ersten konfigurierten Sprachanbieter in der Auto-Select-Reihenfolge des Registrys.
- Das Legacy-`provider: "edge"` funktioniert weiterhin und wird zu `microsoft` normalisiert.
- `summaryModel`: optionales günstiges Modell für die automatische Zusammenfassung; standardmäßig `agents.defaults.model.primary`.
- Akzeptiert `provider/model` oder einen konfigurierten Modellalias.
- `modelOverrides`: erlaubt dem Modell, TTS-Direktiven auszugeben (standardmäßig aktiviert).
- `allowProvider` ist standardmäßig `false` (Provider-Wechsel ist Opt-in).
- `providers.<id>`: Provider-eigene Einstellungen, verschlüsselt nach Speech-Provider-ID.
- Legacy-direkte Provider-Blöcke (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) werden beim Laden automatisch zu `messages.tts.providers.<id>` migriert.
- `allowProvider` ist standardmäßig `false` (Anbieterwechsel ist Opt-in).
- `providers.<id>`: anbieterinterne Einstellungen, verschlüsselt nach Sprachanbieter-ID.
- Legacy-direkte Anbieterblöcke (`messages.tts.openai`, `messages.tts.elevenlabs`, `messages.tts.microsoft`, `messages.tts.edge`) werden beim Laden automatisch zu `messages.tts.providers.<id>` migriert.
- `maxTextLength`: harte Obergrenze für TTS-Eingaben (Zeichen). `/tts audio` schlägt fehl, wenn diese überschritten wird.
- `timeoutMs`: Anfrage-Timeout (ms).
- `prefsPath`: überschreibt den lokalen Prefs-JSON-Pfad (Provider/Limit/Zusammenfassung).
- `apiKey`-Werte verwenden Env-Variablen als Fallback (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`).
- `providers.elevenlabs.baseUrl`: überschreibt die ElevenLabs-API-Base-URL.
- `prefsPath`: überschreibt den lokalen JSON-Pfad für Prefs (Anbieter/Limit/Zusammenfassung).
- `apiKey`-Werte greifen auf Umgebungsvariablen zurück (`ELEVENLABS_API_KEY`/`XI_API_KEY`, `GEMINI_API_KEY`/`GOOGLE_API_KEY`, `MINIMAX_API_KEY`, `OPENAI_API_KEY`).
- `providers.elevenlabs.baseUrl`: überschreibt die ElevenLabs-API-Basis-URL.
- `providers.openai.baseUrl`: überschreibt den OpenAI-TTS-Endpunkt.
- Auflösungsreihenfolge: `messages.tts.providers.openai.baseUrl` -> `OPENAI_TTS_BASE_URL` -> `https://api.openai.com/v1`
- Nicht standardmäßige Werte werden als OpenAI-kompatible TTS-Endpunkte behandelt, daher werden benutzerdefinierte Modell- und Voice-Namen akzeptiert.
- Nicht standardmäßige Werte werden als OpenAI-kompatible TTS-Endpunkte behandelt, daher werden benutzerdefinierte Modell- und Stimmnamen akzeptiert.
- `providers.elevenlabs.voiceSettings`:
- `stability`, `similarityBoost`, `style`: `0..1`
- `useSpeakerBoost`: `true|false`
@ -268,39 +297,43 @@ Dann ausführen:
- `providers.elevenlabs.applyTextNormalization`: `auto|on|off`
- `providers.elevenlabs.languageCode`: 2-stelliger ISO-639-1-Code (z. B. `en`, `de`)
- `providers.elevenlabs.seed`: Ganzzahl `0..4294967295` (Best-Effort-Determinismus)
- `providers.minimax.baseUrl`: überschreibt die MiniMax-API-Base-URL (Standard `https://api.minimax.io`, Env: `MINIMAX_API_HOST`).
- `providers.minimax.model`: TTS-Modell (Standard `speech-2.8-hd`, Env: `MINIMAX_TTS_MODEL`).
- `providers.minimax.voiceId`: Voice-Kennung (Standard `English_expressive_narrator`, Env: `MINIMAX_TTS_VOICE_ID`).
- `providers.minimax.baseUrl`: überschreibt die MiniMax-API-Basis-URL (Standard `https://api.minimax.io`, Umgebungsvariable: `MINIMAX_API_HOST`).
- `providers.minimax.model`: TTS-Modell (Standard `speech-2.8-hd`, Umgebungsvariable: `MINIMAX_TTS_MODEL`).
- `providers.minimax.voiceId`: Stimmkennung (Standard `English_expressive_narrator`, Umgebungsvariable: `MINIMAX_TTS_VOICE_ID`).
- `providers.minimax.speed`: Wiedergabegeschwindigkeit `0.5..2.0` (Standard 1.0).
- `providers.minimax.vol`: Lautstärke `(0, 10]` (Standard 1.0; muss größer als 0 sein).
- `providers.minimax.pitch`: Tonhöhenverschiebung `-12..12` (Standard 0).
- `providers.google.model`: Gemini-TTS-Modell (Standard `gemini-3.1-flash-tts-preview`).
- `providers.google.voiceName`: Name der vorgefertigten Gemini-Stimme (Standard `Kore`; `voice` wird ebenfalls akzeptiert).
- `providers.google.baseUrl`: überschreibt die Gemini-API-Basis-URL. Nur `https://generativelanguage.googleapis.com` wird akzeptiert.
- Wenn `messages.tts.providers.google.apiKey` ausgelassen wird, kann TTS vor dem Fallback auf Umgebungsvariablen `models.providers.google.apiKey` wiederverwenden.
- `providers.microsoft.enabled`: erlaubt die Verwendung von Microsoft Speech (Standard `true`; kein API-Schlüssel).
- `providers.microsoft.voice`: Name der neuronalen Microsoft-Voice (z. B. `en-US-MichelleNeural`).
- `providers.microsoft.voice`: Name der neuronalen Microsoft-Stimme (z. B. `en-US-MichelleNeural`).
- `providers.microsoft.lang`: Sprachcode (z. B. `en-US`).
- `providers.microsoft.outputFormat`: Microsoft-Ausgabeformat (z. B. `audio-24khz-48kbitrate-mono-mp3`).
- Gültige Werte finden Sie unter Microsoft-Speech-Ausgabeformate; nicht alle Formate werden vom gebündelten, Edge-basierten Transport unterstützt.
- Siehe Microsoft Speech output formats für gültige Werte; nicht alle Formate werden vom gebündelten Edge-basierten Transport unterstützt.
- `providers.microsoft.rate` / `providers.microsoft.pitch` / `providers.microsoft.volume`: Prozentzeichenfolgen (z. B. `+10%`, `-5%`).
- `providers.microsoft.saveSubtitles`: JSON-Untertitel zusammen mit der Audiodatei schreiben.
- `providers.microsoft.saveSubtitles`: schreibt JSON-Untertitel zusammen mit der Audiodatei.
- `providers.microsoft.proxy`: Proxy-URL für Microsoft-Speech-Anfragen.
- `providers.microsoft.timeoutMs`: Überschreibung des Anfrage-Timeouts (ms).
- `providers.microsoft.timeoutMs`: überschreibt das Anfrage-Timeout (ms).
- `edge.*`: Legacy-Alias für dieselben Microsoft-Einstellungen.
## Modellgesteuerte Überschreibungen (standardmäßig aktiviert)
## Modellgesteuerte Overrides (standardmäßig aktiviert)
Standardmäßig **kann** das Modell TTS-Direktiven für eine einzelne Antwort ausgeben.
Wenn `messages.tts.auto` auf `tagged` gesetzt ist, sind diese Direktiven erforderlich, um Audio auszulösen.
Wenn aktiviert, kann das Modell `[[tts:...]]`-Direktiven ausgeben, um die Voice
für eine einzelne Antwort zu überschreiben, plus optional einen Block `[[tts:text]]...[[/tts:text]]`, um
ausdrucksstarke Tags (Lachen, Gesangshinweise usw.) bereitzustellen, die nur im
Wenn aktiviert, kann das Modell `[[tts:...]]`-Direktiven ausgeben, um die Stimme
für eine einzelne Antwort zu überschreiben, sowie optional einen `[[tts:text]]...[[/tts:text]]`-Block,
um expressive Tags (Lachen, Gesangshinweise usw.) bereitzustellen, die nur im
Audio erscheinen sollen.
`provider=...`-Direktiven werden ignoriert, sofern nicht `modelOverrides.allowProvider: true` gesetzt ist.
Beispiel-Payload für eine Antwort:
Beispiel für eine Antwort-Payload:
```
Hier ist es.
Hier ist sie.
[[tts:voiceId=pMsXgVXv3BLzUgSXRplE model=eleven_v3 speed=1.1]]
[[tts:text]](lacht) Lies das Lied noch einmal vor.[[/tts:text]]
@ -308,9 +341,9 @@ Hier ist es.
Verfügbare Direktivschlüssel (wenn aktiviert):
- `provider` (registrierte Speech-Provider-ID, zum Beispiel `openai`, `elevenlabs`, `minimax` oder `microsoft`; erfordert `allowProvider: true`)
- `voice` (OpenAI-Voice) oder `voiceId` (ElevenLabs / MiniMax)
- `model` (OpenAI-TTS-Modell, ElevenLabs-Modell-ID oder MiniMax-Modell)
- `provider` (registrierte Sprachanbieter-ID, zum Beispiel `openai`, `elevenlabs`, `google`, `minimax` oder `microsoft`; erfordert `allowProvider: true`)
- `voice` (OpenAI-Stimme), `voiceName` / `voice_name` / `google_voice` (Google-Stimme) oder `voiceId` (ElevenLabs / MiniMax)
- `model` (OpenAI-TTS-Modell, ElevenLabs-Modell-ID oder MiniMax-Modell) oder `google_model` (Google-TTS-Modell)
- `stability`, `similarityBoost`, `style`, `speed`, `useSpeakerBoost`
- `vol` / `volume` (MiniMax-Lautstärke, 0-10)
- `pitch` (MiniMax-Tonhöhe, -12 bis 12)
@ -318,7 +351,7 @@ Verfügbare Direktivschlüssel (wenn aktiviert):
- `languageCode` (ISO 639-1)
- `seed`
Alle Modellüberschreibungen deaktivieren:
Alle modellgesteuerten Overrides deaktivieren:
```json5
{
@ -332,7 +365,7 @@ Alle Modellüberschreibungen deaktivieren:
}
```
Optionale Allowlist (Provider-Wechsel aktivieren, während andere Einstellungen konfigurierbar bleiben):
Optionale Allowlist (Anbieterwechsel aktivieren, während andere Parameter weiterhin konfigurierbar bleiben):
```json5
{
@ -348,9 +381,9 @@ Optionale Allowlist (Provider-Wechsel aktivieren, während andere Einstellungen
}
```
## Benutzerbezogene Einstellungen
## Benutzerspezifische Einstellungen
Slash-Befehle schreiben lokale Überschreibungen nach `prefsPath` (Standard:
Slash-Befehle schreiben lokale Overrides nach `prefsPath` (Standard:
`~/.openclaw/settings/tts.json`, überschreibbar mit `OPENCLAW_TTS_PREFS` oder
`messages.tts.prefsPath`).
@ -358,7 +391,7 @@ Gespeicherte Felder:
- `enabled`
- `provider`
- `maxLength` (Zusammenfassungsschwelle; Standard 1500 Zeichen)
- `maxLength` (Schwellenwert für Zusammenfassungen; Standard 1500 Zeichen)
- `summarize` (Standard `true`)
Diese überschreiben `messages.tts.*` für diesen Host.
@ -366,26 +399,27 @@ Diese überschreiben `messages.tts.*` für diesen Host.
## Ausgabeformate (fest)
- **Feishu / Matrix / Telegram / WhatsApp**: Opus-Sprachnachricht (`opus_48000_64` von ElevenLabs, `opus` von OpenAI).
- 48 kHz / 64 kbit/s ist ein guter Kompromiss für Sprachnachrichten.
- **Andere Channels**: MP3 (`mp3_44100_128` von ElevenLabs, `mp3` von OpenAI).
- 44,1 kHz / 128 kbit/s ist die Standardbalance für Sprachverständlichkeit.
- **MiniMax**: MP3 (Modell `speech-2.8-hd`, 32-kHz-Abtastrate). Voice-Note-Format wird nativ nicht unterstützt; verwenden Sie OpenAI oder ElevenLabs für garantiert Opus-Sprachnachrichten.
- 48 kHz / 64 kbps ist ein guter Kompromiss für Sprachnachrichten.
- **Andere Kanäle**: MP3 (`mp3_44100_128` von ElevenLabs, `mp3` von OpenAI).
- 44,1 kHz / 128 kbps ist die Standardbalance für Sprachverständlichkeit.
- **MiniMax**: MP3 (`speech-2.8-hd`-Modell, 32-kHz-Abtastrate). Voice-Note-Format wird nativ nicht unterstützt; verwende OpenAI oder ElevenLabs für garantierte Opus-Sprachnachrichten.
- **Google Gemini**: Gemini API TTS gibt rohes 24-kHz-PCM zurück. OpenClaw verpackt es als WAV für Audioanhänge und gibt PCM direkt für Talk/Telephonie zurück. Das native Opus-Voice-Note-Format wird auf diesem Weg nicht unterstützt.
- **Microsoft**: verwendet `microsoft.outputFormat` (Standard `audio-24khz-48kbitrate-mono-mp3`).
- Der gebündelte Transport akzeptiert ein `outputFormat`, aber nicht alle Formate sind vom Dienst verfügbar.
- Werte für Ausgabeformate folgen den Microsoft-Speech-Ausgabeformaten (einschließlich Ogg/WebM Opus).
- Telegram `sendVoice` akzeptiert OGG/MP3/M4A; verwenden Sie OpenAI/ElevenLabs, wenn Sie
garantiert Opus-Sprachnachrichten benötigen.
- Werte für das Ausgabeformat entsprechen den Microsoft Speech output formats (einschließlich Ogg/WebM Opus).
- Telegram `sendVoice` akzeptiert OGG/MP3/M4A; verwende OpenAI/ElevenLabs, wenn du
garantierte Opus-Sprachnachrichten benötigst.
- Wenn das konfigurierte Microsoft-Ausgabeformat fehlschlägt, versucht OpenClaw es erneut mit MP3.
OpenAI-/ElevenLabs-Ausgabeformate sind pro Channel fest vorgegeben (siehe oben).
Die OpenAI-/ElevenLabs-Ausgabeformate sind je Kanal festgelegt (siehe oben).
## Auto-TTS-Verhalten
## Verhalten von Auto-TTS
Wenn aktiviert, tut OpenClaw Folgendes:
Wenn aktiviert, führt OpenClaw Folgendes aus:
- überspringt TTS, wenn die Antwort bereits Medien oder eine `MEDIA:`-Direktive enthält.
- überspringt sehr kurze Antworten (< 10 Zeichen).
- fasst lange Antworten zusammen, wenn aktiviert, unter Verwendung von `agents.defaults.model.primary` (oder `summaryModel`).
- fasst lange Antworten bei Aktivierung mit `agents.defaults.model.primary` (oder `summaryModel`) zusammen.
- hängt das generierte Audio an die Antwort an.
Wenn die Antwort `maxLength` überschreitet und die Zusammenfassung deaktiviert ist (oder kein API-Schlüssel für das
@ -398,7 +432,7 @@ Zusammenfassungsmodell vorhanden ist), wird Audio
Antwort -> TTS aktiviert?
nein -> Text senden
ja -> Medien / MEDIA: / kurz vorhanden?
ja -> Text senden
ja -> Text senden
nein -> Länge > Limit?
nein -> TTS -> Audio anhängen
ja -> Zusammenfassung aktiviert?
@ -407,13 +441,13 @@ Antwort -> TTS aktiviert?
-> TTS -> Audio anhängen
```
## Verwendung des Slash-Befehls
## Verwendung von Slash-Befehlen
Es gibt einen einzelnen Befehl: `/tts`.
Einzelheiten zur Aktivierung finden Sie unter [Slash-Befehle](/de/tools/slash-commands).
Es gibt einen einzigen Befehl: `/tts`.
Details zur Aktivierung findest du unter [Slash-Befehle](/de/tools/slash-commands).
Hinweis zu Discord: `/tts` ist ein integrierter Discord-Befehl, daher registriert OpenClaw dort
`/voice` als nativen Befehl. Textbasiertes `/tts ...` funktioniert weiterhin.
Hinweis zu Discord: `/tts` ist ein integrierter Discord-Befehl, daher registriert OpenClaw
dort `/voice` als nativen Befehl. Textbasiertes `/tts ...` funktioniert weiterhin.
```
/tts off
@ -431,22 +465,22 @@ Hinweise:
- `commands.text` oder die Registrierung nativer Befehle muss aktiviert sein.
- Die Konfiguration `messages.tts.auto` akzeptiert `off|always|inbound|tagged`.
- `/tts on` schreibt die lokale TTS-Einstellung auf `always`; `/tts off` schreibt sie auf `off`.
- Verwenden Sie die Konfiguration, wenn Sie `inbound`- oder `tagged`-Standards wünschen.
- Verwende die Konfiguration, wenn du `inbound`- oder `tagged`-Standards möchtest.
- `limit` und `summary` werden in lokalen Prefs gespeichert, nicht in der Hauptkonfiguration.
- `/tts audio` erzeugt eine einmalige Audioantwort (aktiviert TTS nicht dauerhaft).
- `/tts status` enthält Sichtbarkeit des Fallbacks für den letzten Versuch:
- erfolgreicher Fallback: `Fallback: <primary> -> <used>` plus `Attempts: ...`
- `/tts audio` erzeugt eine einmalige Audioantwort (aktiviert TTS nicht).
- `/tts status` enthält Fallback-Sichtbarkeit für den letzten Versuch:
- erfolgreiches Fallback: `Fallback: <primary> -> <used>` plus `Attempts: ...`
- Fehler: `Error: ...` plus `Attempts: ...`
- detaillierte Diagnose: `Attempt details: provider:outcome(reasonCode) latency`
- OpenAI- und ElevenLabs-API-Fehler enthalten jetzt geparste Provider-Fehlerdetails und die Anfrage-ID (wenn vom Provider zurückgegeben), die in TTS-Fehlern/Logs angezeigt werden.
- Fehler von OpenAI- und ElevenLabs-APIs enthalten jetzt geparste Anbieterdetails und die Request-ID (wenn vom Anbieter zurückgegeben), die in TTS-Fehlern/Logs angezeigt werden.
## Agent-Tool
Das Tool `tts` wandelt Text in Sprache um und gibt einen Audioanhang für
die Zustellung der Antwort zurück. Wenn der Channel Feishu, Matrix, Telegram oder WhatsApp ist,
die Antwortzustellung zurück. Wenn der Kanal Feishu, Matrix, Telegram oder WhatsApp ist,
wird das Audio als Sprachnachricht statt als Dateianhang zugestellt.
## Gateway-RPC
## Gateway RPC
Gateway-Methoden: