chore(i18n): refresh de translations
This commit is contained in:
parent
a7ce59a7f0
commit
90ba1358ca
@ -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).
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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. Auto‑TTS ist standardmäßig **deaktiviert**. Aktivieren Sie es in der Konfiguration mit
|
||||
Nein. Auto‑TTS 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`: Auto‑TTS-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:
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user