chore(i18n): refresh de translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-21 17:48:27 +00:00
parent dcae304d49
commit 73b4fdb2e0
5 changed files with 863 additions and 824 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,20 @@
---
read_when:
- Slack einrichten oder den Slack-Socket-/HTTP-Modus debuggen
summary: Slack-Einrichtung und Laufzeitverhalten (Socket Mode + HTTP-Request-URLs)
- Einrichten von Slack oder Debuggen des Slack-Socket-/HTTP-Modus
summary: Slack-Einrichtung und Laufzeitverhalten (Socket Mode + HTTP-Anfrage-URLs)
title: Slack
x-i18n:
generated_at: "2026-04-21T13:35:27Z"
generated_at: "2026-04-21T17:45:32Z"
model: gpt-5.4
provider: openai
source_hash: 2fe3c3c344e1c20c09b29773f4f68d2790751e76d8bbaa3c6157e3ff75978acf
source_hash: f30b372a3ae10b7b649532181306e42792aca76b41422516e9633eb79f73f009
source_path: channels/slack.md
workflow: 15
---
# Slack
Status: produktionsreif für DMs + Channels über Slack-App-Integrationen. Der Standardmodus ist Socket Mode; HTTP-Request-URLs werden ebenfalls unterstützt.
Status: produktionsbereit für DMs + Kanäle über Slack-App-Integrationen. Der Standardmodus ist Socket Mode; HTTP-Anfrage-URLs werden ebenfalls unterstützt.
<CardGroup cols={3}>
<Card title="Kopplung" icon="link" href="/de/channels/pairing">
@ -23,7 +23,7 @@ Status: produktionsreif für DMs + Channels über Slack-App-Integrationen. Der S
<Card title="Slash-Befehle" icon="terminal" href="/de/tools/slash-commands">
Natives Befehlsverhalten und Befehlskatalog.
</Card>
<Card title="Fehlerbehebung für Channels" icon="wrench" href="/de/channels/troubleshooting">
<Card title="Fehlerbehebung für Kanäle" icon="wrench" href="/de/channels/troubleshooting">
Kanalübergreifende Diagnose- und Reparaturleitfäden.
</Card>
</CardGroup>
@ -36,10 +36,10 @@ Status: produktionsreif für DMs + Channels über Slack-App-Integrationen. Der S
<Step title="Eine neue Slack-App erstellen">
Klicken Sie in den Slack-App-Einstellungen auf die Schaltfläche **[Create New App](https://api.slack.com/apps/new)**:
- Wählen Sie **from a manifest** und wählen Sie einen Workspace für Ihre App aus
- Fügen Sie das [Beispiel-Manifest](#manifest-and-scope-checklist) von unten ein und fahren Sie mit der Erstellung fort
- Erzeugen Sie ein **App-Level-Token** (`xapp-...`) mit `connections:write`
- Installieren Sie die App und kopieren Sie das angezeigte **Bot Token** (`xoxb-...`)
- wählen Sie **from a manifest** und wählen Sie einen Workspace für Ihre App aus
- fügen Sie das [Beispiel-Manifest](#manifest-and-scope-checklist) von unten ein und fahren Sie mit dem Erstellen fort
- erzeugen Sie ein **App-Level-Token** (`xapp-...`) mit `connections:write`
- installieren Sie die App und kopieren Sie das angezeigte **Bot-Token** (`xoxb-...`)
</Step>
<Step title="OpenClaw konfigurieren">
@ -57,7 +57,7 @@ Status: produktionsreif für DMs + Channels über Slack-App-Integrationen. Der S
}
```
Env-Fallback (nur Standardkonto):
Umgebungsvariablen-Fallback (nur Standardkonto):
```bash
SLACK_APP_TOKEN=xapp-...
@ -77,15 +77,15 @@ openclaw gateway
</Tab>
<Tab title="HTTP-Request-URLs">
<Tab title="HTTP-Anfrage-URLs">
<Steps>
<Step title="Eine neue Slack-App erstellen">
Klicken Sie in den Slack-App-Einstellungen auf die Schaltfläche **[Create New App](https://api.slack.com/apps/new)**:
- Wählen Sie **from a manifest** und wählen Sie einen Workspace für Ihre App aus
- Fügen Sie das [Beispiel-Manifest](#manifest-and-scope-checklist) ein und aktualisieren Sie die URLs vor der Erstellung
- Speichern Sie das **Signing Secret** für die Request-Verifizierung
- Installieren Sie die App und kopieren Sie das angezeigte **Bot Token** (`xoxb-...`)
- wählen Sie **from a manifest** und wählen Sie einen Workspace für Ihre App aus
- fügen Sie das [Beispiel-Manifest](#manifest-and-scope-checklist) ein und aktualisieren Sie die URLs vor dem Erstellen
- speichern Sie das **Signing Secret** für die Anfrageverifizierung
- installieren Sie die App und kopieren Sie das angezeigte **Bot-Token** (`xoxb-...`)
</Step>
@ -134,7 +134,7 @@ openclaw gateway
{
"display_information": {
"name": "OpenClaw",
"description": "Slack-Konnektor für OpenClaw"
"description": "Slack-Connector für OpenClaw"
},
"features": {
"bot_user": {
@ -205,13 +205,13 @@ openclaw gateway
</Tab>
<Tab title="HTTP-Request-URLs">
<Tab title="HTTP-Anfrage-URLs">
```json
{
"display_information": {
"name": "OpenClaw",
"description": "Slack-Konnektor für OpenClaw"
"description": "Slack-Connector für OpenClaw"
},
"features": {
"bot_user": {
@ -291,12 +291,12 @@ openclaw gateway
### Zusätzliche Manifest-Einstellungen
Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standardwerte erweitern.
Stellen Sie verschiedene Funktionen bereit, die die obigen Standardwerte erweitern.
<AccordionGroup>
<Accordion title="Optionale native Slash-Befehle">
Mehrere [native Slash-Befehle](#commands-and-slash-behavior) können statt eines einzelnen konfigurierten Befehls mit gewissen Besonderheiten verwendet werden:
Mehrere [native Slash-Befehle](#commands-and-slash-behavior) können anstelle eines einzelnen konfigurierten Befehls mit gewissen Nuancen verwendet werden:
- Verwenden Sie `/agentstatus` anstelle von `/status`, da der Befehl `/status` reserviert ist.
- Es können nicht mehr als 25 Slash-Befehle gleichzeitig verfügbar gemacht werden.
@ -329,11 +329,11 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
{
"command": "/session",
"description": "Ablauf der Thread-Bindung verwalten",
"usage_hint": "idle <duration|off> oder max-age <duration|off>"
"usage_hint": "idle <duration|off> or max-age <duration|off>"
},
{
"command": "/think",
"description": "Das Denk-Level festlegen",
"description": "Die Denkstufe festlegen",
"usage_hint": "<level>"
},
{
@ -343,12 +343,12 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/fast",
"description": "Fast-Modus anzeigen oder festlegen",
"description": "Schnellmodus anzeigen oder festlegen",
"usage_hint": "[status|on|off]"
},
{
"command": "/reasoning",
"description": "Sichtbarkeit der Begründung umschalten",
"description": "Sichtbarkeit der Schlussfolgerungen umschalten",
"usage_hint": "[on|off|stream]"
},
{
@ -358,7 +358,7 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/exec",
"description": "Exec-Standards anzeigen oder festlegen",
"description": "Exec-Standardwerte anzeigen oder festlegen",
"usage_hint": "host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>"
},
{
@ -373,7 +373,7 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/help",
"description": "Die kurze Hilfezusammenfassung anzeigen"
"description": "Die kurze Hilfeübersicht anzeigen"
},
{
"command": "/commands",
@ -381,12 +381,12 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/tools",
"description": "Anzeigen, was der aktuelle Agent gerade verwenden kann",
"description": "Anzeigen, was der aktuelle Agent jetzt gerade verwenden kann",
"usage_hint": "[compact|verbose]"
},
{
"command": "/agentstatus",
"description": "Laufzeitstatus anzeigen, einschließlich Provider-Nutzung/Kontingent, falls verfügbar"
"description": "Laufzeitstatus anzeigen, einschließlich Provider-Nutzung/-Kontingent, wenn verfügbar"
},
{
"command": "/tasks",
@ -399,11 +399,11 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/whoami",
"description": "Ihre Sender-Identität anzeigen"
"description": "Ihre Senderidentität anzeigen"
},
{
"command": "/skill",
"description": "Eine Skills nach Namen ausführen",
"description": "Eine Skill anhand ihres Namens ausführen",
"usage_hint": "<name> [input]"
},
{
@ -413,14 +413,14 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/usage",
"description": "Die Nutzungsfußzeile steuern oder die Kostenzusammenfassung anzeigen",
"description": "Die Nutzungsfußzeile steuern oder Kostenübersicht anzeigen",
"usage_hint": "off|tokens|full|cost"
}
]
```
</Tab>
<Tab title="HTTP-Request-URLs">
<Tab title="HTTP-Anfrage-URLs">
```json
"slash_commands": [
@ -449,12 +449,12 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
{
"command": "/session",
"description": "Ablauf der Thread-Bindung verwalten",
"usage_hint": "idle <duration|off> oder max-age <duration|off>",
"usage_hint": "idle <duration|off> or max-age <duration|off>",
"url": "https://gateway-host.example.com/slack/events"
},
{
"command": "/think",
"description": "Das Denk-Level festlegen",
"description": "Die Denkstufe festlegen",
"usage_hint": "<level>",
"url": "https://gateway-host.example.com/slack/events"
},
@ -466,13 +466,13 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/fast",
"description": "Fast-Modus anzeigen oder festlegen",
"description": "Schnellmodus anzeigen oder festlegen",
"usage_hint": "[status|on|off]",
"url": "https://gateway-host.example.com/slack/events"
},
{
"command": "/reasoning",
"description": "Sichtbarkeit der Begründung umschalten",
"description": "Sichtbarkeit der Schlussfolgerungen umschalten",
"usage_hint": "[on|off|stream]",
"url": "https://gateway-host.example.com/slack/events"
},
@ -484,7 +484,7 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/exec",
"description": "Exec-Standards anzeigen oder festlegen",
"description": "Exec-Standardwerte anzeigen oder festlegen",
"usage_hint": "host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>",
"url": "https://gateway-host.example.com/slack/events"
},
@ -502,7 +502,7 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/help",
"description": "Die kurze Hilfezusammenfassung anzeigen",
"description": "Die kurze Hilfeübersicht anzeigen",
"url": "https://gateway-host.example.com/slack/events"
},
{
@ -512,13 +512,13 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/tools",
"description": "Anzeigen, was der aktuelle Agent gerade verwenden kann",
"description": "Anzeigen, was der aktuelle Agent jetzt gerade verwenden kann",
"usage_hint": "[compact|verbose]",
"url": "https://gateway-host.example.com/slack/events"
},
{
"command": "/agentstatus",
"description": "Laufzeitstatus anzeigen, einschließlich Provider-Nutzung/Kontingent, falls verfügbar",
"description": "Laufzeitstatus anzeigen, einschließlich Provider-Nutzung/-Kontingent, wenn verfügbar",
"url": "https://gateway-host.example.com/slack/events"
},
{
@ -534,12 +534,12 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/whoami",
"description": "Ihre Sender-Identität anzeigen",
"description": "Ihre Senderidentität anzeigen",
"url": "https://gateway-host.example.com/slack/events"
},
{
"command": "/skill",
"description": "Eine Skills nach Namen ausführen",
"description": "Eine Skill anhand ihres Namens ausführen",
"usage_hint": "<name> [input]",
"url": "https://gateway-host.example.com/slack/events"
},
@ -551,7 +551,7 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
},
{
"command": "/usage",
"description": "Die Nutzungsfußzeile steuern oder die Kostenzusammenfassung anzeigen",
"description": "Die Nutzungsfußzeile steuern oder Kostenübersicht anzeigen",
"usage_hint": "off|tokens|full|cost",
"url": "https://gateway-host.example.com/slack/events"
}
@ -562,14 +562,13 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
</Tabs>
</Accordion>
<Accordion title="Optionale Autorschaft-Scopes (Schreibvorgänge)">
Fügen Sie den Bot-Scope `chat:write.customize` hinzu, wenn ausgehende Nachrichten die Identität des aktiven Agenten (benutzerdefinierter Benutzername und Icon) statt der Standardidentität der Slack-App verwenden sollen.
Wenn Sie ein Emoji-Icon verwenden, erwartet Slack die Syntax `:emoji_name:`.
<Accordion title="Optionale Scopes für die Verfasserschaft (Schreibvorgänge)">
Fügen Sie den Bot-Scope `chat:write.customize` hinzu, wenn ausgehende Nachrichten die aktive Agent-Identität (benutzerdefinierter Benutzername und Symbol) statt der standardmäßigen Slack-App-Identität verwenden sollen.
Wenn Sie ein Emoji-Symbol verwenden, erwartet Slack die Syntax `:emoji_name:`.
</Accordion>
<Accordion title="Optionale User-Token-Scopes (Lesevorgänge)">
Wenn Sie `channels.slack.userToken` konfigurieren, sind typische Lese-Scopes:
Wenn Sie `channels.slack.userToken` konfigurieren, sind typische Lesescopes:
- `channels:history`, `groups:history`, `im:history`, `mpim:history`
- `channels:read`, `groups:read`, `im:read`, `mpim:read`
@ -577,7 +576,7 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
- `reactions:read`
- `pins:read`
- `emoji:read`
- `search:read` (wenn Sie auf Slack-Suchlesevorgänge angewiesen sind)
- `search:read` (wenn Sie von Slack-Suchlesevorgängen abhängen)
</Accordion>
</AccordionGroup>
@ -587,26 +586,30 @@ Machen Sie unterschiedliche Funktionen sichtbar, die die oben genannten Standard
- `botToken` + `appToken` sind für Socket Mode erforderlich.
- Der HTTP-Modus erfordert `botToken` + `signingSecret`.
- `botToken`, `appToken`, `signingSecret` und `userToken` akzeptieren Klartextzeichenfolgen oder SecretRef-Objekte.
- Konfigurations-Token überschreiben den Env-Fallback.
- Der Env-Fallback `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` gilt nur für das Standardkonto.
- `userToken` (`xoxp-...`) ist nur per Konfiguration verfügbar (kein Env-Fallback) und verwendet standardmäßig schreibgeschütztes Verhalten (`userTokenReadOnly: true`).
- Konfigurations-Token überschreiben den Umgebungsvariablen-Fallback.
- Der Umgebungsvariablen-Fallback `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` gilt nur für das Standardkonto.
- `userToken` (`xoxp-...`) ist nur per Konfiguration verfügbar (kein Umgebungsvariablen-Fallback) und verwendet standardmäßig schreibgeschütztes Verhalten (`userTokenReadOnly: true`).
Verhalten der Statusübersicht:
Verhalten des Status-Snapshots:
- Die Slack-Kontoinspektion verfolgt pro Anmeldedatenfeld `*Source`- und `*Status`-Felder (`botToken`, `appToken`, `signingSecret`, `userToken`).
- Die Slack-Kontoinspektion verfolgt pro Anmeldedaten die Felder `*Source` und `*Status`
(`botToken`, `appToken`, `signingSecret`, `userToken`).
- Der Status ist `available`, `configured_unavailable` oder `missing`.
- `configured_unavailable` bedeutet, dass das Konto über SecretRef oder eine andere nicht-inline Secret-Quelle konfiguriert ist, der aktuelle Befehls-/Laufzeitpfad den tatsächlichen Wert aber nicht auflösen konnte.
- Im HTTP-Modus wird `signingSecretStatus` einbezogen; im Socket Mode ist das erforderliche Paar `botTokenStatus` + `appTokenStatus`.
- `configured_unavailable` bedeutet, dass das Konto über SecretRef
oder eine andere nicht-inline Geheimnisquelle konfiguriert ist, der aktuelle Befehls-/Laufzeitpfad
den tatsächlichen Wert jedoch nicht auflösen konnte.
- Im HTTP-Modus wird `signingSecretStatus` eingeschlossen; im Socket Mode ist das
erforderliche Paar `botTokenStatus` + `appTokenStatus`.
<Tip>
Für Aktionen/Verzeichnislesevorgänge kann das User-Token bevorzugt werden, wenn es konfiguriert ist. Für Schreibvorgänge bleibt das Bot-Token bevorzugt; User-Token-Schreibvorgänge sind nur zulässig, wenn `userTokenReadOnly: false` gesetzt ist und kein Bot-Token verfügbar ist.
Für Aktionen/Verzeichnislesevorgänge kann das User-Token bevorzugt werden, wenn es konfiguriert ist. Für Schreibvorgänge bleibt das Bot-Token bevorzugt; Schreibvorgänge mit User-Token sind nur erlaubt, wenn `userTokenReadOnly: false` und kein Bot-Token verfügbar ist.
</Tip>
## Aktionen und Gates
Slack-Aktionen werden über `channels.slack.actions.*` gesteuert.
Slack-Aktionen werden durch `channels.slack.actions.*` gesteuert.
Verfügbare Aktionsgruppen im aktuellen Slack-Tooling:
Verfügbare Aktionsgruppen in den aktuellen Slack-Tools:
| Gruppe | Standard |
| ---------- | -------- |
@ -616,24 +619,24 @@ Verfügbare Aktionsgruppen im aktuellen Slack-Tooling:
| memberInfo | aktiviert |
| emojiList | aktiviert |
Zu den aktuellen Slack-Nachrichtenaktionen gehören `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` und `emoji-list`.
Aktuelle Slack-Nachrichtenaktionen umfassen `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` und `emoji-list`.
## Zugriffskontrolle und Routing
<Tabs>
<Tab title="DM-Richtlinie">
`channels.slack.dmPolicy` steuert den DM-Zugriff (alt: `channels.slack.dm.policy`):
`channels.slack.dmPolicy` steuert den DM-Zugriff (Legacy: `channels.slack.dm.policy`):
- `pairing` (Standard)
- `allowlist`
- `open` (erfordert, dass `channels.slack.allowFrom` `"*"` enthält; alt: `channels.slack.dm.allowFrom`)
- `open` (erfordert, dass `channels.slack.allowFrom` `"*"` enthält; Legacy: `channels.slack.dm.allowFrom`)
- `disabled`
DM-Flags:
- `dm.enabled` (Standard true)
- `dm.enabled` (Standard: true)
- `channels.slack.allowFrom` (bevorzugt)
- `dm.allowFrom` (alt)
- `dm.allowFrom` (Legacy)
- `dm.groupEnabled` (Gruppen-DMs standardmäßig false)
- `dm.groupChannels` (optionale MPIM-Allowlist)
@ -647,35 +650,35 @@ Zu den aktuellen Slack-Nachrichtenaktionen gehören `send`, `upload-file`, `down
</Tab>
<Tab title="Channel-Richtlinie">
`channels.slack.groupPolicy` steuert die Channel-Behandlung:
<Tab title="Kanalrichtlinie">
`channels.slack.groupPolicy` steuert die Kanalbehandlung:
- `open`
- `allowlist`
- `disabled`
Die Channel-Allowlist befindet sich unter `channels.slack.channels` und sollte stabile Channel-IDs verwenden.
Die Kanal-Allowlist befindet sich unter `channels.slack.channels` und sollte stabile Kanal-IDs verwenden.
Laufzeithinweis: Wenn `channels.slack` vollständig fehlt (nur Env-Setup), fällt die Laufzeit auf `groupPolicy="allowlist"` zurück und protokolliert eine Warnung (auch wenn `channels.defaults.groupPolicy` gesetzt ist).
Hinweis zur Laufzeit: Wenn `channels.slack` vollständig fehlt (nur Umgebungsvariablen-Setup), fällt die Laufzeit auf `groupPolicy="allowlist"` zurück und protokolliert eine Warnung (selbst wenn `channels.defaults.groupPolicy` gesetzt ist).
Auflösung von Namen/IDs:
- Einträge in der Channel-Allowlist und DM-Allowlist werden beim Start aufgelöst, wenn der Token-Zugriff dies zulässt
- nicht aufgelöste Channel-Namenseinträge bleiben wie konfiguriert erhalten, werden aber standardmäßig für das Routing ignoriert
- Eingangsautorisierung und Channel-Routing sind standardmäßig ID-first; direktes Matching von Benutzernamen/Slugs erfordert `channels.slack.dangerouslyAllowNameMatching: true`
- Kanal-Allowlist-Einträge und DM-Allowlist-Einträge werden beim Start aufgelöst, wenn der Token-Zugriff dies erlaubt
- nicht aufgelöste Kanalnamenseinträge bleiben wie konfiguriert erhalten, werden für das Routing standardmäßig jedoch ignoriert
- eingehende Autorisierung und Kanalrouting sind standardmäßig ID-zuerst; direktes Abgleichen von Benutzernamen/Slugs erfordert `channels.slack.dangerouslyAllowNameMatching: true`
</Tab>
<Tab title="Erwähnungen und Channel-Benutzer">
Channel-Nachrichten sind standardmäßig durch Erwähnungen begrenzt.
<Tab title="Erwähnungen und Kanalbenutzer">
Kanalnachrichten sind standardmäßig durch Erwähnungen gesteuert.
Quellen für Erwähnungen:
Erwähnungsquellen:
- explizite App-Erwähnung (`<@botId>`)
- Regex-Muster für Erwähnungen (`agents.list[].groupChat.mentionPatterns`, Fallback `messages.groupChat.mentionPatterns`)
- implizites Antwort-auf-Bot-Thread-Verhalten (deaktiviert, wenn `thread.requireExplicitMention` `true` ist)
- implizites Antwort-auf-Bot-Thread-Verhalten (deaktiviert, wenn `thread.requireExplicitMention` auf `true` gesetzt ist)
Steuerelemente pro Channel (`channels.slack.channels.<id>`; Namen nur über Startauflösung oder `dangerouslyAllowNameMatching`):
Steuerelemente pro Kanal (`channels.slack.channels.<id>`; Namen nur über Auflösung beim Start oder `dangerouslyAllowNameMatching`):
- `requireMention`
- `users` (Allowlist)
@ -684,44 +687,44 @@ Zu den aktuellen Slack-Nachrichtenaktionen gehören `send`, `upload-file`, `down
- `systemPrompt`
- `tools`, `toolsBySender`
- Schlüsselformat für `toolsBySender`: `id:`, `e164:`, `username:`, `name:` oder Platzhalter `"*"`
(Altschlüssel ohne Präfix werden weiterhin nur `id:` zugeordnet)
(Legacy-Schlüssel ohne Präfix werden weiterhin nur `id:` zugeordnet)
</Tab>
</Tabs>
## Threads, Sitzungen und Antwort-Tags
- DMs werden als `direct` geroutet; Channels als `channel`; MPIMs als `group`.
- Mit dem Standardwert `session.dmScope=main` werden Slack-DMs zur Hauptsitzung des Agenten zusammengeführt.
- Channel-Sitzungen: `agent:<agentId>:slack:channel:<channelId>`.
- Thread-Antworten können bei Bedarf Thread-Sitzungssuffixe (`:thread:<threadTs>`) erzeugen.
- `channels.slack.thread.historyScope` ist standardmäßig `thread`; `thread.inheritParent` ist standardmäßig `false`.
- `channels.slack.thread.initialHistoryLimit` steuert, wie viele vorhandene Thread-Nachrichten abgerufen werden, wenn eine neue Thread-Sitzung startet (Standard `20`; setzen Sie `0`, um dies zu deaktivieren).
- `channels.slack.thread.requireExplicitMention` (Standard `false`): Wenn `true`, werden implizite Thread-Erwähnungen unterdrückt, sodass der Bot in Threads nur auf explizite `@bot`-Erwähnungen antwortet, selbst wenn der Bot bereits am Thread teilgenommen hat. Ohne dies umgehen Antworten in einem Thread mit Bot-Beteiligung das `requireMention`-Gate.
- DMs werden als `direct` geroutet; Kanäle als `channel`; MPIMs als `group`.
- Mit dem Standardwert `session.dmScope=main` werden Slack-DMs in die Hauptsitzung des Agenten zusammengeführt.
- Kanalsitzungen: `agent:<agentId>:slack:channel:<channelId>`.
- Thread-Antworten können, falls zutreffend, Thread-Sitzungssuffixe (`:thread:<threadTs>`) erzeugen.
- Der Standardwert für `channels.slack.thread.historyScope` ist `thread`; der Standardwert für `thread.inheritParent` ist `false`.
- `channels.slack.thread.initialHistoryLimit` steuert, wie viele vorhandene Thread-Nachrichten abgerufen werden, wenn eine neue Thread-Sitzung beginnt (Standard `20`; auf `0` setzen, um dies zu deaktivieren).
- `channels.slack.thread.requireExplicitMention` (Standard `false`): Wenn `true`, werden implizite Thread-Erwähnungen unterdrückt, sodass der Bot nur auf explizite `@bot`-Erwähnungen innerhalb von Threads antwortet, selbst wenn der Bot bereits am Thread teilgenommen hat. Ohne dies umgehen Antworten in einem Thread, an dem der Bot beteiligt ist, das Gate `requireMention`.
Steuerelemente für Antwort-Threads:
Steuerelemente für Antwort-Threading:
- `channels.slack.replyToMode`: `off|first|all|batched` (Standard `off`)
- `channels.slack.replyToModeByChatType`: pro `direct|group|channel`
- Alt-Fallback für direkte Chats: `channels.slack.dm.replyToMode`
- Legacy-Fallback für direkte Chats: `channels.slack.dm.replyToMode`
Manuelle Antwort-Tags werden unterstützt:
- `[[reply_to_current]]`
- `[[reply_to:<id>]]`
Hinweis: `replyToMode="off"` deaktiviert **sämtliches** Antwort-Threading in Slack, einschließlich expliziter `[[reply_to_*]]`-Tags. Dies unterscheidet sich von Telegram, wo explizite Tags auch im Modus `"off"` weiterhin berücksichtigt werden. Der Unterschied spiegelt die Threading-Modelle der Plattformen wider: Slack-Threads verbergen Nachrichten im Channel, während Telegram-Antworten im Haupt-Chatverlauf sichtbar bleiben.
Hinweis: `replyToMode="off"` deaktiviert **das gesamte** Antwort-Threading in Slack, einschließlich expliziter Tags `[[reply_to_*]]`. Dies unterscheidet sich von Telegram, wo explizite Tags im Modus `"off"` weiterhin berücksichtigt werden. Der Unterschied spiegelt die Threading-Modelle der Plattformen wider: Slack-Threads blenden Nachrichten aus dem Kanal aus, während Telegram-Antworten im Haupt-Chatverlauf sichtbar bleiben.
## Ack-Reaktionen
## Bestätigungsreaktionen
`ackReaction` sendet ein Bestätigungs-Emoji, während OpenClaw eine eingehende Nachricht verarbeitet.
Auflösungsreihenfolge:
Reihenfolge der Auflösung:
- `channels.slack.accounts.<accountId>.ackReaction`
- `channels.slack.ackReaction`
- `messages.ackReaction`
- Emoji-Fallback der Agentenidentität (`agents.list[].identity.emoji`, sonst "👀")
- Emoji-Fallback der Agent-Identität (`agents.list[].identity.emoji`, sonst `"👀"`)
Hinweise:
@ -735,15 +738,16 @@ Hinweise:
- `off`: Live-Vorschau-Streaming deaktivieren.
- `partial` (Standard): Vorschautext durch die neueste Teilausgabe ersetzen.
- `block`: Vorschauaktualisierungen in Blöcken anhängen.
- `progress`: Während der Generierung einen Fortschrittsstatustext anzeigen und dann den endgültigen Text senden.
- `progress`: Fortschrittsstatustext während der Generierung anzeigen, dann den endgültigen Text senden.
- `streaming.preview.toolProgress`: Wenn die Entwurfsvorschau aktiv ist, Tool-/Fortschrittsaktualisierungen in dieselbe bearbeitete Vorschau-Nachricht leiten (Standard: `true`). Auf `false` setzen, um separate Tool-/Fortschrittsnachrichten beizubehalten.
`channels.slack.streaming.nativeTransport` steuert natives Slack-Text-Streaming, wenn `channels.slack.streaming.mode` auf `partial` gesetzt ist (Standard: `true`).
`channels.slack.streaming.nativeTransport` steuert das native Slack-Text-Streaming, wenn `channels.slack.streaming.mode` auf `partial` gesetzt ist (Standard: `true`).
- Für natives Text-Streaming und die Anzeige des Slack-Assistenten-Thread-Status muss ein Antwort-Thread verfügbar sein. Die Thread-Auswahl folgt weiterhin `replyToMode`.
- Channel- und Gruppenchat-Wurzeln können weiterhin die normale Entwurfsvorschau verwenden, wenn natives Streaming nicht verfügbar ist.
- Slack-DMs auf oberster Ebene bleiben standardmäßig außerhalb von Threads, daher zeigen sie keine Vorschau im Thread-Stil an; verwenden Sie Thread-Antworten oder `typingReaction`, wenn dort sichtbarer Fortschritt angezeigt werden soll.
- Medien- und Nicht-Text-Payloads fallen auf normale Zustellung zurück.
- Wenn Streaming während einer Antwort fehlschlägt, fällt OpenClaw für die verbleibenden Payloads auf normale Zustellung zurück.
- Für natives Text-Streaming und das Slack-Assistenten-Thread-Statussignal muss ein Antwort-Thread verfügbar sein. Die Thread-Auswahl folgt weiterhin `replyToMode`.
- Kanal- und Gruppenchat-Wurzeln können weiterhin die normale Entwurfsvorschau verwenden, wenn natives Streaming nicht verfügbar ist.
- Slack-DMs auf oberster Ebene bleiben standardmäßig außerhalb von Threads, daher zeigen sie keine Vorschau im Thread-Stil; verwenden Sie Thread-Antworten oder `typingReaction`, wenn Sie dort sichtbaren Fortschritt möchten.
- Medien- und Nicht-Text-Payloads fallen auf die normale Zustellung zurück.
- Wenn das Streaming mitten in einer Antwort fehlschlägt, fällt OpenClaw für verbleibende Payloads auf die normale Zustellung zurück.
Entwurfsvorschau anstelle von nativem Slack-Text-Streaming verwenden:
@ -760,17 +764,17 @@ Entwurfsvorschau anstelle von nativem Slack-Text-Streaming verwenden:
}
```
Altschlüssel:
Legacy-Schlüssel:
- `channels.slack.streamMode` (`replace | status_final | append`) wird automatisch zu `channels.slack.streaming.mode` migriert.
- Boolesches `channels.slack.streaming` wird automatisch zu `channels.slack.streaming.mode` und `channels.slack.streaming.nativeTransport` migriert.
- Das alte `channels.slack.nativeStreaming` wird automatisch zu `channels.slack.streaming.nativeTransport` migriert.
- boolesches `channels.slack.streaming` wird automatisch zu `channels.slack.streaming.mode` und `channels.slack.streaming.nativeTransport` migriert.
- das Legacy-Feld `channels.slack.nativeStreaming` wird automatisch zu `channels.slack.streaming.nativeTransport` migriert.
## Typing-Reaction-Fallback
## Fallback für Tippreaktionen
`typingReaction` fügt der eingehenden Slack-Nachricht vorübergehend eine Reaktion hinzu, während OpenClaw eine Antwort verarbeitet, und entfernt sie wieder, wenn der Lauf abgeschlossen ist. Dies ist besonders nützlich außerhalb von Thread-Antworten, die standardmäßig einen Statusindikator „is typing...“ verwenden.
`typingReaction` fügt der eingehenden Slack-Nachricht vorübergehend eine Reaktion hinzu, während OpenClaw eine Antwort verarbeitet, und entfernt sie, wenn der Lauf abgeschlossen ist. Dies ist besonders nützlich außerhalb von Thread-Antworten, die standardmäßig einen Statusindikator „schreibt gerade ...“ verwenden.
Auflösungsreihenfolge:
Reihenfolge der Auflösung:
- `channels.slack.accounts.<accountId>.typingReaction`
- `channels.slack.typingReaction`
@ -778,32 +782,32 @@ Auflösungsreihenfolge:
Hinweise:
- Slack erwartet Shortcodes (zum Beispiel `"hourglass_flowing_sand"`).
- Die Reaktion erfolgt nach bestem Aufwand und die Bereinigung wird nach Abschluss des Antwort- oder Fehlerpfads automatisch versucht.
- Die Reaktion erfolgt nach bestem Bemühen, und die Bereinigung wird automatisch versucht, nachdem die Antwort oder der Fehlerpfad abgeschlossen ist.
## Medien, Chunking und Zustellung
<AccordionGroup>
<Accordion title="Eingehende Anhänge">
Slack-Dateianhänge werden von privat gehosteten Slack-URLs heruntergeladen (token-authentifizierter Request-Ablauf) und in den Medienspeicher geschrieben, wenn das Abrufen erfolgreich ist und Größenlimits dies zulassen.
Slack-Dateianhänge werden von privat gehosteten Slack-URLs heruntergeladen (tokenauthentifizierter Anfragefluss) und in den Medienspeicher geschrieben, wenn das Abrufen erfolgreich ist und Größenlimits dies erlauben.
Die Laufzeitgrenze für eingehende Daten beträgt standardmäßig `20MB`, sofern sie nicht durch `channels.slack.mediaMaxMb` überschrieben wird.
Die eingehende Laufzeitgrößenobergrenze beträgt standardmäßig `20MB`, sofern sie nicht durch `channels.slack.mediaMaxMb` überschrieben wird.
</Accordion>
<Accordion title="Ausgehender Text und Dateien">
- Text-Chunks verwenden `channels.slack.textChunkLimit` (Standard 4000)
- `channels.slack.chunkMode="newline"` aktiviert eine absatzorientierte Aufteilung
- Dateisendungen verwenden Slack-Upload-APIs und können Thread-Antworten (`thread_ts`) einschließen
- Die Obergrenze für ausgehende Medien folgt `channels.slack.mediaMaxMb`, wenn konfiguriert; andernfalls verwenden Channel-Sendungen MIME-Art-Standards aus der Medienpipeline
- Dateisendungen verwenden die Slack-Upload-APIs und können Thread-Antworten (`thread_ts`) enthalten
- die Obergrenze für ausgehende Medien folgt `channels.slack.mediaMaxMb`, wenn konfiguriert; andernfalls verwenden Kanalsendungen die MIME-Art-Standardwerte aus der Medienpipeline
</Accordion>
<Accordion title="Zustellungsziele">
<Accordion title="Zustellziele">
Bevorzugte explizite Ziele:
- `user:<id>` für DMs
- `channel:<id>` für Channels
- `channel:<id>` für Kanäle
Slack-DMs werden beim Senden an Benutzerziele über Slack-Conversations-APIs geöffnet.
Slack-DMs werden über die Slack-Konversations-APIs geöffnet, wenn an Benutzerziele gesendet wird.
</Accordion>
</AccordionGroup>
@ -829,22 +833,22 @@ Native Befehle erfordern [zusätzliche Manifest-Einstellungen](#additional-manif
/help
```
Native Argumentmenüs verwenden eine adaptive Rendering-Strategie, die vor dem Absenden eines ausgewählten Optionswerts ein Bestätigungsmodal anzeigt:
Native Argumentmenüs verwenden eine adaptive Rendering-Strategie, die vor dem Absenden eines ausgewählten Optionswerts einen Bestätigungsdialog anzeigt:
- bis zu 5 Optionen: Button-Blöcke
- 6-100 Optionen: statisches Auswahlmenü
- 6100 Optionen: statisches Auswahlmenü
- mehr als 100 Optionen: externe Auswahl mit asynchroner Optionsfilterung, wenn Handler für Interaktivitätsoptionen verfügbar sind
- bei Überschreitung der Slack-Limits: codierte Optionswerte fallen auf Buttons zurück
- Slack-Limits überschritten: kodierte Optionswerte fallen auf Buttons zurück
```txt
/think
```
Slash-Sitzungen verwenden isolierte Schlüssel wie `agent:<agentId>:slack:slash:<userId>` und leiten Befehlsausführungen weiterhin mit `CommandTargetSessionKey` an die Ziel-Konversationssitzung weiter.
Slash-Sitzungen verwenden isolierte Schlüssel wie `agent:<agentId>:slack:slash:<userId>` und leiten Befehlsausführungen weiterhin über `CommandTargetSessionKey` an die Zielkonversationssitzung weiter.
## Interaktive Antworten
Slack kann interaktive, vom Agenten verfasste Antwortsteuerelemente rendern, aber diese Funktion ist standardmäßig deaktiviert.
Slack kann interaktive Antwortsteuerelemente rendern, die vom Agenten verfasst wurden, aber diese Funktion ist standardmäßig deaktiviert.
Global aktivieren:
@ -878,43 +882,43 @@ Oder nur für ein Slack-Konto aktivieren:
}
```
Wenn aktiviert, können Agenten nur für Slack gültige Antwortdirektiven ausgeben:
Wenn aktiviert, können Agenten Slack-spezifische Antwortdirektiven ausgeben:
- `[[slack_buttons: Approve:approve, Reject:reject]]`
- `[[slack_select: Choose a target | Canary:canary, Production:production]]`
Diese Direktiven werden zu Slack Block Kit kompiliert und leiten Klicks oder Auswahlen über den bestehenden Slack-Interaktionsereignispfad zurück.
Diese Direktiven werden in Slack Block Kit kompiliert und leiten Klicks oder Auswahlen über den vorhandenen Slack-Interaktionsereignispfad zurück.
Hinweise:
- Dies ist eine Slack-spezifische UI. Andere Channels übersetzen Slack-Block-Kit-Direktiven nicht in ihre eigenen Button-Systeme.
- Die interaktiven Callback-Werte sind von OpenClaw erzeugte opake Tokens, keine rohen, vom Agenten verfassten Werte.
- Wenn erzeugte interaktive Blöcke die Slack-Block-Kit-Limits überschreiten würden, fällt OpenClaw auf die ursprüngliche Textantwort zurück, anstatt eine ungültige Blocks-Payload zu senden.
- Dies ist Slack-spezifische UI. Andere Kanäle übersetzen Slack-Block-Kit-Direktiven nicht in ihre eigenen Button-Systeme.
- Die interaktiven Callback-Werte sind von OpenClaw erzeugte undurchsichtige Token, keine rohen, vom Agenten verfassten Werte.
- Wenn generierte interaktive Blöcke die Slack-Block-Kit-Limits überschreiten würden, fällt OpenClaw auf die ursprüngliche Textantwort zurück, anstatt eine ungültige Block-Payload zu senden.
## Exec-Genehmigungen in Slack
Slack kann als nativer Genehmigungsclient mit interaktiven Buttons und Interaktionen fungieren, statt auf die Web-UI oder das Terminal zurückzufallen.
Slack kann als nativer Genehmigungsclient mit interaktiven Buttons und Interaktionen fungieren, anstatt auf die Web-UI oder das Terminal zurückzufallen.
- Exec-Genehmigungen verwenden `channels.slack.execApprovals.*` für natives DM-/Channel-Routing.
- Plugin-Genehmigungen können weiterhin über dieselbe Slack-native Button-Oberfläche aufgelöst werden, wenn die Anfrage bereits in Slack landet und die Genehmigungs-ID-Art `plugin:` ist.
- Die Autorisierung der Genehmigenden wird weiterhin erzwungen: Nur als Genehmigende identifizierte Benutzer können Anfragen über Slack genehmigen oder ablehnen.
- Exec-Genehmigungen verwenden `channels.slack.execApprovals.*` für natives DM-/Kanalrouting.
- Plugin-Genehmigungen können weiterhin über dieselbe native Slack-Button-Oberfläche aufgelöst werden, wenn die Anfrage bereits in Slack landet und die Genehmigungs-ID-Art `plugin:` ist.
- Die Autorisierung von Genehmigenden wird weiterhin erzwungen: Nur Benutzer, die als Genehmigende identifiziert wurden, können Anfragen über Slack genehmigen oder ablehnen.
Dies verwendet dieselbe gemeinsame Genehmigungs-Button-Oberfläche wie andere Channels. Wenn `interactivity` in Ihren Slack-App-Einstellungen aktiviert ist, werden Genehmigungsabfragen direkt in der Konversation als Block-Kit-Buttons gerendert.
Wenn diese Buttons vorhanden sind, sind sie die primäre Genehmigungs-UX; OpenClaw
sollte einen manuellen `/approve`-Befehl nur dann einschließen, wenn das Tool-Ergebnis sagt, dass Chat-Genehmigungen nicht verfügbar sind oder die manuelle Genehmigung der einzige Weg ist.
Dies verwendet dieselbe gemeinsame Genehmigungs-Button-Oberfläche wie andere Kanäle. Wenn `interactivity` in Ihren Slack-App-Einstellungen aktiviert ist, werden Genehmigungsaufforderungen direkt als Block-Kit-Buttons in der Konversation gerendert.
Wenn diese Buttons vorhanden sind, sind sie die primäre UX für Genehmigungen; OpenClaw
sollte nur dann einen manuellen `/approve`-Befehl einschließen, wenn das Tool-Ergebnis angibt, dass Chat-Genehmigungen nicht verfügbar sind oder die manuelle Genehmigung der einzige Weg ist.
Konfigurationspfad:
- `channels.slack.execApprovals.enabled`
- `channels.slack.execApprovals.approvers` (optional; fällt wenn möglich auf `commands.ownerAllowFrom` zurück)
- `channels.slack.execApprovals.approvers` (optional; greift nach Möglichkeit auf `commands.ownerAllowFrom` zurück)
- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, Standard: `dm`)
- `agentFilter`, `sessionFilter`
Slack aktiviert native Exec-Genehmigungen automatisch, wenn `enabled` nicht gesetzt ist oder `"auto"` ist und mindestens ein
Genehmigender aufgelöst wird. Setzen Sie `enabled: false`, um Slack explizit als nativen Genehmigungsclient zu deaktivieren.
Slack aktiviert native Exec-Genehmigungen automatisch, wenn `enabled` nicht gesetzt oder `"auto"` ist und mindestens ein
Genehmigender aufgelöst wird. Setzen Sie `enabled: false`, um Slack ausdrücklich als nativen Genehmigungsclient zu deaktivieren.
Setzen Sie `enabled: true`, um native Genehmigungen zu erzwingen, wenn Genehmigende aufgelöst werden.
Standardverhalten ohne explizite Slack-Exec-Genehmigungskonfiguration:
Standardverhalten ohne explizite Konfiguration für Slack-Exec-Genehmigungen:
```json5
{
@ -925,7 +929,7 @@ Standardverhalten ohne explizite Slack-Exec-Genehmigungskonfiguration:
```
Eine explizite Slack-native Konfiguration ist nur erforderlich, wenn Sie Genehmigende überschreiben, Filter hinzufügen oder
sich für die Zustellung an den Ursprungs-Chat entscheiden möchten:
die Zustellung im Ursprungschat aktivieren möchten:
```json5
{
@ -941,23 +945,24 @@ sich für die Zustellung an den Ursprungs-Chat entscheiden möchten:
}
```
Gemeinsame Weiterleitung über `approvals.exec` ist davon getrennt. Verwenden Sie sie nur, wenn Exec-Genehmigungsabfragen zusätzlich
an andere Chats oder explizite Out-of-Band-Ziele weitergeleitet werden müssen. Gemeinsame Weiterleitung über `approvals.plugin` ist ebenfalls
getrennt; Slack-native Buttons können Plugin-Genehmigungen weiterhin auflösen, wenn diese Anfragen bereits in Slack landen.
Gemeinsame Weiterleitung über `approvals.exec` ist getrennt. Verwenden Sie sie nur, wenn Aufforderungen zur Exec-Genehmigung zusätzlich
an andere Chats oder explizite Ziele außerhalb des Bands geleitet werden müssen. Gemeinsame Weiterleitung über `approvals.plugin` ist ebenfalls
getrennt; native Slack-Buttons können Plugin-Genehmigungen weiterhin auflösen, wenn diese Anfragen bereits
in Slack landen.
`/approve` im selben Chat funktioniert auch in Slack-Channels und DMs, die bereits Befehle unterstützen. Siehe [Exec-Genehmigungen](/de/tools/exec-approvals) für das vollständige Modell zur Genehmigungsweiterleitung.
`/approve` im selben Chat funktioniert auch in Slack-Kanälen und DMs, die bereits Befehle unterstützen. Siehe [Exec approvals](/de/tools/exec-approvals) für das vollständige Modell der Genehmigungsweiterleitung.
## Ereignisse und Betriebsverhalten
- Nachrichtenbearbeitungen/-löschungen/Thread-Broadcasts werden in Systemereignisse abgebildet.
- Reaktions-Hinzufügen/-Entfernen-Ereignisse werden in Systemereignisse abgebildet.
- Ereignisse zu Beitritt/Austritt von Mitgliedern, erstellten/umbenannten Channels und hinzugefügten/entfernten Pins werden in Systemereignisse abgebildet.
- `channel_id_changed` kann Channel-Konfigurationsschlüssel migrieren, wenn `configWrites` aktiviert ist.
- Channel-Topic-/Purpose-Metadaten werden als nicht vertrauenswürdiger Kontext behandelt und können in den Routing-Kontext injiziert werden.
- Thread-Starter und anfängliches Kontext-Seeding aus dem Thread-Verlauf werden, sofern zutreffend, nach konfigurierten Sender-Allowlists gefiltert.
- Block-Aktionen und Modal-Interaktionen erzeugen strukturierte Systemereignisse `Slack interaction: ...` mit umfangreichen Payload-Feldern:
- Block-Aktionen: ausgewählte Werte, Labels, Picker-Werte und `workflow_*`-Metadaten
- Modal-Ereignisse `view_submission` und `view_closed` mit gerouteten Channel-Metadaten und Formulareingaben
- Nachrichtenbearbeitungen/-löschungen/Thread-Broadcasts werden Systemereignissen zugeordnet.
- Ereignisse zum Hinzufügen/Entfernen von Reaktionen werden Systemereignissen zugeordnet.
- Ereignisse zum Beitreten/Verlassen von Mitgliedern, Erstellen/Umbenennen von Kanälen sowie Hinzufügen/Entfernen von Pins werden Systemereignissen zugeordnet.
- `channel_id_changed` kann Kanal-Konfigurationsschlüssel migrieren, wenn `configWrites` aktiviert ist.
- Kanalthema/-zweck-Metadaten werden als nicht vertrauenswürdiger Kontext behandelt und können in den Routing-Kontext injiziert werden.
- Thread-Starter und das initiale Kontext-Seeding des Thread-Verlaufs werden, falls zutreffend, anhand konfigurierter Sender-Allowlists gefiltert.
- Blockaktionen und Modal-Interaktionen erzeugen strukturierte Systemereignisse `Slack interaction: ...` mit umfangreichen Payload-Feldern:
- Blockaktionen: ausgewählte Werte, Labels, Picker-Werte und `workflow_*`-Metadaten
- modale Ereignisse `view_submission` und `view_closed` mit gerouteten Kanalmetadaten und Formulareingaben
## Verweise auf die Konfigurationsreferenz
@ -967,23 +972,23 @@ Primäre Referenz:
Wichtige Slack-Felder:
- Modus/Auth: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
- DM-Zugriff: `dm.enabled`, `dmPolicy`, `allowFrom` (alt: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
- Kompatibilitätsumschalter: `dangerouslyAllowNameMatching` (nur im Notfall; ausgeschaltet lassen, sofern nicht benötigt)
- Channel-Zugriff: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- DM-Zugriff: `dm.enabled`, `dmPolicy`, `allowFrom` (Legacy: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
- Kompatibilitätsschalter: `dangerouslyAllowNameMatching` (Notfalloption; deaktiviert lassen, sofern nicht erforderlich)
- Kanalzugriff: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- Threading/Verlauf: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- Zustellung: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `streaming.nativeTransport`
- Zustellung: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `streaming.nativeTransport`, `streaming.preview.toolProgress`
- Betrieb/Funktionen: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
## Fehlerbehebung
<AccordionGroup>
<Accordion title="Keine Antworten in Channels">
<Accordion title="Keine Antworten in Kanälen">
Prüfen Sie in dieser Reihenfolge:
- `groupPolicy`
- Channel-Allowlist (`channels.slack.channels`)
- Kanal-Allowlist (`channels.slack.channels`)
- `requireMention`
- Allowlist `users` pro Channel
- kanalbezogene `users`-Allowlist
Nützliche Befehle:
@ -999,8 +1004,8 @@ openclaw doctor
Prüfen Sie:
- `channels.slack.dm.enabled`
- `channels.slack.dmPolicy` (oder alt `channels.slack.dm.policy`)
- Kopplungsgenehmigungen / Allowlist-Einträge
- `channels.slack.dmPolicy` (oder Legacy `channels.slack.dm.policy`)
- Genehmigungen für Kopplung / Allowlist-Einträge
```bash
openclaw pairing list slack
@ -1009,12 +1014,12 @@ openclaw pairing list slack
</Accordion>
<Accordion title="Socket Mode verbindet sich nicht">
Validieren Sie Bot- + App-Token und die Aktivierung von Socket Mode in den Slack-App-Einstellungen.
Validieren Sie Bot- und App-Token sowie die Aktivierung von Socket Mode in den Slack-App-Einstellungen.
Wenn `openclaw channels status --probe --json` `botTokenStatus` oder
`appTokenStatus: "configured_unavailable"` anzeigt, ist das Slack-Konto
konfiguriert, aber die aktuelle Laufzeit konnte den durch SecretRef
gestützten Wert nicht auflösen.
konfiguriert, aber die aktuelle Laufzeit konnte den durch SecretRef gestützten
Wert nicht auflösen.
</Accordion>
@ -1023,22 +1028,22 @@ openclaw pairing list slack
- Signing Secret
- Webhook-Pfad
- Slack-Request-URLs (Events + Interaktivität + Slash-Befehle)
- eindeutigen `webhookPath` pro HTTP-Konto
- Slack-Anfrage-URLs (Ereignisse + Interaktivität + Slash-Befehle)
- eindeutiger `webhookPath` pro HTTP-Konto
Wenn `signingSecretStatus: "configured_unavailable"` in Kontoübersichten
erscheint, ist das HTTP-Konto konfiguriert, aber die aktuelle Laufzeit konnte das
durch SecretRef gestützte Signing Secret nicht auflösen.
Wenn `signingSecretStatus: "configured_unavailable"` in Konto-Snapshots
erscheint, ist das HTTP-Konto konfiguriert, aber die aktuelle Laufzeit konnte das durch SecretRef gestützte Signing Secret
nicht auflösen.
</Accordion>
<Accordion title="Native/Slash-Befehle werden nicht ausgelöst">
Prüfen Sie, ob Sie Folgendes beabsichtigt haben:
- nativer Befehlsmodus (`channels.slack.commands.native: true`) mit passend in Slack registrierten Slash-Befehlen
- oder Einzel-Slash-Befehlsmodus (`channels.slack.slashCommand.enabled: true`)
- nativen Befehlsmodus (`channels.slack.commands.native: true`) mit passenden in Slack registrierten Slash-Befehlen
- oder den Modus für einen einzelnen Slash-Befehl (`channels.slack.slashCommand.enabled: true`)
Prüfen Sie außerdem `commands.useAccessGroups` sowie Channel-/Benutzer-Allowlists.
Prüfen Sie außerdem `commands.useAccessGroups` und Kanal-/Benutzer-Allowlists.
</Accordion>
</AccordionGroup>
@ -1048,7 +1053,7 @@ openclaw pairing list slack
- [Kopplung](/de/channels/pairing)
- [Gruppen](/de/channels/groups)
- [Sicherheit](/de/gateway/security)
- [Channel-Routing](/de/channels/channel-routing)
- [Kanalrouting](/de/channels/channel-routing)
- [Fehlerbehebung](/de/channels/troubleshooting)
- [Konfiguration](/de/gateway/configuration)
- [Slash-Befehle](/de/tools/slash-commands)

View File

@ -4,10 +4,10 @@ read_when:
summary: Telegram-Bot-Supportstatus, Funktionen und Konfiguration
title: Telegram
x-i18n:
generated_at: "2026-04-21T06:22:51Z"
generated_at: "2026-04-21T17:45:33Z"
model: gpt-5.4
provider: openai
source_hash: b5c70775b55d4923a31ad8bae7f4c6e7cbae754c05c3a578180d63db2b59e39a
source_hash: 816238b53942b319a300843db62ec1d4bf8d84bc11094010926ac9ad457c6d3d
source_path: channels/telegram.md
workflow: 15
---
@ -20,21 +20,21 @@ Status: produktionsreif für Bot-DMs + Gruppen über grammY. Long Polling ist de
<Card title="Kopplung" icon="link" href="/de/channels/pairing">
Die Standard-DM-Richtlinie für Telegram ist Kopplung.
</Card>
<Card title="Fehlerbehebung für Kanäle" icon="wrench" href="/de/channels/troubleshooting">
<Card title="Channel-Fehlerbehebung" icon="wrench" href="/de/channels/troubleshooting">
Kanalübergreifende Diagnose- und Reparaturleitfäden.
</Card>
<Card title="Gateway-Konfiguration" icon="settings" href="/de/gateway/configuration">
Vollständige Muster und Beispiele für die Kanalkonfiguration.
Vollständige Channel-Konfigurationsmuster und Beispiele.
</Card>
</CardGroup>
## Schnelleinrichtung
## Schnellstart
<Steps>
<Step title="Bot-Token in BotFather erstellen">
Öffnen Sie Telegram und chatten Sie mit **@BotFather** (bestätigen Sie, dass der Handle genau `@BotFather` ist).
Führen Sie `/newbot` aus, folgen Sie den Aufforderungen und speichern Sie das Token.
Führen Sie `/newbot` aus, folgen Sie den Anweisungen und speichern Sie das Token.
</Step>
@ -71,7 +71,7 @@ openclaw pairing approve telegram <CODE>
</Step>
<Step title="Bot zu einer Gruppe hinzufügen">
Fügen Sie den Bot zu Ihrer Gruppe hinzu und setzen Sie dann `channels.telegram.groups` und `groupPolicy` so, dass sie zu Ihrem Zugriffsmodell passen.
Fügen Sie den Bot Ihrer Gruppe hinzu und setzen Sie dann `channels.telegram.groups` und `groupPolicy` passend zu Ihrem Zugriffsmodell.
</Step>
</Steps>
@ -79,31 +79,31 @@ openclaw pairing approve telegram <CODE>
Die Reihenfolge der Token-Auflösung ist kontobewusst. In der Praxis haben config-Werte Vorrang vor dem Env-Fallback, und `TELEGRAM_BOT_TOKEN` gilt nur für das Standardkonto.
</Note>
## Einstellungen auf der Telegram-Seite
## Einstellungen auf Telegram-Seite
<AccordionGroup>
<Accordion title="Datenschutzmodus und Gruppensichtbarkeit">
Telegram-Bots verwenden standardmäßig den **Datenschutzmodus**, der einschränkt, welche Gruppennachrichten sie empfangen.
Telegram-Bots verwenden standardmäßig **Privacy Mode**, was einschränkt, welche Gruppennachrichten sie empfangen.
Wenn der Bot alle Gruppennachrichten sehen muss, dann entweder:
Wenn der Bot alle Gruppennachrichten sehen muss, gehen Sie wie folgt vor:
- deaktivieren Sie den Datenschutzmodus über `/setprivacy`, oder
- machen Sie den Bot zu einem Gruppenadmin.
- machen Sie den Bot zu einem Gruppenadministrator.
Wenn Sie den Datenschutzmodus umschalten, entfernen Sie den Bot in jeder Gruppe und fügen Sie ihn erneut hinzu, damit Telegram die Änderung anwendet.
Wenn Sie den Datenschutzmodus umschalten, entfernen Sie den Bot in jeder Gruppe und fügen ihn erneut hinzu, damit Telegram die Änderung anwendet.
</Accordion>
<Accordion title="Gruppenberechtigungen">
Der Admin-Status wird in den Telegram-Gruppeneinstellungen gesteuert.
Der Administratorstatus wird in den Telegram-Gruppeneinstellungen gesteuert.
Admin-Bots empfangen alle Gruppennachrichten, was für ein stets aktives Gruppenverhalten nützlich ist.
Admin-Bots empfangen alle Gruppennachrichten, was für stets aktive Gruppenfunktionen nützlich ist.
</Accordion>
<Accordion title="Nützliche BotFather-Schalter">
- `/setjoingroups`, um Gruppenhinzufügungen zu erlauben/zu verweigern
- `/setjoingroups`, um Gruppenhinzufügungen zu erlauben/verbieten
- `/setprivacy` für das Sichtbarkeitsverhalten in Gruppen
</Accordion>
@ -122,21 +122,21 @@ Die Reihenfolge der Token-Auflösung ist kontobewusst. In der Praxis haben confi
`channels.telegram.allowFrom` akzeptiert numerische Telegram-Benutzer-IDs. Präfixe `telegram:` / `tg:` werden akzeptiert und normalisiert.
`dmPolicy: "allowlist"` mit leerem `allowFrom` blockiert alle DMs und wird von der Konfigurationsvalidierung abgelehnt.
Das Setup fragt nur nach numerischen Benutzer-IDs.
Wenn Sie ein Upgrade durchgeführt haben und Ihre Konfiguration `@username`-Allowlist-Einträge enthält, führen Sie `openclaw doctor --fix` aus, um sie aufzulösen (Best-Effort; erfordert ein Telegram-Bot-Token).
Wenn Sie zuvor auf Allowlist-Dateien aus dem Pairing-Store gesetzt haben, kann `openclaw doctor --fix` Einträge in Allowlist-Abläufen in `channels.telegram.allowFrom` wiederherstellen (zum Beispiel wenn `dmPolicy: "allowlist"` noch keine expliziten IDs hat).
Die Einrichtung fragt nur nach numerischen Benutzer-IDs.
Wenn Sie ein Upgrade durchgeführt haben und Ihre Konfiguration `@username`-Einträge in der Allowlist enthält, führen Sie `openclaw doctor --fix` aus, um sie aufzulösen (Best Effort; erfordert ein Telegram-Bot-Token).
Wenn Sie sich zuvor auf Allowlist-Dateien aus dem Pairing-Store verlassen haben, kann `openclaw doctor --fix` Einträge in `channels.telegram.allowFrom` für Allowlist-Abläufe wiederherstellen (zum Beispiel wenn `dmPolicy: "allowlist"` noch keine expliziten IDs hat).
Für Bots mit nur einem Eigentümer bevorzugen Sie `dmPolicy: "allowlist"` mit expliziten numerischen `allowFrom`-IDs, um die Zugriffsrichtlinie dauerhaft in der Konfiguration zu halten (anstatt von früheren Pairing-Genehmigungen abhängig zu sein).
Für Bots mit nur einem Besitzer sollten Sie `dmPolicy: "allowlist"` mit expliziten numerischen `allowFrom`-IDs bevorzugen, damit die Zugriffsrichtlinie dauerhaft in der Konfiguration bleibt (anstatt von früheren Pairing-Genehmigungen abzuhängen).
Häufiges Missverständnis: Die DM-Kopplungsgenehmigung bedeutet nicht „dieser Absender ist überall autorisiert“.
Die Kopplung gewährt nur DM-Zugriff. Die Autorisierung von Gruppenabsendern kommt weiterhin aus expliziten Allowlists in der Konfiguration.
Wenn Sie möchten, dass „ich einmal autorisiert bin und sowohl DMs als auch Gruppenbefehle funktionieren“, tragen Sie Ihre numerische Telegram-Benutzer-ID in `channels.telegram.allowFrom` ein.
Häufiges Missverständnis: Die Genehmigung für DM-Kopplung bedeutet nicht „dieser Absender ist überall autorisiert“.
Kopplung gewährt nur DM-Zugriff. Die Autorisierung von Gruppenabsendern kommt weiterhin aus expliziten Konfigurations-Allowlists.
Wenn Sie möchten, dass „ich einmal autorisiert bin und dann sowohl DMs als auch Gruppenbefehle funktionieren“, tragen Sie Ihre numerische Telegram-Benutzer-ID in `channels.telegram.allowFrom` ein.
### Ihre Telegram-Benutzer-ID finden
Sicherer (kein Drittanbieter-Bot):
1. Senden Sie Ihrem Bot eine DM.
1. Schreiben Sie Ihrem Bot eine DM.
2. Führen Sie `openclaw logs --follow` aus.
3. Lesen Sie `from.id`.
@ -151,11 +151,11 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
</Tab>
<Tab title="Gruppenrichtlinie und Allowlists">
Zwei Kontrollen wirken zusammen:
Zwei Steuerungen greifen zusammen:
1. **Welche Gruppen erlaubt sind** (`channels.telegram.groups`)
- keine `groups`-Konfiguration:
- mit `groupPolicy: "open"`: jede Gruppe kann die Gruppen-ID-Prüfungen bestehen
- mit `groupPolicy: "open"`: Jede Gruppe kann die Gruppen-ID-Prüfungen bestehen
- mit `groupPolicy: "allowlist"` (Standard): Gruppen werden blockiert, bis Sie `groups`-Einträge (oder `"*"`) hinzufügen
- `groups` konfiguriert: fungiert als Allowlist (explizite IDs oder `"*"`)
@ -164,17 +164,17 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
- `allowlist` (Standard)
- `disabled`
`groupAllowFrom` wird für die Filterung von Gruppenabsendern verwendet. Wenn es nicht gesetzt ist, greift Telegram auf `allowFrom` zurück.
`groupAllowFrom` wird für die Filterung von Gruppenabsendern verwendet. Wenn nicht gesetzt, verwendet Telegram `allowFrom` als Fallback.
`groupAllowFrom`-Einträge sollten numerische Telegram-Benutzer-IDs sein (Präfixe `telegram:` / `tg:` werden normalisiert).
Tragen Sie keine Telegram-Gruppen- oder Supergruppen-Chat-IDs in `groupAllowFrom` ein. Negative Chat-IDs gehören unter `channels.telegram.groups`.
Setzen Sie keine Telegram-Gruppen- oder Supergruppen-Chat-IDs in `groupAllowFrom`. Negative Chat-IDs gehören unter `channels.telegram.groups`.
Nicht numerische Einträge werden für die Absenderautorisierung ignoriert.
Sicherheitsgrenze (`2026.2.25+`): Die Authentifizierung von Gruppenabsendern übernimmt **nicht** DM-Pairing-Store-Genehmigungen.
Pairing bleibt nur für DMs. Für Gruppen setzen Sie `groupAllowFrom` oder `allowFrom` pro Gruppe/pro Thema.
Wenn `groupAllowFrom` nicht gesetzt ist, greift Telegram auf `allowFrom` aus der Konfiguration zurück, nicht auf den Pairing-Store.
Praktisches Muster für Bots mit nur einem Eigentümer: Setzen Sie Ihre Benutzer-ID in `channels.telegram.allowFrom`, lassen Sie `groupAllowFrom` unsetzt und erlauben Sie die Zielgruppen unter `channels.telegram.groups`.
Sicherheitsgrenze (`2026.2.25+`): Die Autorisierung von Gruppenabsendern übernimmt **nicht** Genehmigungen aus dem DM-Pairing-Store.
Kopplung bleibt nur für DMs. Für Gruppen setzen Sie `groupAllowFrom` oder `allowFrom` pro Gruppe/pro Thema.
Wenn `groupAllowFrom` nicht gesetzt ist, verwendet Telegram als Fallback `allowFrom` aus der Konfiguration, nicht den Pairing-Store.
Praktisches Muster für Bots mit nur einem Besitzer: Setzen Sie Ihre Benutzer-ID in `channels.telegram.allowFrom`, lassen Sie `groupAllowFrom` unset und erlauben Sie die Zielgruppen unter `channels.telegram.groups`.
Laufzeithinweis: Wenn `channels.telegram` vollständig fehlt, verwendet die Laufzeit standardmäßig fail-closed `groupPolicy="allowlist"`, es sei denn, `channels.defaults.groupPolicy` ist explizit gesetzt.
Beispiel: Jedes Mitglied in genau einer bestimmten Gruppe erlauben:
Beispiel: beliebiges Mitglied in einer bestimmten Gruppe erlauben:
```json5
{
@ -191,7 +191,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
Beispiel: Nur bestimmte Benutzer innerhalb einer bestimmten Gruppe erlauben:
Beispiel: nur bestimmte Benutzer innerhalb einer bestimmten Gruppe erlauben:
```json5
{
@ -209,7 +209,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
```
<Warning>
Häufiger Fehler: `groupAllowFrom` ist keine Telegram-Gruppen-Allowlist.
Häufiger Fehler: `groupAllowFrom` ist keine Gruppen-Allowlist für Telegram.
- Legen Sie negative Telegram-Gruppen- oder Supergruppen-Chat-IDs wie `-1001234567890` unter `channels.telegram.groups` ab.
- Legen Sie Telegram-Benutzer-IDs wie `8734062810` unter `groupAllowFrom` ab, wenn Sie einschränken möchten, welche Personen innerhalb einer erlaubten Gruppe den Bot auslösen können.
@ -218,24 +218,24 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
</Tab>
<Tab title="Mention-Verhalten">
<Tab title="Erwähnungsverhalten">
Gruppenantworten erfordern standardmäßig eine Erwähnung.
Eine Erwähnung kann kommen von:
- nativer `@botusername`-Erwähnung, oder
- einer nativen `@botusername`-Erwähnung, oder
- Erwähnungsmustern in:
- `agents.list[].groupChat.mentionPatterns`
- `messages.groupChat.mentionPatterns`
Sitzungsbezogene Befehlsumschalter:
Befehlsumschalter auf Sitzungsebene:
- `/activation always`
- `/activation mention`
Diese aktualisieren nur den Sitzungsstatus. Verwenden Sie die Konfiguration für Persistenz.
Diese aktualisieren nur den Sitzungsstatus. Verwenden Sie Konfiguration für Persistenz.
Beispiel für persistente Konfiguration:
Beispiel für dauerhafte Konfiguration:
```json5
{
@ -249,11 +249,11 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
Die Gruppen-Chat-ID ermitteln:
Die Gruppen-Chat-ID abrufen:
- leiten Sie eine Gruppennachricht an `@userinfobot` / `@getidsbot` weiter
- oder lesen Sie `chat.id` aus `openclaw logs --follow`
- oder prüfen Sie Bot API `getUpdates`
- oder prüfen Sie die Bot-API `getUpdates`
</Tab>
</Tabs>
@ -261,13 +261,13 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
## Laufzeitverhalten
- Telegram gehört dem Gateway-Prozess.
- Das Routing ist deterministisch: Eingehende Telegram-Antworten gehen zurück an Telegram (das Modell wählt keine Kanäle aus).
- Eingehende Nachrichten werden in den gemeinsamen Kanalumschlag mit Antwortmetadaten und Medienplatzhaltern normalisiert.
- Gruppensitzungen sind nach Gruppen-ID isoliert. Forenthemen hängen `:topic:<threadId>` an, um Themen isoliert zu halten.
- DM-Nachrichten können `message_thread_id` enthalten; OpenClaw leitet sie mit threadbewussten Sitzungsschlüsseln und bewahrt die Thread-ID für Antworten.
- Long Polling verwendet den grammY-Runner mit Sequenzierung pro Chat/pro Thread. Die gesamte Runner-Sink-Parallelität verwendet `agents.defaults.maxConcurrent`.
- Neustarts des Long-Polling-Watchdogs werden standardmäßig nach 120 Sekunden ohne abgeschlossene `getUpdates`-Lebenszeichen ausgelöst. Erhöhen Sie `channels.telegram.pollingStallThresholdMs` nur, wenn Ihre Bereitstellung weiterhin falsche Polling-Stall-Neustarts während lang laufender Arbeit sieht. Der Wert ist in Millisekunden angegeben und ist von `30000` bis `600000` zulässig; Überschreibungen pro Konto werden unterstützt.
- Die Telegram Bot API unterstützt keine Lesebestätigungen (`sendReadReceipts` gilt nicht).
- Das Routing ist deterministisch: Eingehende Telegram-Antworten gehen zurück an Telegram (das Modell wählt keine Channels aus).
- Eingehende Nachrichten werden in den gemeinsamen Channel-Umschlag mit Antwortmetadaten und Medienplatzhaltern normalisiert.
- Gruppensitzungen sind nach Gruppen-ID isoliert. Forenthemen hängen `:topic:<threadId>` an, damit Themen isoliert bleiben.
- DM-Nachrichten können `message_thread_id` enthalten; OpenClaw routet sie mit threadbewussten Sitzungsschlüsseln und behält die Thread-ID für Antworten bei.
- Long Polling verwendet den grammY runner mit Sequenzierung pro Chat/pro Thread. Die gesamte Sink-Parallelität des runners verwendet `agents.defaults.maxConcurrent`.
- Neustarts durch den Long-Polling-Watchdog werden standardmäßig nach 120 Sekunden ohne abgeschlossene `getUpdates`-Lebendigkeit ausgelöst. Erhöhen Sie `channels.telegram.pollingStallThresholdMs` nur, wenn Ihre Bereitstellung weiterhin falsche Neustarts wegen Polling-Stillstand bei lang laufender Arbeit sieht. Der Wert ist in Millisekunden und von `30000` bis `600000` zulässig; Überschreibungen pro Konto werden unterstützt.
- Die Telegram Bot API hat keine Unterstützung für Lesebestätigungen (`sendReadReceipts` gilt nicht).
## Funktionsreferenz
@ -275,30 +275,31 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
<Accordion title="Live-Stream-Vorschau (Nachrichtenbearbeitungen)">
OpenClaw kann partielle Antworten in Echtzeit streamen:
- Direktchats: Vorschaunachricht + `editMessageText`
- Gruppen/Themen: Vorschaunachricht + `editMessageText`
- Direktchats: Vorschau-Nachricht + `editMessageText`
- Gruppen/Themen: Vorschau-Nachricht + `editMessageText`
Voraussetzung:
- `channels.telegram.streaming` ist `off | partial | block | progress` (Standard: `partial`)
- `progress` wird auf Telegram auf `partial` abgebildet (Kompatibilität mit kanalübergreifender Benennung)
- ältere `channels.telegram.streamMode`- und boolesche `streaming`-Werte werden automatisch zugeordnet
- `streaming.preview.toolProgress` steuert, ob Tool-/Fortschrittsaktualisierungen dieselbe bearbeitete Vorschau-Nachricht wiederverwenden (Standard: `true`). Setzen Sie `false`, um separate Tool-/Fortschrittsnachrichten beizubehalten.
- das alte `channels.telegram.streamMode` und boolesche `streaming`-Werte werden automatisch zugeordnet
Für reine Textantworten:
- DM: OpenClaw behält dieselbe Vorschaunachricht und führt eine abschließende Bearbeitung direkt darin aus (keine zweite Nachricht)
- Gruppe/Thema: OpenClaw behält dieselbe Vorschaunachricht und führt eine abschließende Bearbeitung direkt darin aus (keine zweite Nachricht)
- DM: OpenClaw behält dieselbe Vorschau-Nachricht bei und führt abschließend eine finale In-Place-Bearbeitung aus (keine zweite Nachricht)
- Gruppe/Thema: OpenClaw behält dieselbe Vorschau-Nachricht bei und führt abschließend eine finale In-Place-Bearbeitung aus (keine zweite Nachricht)
Für komplexe Antworten (zum Beispiel Medien-Payloads) fällt OpenClaw auf die normale endgültige Zustellung zurück und bereinigt anschließend die Vorschaunachricht.
Für komplexe Antworten (zum Beispiel Medien-Payloads) fällt OpenClaw auf die normale finale Zustellung zurück und räumt anschließend die Vorschau-Nachricht auf.
Vorschau-Streaming ist getrennt von Block-Streaming. Wenn Block-Streaming für Telegram explizit aktiviert ist, überspringt OpenClaw den Vorschau-Stream, um doppeltes Streaming zu vermeiden.
Wenn der native Entwurfs-Transport nicht verfügbar ist oder abgelehnt wird, fällt OpenClaw automatisch auf `sendMessage` + `editMessageText` zurück.
Wenn der native Draft-Transport nicht verfügbar ist oder abgelehnt wird, fällt OpenClaw automatisch auf `sendMessage` + `editMessageText` zurück.
Nur-Telegram-Reasoning-Stream:
Nur Telegram-Reasoning-Stream:
- `/reasoning stream` sendet während der Generierung Reasoning an die Live-Vorschau
- die endgültige Antwort wird ohne Reasoning-Text gesendet
- `/reasoning stream` sendet das Reasoning während der Generierung an die Live-Vorschau
- die finale Antwort wird ohne Reasoning-Text gesendet
</Accordion>
@ -314,13 +315,13 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
</Accordion>
<Accordion title="Native Befehle und benutzerdefinierte Befehle">
Die Registrierung des Telegram-Befehlsmenüs wird beim Start mit `setMyCommands` verarbeitet.
Die Registrierung des Telegram-Befehlsmenüs wird beim Start mit `setMyCommands` durchgeführt.
Standardwerte für native Befehle:
- `commands.native: "auto"` aktiviert native Befehle für Telegram
Benutzerdefinierte Befehlsmenüeinträge hinzufügen:
Eigene Einträge zum Befehlsmenü hinzufügen:
```json5
{
@ -344,21 +345,21 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
Hinweise:
- benutzerdefinierte Befehle sind nur Menüeinträge; sie implementieren das Verhalten nicht automatisch
- benutzerdefinierte Befehle sind nur Menüeinträge; sie implementieren kein Verhalten automatisch
- Plugin-/Skills-Befehle können weiterhin funktionieren, wenn sie eingegeben werden, auch wenn sie nicht im Telegram-Menü angezeigt werden
Wenn native Befehle deaktiviert sind, werden eingebaute entfernt. Benutzerdefinierte/Plugin-Befehle können sich bei entsprechender Konfiguration weiterhin registrieren.
Wenn native Befehle deaktiviert sind, werden integrierte Befehle entfernt. Benutzerdefinierte/Plugin-Befehle können bei entsprechender Konfiguration weiterhin registriert werden.
Häufige Einrichtungsfehler:
- `setMyCommands failed` mit `BOT_COMMANDS_TOO_MUCH` bedeutet, dass das Telegram-Menü auch nach dem Kürzen noch überlaufen ist; reduzieren Sie Plugin-/Skills-/benutzerdefinierte Befehle oder deaktivieren Sie `channels.telegram.commands.native`.
- `setMyCommands failed` mit `BOT_COMMANDS_TOO_MUCH` bedeutet, dass das Telegram-Menü auch nach dem Kürzen noch überfüllt war; reduzieren Sie Plugin-/Skills-/benutzerdefinierte Befehle oder deaktivieren Sie `channels.telegram.commands.native`.
- `setMyCommands failed` mit Netzwerk-/Fetch-Fehlern bedeutet in der Regel, dass ausgehendes DNS/HTTPS zu `api.telegram.org` blockiert ist.
### Gerätekopplungsbefehle (`device-pair`-Plugin)
### Gerätekopplungsbefehle (`device-pair` Plugin)
Wenn das `device-pair`-Plugin installiert ist:
Wenn das `device-pair` Plugin installiert ist:
1. `/pair` erzeugt einen Einrichtungs-Code
1. `/pair` erzeugt einen Einrichtungscode
2. fügen Sie den Code in der iOS-App ein
3. `/pair pending` listet ausstehende Anfragen auf (einschließlich Rolle/Scopes)
4. genehmigen Sie die Anfrage:
@ -366,16 +367,16 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
- `/pair approve`, wenn es nur eine ausstehende Anfrage gibt
- `/pair approve latest` für die neueste
Der Einrichtungs-Code enthält ein kurzlebiges Bootstrap-Token. Die integrierte Bootstrap-Übergabe hält das primäre Node-Token bei `scopes: []`; jedes übergebene Operator-Token bleibt auf `operator.approvals`, `operator.read`, `operator.talk.secrets` und `operator.write` begrenzt. Bootstrap-Umfangsprüfungen sind rollenpräfixiert, sodass diese Operator-Allowlist nur Operator-Anfragen erfüllt; Nicht-Operator-Rollen benötigen weiterhin Scopes unter ihrem eigenen Rollenpräfix.
Der Einrichtungscode enthält ein kurzlebiges Bootstrap-Token. Die integrierte Bootstrap-Übergabe hält das primäre Node-Token bei `scopes: []`; jedes übergebene Operator-Token bleibt auf `operator.approvals`, `operator.read`, `operator.talk.secrets` und `operator.write` begrenzt. Bootstrap-Scopes-Prüfungen sind rollenpräfigiert, sodass diese Operator-Allowlist nur Operator-Anfragen erfüllt; Nicht-Operator-Rollen benötigen weiterhin Scopes unter ihrem eigenen Rollenpräfix.
Wenn ein Gerät mit geänderten Auth-Details erneut versucht (zum Beispiel Rolle/Scopes/Public Key), wird die vorherige ausstehende Anfrage ersetzt und die neue Anfrage verwendet eine andere `requestId`. Führen Sie vor der Genehmigung erneut `/pair pending` aus.
Wenn ein Gerät es mit geänderten Auth-Details erneut versucht (zum Beispiel Rolle/Scopes/öffentlicher Schlüssel), wird die vorherige ausstehende Anfrage ersetzt und die neue Anfrage verwendet eine andere `requestId`. Führen Sie vor der Genehmigung erneut `/pair pending` aus.
Weitere Details: [Kopplung](/de/channels/pairing#pair-via-telegram-recommended-for-ios).
</Accordion>
<Accordion title="Inline-Schaltflächen">
Konfigurieren Sie den Geltungsbereich der Inline-Tastatur:
Bereich für die Inline-Tastatur konfigurieren:
```json5
{
@ -407,7 +408,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
Geltungsbereiche:
Bereiche:
- `off`
- `dm`
@ -415,9 +416,9 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
- `all`
- `allowlist` (Standard)
Das ältere `capabilities: ["inlineButtons"]` wird auf `inlineButtons: "all"` abgebildet.
Das alte `capabilities: ["inlineButtons"]` wird auf `inlineButtons: "all"` abgebildet.
Beispiel für Nachrichtenaktion:
Beispiel für eine Nachrichtenaktion:
```json5
{
@ -435,12 +436,12 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
Callback-Klicks werden als Text an den Agent weitergegeben:
Callback-Klicks werden als Text an den Agenten übergeben:
`callback_data: <value>`
</Accordion>
<Accordion title="Telegram-Nachrichtenaktionen für Agents und Automatisierung">
<Accordion title="Telegram-Nachrichtenaktionen für Agenten und Automatisierung">
Telegram-Tool-Aktionen umfassen:
- `sendMessage` (`to`, `content`, optional `mediaUrl`, `replyToMessageId`, `messageThreadId`)
@ -449,7 +450,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
- `editMessage` (`chatId`, `messageId`, `content`)
- `createForumTopic` (`chatId`, `name`, optional `iconColor`, `iconCustomEmojiId`)
Kanal-Nachrichtenaktionen stellen ergonomische Aliasse bereit (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`).
Channel-Nachrichtenaktionen stellen ergonomische Aliase bereit (`send`, `react`, `delete`, `edit`, `sticker`, `sticker-search`, `topic-create`).
Steuerungsoptionen:
@ -459,14 +460,14 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
- `channels.telegram.actions.sticker` (Standard: deaktiviert)
Hinweis: `edit` und `topic-create` sind derzeit standardmäßig aktiviert und haben keine separaten `channels.telegram.actions.*`-Schalter.
Laufzeit-Sendungen verwenden den aktiven Snapshot von Konfiguration/Secrets (Start/Reload), daher führen Aktionspfade keine ad-hoc-`SecretRef`-Neuauflösung pro Sendevorgang aus.
Laufzeitsendungen verwenden den aktiven Snapshot von config/secrets (Start/Reload), daher führen Aktionspfade keine ad-hoc-SecretRef-Neuauflösung pro Sendung aus.
Semantik für das Entfernen von Reaktionen: [/tools/reactions](/de/tools/reactions)
Semantik zum Entfernen von Reaktionen: [/tools/reactions](/de/tools/reactions)
</Accordion>
<Accordion title="Antwort-Threading-Tags">
Telegram unterstützt explizite Antwort-Threading-Tags in generierter Ausgabe:
<Accordion title="Reply-Threading-Tags">
Telegram unterstützt explizite Reply-Threading-Tags in generierter Ausgabe:
- `[[reply_to_current]]` antwortet auf die auslösende Nachricht
- `[[reply_to:<id>]]` antwortet auf eine bestimmte Telegram-Nachrichten-ID
@ -477,27 +478,27 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
- `first`
- `all`
Hinweis: `off` deaktiviert implizites Antwort-Threading. Explizite `[[reply_to_*]]`-Tags werden weiterhin beachtet.
Hinweis: `off` deaktiviert implizites Reply-Threading. Explizite `[[reply_to_*]]`-Tags werden weiterhin beachtet.
</Accordion>
<Accordion title="Forenthemen und Thread-Verhalten">
Forum-Supergruppen:
- Sitzungsschlüssel für Themen hängen `:topic:<threadId>` an
- Antworten und Tippindikatoren zielen auf den Themen-Thread
- Themen-Konfigurationspfad:
- Topic-Sitzungsschlüssel hängen `:topic:<threadId>` an
- Antworten und Tippen zielen auf den Themen-Thread
- Topic-Konfigurationspfad:
`channels.telegram.groups.<chatId>.topics.<threadId>`
Sonderfall Allgemeines Thema (`threadId=1`):
Sonderfall Allgemeines Thema (`threadId=1`):
- Nachrichtensendungen lassen `message_thread_id` weg (Telegram lehnt `sendMessage(...thread_id=1)` ab)
- Tippaktionen enthalten weiterhin `message_thread_id`
Themenvererbung: Themeneinträge erben Gruppeneinstellungen, sofern sie nicht überschrieben werden (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`).
`agentId` ist nur themenspezifisch und wird nicht von Gruppenstandards geerbt.
Topic-Vererbung: Topic-Einträge erben Gruppeneinstellungen, sofern sie nicht überschrieben werden (`requireMention`, `allowFrom`, `skills`, `systemPrompt`, `enabled`, `groupPolicy`).
`agentId` ist nur für Topics und wird nicht von Gruppenstandards geerbt.
**Agent-Routing pro Thema**: Jedes Thema kann durch Setzen von `agentId` in der Themenkonfiguration an einen anderen Agent weiterleiten. Dadurch erhält jedes Thema seinen eigenen isolierten Arbeitsbereich, Speicher und seine eigene Sitzung. Beispiel:
**Agent-Routing pro Topic**: Jedes Topic kann durch Setzen von `agentId` in der Topic-Konfiguration an einen anderen Agenten weiterleiten. Dadurch erhält jedes Topic seinen eigenen isolierten Workspace, Speicher und seine eigene Sitzung. Beispiel:
```json5
{
@ -507,7 +508,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
"-1001234567890": {
topics: {
"1": { agentId: "main" }, // Allgemeines Thema → Haupt-Agent
"3": { agentId: "zu" }, // Dev-Thema → zu-Agent
"3": { agentId: "zu" }, // Entwicklungsthema → zu-Agent
"5": { agentId: "coder" } // Code-Review → coder-Agent
}
}
@ -517,9 +518,9 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
Jedes Thema hat dann seinen eigenen Sitzungsschlüssel: `agent:zu:telegram:group:-1001234567890:topic:3`
Jedes Topic hat dann seinen eigenen Sitzungsschlüssel: `agent:zu:telegram:group:-1001234567890:topic:3`
**Persistente ACP-Themenbindung**: Forenthemen können ACP-Harness-Sitzungen über typisierte ACP-Bindungen auf oberster Ebene anheften:
**Persistente ACP-Topic-Bindung**: Forenthemen können ACP-Harness-Sitzungen über typisierte ACP-Bindungen auf oberster Ebene anheften:
- `bindings[]` mit `type: "acp"` und `match.channel: "telegram"`
@ -574,31 +575,31 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
**Thread-gebundener ACP-Spawn aus dem Chat**:
- `/acp spawn <agent> --thread here|auto` kann das aktuelle Telegram-Thema an eine neue ACP-Sitzung binden.
- Nachfolgende Themen-Nachrichten werden direkt an die gebundene ACP-Sitzung weitergeleitet (kein `/acp steer` erforderlich).
- OpenClaw pinnt die Spawn-Bestätigungsnachricht nach einer erfolgreichen Bindung im Thema an.
- `/acp spawn <agent> --thread here|auto` kann das aktuelle Telegram-Topic an eine neue ACP-Sitzung binden.
- Nachfolgende Topic-Nachrichten werden direkt an die gebundene ACP-Sitzung geleitet (kein `/acp steer` erforderlich).
- OpenClaw heftet die Spawn-Bestätigungsnachricht nach einer erfolgreichen Bindung im Topic an.
- Erfordert `channels.telegram.threadBindings.spawnAcpSessions=true`.
Der Vorlagenkontext umfasst:
Der Vorlagenkontext enthält:
- `MessageThreadId`
- `IsForum`
DM-Thread-Verhalten:
- private Chats mit `message_thread_id` behalten DM-Routing bei, verwenden aber threadbewusste Sitzungsschlüssel/Antwortziele.
- Private Chats mit `message_thread_id` behalten DM-Routing bei, verwenden aber threadbewusste Sitzungsschlüssel/Antwortziele.
</Accordion>
<Accordion title="Audio, Video und Sticker">
### Audio-Nachrichten
### Audionachrichten
Telegram unterscheidet zwischen Sprachnachrichten und Audiodateien.
Telegram unterscheidet zwischen Sprachnotizen und Audiodateien.
- Standard: Verhalten von Audiodateien
- Tag `[[audio_as_voice]]` in der Agent-Antwort, um das Senden als Sprachnachricht zu erzwingen
- Standard: Verhalten für Audiodateien
- Tag `[[audio_as_voice]]` in der Agent-Antwort, um das Senden als Sprachnotiz zu erzwingen
Beispiel für Nachrichtenaktion:
Beispiel für eine Nachrichtenaktion:
```json5
{
@ -610,11 +611,11 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
### Video-Nachrichten
### Videonachrichten
Telegram unterscheidet zwischen Videodateien und Videonotizen.
Beispiel für Nachrichtenaktion:
Beispiel für eine Nachrichtenaktion:
```json5
{
@ -632,9 +633,9 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
Verarbeitung eingehender Sticker:
- statisches WEBP: wird heruntergeladen und verarbeitet (Platzhalter `<media:sticker>`)
- animiertes TGS: wird übersprungen
- Video-WEBM: wird übersprungen
- statisches WEBP: heruntergeladen und verarbeitet (Platzhalter `<media:sticker>`)
- animiertes TGS: übersprungen
- Video-WEBM: übersprungen
Sticker-Kontextfelder:
@ -664,7 +665,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
}
```
Sticker-Aktion zum Senden:
Sticker-Sendeaktion:
```json5
{
@ -688,7 +689,7 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
</Accordion>
<Accordion title="Reaktionsbenachrichtigungen">
<Accordion title="Benachrichtigungen zu Reaktionen">
Telegram-Reaktionen kommen als `message_reaction`-Updates an (getrennt von Nachrichten-Payloads).
Wenn aktiviert, reiht OpenClaw Systemereignisse ein wie:
@ -702,37 +703,37 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
Hinweise:
- `own` bedeutet nur Benutzerreaktionen auf vom Bot gesendete Nachrichten (Best-Effort über den Gesendet-Nachrichten-Cache).
- Reaktionsereignisse beachten weiterhin die Telegram-Zugriffskontrollen (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); nicht autorisierte Absender werden verworfen.
- Telegram stellt in Reaktions-Updates keine Thread-IDs bereit.
- `own` bedeutet nur Benutzerreaktionen auf vom Bot gesendete Nachrichten (Best Effort über den Cache gesendeter Nachrichten).
- Reaktionsereignisse respektieren weiterhin die Telegram-Zugriffskontrollen (`dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`); nicht autorisierte Absender werden verworfen.
- Telegram liefert in Reaktions-Updates keine Thread-IDs.
- Nicht-Forum-Gruppen werden an die Gruppenchat-Sitzung geleitet
- Forum-Gruppen werden an die Sitzung des allgemeinen Gruppenthemas (`:topic:1`) geleitet, nicht an das genaue Ursprungsthema
`allowed_updates` für Polling/Webhook enthalten `message_reaction` automatisch.
`allowed_updates` für Polling/Webhook enthalten automatisch `message_reaction`.
</Accordion>
<Accordion title="Ack-Reaktionen">
`ackReaction` sendet ein Bestätigungs-Emoji, während OpenClaw eine eingehende Nachricht verarbeitet.
Reihenfolge der Auflösung:
Auflösungsreihenfolge:
- `channels.telegram.accounts.<accountId>.ackReaction`
- `channels.telegram.ackReaction`
- `messages.ackReaction`
- Emoji-Fallback der Agent-Identität (`agents.list[].identity.emoji`, sonst "👀")
- Fallback auf das Emoji der Agent-Identität (`agents.list[].identity.emoji`, sonst "👀")
Hinweise:
- Telegram erwartet Unicode-Emoji (zum Beispiel "👀").
- Verwenden Sie `""`, um die Reaktion für einen Kanal oder ein Konto zu deaktivieren.
- Verwenden Sie `""`, um die Reaktion für einen Channel oder ein Konto zu deaktivieren.
</Accordion>
<Accordion title="Konfigurationsschreibvorgänge aus Telegram-Ereignissen und -Befehlen">
Schreibvorgänge in die Kanalkonfiguration sind standardmäßig aktiviert (`configWrites !== false`).
Schreibvorgänge in die Channel-Konfiguration sind standardmäßig aktiviert (`configWrites !== false`).
Durch Telegram ausgelöste Schreibvorgänge umfassen:
Von Telegram ausgelöste Schreibvorgänge umfassen:
- Gruppenmigrationsereignisse (`migrate_to_chat_id`) zum Aktualisieren von `channels.telegram.groups`
- `/config set` und `/config unset` (erfordert aktivierte Befehle)
@ -756,32 +757,32 @@ curl "https://api.telegram.org/bot<bot_token>/getUpdates"
Webhook-Modus:
- setzen Sie `channels.telegram.webhookUrl`
- setzen Sie `channels.telegram.webhookSecret` (erforderlich, wenn eine Webhook-URL gesetzt ist)
- `channels.telegram.webhookUrl` setzen
- `channels.telegram.webhookSecret` setzen (erforderlich, wenn eine Webhook-URL gesetzt ist)
- optional `channels.telegram.webhookPath` (Standard `/telegram-webhook`)
- optional `channels.telegram.webhookHost` (Standard `127.0.0.1`)
- optional `channels.telegram.webhookPort` (Standard `8787`)
Der standardmäßige lokale Listener für den Webhook-Modus bindet an `127.0.0.1:8787`.
Der lokale Standard-Listener für den Webhook-Modus bindet an `127.0.0.1:8787`.
Wenn sich Ihr öffentlicher Endpunkt unterscheidet, schalten Sie einen Reverse Proxy davor und lassen `webhookUrl` auf die öffentliche URL zeigen.
Wenn sich Ihr öffentlicher Endpunkt unterscheidet, schalten Sie einen Reverse-Proxy davor und verweisen Sie `webhookUrl` auf die öffentliche URL.
Setzen Sie `webhookHost` (zum Beispiel `0.0.0.0`), wenn Sie absichtlich externen Ingress benötigen.
</Accordion>
<Accordion title="Limits, Wiederholungsversuche und CLI-Ziele">
<Accordion title="Limits, Wiederholungen und CLI-Ziele">
- Der Standardwert für `channels.telegram.textChunkLimit` ist 4000.
- `channels.telegram.chunkMode="newline"` bevorzugt Absatzgrenzen (Leerzeilen) vor einer Aufteilung nach Länge.
- `channels.telegram.mediaMaxMb` (Standard 100) begrenzt die Größe eingehender und ausgehender Telegram-Medien.
- `channels.telegram.timeoutSeconds` überschreibt das Timeout des Telegram-API-Clients (wenn nicht gesetzt, gilt der grammY-Standard).
- `channels.telegram.pollingStallThresholdMs` hat standardmäßig den Wert `120000`; passen Sie ihn nur zwischen `30000` und `600000` an, wenn es zu falsch-positiven Neustarts wegen Polling-Stillstand kommt.
- Der Gruppenkontextverlauf verwendet `channels.telegram.historyLimit` oder `messages.groupChat.historyLimit` (Standard 50); `0` deaktiviert ihn.
- Zusätzlicher Kontext für Antworten/Zitate/Weiterleitungen wird derzeit so weitergegeben, wie er empfangen wurde.
- Telegram-Allowlists steuern in erster Linie, wer den Agent auslösen kann, nicht eine vollständige Grenze zur Redigierung von Zusatzkontext.
- DM-Verlaufskontrollen:
- `channels.telegram.pollingStallThresholdMs` hat standardmäßig den Wert `120000`; stellen Sie Werte zwischen `30000` und `600000` nur für Fehlalarme bei Neustarts wegen Polling-Stillstand ein.
- Der Verlauf des Gruppenkontexts verwendet `channels.telegram.historyLimit` oder `messages.groupChat.historyLimit` (Standard 50); `0` deaktiviert ihn.
- Zusätzlicher Kontext aus Antworten/Zitaten/Weiterleitungen wird derzeit wie empfangen weitergegeben.
- Telegram-Allowlists steuern in erster Linie, wer den Agenten auslösen kann, und sind keine vollständige Redaktionsgrenze für zusätzlichen Kontext.
- DM-Verlaufssteuerungen:
- `channels.telegram.dmHistoryLimit`
- `channels.telegram.dms["<user_id>"].historyLimit`
- Die Konfiguration `channels.telegram.retry` gilt für Telegram-Sendehilfen (CLI/Tools/Aktionen) bei behebbaren ausgehenden API-Fehlern.
- Die Konfiguration `channels.telegram.retry` gilt für Telegram-Sendehelfer (CLI/Tools/Aktionen) bei behebbaren ausgehenden API-Fehlern.
Das CLI-Sendeziel kann eine numerische Chat-ID oder ein Benutzername sein:
@ -800,7 +801,7 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \
--poll-duration-seconds 300 --poll-public
```
Nur-Telegram-Umfrage-Flags:
Nur Telegram-Umfrage-Flags:
- `--poll-duration-seconds` (5-600)
- `--poll-anonymous`
@ -809,54 +810,54 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \
Telegram-Senden unterstützt außerdem:
- `--buttons` für Inline-Tastaturen, wenn `channels.telegram.capabilities.inlineButtons` dies für die Zieloberfläche erlaubt
- `--force-document`, um ausgehende Bilder und GIFs als Dokumente statt als komprimierte Fotos oder Uploads animierter Medien zu senden
- `--buttons` für Inline-Tastaturen, wenn `channels.telegram.capabilities.inlineButtons` die Zielfläche erlaubt
- `--force-document`, um ausgehende Bilder und GIFs als Dokumente statt als komprimierte Foto- oder animierte Medien-Uploads zu senden
Aktionssteuerung:
- `channels.telegram.actions.sendMessage=false` deaktiviert ausgehende Telegram-Nachrichten, einschließlich Umfragen
- `channels.telegram.actions.poll=false` deaktiviert das Erstellen von Telegram-Umfragen, während reguläres Senden aktiviert bleibt
- `channels.telegram.actions.poll=false` deaktiviert die Erstellung von Telegram-Umfragen, während reguläre Sendungen aktiviert bleiben
</Accordion>
<Accordion title="Exec-Genehmigungen in Telegram">
Telegram unterstützt Exec-Genehmigungen in Genehmiger-DMs und kann Genehmigungsaufforderungen optional im ursprünglichen Chat oder Thema posten.
Telegram unterstützt Exec-Genehmigungen in Approver-DMs und kann Genehmigungsaufforderungen optional im ursprünglichen Chat oder Topic posten.
Konfigurationspfad:
- `channels.telegram.execApprovals.enabled`
- `channels.telegram.execApprovals.approvers` (optional; greift, wenn möglich, auf numerische Eigentümer-IDs zurück, die aus `allowFrom` und direktem `defaultTo` abgeleitet werden)
- `channels.telegram.execApprovals.approvers` (optional; fällt, wenn möglich, auf numerische Eigentümer-IDs zurück, die aus `allowFrom` und direktem `defaultTo` abgeleitet werden)
- `channels.telegram.execApprovals.target` (`dm` | `channel` | `both`, Standard: `dm`)
- `agentFilter`, `sessionFilter`
Genehmiger müssen numerische Telegram-Benutzer-IDs sein. Telegram aktiviert native Exec-Genehmigungen automatisch, wenn `enabled` nicht gesetzt oder `"auto"` ist und mindestens ein Genehmiger aufgelöst werden kann, entweder aus `execApprovals.approvers` oder aus der numerischen Eigentümerkonfiguration des Kontos (`allowFrom` und Direktnachrichten-`defaultTo`). Setzen Sie `enabled: false`, um Telegram explizit als nativen Genehmigungsclient zu deaktivieren. Genehmigungsanfragen greifen andernfalls auf andere konfigurierte Genehmigungsrouten oder die Fallback-Richtlinie für Exec-Genehmigungen zurück.
Approver müssen numerische Telegram-Benutzer-IDs sein. Telegram aktiviert native Exec-Genehmigungen automatisch, wenn `enabled` nicht gesetzt oder `"auto"` ist und mindestens ein Approver aufgelöst werden kann, entweder aus `execApprovals.approvers` oder aus der numerischen Eigentümerkonfiguration des Kontos (`allowFrom` und Direktnachrichten-`defaultTo`). Setzen Sie `enabled: false`, um Telegram explizit als nativen Genehmigungs-Client zu deaktivieren. Andernfalls fallen Genehmigungsanfragen auf andere konfigurierte Genehmigungsrouten oder die Fallback-Richtlinie für Exec-Genehmigungen zurück.
Telegram rendert auch die gemeinsamen Genehmigungsschaltflächen, die von anderen Chat-Kanälen verwendet werden. Der native Telegram-Adapter ergänzt hauptsächlich die Weiterleitung von Genehmiger-DMs, die Verteilung auf Kanal/Thema und Tipp-Hinweise vor der Zustellung.
Telegram rendert außerdem die gemeinsamen Genehmigungsschaltflächen, die von anderen Chat-Channels verwendet werden. Der native Telegram-Adapter ergänzt hauptsächlich das Routing von Approver-DMs, die Verteilung auf Channels/Topics und Tipp-Hinweise vor der Zustellung.
Wenn diese Schaltflächen vorhanden sind, sind sie die primäre UX für Genehmigungen; OpenClaw
sollte einen manuellen `/approve`-Befehl nur einfügen, wenn das Tool-Ergebnis angibt,
dass Chat-Genehmigungen nicht verfügbar sind oder die manuelle Genehmigung der einzige Weg ist.
sollte einen manuellen `/approve`-Befehl nur dann einfügen, wenn das Tool-Ergebnis sagt,
dass Chat-Genehmigungen nicht verfügbar sind oder manuelle Genehmigung der einzige Weg ist.
Zustellregeln:
Zustellungsregeln:
- `target: "dm"` sendet Genehmigungsaufforderungen nur an aufgelöste Genehmiger-DMs
- `target: "channel"` sendet die Aufforderung zurück an den ursprünglichen Telegram-Chat/das ursprüngliche Thema
- `target: "both"` sendet an Genehmiger-DMs und den ursprünglichen Chat/das ursprüngliche Thema
- `target: "dm"` sendet Genehmigungsaufforderungen nur an aufgelöste Approver-DMs
- `target: "channel"` sendet die Aufforderung zurück an den ursprünglichen Telegram-Chat/das ursprüngliche Topic
- `target: "both"` sendet an Approver-DMs und den ursprünglichen Chat/das ursprüngliche Topic
Nur aufgelöste Genehmiger können genehmigen oder ablehnen. Nicht-Genehmiger können `/approve` nicht verwenden und keine Telegram-Genehmigungsschaltflächen benutzen.
Nur aufgelöste Approver können genehmigen oder ablehnen. Nicht-Approver können `/approve` nicht verwenden und auch die Telegram-Genehmigungsschaltflächen nicht nutzen.
Verhalten bei der Genehmigungsauflösung:
- IDs mit dem Präfix `plugin:` werden immer über Plugin-Genehmigungen aufgelöst.
- Mit `plugin:` präfixierte IDs werden immer über Plugin-Genehmigungen aufgelöst.
- Andere Genehmigungs-IDs versuchen zuerst `exec.approval.resolve`.
- Wenn Telegram auch für Plugin-Genehmigungen autorisiert ist und das Gateway meldet,
- Wenn Telegram auch für Plugin-Genehmigungen autorisiert ist und das Gateway sagt,
dass die Exec-Genehmigung unbekannt/abgelaufen ist, versucht Telegram es einmal erneut über
`plugin.approval.resolve`.
- Echte Ablehnungen/Fehler bei Exec-Genehmigungen fallen nicht stillschweigend auf die Auflösung
von Plugin-Genehmigungen zurück.
- Echte Ablehnungen/Fehler bei Exec-Genehmigungen fallen nicht stillschweigend auf die
Auflösung von Plugin-Genehmigungen zurück.
Die Zustellung im Kanal zeigt den Befehlstext im Chat an, aktivieren Sie daher `channel` oder `both` nur in vertrauenswürdigen Gruppen/Themen. Wenn die Aufforderung in einem Forenthema landet, bewahrt OpenClaw das Thema sowohl für die Genehmigungsaufforderung als auch für die Nachverfolgung nach der Genehmigung. Exec-Genehmigungen laufen standardmäßig nach 30 Minuten ab.
Die Zustellung an Channels zeigt den Befehlstext im Chat an, also aktivieren Sie `channel` oder `both` nur in vertrauenswürdigen Gruppen/Topics. Wenn die Aufforderung in einem Forum-Topic landet, behält OpenClaw das Topic sowohl für die Genehmigungsaufforderung als auch für die Nachverfolgung nach der Genehmigung bei. Exec-Genehmigungen laufen standardmäßig nach 30 Minuten ab.
Inline-Genehmigungsschaltflächen hängen außerdem davon ab, dass `channels.telegram.capabilities.inlineButtons` die Zieloberfläche erlaubt (`dm`, `group` oder `all`).
Inline-Genehmigungsschaltflächen hängen außerdem davon ab, dass `channels.telegram.capabilities.inlineButtons` die Zielfläche (`dm`, `group` oder `all`) erlaubt.
Verwandte Dokumentation: [Exec-Genehmigungen](/de/tools/exec-approvals)
@ -865,14 +866,14 @@ openclaw message poll --channel telegram --target -1001234567890:topic:42 \
## Steuerung von Fehlerantworten
Wenn der Agent auf einen Zustellungs- oder Providerfehler stößt, kann Telegram entweder mit dem Fehlertext antworten oder ihn unterdrücken. Zwei Konfigurationsschlüssel steuern dieses Verhalten:
Wenn beim Agenten ein Zustellungs- oder Provider-Fehler auftritt, kann Telegram entweder mit dem Fehlertext antworten oder ihn unterdrücken. Zwei Konfigurationsschlüssel steuern dieses Verhalten:
| Schlüssel | Werte | Standard | Beschreibung |
| ----------------------------------- | ----------------- | -------- | ------------------------------------------------------------------------------------------------- |
| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` sendet eine benutzerfreundliche Fehlermeldung an den Chat. `silent` unterdrückt Fehlerantworten vollständig. |
| `channels.telegram.errorCooldownMs` | Zahl (ms) | `60000` | Mindestzeit zwischen Fehlerantworten an denselben Chat. Verhindert Fehler-Spam bei Ausfällen. |
| Key | Values | Default | Description |
| ----------------------------------- | ----------------- | ------- | ----------------------------------------------------------------------------------------------- |
| `channels.telegram.errorPolicy` | `reply`, `silent` | `reply` | `reply` sendet eine freundliche Fehlermeldung an den Chat. `silent` unterdrückt Fehlerantworten vollständig. |
| `channels.telegram.errorCooldownMs` | number (ms) | `60000` | Mindestzeit zwischen Fehlerantworten an denselben Chat. Verhindert Fehler-Spam bei Ausfällen. |
Überschreibungen pro Konto, pro Gruppe und pro Thema werden unterstützt (gleiche Vererbung wie bei anderen Telegram-Konfigurationsschlüsseln).
Überschreibungen pro Konto, pro Gruppe und pro Topic werden unterstützt (dieselbe Vererbung wie bei anderen Telegram-Konfigurationsschlüsseln).
```json5
{
@ -895,40 +896,40 @@ Wenn der Agent auf einen Zustellungs- oder Providerfehler stößt, kann Telegram
<AccordionGroup>
<Accordion title="Bot antwortet nicht auf Gruppennachrichten ohne Erwähnung">
- Wenn `requireMention=false`, muss der Telegram-Datenschutzmodus vollständige Sichtbarkeit erlauben.
- Wenn `requireMention=false`, muss der Telegram-Datenschutzmodus volle Sichtbarkeit erlauben.
- BotFather: `/setprivacy` -> Deaktivieren
- dann Bot aus der Gruppe entfernen und erneut hinzufügen
- dann den Bot aus der Gruppe entfernen und erneut hinzufügen
- `openclaw channels status` warnt, wenn die Konfiguration Gruppennachrichten ohne Erwähnung erwartet.
- `openclaw channels status --probe` kann explizite numerische Gruppen-IDs prüfen; der Platzhalter `"*"` kann nicht auf Mitgliedschaft geprüft werden.
- `openclaw channels status --probe` kann explizite numerische Gruppen-IDs prüfen; der Platzhalter `"*"` kann nicht per Mitgliedschaft geprüft werden.
- schneller Sitzungstest: `/activation always`.
</Accordion>
<Accordion title="Bot sieht Gruppennachrichten überhaupt nicht">
- wenn `channels.telegram.groups` existiert, muss die Gruppe aufgeführt sein (oder `"*"` enthalten)
- prüfen Sie die Bot-Mitgliedschaft in der Gruppe
- prüfen Sie die Logs: `openclaw logs --follow` auf Gründe für das Überspringen
- wenn `channels.telegram.groups` existiert, muss die Gruppe aufgelistet sein (oder `"*"` enthalten)
- Bot-Mitgliedschaft in der Gruppe verifizieren
- Logs prüfen: `openclaw logs --follow` auf Gründe für das Überspringen
</Accordion>
<Accordion title="Befehle funktionieren nur teilweise oder gar nicht">
<Accordion title="Befehle funktionieren teilweise oder gar nicht">
- autorisieren Sie Ihre Absenderidentität (Pairing und/oder numerisches `allowFrom`)
- autorisieren Sie Ihre Absenderidentität (Kopplung und/oder numerisches `allowFrom`)
- die Befehlsautorisierung gilt weiterhin, auch wenn die Gruppenrichtlinie `open` ist
- `setMyCommands failed` mit `BOT_COMMANDS_TOO_MUCH` bedeutet, dass das native Menü zu viele Einträge hat; reduzieren Sie Plugin-/Skills-/benutzerdefinierte Befehle oder deaktivieren Sie native Menüs
- `setMyCommands failed` mit Netzwerk-/Fetch-Fehlern weist in der Regel auf Erreichbarkeitsprobleme bei DNS/HTTPS zu `api.telegram.org` hin
- `setMyCommands failed` mit Netzwerk-/Fetch-Fehlern deutet in der Regel auf DNS-/HTTPS-Erreichbarkeitsprobleme zu `api.telegram.org` hin
</Accordion>
<Accordion title="Polling- oder Netzwerk-Instabilität">
- Node 22+ + benutzerdefiniertes Fetch/Proxy kann ein sofortiges Abbruchverhalten auslösen, wenn `AbortSignal`-Typen nicht übereinstimmen.
- Einige Hosts lösen `api.telegram.org` zuerst zu IPv6 auf; defekter IPv6-Ausgang kann zu intermittierenden Telegram-API-Fehlern führen.
- Wenn die Logs `TypeError: fetch failed` oder `Network request for 'getUpdates' failed!` enthalten, versucht OpenClaw diese nun als behebbare Netzwerkfehler erneut.
- Wenn die Logs `Polling stall detected` enthalten, startet OpenClaw das Polling neu und baut den Telegram-Transport standardmäßig nach 120 Sekunden ohne abgeschlossene Long-Poll-Lebenszeichen neu auf.
- Erhöhen Sie `channels.telegram.pollingStallThresholdMs` nur, wenn lang laufende `getUpdates`-Aufrufe gesund sind, Ihr Host aber weiterhin falsch-positive Neustarts wegen Polling-Stillstand meldet. Andauernde Stillstände deuten in der Regel auf Probleme mit Proxy, DNS, IPv6 oder TLS-Ausgang zwischen dem Host und `api.telegram.org` hin.
- Auf VPS-Hosts mit instabilem direktem Ausgang/TLS leiten Sie Telegram-API-Aufrufe über `channels.telegram.proxy`:
- Node 22+ + benutzerdefiniertes Fetch/Proxy können ein sofortiges Abbruchverhalten auslösen, wenn AbortSignal-Typen nicht übereinstimmen.
- Einige Hosts lösen `api.telegram.org` zuerst in IPv6 auf; fehlerhaftes IPv6-Egress kann zu sporadischen Telegram-API-Fehlern führen.
- Wenn Logs `TypeError: fetch failed` oder `Network request for 'getUpdates' failed!` enthalten, versucht OpenClaw diese jetzt als behebbare Netzwerkfehler erneut.
- Wenn Logs `Polling stall detected` enthalten, startet OpenClaw das Polling neu und baut den Telegram-Transport standardmäßig nach 120 Sekunden ohne abgeschlossene Long-Poll-Lebendigkeit neu auf.
- Erhöhen Sie `channels.telegram.pollingStallThresholdMs` nur, wenn lang laufende `getUpdates`-Aufrufe gesund sind, Ihr Host aber weiterhin Fehlalarme bei Neustarts wegen Polling-Stillstand meldet. Anhaltende Stillstände weisen normalerweise auf Proxy-, DNS-, IPv6- oder TLS-Egress-Probleme zwischen dem Host und `api.telegram.org` hin.
- Auf VPS-Hosts mit instabilem direktem Egress/TLS leiten Sie Telegram-API-Aufrufe über `channels.telegram.proxy`:
```yaml
channels:
@ -937,7 +938,7 @@ channels:
```
- Node 22+ verwendet standardmäßig `autoSelectFamily=true` (außer WSL2) und `dnsResultOrder=ipv4first`.
- Wenn Ihr Host WSL2 ist oder explizit besser mit IPv4-only-Verhalten funktioniert, erzwingen Sie die Familienauswahl:
- Wenn Ihr Host WSL2 ist oder explizit besser mit reinem IPv4-Verhalten funktioniert, erzwingen Sie die Familienauswahl:
```yaml
channels:
@ -946,10 +947,11 @@ channels:
autoSelectFamily: false
```
- Antworten aus dem RFC-2544-Benchmarkbereich (`198.18.0.0/15`) sind für Telegram-Mediendownloads standardmäßig bereits erlaubt.
Wenn eine vertrauenswürdige Fake-IP oder ein transparenter Proxy `api.telegram.org` bei Mediendownloads auf
eine andere private/interne/Special-Use-Adresse umschreibt, können Sie den
nur für Telegram geltenden Bypass aktivieren:
- Antworten aus dem RFC-2544-Benchmark-Bereich (`198.18.0.0/15`) sind bereits standardmäßig
für Telegram-Mediendownloads erlaubt. Wenn ein vertrauenswürdiges Fake-IP- oder
transparentes Proxy `api.telegram.org` bei Mediendownloads auf eine andere
private/interne/spezielle Adresse umschreibt, können Sie sich bewusst
für die nur Telegram betreffende Umgehung entscheiden:
```yaml
channels:
@ -958,18 +960,18 @@ channels:
dangerouslyAllowPrivateNetwork: true
```
- Dieselbe Aktivierung ist pro Konto verfügbar unter
`channels.telegram.accounts.<accountId>.network.dangerouslyAllowPrivateNetwork`.
- Dieselbe bewusste Aktivierung ist auch pro Konto unter
`channels.telegram.accounts.<accountId>.network.dangerouslyAllowPrivateNetwork` verfügbar.
- Wenn Ihr Proxy Telegram-Media-Hosts in `198.18.x.x` auflöst, lassen Sie das
gefährliche Flag zunächst ausgeschaltet. Telegram-Medien erlauben den RFC-2544-
Benchmarkbereich standardmäßig bereits.
gefährliche Flag zunächst deaktiviert. Telegram-Medien erlauben den RFC-2544-
Benchmark-Bereich bereits standardmäßig.
<Warning>
`channels.telegram.network.dangerouslyAllowPrivateNetwork` schwächt die SSRF-Schutzmaßnahmen
für Telegram-Medien. Verwenden Sie es nur für vertrauenswürdige, vom Betreiber kontrollierte Proxy-
Umgebungen wie Clash, Mihomo oder Surge mit Fake-IP-Routing, wenn diese private oder
Special-Use-Antworten außerhalb des RFC-2544-Benchmarkbereichs synthetisieren. Lassen Sie es für normalen
Telegram-Zugriff über das öffentliche Internet deaktiviert.
`channels.telegram.network.dangerouslyAllowPrivateNetwork` schwächt den Telegram-
Medien-SSRF-Schutz. Verwenden Sie dies nur in vertrauenswürdigen, vom Betreiber kontrollierten Proxy-
Umgebungen wie Clash, Mihomo oder Surge mit Fake-IP-Routing, wenn sie
private oder spezielle Antworten außerhalb des RFC-2544-Benchmark-
Bereichs synthetisieren. Lassen Sie es für normalen öffentlichen Telegram-Zugriff deaktiviert.
</Warning>
- Umgebungsüberschreibungen (temporär):
@ -986,59 +988,60 @@ dig +short api.telegram.org AAAA
</Accordion>
</AccordionGroup>
Weitere Hilfe: [Fehlerbehebung für Kanäle](/de/channels/troubleshooting).
Weitere Hilfe: [Channel-Fehlerbehebung](/de/channels/troubleshooting).
## Zeiger auf die Telegram-Konfigurationsreferenz
## Verweise auf die Telegram-Konfigurationsreferenz
Primäre Referenz:
- `channels.telegram.enabled`: Kanalstart aktivieren/deaktivieren.
- `channels.telegram.enabled`: Channel-Start aktivieren/deaktivieren.
- `channels.telegram.botToken`: Bot-Token (BotFather).
- `channels.telegram.tokenFile`: Token aus einem regulären Dateipfad lesen. Symlinks werden abgelehnt.
- `channels.telegram.dmPolicy`: `pairing | allowlist | open | disabled` (Standard: pairing).
- `channels.telegram.allowFrom`: DM-Allowlist (numerische Telegram-Benutzer-IDs). `allowlist` erfordert mindestens eine Absender-ID. `open` erfordert `"*"`. `openclaw doctor --fix` kann ältere `@username`-Einträge zu IDs auflösen und Allowlist-Einträge aus Pairing-Store-Dateien in Allowlist-Migrationsabläufen wiederherstellen.
- `channels.telegram.actions.poll`: Erstellen von Telegram-Umfragen aktivieren oder deaktivieren (Standard: aktiviert; erfordert weiterhin `sendMessage`).
- `channels.telegram.defaultTo`: Standard-Telegram-Ziel, das von CLI `--deliver` verwendet wird, wenn kein explizites `--reply-to` angegeben ist.
- `channels.telegram.allowFrom`: DM-Allowlist (numerische Telegram-Benutzer-IDs). `allowlist` erfordert mindestens eine Absender-ID. `open` erfordert `"*"`. `openclaw doctor --fix` kann alte `@username`-Einträge in IDs auflösen und Allowlist-Einträge aus Pairing-Store-Dateien in Allowlist-Migrationsabläufen wiederherstellen.
- `channels.telegram.actions.poll`: Erstellung von Telegram-Umfragen aktivieren oder deaktivieren (Standard: aktiviert; erfordert weiterhin `sendMessage`).
- `channels.telegram.defaultTo`: Standard-Telegram-Ziel, das vom CLI `--deliver` verwendet wird, wenn kein explizites `--reply-to` angegeben ist.
- `channels.telegram.groupPolicy`: `open | allowlist | disabled` (Standard: allowlist).
- `channels.telegram.groupAllowFrom`: Allowlist für Gruppenabsender (numerische Telegram-Benutzer-IDs). `openclaw doctor --fix` kann ältere `@username`-Einträge zu IDs auflösen. Nicht numerische Einträge werden bei der Authentifizierung ignoriert. Die Gruppenauthentifizierung verwendet keinen DM-Pairing-Store-Fallback (`2026.2.25+`).
- Priorität bei mehreren Konten:
- Wenn zwei oder mehr Konto-IDs konfiguriert sind, setzen Sie `channels.telegram.defaultAccount` (oder fügen Sie `channels.telegram.accounts.default` ein), um das Standardrouting explizit zu machen.
- Wenn keines von beiden gesetzt ist, greift OpenClaw auf die erste normalisierte Konto-ID zurück und `openclaw doctor` warnt.
- `channels.telegram.accounts.default.allowFrom` und `channels.telegram.accounts.default.groupAllowFrom` gelten nur für das Konto `default`.
- `channels.telegram.groupAllowFrom`: Gruppenabsender-Allowlist (numerische Telegram-Benutzer-IDs). `openclaw doctor --fix` kann alte `@username`-Einträge in IDs auflösen. Nicht numerische Einträge werden zur Authentifizierungszeit ignoriert. Gruppenauthentifizierung verwendet keinen Fallback auf den DM-Pairing-Store (`2026.2.25+`).
- Multi-Account-Priorität:
- Wenn zwei oder mehr Konto-IDs konfiguriert sind, setzen Sie `channels.telegram.defaultAccount` (oder fügen Sie `channels.telegram.accounts.default` ein), um Standardrouting explizit zu machen.
- Wenn keines von beiden gesetzt ist, fällt OpenClaw auf die erste normalisierte Konto-ID zurück und `openclaw doctor` gibt eine Warnung aus.
- `channels.telegram.accounts.default.allowFrom` und `channels.telegram.accounts.default.groupAllowFrom` gelten nur für das `default`-Konto.
- Benannte Konten erben `channels.telegram.allowFrom` und `channels.telegram.groupAllowFrom`, wenn Werte auf Kontoebene nicht gesetzt sind.
- Benannte Konten erben nicht `channels.telegram.accounts.default.allowFrom` / `groupAllowFrom`.
- `channels.telegram.groups`: gruppenspezifische Standardwerte + Allowlist (verwenden Sie `"*"` für globale Standardwerte).
- `channels.telegram.groups.<id>.groupPolicy`: gruppenspezifische Überschreibung für `groupPolicy` (`open | allowlist | disabled`).
- `channels.telegram.groups.<id>.requireMention`: Standard für Erwähnungs-Gating.
- `channels.telegram.groups`: Standardwerte pro Gruppe + Allowlist (verwenden Sie `"*"` für globale Standardwerte).
- `channels.telegram.groups.<id>.groupPolicy`: Überschreibung pro Gruppe für `groupPolicy` (`open | allowlist | disabled`).
- `channels.telegram.groups.<id>.requireMention`: Standard für Mention-Gating.
- `channels.telegram.groups.<id>.skills`: Skills-Filter (weglassen = alle Skills, leer = keine).
- `channels.telegram.groups.<id>.allowFrom`: gruppenspezifische Überschreibung der Absender-Allowlist.
- `channels.telegram.groups.<id>.systemPrompt`: zusätzlicher Systemprompt für die Gruppe.
- `channels.telegram.groups.<id>.allowFrom`: Überschreibung der Absender-Allowlist pro Gruppe.
- `channels.telegram.groups.<id>.systemPrompt`: zusätzlicher System-Prompt für die Gruppe.
- `channels.telegram.groups.<id>.enabled`: deaktiviert die Gruppe, wenn `false`.
- `channels.telegram.groups.<id>.topics.<threadId>.*`: themenspezifische Überschreibungen (Gruppenfelder + themenspezifisches `agentId`).
- `channels.telegram.groups.<id>.topics.<threadId>.agentId`: dieses Thema an einen bestimmten Agent weiterleiten (überschreibt Routing auf Gruppenebene und Binding-Routing).
- `channels.telegram.groups.<id>.topics.<threadId>.groupPolicy`: themenspezifische Überschreibung für `groupPolicy` (`open | allowlist | disabled`).
- `channels.telegram.groups.<id>.topics.<threadId>.requireMention`: themenspezifische Überschreibung für Erwähnungs-Gating.
- `bindings[]` auf oberster Ebene mit `type: "acp"` und kanonischer Themen-ID `chatId:topic:topicId` in `match.peer.id`: Felder für persistente ACP-Themenbindung (siehe [ACP Agents](/de/tools/acp-agents#channel-specific-settings)).
- `channels.telegram.direct.<id>.topics.<threadId>.agentId`: DM-Themen an einen bestimmten Agent weiterleiten (gleiches Verhalten wie bei Forenthemen).
- `channels.telegram.execApprovals.enabled`: Telegram als chatbasierten Exec-Genehmigungsclient für dieses Konto aktivieren.
- `channels.telegram.groups.<id>.topics.<threadId>.*`: Überschreibungen pro Topic (Gruppenfelder + Topic-spezifisches `agentId`).
- `channels.telegram.groups.<id>.topics.<threadId>.agentId`: dieses Topic an einen bestimmten Agenten routen (überschreibt Routing auf Gruppenebene und über Bindings).
- `channels.telegram.groups.<id>.topics.<threadId>.groupPolicy`: Überschreibung pro Topic für `groupPolicy` (`open | allowlist | disabled`).
- `channels.telegram.groups.<id>.topics.<threadId>.requireMention`: Überschreibung des Mention-Gatings pro Topic.
- oberstes `bindings[]` mit `type: "acp"` und kanonischer Topic-ID `chatId:topic:topicId` in `match.peer.id`: Felder für persistente ACP-Topic-Bindung (siehe [ACP Agents](/de/tools/acp-agents#channel-specific-settings)).
- `channels.telegram.direct.<id>.topics.<threadId>.agentId`: DM-Topics an einen bestimmten Agenten routen (gleiches Verhalten wie bei Forum-Topics).
- `channels.telegram.execApprovals.enabled`: Telegram als chatbasierten Client für Exec-Genehmigungen für dieses Konto aktivieren.
- `channels.telegram.execApprovals.approvers`: Telegram-Benutzer-IDs, die Exec-Anfragen genehmigen oder ablehnen dürfen. Optional, wenn `channels.telegram.allowFrom` oder ein direktes `channels.telegram.defaultTo` den Eigentümer bereits identifiziert.
- `channels.telegram.execApprovals.target`: `dm | channel | both` (Standard: `dm`). `channel` und `both` bewahren das ursprüngliche Telegram-Thema, falls vorhanden.
- `channels.telegram.execApprovals.target`: `dm | channel | both` (Standard: `dm`). `channel` und `both` behalten das ursprüngliche Telegram-Topic bei, wenn vorhanden.
- `channels.telegram.execApprovals.agentFilter`: optionaler Agent-ID-Filter für weitergeleitete Genehmigungsaufforderungen.
- `channels.telegram.execApprovals.sessionFilter`: optionaler Sitzungs-Schlüsselfilter (Teilzeichenfolge oder Regex) für weitergeleitete Genehmigungsaufforderungen.
- `channels.telegram.accounts.<account>.execApprovals`: Überschreibung pro Konto für Telegram-Exec-Genehmigungsrouting und Genehmiger-Autorisierung.
- `channels.telegram.execApprovals.sessionFilter`: optionaler Sitzungsschlüssel-Filter (Teilstring oder Regex) für weitergeleitete Genehmigungsaufforderungen.
- `channels.telegram.accounts.<account>.execApprovals`: Überschreibung pro Konto für Routing von Telegram-Exec-Genehmigungen und Approver-Autorisierung.
- `channels.telegram.capabilities.inlineButtons`: `off | dm | group | all | allowlist` (Standard: allowlist).
- `channels.telegram.accounts.<account>.capabilities.inlineButtons`: Überschreibung pro Konto.
- `channels.telegram.commands.nativeSkills`: Telegram-native Skills-Befehle aktivieren/deaktivieren.
- `channels.telegram.commands.nativeSkills`: native Skills-Befehle für Telegram aktivieren/deaktivieren.
- `channels.telegram.replyToMode`: `off | first | all` (Standard: `off`).
- `channels.telegram.textChunkLimit`: Größe ausgehender Chunks (Zeichen).
- `channels.telegram.chunkMode`: `length` (Standard) oder `newline`, um vor dem Chunking nach Länge an Leerzeilen (Absatzgrenzen) zu trennen.
- `channels.telegram.linkPreview`: Link-Vorschauen für ausgehende Nachrichten umschalten (Standard: true).
- `channels.telegram.streaming`: `off | partial | block | progress` (Live-Stream-Vorschau; Standard: `partial`; `progress` wird auf `partial` abgebildet; `block` dient der Kompatibilität mit dem älteren Vorschaumodus). Die Telegram-Vorschau für Streaming verwendet eine einzelne Vorschaunachricht, die direkt bearbeitet wird.
- `channels.telegram.mediaMaxMb`: Obergrenze für eingehende/ausgehende Telegram-Medien (MB, Standard: 100).
- `channels.telegram.retry`: Wiederholungsrichtlinie für Telegram-Sendehilfen (CLI/Tools/Aktionen) bei behebbaren ausgehenden API-Fehlern (`attempts`, `minDelayMs`, `maxDelayMs`, `jitter`).
- `channels.telegram.streaming`: `off | partial | block | progress` (Live-Stream-Vorschau; Standard: `partial`; `progress` wird auf `partial` abgebildet; `block` dient der Kompatibilität mit dem alten Vorschaumodus). Die Telegram-Vorschau beim Streaming verwendet eine einzelne Vorschau-Nachricht, die direkt bearbeitet wird.
- `channels.telegram.streaming.preview.toolProgress`: die Live-Vorschau-Nachricht für Tool-/Fortschrittsaktualisierungen wiederverwenden, wenn Vorschau-Streaming aktiv ist (Standard: `true`). Setzen Sie `false`, um separate Tool-/Fortschrittsnachrichten beizubehalten.
- `channels.telegram.mediaMaxMb`: Telegram-Medienlimit für ein-/ausgehend (MB, Standard: 100).
- `channels.telegram.retry`: Wiederholungsrichtlinie für Telegram-Sendehelfer (CLI/Tools/Aktionen) bei behebbaren ausgehenden API-Fehlern (Versuche, `minDelayMs`, `maxDelayMs`, `jitter`).
- `channels.telegram.network.autoSelectFamily`: Node-`autoSelectFamily` überschreiben (true=aktivieren, false=deaktivieren). Standardmäßig auf Node 22+ aktiviert, bei WSL2 standardmäßig deaktiviert.
- `channels.telegram.network.dnsResultOrder`: DNS-Ergebnisreihenfolge überschreiben (`ipv4first` oder `verbatim`). Standardmäßig `ipv4first` auf Node 22+.
- `channels.telegram.network.dangerouslyAllowPrivateNetwork`: gefährliche Opt-in-Option für vertrauenswürdige Fake-IP- oder Transparent-Proxy-Umgebungen, in denen Telegram-Mediendownloads `api.telegram.org` auf private/interne/Special-Use-Adressen außerhalb des standardmäßigen RFC-2544-Benchmarkbereichs auflösen.
- `channels.telegram.network.dangerouslyAllowPrivateNetwork`: gefährliche bewusste Aktivierung für vertrauenswürdige Fake-IP- oder transparente Proxy-Umgebungen, in denen Telegram-Mediendownloads `api.telegram.org` auf private/interne/spezielle Adressen außerhalb der standardmäßigen RFC-2544-Benchmark-Bereich-Freigabe auflösen.
- `channels.telegram.proxy`: Proxy-URL für Bot-API-Aufrufe (SOCKS/HTTP).
- `channels.telegram.webhookUrl`: Webhook-Modus aktivieren (erfordert `channels.telegram.webhookSecret`).
- `channels.telegram.webhookSecret`: Webhook-Secret (erforderlich, wenn `webhookUrl` gesetzt ist).
@ -1046,24 +1049,24 @@ Primäre Referenz:
- `channels.telegram.webhookHost`: lokaler Webhook-Bind-Host (Standard `127.0.0.1`).
- `channels.telegram.webhookPort`: lokaler Webhook-Bind-Port (Standard `8787`).
- `channels.telegram.actions.reactions`: Telegram-Tool-Reaktionen steuern.
- `channels.telegram.actions.sendMessage`: Senden von Telegram-Tool-Nachrichten steuern.
- `channels.telegram.actions.deleteMessage`: Löschen von Telegram-Tool-Nachrichten steuern.
- `channels.telegram.actions.sticker`: Telegram-Sticker-Aktionen steuern — Senden und Suchen (Standard: false).
- `channels.telegram.reactionNotifications`: `off | own | all` — steuert, welche Reaktionen Systemereignisse auslösen (Standard: `own`, wenn nicht gesetzt).
- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive`steuert die Reaktionsfähigkeit des Agent (Standard: `minimal`, wenn nicht gesetzt).
- `channels.telegram.errorPolicy`: `reply | silent`steuert das Verhalten von Fehlerantworten (Standard: `reply`). Überschreibungen pro Konto/Gruppe/Thema werden unterstützt.
- `channels.telegram.errorCooldownMs`: Mindestanzahl an ms zwischen Fehlerantworten an denselben Chat (Standard: `60000`). Verhindert Fehler-Spam bei Ausfällen.
- `channels.telegram.actions.sendMessage`: Telegram-Tool-Nachrichtensendungen steuern.
- `channels.telegram.actions.deleteMessage`: Telegram-Tool-Nachrichtenlöschungen steuern.
- `channels.telegram.actions.sticker`: Telegram-Sticker-Aktionen steuern — senden und suchen (Standard: false).
- `channels.telegram.reactionNotifications`: `off | own | all` — steuern, welche Reaktionen Systemereignisse auslösen (Standard: `own`, wenn nicht gesetzt).
- `channels.telegram.reactionLevel`: `off | ack | minimal | extensive` — Reaktionsfähigkeit des Agenten steuern (Standard: `minimal`, wenn nicht gesetzt).
- `channels.telegram.errorPolicy`: `reply | silent`Verhalten bei Fehlerantworten steuern (Standard: `reply`). Überschreibungen pro Konto/Gruppe/Topic werden unterstützt.
- `channels.telegram.errorCooldownMs`: Mindestzeit in ms zwischen Fehlerantworten an denselben Chat (Standard: `60000`). Verhindert Fehler-Spam bei Ausfällen.
- [Konfigurationsreferenz - Telegram](/de/gateway/configuration-reference#telegram)
Telegram-spezifische Felder mit hohem Signalwert:
- Start/Auth: `enabled`, `botToken`, `tokenFile`, `accounts.*` (`tokenFile` muss auf eine reguläre Datei zeigen; Symlinks werden abgelehnt)
- Zugriffskontrolle: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, `bindings[]` auf oberster Ebene (`type: "acp"`)
- Zugriffskontrolle: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `groups.*.topics.*`, oberstes `bindings[]` (`type: "acp"`)
- Exec-Genehmigungen: `execApprovals`, `accounts.*.execApprovals`
- Befehl/Menü: `commands.native`, `commands.nativeSkills`, `customCommands`
- Threading/Antworten: `replyToMode`
- Streaming: `streaming` (Vorschau), `blockStreaming`
- Streaming: `streaming` (Vorschau), `streaming.preview.toolProgress`, `blockStreaming`
- Formatierung/Zustellung: `textChunkLimit`, `chunkMode`, `linkPreview`, `responsePrefix`
- Medien/Netzwerk: `mediaMaxMb`, `timeoutSeconds`, `pollingStallThresholdMs`, `retry`, `network.autoSelectFamily`, `network.dangerouslyAllowPrivateNetwork`, `proxy`
- Webhook: `webhookUrl`, `webhookSecret`, `webhookPath`, `webhookHost`
@ -1077,6 +1080,6 @@ Telegram-spezifische Felder mit hohem Signalwert:
- [Kopplung](/de/channels/pairing)
- [Gruppen](/de/channels/groups)
- [Sicherheit](/de/gateway/security)
- [Kanalrouting](/de/channels/channel-routing)
- [Channel-Routing](/de/channels/channel-routing)
- [Multi-Agent-Routing](/de/concepts/multi-agent)
- [Fehlerbehebung](/de/channels/troubleshooting)

View File

@ -1,108 +1,137 @@
---
read_when:
- Mehr als ein Gateway auf demselben Rechner ausführen
- Sie benötigen isolierte Konfiguration/isolierten Status/eigene Ports pro Gateway
summary: Mehrere OpenClaw-Gateways auf einem Host ausführen (Isolierung, Ports und Profile)
- Sie benötigen isolierte Konfiguration, isolierten Status und isolierte Ports pro Gateway
summary: Mehrere OpenClaw Gateways auf einem Host ausführen (Isolation, Ports und Profile)
title: Mehrere Gateways
x-i18n:
generated_at: "2026-04-05T12:42:41Z"
generated_at: "2026-04-21T17:45:33Z"
model: gpt-5.4
provider: openai
source_hash: 061f204bf56b28c6bd0e2c9aee6c561a8a162ca219060117fea4d3a007f01899
source_hash: 8c3fcb921bc6596040e9249467964bd9dcd40ea7c16e958bb378247b0f994a7b
source_path: gateway/multiple-gateways.md
workflow: 15
---
# Mehrere Gateways (derselbe Host)
Die meisten Setups sollten ein einzelnes Gateway verwenden, da ein einziges Gateway mehrere Messaging-Verbindungen und Agenten verwalten kann. Wenn Sie eine stärkere Isolierung oder Redundanz benötigen (z. B. einen Rettungs-Bot), führen Sie separate Gateways mit isolierten Profilen/Ports aus.
Die meisten Setups sollten ein Gateway verwenden, weil ein einzelnes Gateway mehrere Messaging-Verbindungen und Agents verarbeiten kann. Wenn Sie stärkere Isolation oder Redundanz benötigen, z. B. einen Rescue-Bot, führen Sie separate Gateways mit isolierten Profilen und Ports aus.
## Checkliste zur Isolierung (erforderlich)
## Checkliste für die Isolation (erforderlich)
- `OPENCLAW_CONFIG_PATH` — Konfigurationsdatei pro Instanz
- `OPENCLAW_STATE_DIR` — Sitzungen, Anmeldedaten und Caches pro Instanz
- `agents.defaults.workspace` — Workspace-Root pro Instanz
- `gateway.port` (oder `--port`) — eindeutiger Port pro Instanz
- `agents.defaults.workspace` — Workspace-Stammverzeichnis pro Instanz
- `gateway.port` (oder `--port`) — eindeutig pro Instanz
- Abgeleitete Ports (Browser/Canvas) dürfen sich nicht überschneiden
Wenn diese gemeinsam genutzt werden, treten Konfigurationsrennen und Portkonflikte auf.
Wenn diese gemeinsam genutzt werden, kommt es zu Konfigurations-Race-Conditions und Portkonflikten.
## Empfohlen: Profile (`--profile`)
## Empfohlen: Verwenden Sie das Standardprofil für das Hauptsystem und ein benanntes Profil für Rescue
Profile grenzen `OPENCLAW_STATE_DIR` + `OPENCLAW_CONFIG_PATH` automatisch ab und hängen Suffixe an Servicenamen an.
Profile grenzen `OPENCLAW_STATE_DIR` und `OPENCLAW_CONFIG_PATH` automatisch ab und hängen Suffixe an Dienstnamen an. Für die meisten Rescue-Bot-Setups sollten Sie den Haupt-Bot im Standardprofil belassen und nur dem Rescue-Bot ein benanntes Profil wie `rescue` geben.
```bash
# main
openclaw --profile main setup
openclaw --profile main gateway --port 18789
# main (default profile)
openclaw setup
openclaw gateway --port 18789
# rescue
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001
```
Dienste pro Profil:
Dienste:
```bash
openclaw --profile main gateway install
openclaw gateway install
openclaw --profile rescue gateway install
```
## Leitfaden für Rettungs-Bot
Wenn Sie möchten, dass beide Gateways benannte Profile verwenden, funktioniert das ebenfalls, ist aber nicht erforderlich.
Führen Sie ein zweites Gateway auf demselben Host mit eigenem Folgendem aus:
## Leitfaden für Rescue-Bots
- Profil/Konfiguration
- Statusverzeichnis
- Workspace
- Basisport (plus abgeleitete Ports)
Empfohlenes Setup:
So bleibt der Rettungs-Bot vom Haupt-Bot isoliert, sodass er Fehler analysieren oder Konfigurationsänderungen anwenden kann, wenn der primäre Bot nicht verfügbar ist.
- den Haupt-Bot im Standardprofil belassen
- den Rescue-Bot mit `--profile rescue` ausführen
- für das Rescue-Konto einen vollständig separaten Telegram-Bot verwenden
- den Rescue-Bot auf einem anderen Basisport wie `19001` betreiben
Portabstand: Lassen Sie zwischen den Basisports mindestens 20 Ports frei, damit sich die abgeleiteten Browser-/Canvas-/CDP-Ports nie überschneiden.
Dadurch bleibt der Rescue-Bot vom Haupt-Bot isoliert, sodass er Konfigurationsänderungen debuggen oder anwenden kann, wenn der primäre Bot ausgefallen ist. Lassen Sie zwischen den Basisports mindestens 20 Ports Abstand, damit sich die abgeleiteten Browser-/Canvas-/CDP-Ports niemals überschneiden.
### Installation (Rettungs-Bot)
### Empfohlener Rescue-Kanal/-Account
Verwenden Sie für die meisten Setups einen vollständig separaten Telegram-Bot für das Rescue-Profil.
Warum Telegram:
- leicht auf reine Operator-Nutzung beschränkbar
- separates Bot-Token und separate Identität
- unabhängig von der Kanal-/App-Installation des Haupt-Bots
- einfacher DM-basierter Wiederherstellungspfad, wenn der Haupt-Bot defekt ist
Wichtig ist die vollständige Unabhängigkeit: separates Bot-Konto, separate Anmeldedaten, separates OpenClaw-Profil, separater Workspace und separater Port.
### Empfohlener Installationsablauf
Verwenden Sie dies als Standard-Setup, sofern Sie keinen triftigen Grund haben, etwas anderes zu tun:
```bash
# Haupt-Bot (bestehend oder neu, ohne --profile-Parameter)
# Läuft auf Port 18789 + Chrome-CDC-/Canvas-/...-Ports
# Main bot (default profile, port 18789)
openclaw onboard
openclaw gateway install
# Rettungs-Bot (isoliertes Profil + Ports)
# Rescue bot (separate Telegram bot, separate profile, port 19001)
openclaw --profile rescue onboard
# Hinweise:
# - der Workspace-Name erhält standardmäßig das Suffix -rescue
# - der Port sollte mindestens 18789 + 20 Ports sein,
# besser einen völlig anderen Basisport wählen, z. B. 19789,
# - der Rest des Onboardings ist derselbe wie normal
# Um den Dienst zu installieren (falls dies nicht bereits während des Setups automatisch passiert ist)
openclaw --profile rescue gateway install
```
Während `openclaw --profile rescue onboard`:
- verwenden Sie das separate Telegram-Bot-Token
- behalten Sie das Profil `rescue` bei
- verwenden Sie einen Basisport, der mindestens 20 höher ist als der des Haupt-Bots
- übernehmen Sie den Standard-Workspace für Rescue, sofern Sie nicht bereits selbst einen verwalten
Wenn das Onboarding den Rescue-Dienst bereits für Sie installiert hat, ist das abschließende `gateway install` nicht erforderlich.
### Was das Onboarding ändert
`openclaw --profile rescue onboard` verwendet den normalen Onboarding-Ablauf, schreibt aber alles in ein separates Profil.
In der Praxis bedeutet das, dass der Rescue-Bot Folgendes erhält:
- eine eigene Konfigurationsdatei
- ein eigenes Statusverzeichnis
- einen eigenen Workspace (standardmäßig `~/.openclaw/workspace-rescue`)
- einen eigenen Namen für den verwalteten Dienst
Die Eingabeaufforderungen sind ansonsten dieselben wie beim normalen Onboarding.
## Portzuordnung (abgeleitet)
Basisport = `gateway.port` (oder `OPENCLAW_GATEWAY_PORT` / `--port`).
- Browser-Control-Service-Port = Basisport + 2 (nur loopback)
- Der Canvas-Host wird auf dem Gateway-HTTP-Server bereitgestellt (derselbe Port wie `gateway.port`)
- Browser-Profil-CDP-Ports werden automatisch aus `browser.controlPort + 9 .. + 108` zugewiesen
- Browser-Steuerungsdienst-Port = Basisport + 2 (nur loopback)
- Canvas Host wird über den Gateway-HTTP-Server bereitgestellt (derselbe Port wie `gateway.port`)
- CDP-Ports für Browser-Profile werden automatisch aus `browser.controlPort + 9 .. + 108` zugewiesen
Wenn Sie einen dieser Werte in config oder env überschreiben, müssen Sie sie pro Instanz eindeutig halten.
Wenn Sie einen dieser Werte in der Konfiguration oder per Umgebungsvariable überschreiben, müssen sie pro Instanz eindeutig bleiben.
## Hinweise zu Browser/CDP (häufige Stolperfalle)
## Hinweise zu Browser/CDP (häufige Fehlerquelle)
- Setzen Sie `browser.cdpUrl` **nicht** auf mehreren Instanzen auf dieselben Werte fest.
- Jede Instanz benötigt ihren eigenen Browser-Control-Port und ihren eigenen CDP-Bereich (abgeleitet aus ihrem Gateway-Port).
- Legen Sie `browser.cdpUrl` auf mehreren Instanzen **nicht** auf dieselben Werte fest.
- Jede Instanz benötigt ihren eigenen Browser-Steuerungsport und ihren eigenen CDP-Bereich (abgeleitet von ihrem Gateway-Port).
- Wenn Sie explizite CDP-Ports benötigen, setzen Sie `browser.profiles.<name>.cdpPort` pro Instanz.
- Remote-Chrome: Verwenden Sie `browser.profiles.<name>.cdpUrl` (pro Profil, pro Instanz).
## Beispiel mit manuellen Env vars
## Beispiel für manuelle Umgebungsvariablen
```bash
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
OPENCLAW_STATE_DIR=~/.openclaw-main \
OPENCLAW_STATE_DIR=~/.openclaw \
openclaw gateway --port 18789
OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
@ -113,10 +142,10 @@ openclaw gateway --port 19001
## Schnelle Prüfungen
```bash
openclaw --profile main gateway status --deep
openclaw gateway status --deep
openclaw --profile rescue gateway status --deep
openclaw --profile rescue gateway probe
openclaw --profile main status
openclaw status
openclaw --profile rescue status
openclaw --profile rescue browser status
```
@ -124,4 +153,4 @@ openclaw --profile rescue browser status
Interpretation:
- `gateway status --deep` hilft dabei, veraltete launchd-/systemd-/schtasks-Dienste aus älteren Installationen zu erkennen.
- Warntexte von `gateway probe` wie `multiple reachable gateways detected` sind nur dann zu erwarten, wenn Sie absichtlich mehr als ein isoliertes Gateway ausführen.
- Warntexte von `gateway probe` wie `multiple reachable gateways detected` sind nur dann erwartbar, wenn Sie absichtlich mehr als ein isoliertes Gateway ausführen.

View File

@ -1,14 +1,14 @@
---
read_when:
- Verwendung oder Konfiguration von Chat-Befehlen
- Fehlerbehebung bei Befehlsrouting oder Berechtigungen
- Chat-Befehle verwenden oder konfigurieren
- Befehlsrouting oder Berechtigungen debuggen
summary: 'Slash-Befehle: Text vs. nativ, Konfiguration und unterstützte Befehle'
title: Slash-Befehle
x-i18n:
generated_at: "2026-04-21T13:38:03Z"
generated_at: "2026-04-21T17:45:33Z"
model: gpt-5.4
provider: openai
source_hash: d90ddee54af7c05b7fdf486590561084581d750e42cd14674d43bbdc0984df5d
source_hash: 26923608329ba2aeece2d4bc8edfa40ae86e03719a9f590f26ff79f57d97521d
source_path: tools/slash-commands.md
workflow: 15
---
@ -23,14 +23,14 @@ Es gibt zwei verwandte Systeme:
- **Befehle**: eigenständige `/...`-Nachrichten.
- **Direktiven**: `/think`, `/fast`, `/verbose`, `/trace`, `/reasoning`, `/elevated`, `/exec`, `/model`, `/queue`.
- Direktiven werden aus der Nachricht entfernt, bevor das Modell sie sieht.
- In normalen Chat-Nachrichten (nicht nur Direktiven) werden sie als „Inline-Hinweise“ behandelt und **persistieren keine** Sitzungseinstellungen.
- In Nachrichten, die nur Direktiven enthalten (die Nachricht enthält nur Direktiven), werden sie in der Sitzung persistiert und beantworten mit einer Bestätigung.
- Direktiven werden nur für **autorisierte Absender** angewendet. Wenn `commands.allowFrom` gesetzt ist, ist dies die einzige
verwendete Zulassungsliste; andernfalls stammt die Autorisierung aus Kanal-Zulassungslisten/Pairing plus `commands.useAccessGroups`.
Nicht autorisierte Absender sehen Direktiven als Klartext behandelt.
- In normalen Chat-Nachrichten (nicht nur aus Direktiven bestehend) werden sie als „Inline-Hinweise“ behandelt und **persistieren** keine Sitzungseinstellungen.
- In Nachrichten, die nur aus Direktiven bestehen (die Nachricht enthält nur Direktiven), werden sie in der Sitzung gespeichert und antworten mit einer Bestätigung.
- Direktiven werden nur für **autorisierte Absender** angewendet. Wenn `commands.allowFrom` gesetzt ist, ist dies die einzige verwendete
Allowlist; andernfalls kommt die Autorisierung aus Channel-Allowlists/Pairing plus `commands.useAccessGroups`.
Nicht autorisierte Absender sehen Direktiven als normalen Text behandelt.
Es gibt außerdem einige **Inline-Kurzbefehle** (nur für zugelassene/autorisierte Absender): `/help`, `/commands`, `/status`, `/whoami` (`/id`).
Sie werden sofort ausgeführt, werden entfernt, bevor das Modell die Nachricht sieht, und der verbleibende Text läuft durch den normalen Ablauf weiter.
Es gibt außerdem einige **Inline-Kurzbefehle** (nur für Absender auf der Allowlist/autorisierte Absender): `/help`, `/commands`, `/status`, `/whoami` (`/id`).
Sie werden sofort ausgeführt, werden entfernt, bevor das Modell die Nachricht sieht, und der verbleibende Text läuft normal weiter.
## Konfiguration
@ -59,108 +59,109 @@ Sie werden sofort ausgeführt, werden entfernt, bevor das Modell die Nachricht s
}
```
- `commands.text` (Standard `true`) aktiviert das Parsen von `/...` in Chat-Nachrichten.
- Auf Oberflächen ohne native Befehle (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) funktionieren Textbefehle weiterhin, selbst wenn Sie dies auf `false` setzen.
- `commands.native` (Standard `"auto"`) registriert native Befehle.
- `commands.text` (Standard: `true`) aktiviert das Parsen von `/...` in Chat-Nachrichten.
- Auf Oberflächen ohne native Befehle (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams) funktionieren Textbefehle weiterhin, auch wenn Sie dies auf `false` setzen.
- `commands.native` (Standard: `"auto"`) registriert native Befehle.
- Auto: an für Discord/Telegram; aus für Slack (bis Sie Slash-Befehle hinzufügen); ignoriert für Anbieter ohne native Unterstützung.
- Setzen Sie `channels.discord.commands.native`, `channels.telegram.commands.native` oder `channels.slack.commands.native`, um pro Anbieter zu überschreiben (bool oder `"auto"`).
- `false` löscht beim Start zuvor registrierte Befehle auf Discord/Telegram. Slack-Befehle werden in der Slack-App verwaltet und nicht automatisch entfernt.
- `commands.nativeSkills` (Standard `"auto"`) registriert **Skill**-Befehle nativ, wenn unterstützt.
- Setzen Sie `channels.discord.commands.native`, `channels.telegram.commands.native` oder `channels.slack.commands.native`, um dies pro Anbieter zu überschreiben (bool oder `"auto"`).
- `false` löscht zuvor registrierte Befehle auf Discord/Telegram beim Start. Slack-Befehle werden in der Slack-App verwaltet und nicht automatisch entfernt.
- `commands.nativeSkills` (Standard: `"auto"`) registriert **Skills**-Befehle nativ, wenn dies unterstützt wird.
- Auto: an für Discord/Telegram; aus für Slack (Slack erfordert das Anlegen eines Slash-Befehls pro Skill).
- Setzen Sie `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` oder `channels.slack.commands.nativeSkills`, um pro Anbieter zu überschreiben (bool oder `"auto"`).
- `commands.bash` (Standard `false`) aktiviert `! <cmd>` zum Ausführen von Host-Shell-Befehlen (`/bash <cmd>` ist ein Alias; erfordert `tools.elevated`-Zulassungslisten).
- `commands.bashForegroundMs` (Standard `2000`) steuert, wie lange Bash wartet, bevor in den Hintergrundmodus gewechselt wird (`0` schickt sofort in den Hintergrund).
- `commands.config` (Standard `false`) aktiviert `/config` (liest/schreibt `openclaw.json`).
- `commands.mcp` (Standard `false`) aktiviert `/mcp` (liest/schreibt die von OpenClaw verwaltete MCP-Konfiguration unter `mcp.servers`).
- `commands.plugins` (Standard `false`) aktiviert `/plugins` (Plugin-Erkennung/Status plus Installations- und Aktivierungs-/Deaktivierungssteuerung).
- `commands.debug` (Standard `false`) aktiviert `/debug` (nur Laufzeit-Überschreibungen).
- `commands.restart` (Standard `true`) aktiviert `/restart` plus Gateway-Neustart-Tool-Aktionen.
- `commands.ownerAllowFrom` (optional) setzt die explizite Zulassungsliste der Eigentümer für nur-Eigentümer-Befehls-/Tool-Oberflächen. Dies ist getrennt von `commands.allowFrom`.
- `commands.ownerDisplay` steuert, wie Eigentümer-IDs im System-Prompt erscheinen: `raw` oder `hash`.
- Setzen Sie `channels.discord.commands.nativeSkills`, `channels.telegram.commands.nativeSkills` oder `channels.slack.commands.nativeSkills`, um dies pro Anbieter zu überschreiben (bool oder `"auto"`).
- `commands.bash` (Standard: `false`) aktiviert `! <cmd>`, um Host-Shell-Befehle auszuführen (`/bash <cmd>` ist ein Alias; erfordert `tools.elevated`-Allowlists).
- `commands.bashForegroundMs` (Standard: `2000`) steuert, wie lange Bash wartet, bevor in den Hintergrundmodus gewechselt wird (`0` legt sofort in den Hintergrund).
- `commands.config` (Standard: `false`) aktiviert `/config` (liest/schreibt `openclaw.json`).
- `commands.mcp` (Standard: `false`) aktiviert `/mcp` (liest/schreibt von OpenClaw verwaltete MCP-Konfiguration unter `mcp.servers`).
- `commands.plugins` (Standard: `false`) aktiviert `/plugins` (Plugin-Erkennung/-Status sowie Installation und Aktivieren/Deaktivieren).
- `commands.debug` (Standard: `false`) aktiviert `/debug` (nur Laufzeit-Overrides).
- `commands.restart` (Standard: `true`) aktiviert `/restart` sowie Gateway-Neustart-Tool-Aktionen.
- `commands.ownerAllowFrom` (optional) setzt die explizite Owner-Allowlist für nur für Owner verfügbare Befehls-/Tool-Oberflächen. Dies ist getrennt von `commands.allowFrom`.
- `commands.ownerDisplay` steuert, wie Owner-IDs im System-Prompt erscheinen: `raw` oder `hash`.
- `commands.ownerDisplaySecret` setzt optional das HMAC-Secret, das verwendet wird, wenn `commands.ownerDisplay="hash"` gesetzt ist.
- `commands.allowFrom` (optional) setzt eine anbieterbezogene Zulassungsliste für die Befehlsautorisierung. Wenn konfiguriert, ist sie die
einzige Autorisierungsquelle für Befehle und Direktiven (Kanal-Zulassungslisten/Pairing und `commands.useAccessGroups`
werden ignoriert). Verwenden Sie `"*"` für einen globalen Standard; anbieterbezogene Schlüssel überschreiben ihn.
- `commands.useAccessGroups` (Standard `true`) erzwingt Zulassungslisten/Richtlinien für Befehle, wenn `commands.allowFrom` nicht gesetzt ist.
- `commands.allowFrom` (optional) setzt eine anbieterspezifische Allowlist für die Befehlsautorisierung. Wenn konfiguriert, ist sie die
einzige Autorisierungsquelle für Befehle und Direktiven (`commands.useAccessGroups`
sowie Channel-Allowlists/Pairing werden ignoriert). Verwenden Sie `"*"` für einen globalen Standard; anbieterspezifische Schlüssel überschreiben ihn.
- `commands.useAccessGroups` (Standard: `true`) erzwingt Allowlists/Richtlinien für Befehle, wenn `commands.allowFrom` nicht gesetzt ist.
## Befehlsliste
Aktuelle Single Source of Truth:
Aktuelle Source of Truth:
- Kern-Integrationen stammen aus `src/auto-reply/commands-registry.shared.ts`
- generierte Dock-Befehle stammen aus `src/auto-reply/commands-registry.data.ts`
- Plugin-Befehle stammen aus Plugin-Aufrufen von `registerCommand()`
- die tatsächliche Verfügbarkeit auf Ihrem Gateway hängt weiterhin von Konfigurationsflags, Kanaloberfläche und installierten/aktivierten Plugins ab
- integrierte Kernbefehle kommen aus `src/auto-reply/commands-registry.shared.ts`
- generierte Dock-Befehle kommen aus `src/auto-reply/commands-registry.data.ts`
- Plugin-Befehle kommen aus Plugin-`registerCommand()`-Aufrufen
- die tatsächliche Verfügbarkeit auf Ihrem Gateway hängt weiterhin von Konfigurations-Flags, der Channel-Oberfläche und installierten/aktivierten Plugins ab
### Integrierte Kernbefehle
Heute verfügbare integrierte Befehle:
- `/new [model]` startet eine neue Sitzung; `/reset` ist der Alias zum Zurücksetzen.
- `/compact [instructions]` komprimiert den Sitzungskontext. Siehe [/concepts/compaction](/de/concepts/compaction).
- `/stop` bricht die aktuelle Ausführung ab.
- `/session idle <duration|off>` und `/session max-age <duration|off>` verwalten das Ablaufen der Thread-Bindung.
- `/think <level>` setzt die Thinking-Stufe. Die Optionen stammen aus dem Anbieterprofil des aktiven Modells; gängige Stufen sind `off`, `minimal`, `low`, `medium` und `high`, mit benutzerdefinierten Stufen wie `xhigh`, `adaptive`, `max` oder binärem `on` nur dort, wo unterstützt. Aliasse: `/thinking`, `/t`.
- `/reset soft [message]` behält das aktuelle Transkript, verwirft wiederverwendete CLI-Backend-Sitzungs-IDs und führt das Laden von Start-/System-Prompts direkt erneut aus.
- `/compact [instructions]` kompaktiert den Sitzungskontext. Siehe [/concepts/compaction](/de/concepts/compaction).
- `/stop` bricht den aktuellen Lauf ab.
- `/session idle <duration|off>` und `/session max-age <duration|off>` verwalten den Ablauf der Thread-Bindung.
- `/think <level>` setzt das Denk-Level. Die Optionen stammen aus dem Anbieterprofil des aktiven Modells; gängige Level sind `off`, `minimal`, `low`, `medium` und `high`, mit benutzerdefinierten Leveln wie `xhigh`, `adaptive`, `max` oder binärem `on` nur dort, wo unterstützt. Aliase: `/thinking`, `/t`.
- `/verbose on|off|full` schaltet ausführliche Ausgabe um. Alias: `/v`.
- `/trace on|off` schaltet Plugin-Trace-Ausgabe für die aktuelle Sitzung um.
- `/fast [status|on|off]` zeigt den Fast-Modus an oder setzt ihn.
- `/fast [status|on|off]` zeigt den Schnellmodus an oder setzt ihn.
- `/reasoning [on|off|stream]` schaltet die Sichtbarkeit von Reasoning um. Alias: `/reason`.
- `/elevated [on|off|ask|full]` schaltet den Elevated-Modus um. Alias: `/elev`.
- `/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` zeigt die Exec-Standards an oder setzt sie.
- `/elevated [on|off|ask|full]` schaltet den erhöhten Modus um. Alias: `/elev`.
- `/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>` zeigt Standardwerte für Ausführung an oder setzt sie.
- `/model [name|#|status]` zeigt das Modell an oder setzt es.
- `/models [provider] [page] [limit=<n>|size=<n>|all]` listet Anbieter oder Modelle für einen Anbieter auf.
- `/queue <mode>` verwaltet Queue-Verhalten (`steer`, `interrupt`, `followup`, `collect`, `steer-backlog`) plus Optionen wie `debounce:2s cap:25 drop:summarize`.
- `/queue <mode>` verwaltet das Queue-Verhalten (`steer`, `interrupt`, `followup`, `collect`, `steer-backlog`) sowie Optionen wie `debounce:2s cap:25 drop:summarize`.
- `/help` zeigt die kurze Hilfezusammenfassung an.
- `/commands` zeigt den generierten Befehlskatalog an.
- `/tools [compact|verbose]` zeigt an, was der aktuelle Agent gerade verwenden kann.
- `/status` zeigt den Laufzeitstatus an, einschließlich Anbieternutzung/Kontingent, falls verfügbar.
- `/tools [compact|verbose]` zeigt, was der aktuelle Agent gerade verwenden kann.
- `/status` zeigt den Laufzeitstatus an, einschließlich Anbieternutzung/-quota, wenn verfügbar.
- `/tasks` listet aktive/aktuelle Hintergrundaufgaben für die aktuelle Sitzung auf.
- `/context [list|detail|json]` erklärt, wie Kontext zusammengestellt wird.
- `/context [list|detail|json]` erklärt, wie der Kontext zusammengestellt wird.
- `/export-session [path]` exportiert die aktuelle Sitzung nach HTML. Alias: `/export`.
- `/whoami` zeigt Ihre Absender-ID an. Alias: `/id`.
- `/whoami` zeigt Ihre Absender-ID. Alias: `/id`.
- `/skill <name> [input]` führt einen Skill nach Namen aus.
- `/allowlist [list|add|remove] ...` verwaltet Einträge in der Zulassungsliste. Nur Text.
- `/approve <id> <decision>` bearbeitet Exec-Genehmigungsabfragen.
- `/btw <question>` stellt eine Nebenfrage, ohne den künftigen Sitzungskontext zu ändern. Siehe [/tools/btw](/de/tools/btw).
- `/subagents list|kill|log|info|send|steer|spawn` verwaltet Sub-Agent-Ausführungen für die aktuelle Sitzung.
- `/allowlist [list|add|remove] ...` verwaltet Allowlist-Einträge. Nur Text.
- `/approve <id> <decision>` verarbeitet Genehmigungsaufforderungen für `exec`.
- `/btw <question>` stellt eine Nebenfrage, ohne den zukünftigen Sitzungskontext zu ändern. Siehe [/tools/btw](/de/tools/btw).
- `/subagents list|kill|log|info|send|steer|spawn` verwaltet Sub-Agent-Läufe für die aktuelle Sitzung.
- `/acp spawn|cancel|steer|close|sessions|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|help` verwaltet ACP-Sitzungen und Laufzeitoptionen.
- `/focus <target>` bindet den aktuellen Discord-Thread oder das aktuelle Telegram-Thema/Gespräch an ein Sitzungsziel.
- `/focus <target>` bindet den aktuellen Discord-Thread oder das aktuelle Telegram-Thema/die aktuelle Unterhaltung an ein Sitzungsziel.
- `/unfocus` entfernt die aktuelle Bindung.
- `/agents` listet threadgebundene Agenten für die aktuelle Sitzung auf.
- `/kill <id|#|all>` bricht einen oder alle laufenden Sub-Agenten ab.
- `/steer <id|#> <message>` sendet Steuerung an einen laufenden Sub-Agenten. Alias: `/tell`.
- `/config show|get|set|unset` liest oder schreibt `openclaw.json`. Nur Eigentümer. Erfordert `commands.config: true`.
- `/mcp show|get|set|unset` liest oder schreibt von OpenClaw verwaltete MCP-Server-Konfiguration unter `mcp.servers`. Nur Eigentümer. Erfordert `commands.mcp: true`.
- `/plugins list|inspect|show|get|install|enable|disable` untersucht oder ändert den Plugin-Status. `/plugin` ist ein Alias. Schreibvorgänge nur für Eigentümer. Erfordert `commands.plugins: true`.
- `/debug show|set|unset|reset` verwaltet nur zur Laufzeit geltende Konfigurationsüberschreibungen. Nur Eigentümer. Erfordert `commands.debug: true`.
- `/agents` listet threadgebundene Agents für die aktuelle Sitzung auf.
- `/kill <id|#|all>` bricht einen oder alle laufenden Sub-Agents ab.
- `/steer <id|#> <message>` sendet Steuerung an einen laufenden Sub-Agent. Alias: `/tell`.
- `/config show|get|set|unset` liest oder schreibt `openclaw.json`. Nur für Owner. Erfordert `commands.config: true`.
- `/mcp show|get|set|unset` liest oder schreibt von OpenClaw verwaltete MCP-Server-Konfiguration unter `mcp.servers`. Nur für Owner. Erfordert `commands.mcp: true`.
- `/plugins list|inspect|show|get|install|enable|disable` prüft Plugin-Status oder ändert ihn. `/plugin` ist ein Alias. Schreibzugriffe nur für Owner. Erfordert `commands.plugins: true`.
- `/debug show|set|unset|reset` verwaltet nur zur Laufzeit geltende Konfigurations-Overrides. Nur für Owner. Erfordert `commands.debug: true`.
- `/usage off|tokens|full|cost` steuert die Nutzungsfußzeile pro Antwort oder gibt eine lokale Kostenzusammenfassung aus.
- `/tts on|off|status|provider|limit|summary|audio|help` steuert TTS. Siehe [/tools/tts](/de/tools/tts).
- `/restart` startet OpenClaw neu, wenn aktiviert. Standard: aktiviert; setzen Sie `commands.restart: false`, um es zu deaktivieren.
- `/restart` startet OpenClaw neu, wenn aktiviert. Standard: aktiviert; setzen Sie `commands.restart: false`, um ihn zu deaktivieren.
- `/activation mention|always` setzt den Gruppenaktivierungsmodus.
- `/send on|off|inherit` setzt die Senderichtlinie. Nur Eigentümer.
- `/bash <command>` führt einen Host-Shell-Befehl aus. Nur Text. Alias: `! <command>`. Erfordert `commands.bash: true` plus `tools.elevated`-Zulassungslisten.
- `/send on|off|inherit` setzt die Send-Richtlinie. Nur für Owner.
- `/bash <command>` führt einen Host-Shell-Befehl aus. Nur Text. Alias: `! <command>`. Erfordert `commands.bash: true` plus `tools.elevated`-Allowlists.
- `!poll [sessionId]` prüft einen Bash-Hintergrundjob.
- `!stop [sessionId]` stoppt einen Bash-Hintergrundjob.
### Generierte Dock-Befehle
Dock-Befehle werden aus Kanal-Plugins mit Unterstützung für native Befehle generiert. Aktueller gebündelter Satz:
Dock-Befehle werden aus Channel-Plugins mit Unterstützung für native Befehle generiert. Aktueller gebündelter Satz:
- `/dock-discord` (Alias: `/dock_discord`)
- `/dock-mattermost` (Alias: `/dock_mattermost`)
- `/dock-slack` (Alias: `/dock_slack`)
- `/dock-telegram` (Alias: `/dock_telegram`)
### Gebündelte Plugin-Befehle
### Befehle gebündelter Plugins
Gebündelte Plugins können weitere Slash-Befehle hinzufügen. Aktuelle gebündelte Befehle in diesem Repository:
Gebündelte Plugins können weitere Slash-Befehle hinzufügen. Aktuelle gebündelte Befehle in diesem Repo:
- `/dreaming [on|off|status|help]` schaltet Memory Dreaming um. Siehe [Dreaming](/de/concepts/dreaming).
- `/pair [qr|status|pending|approve|cleanup|notify]` verwaltet den Ablauf für Geräte-Pairing/-Einrichtung. Siehe [Pairing](/de/channels/pairing).
- `/phone status|arm <camera|screen|writes|all> [duration]|disarm` aktiviert vorübergehend Hochrisiko-Befehle des Phone-Node.
- `/voice status|list [limit]|set <voiceId|name>` verwaltet die Talk-Sprachkonfiguration. Auf Discord ist der native Befehlsname `/talkvoice`.
- `/pair [qr|status|pending|approve|cleanup|notify]` verwaltet den Geräte-Pairing-/Einrichtungsablauf. Siehe [Pairing](/de/channels/pairing).
- `/phone status|arm <camera|screen|writes|all> [duration]|disarm` aktiviert vorübergehend risikoreiche Phone-Node-Befehle.
- `/voice status|list [limit]|set <voiceId|name>` verwaltet die Talk-Sprachkonfiguration. Auf Discord lautet der Name des nativen Befehls `/talkvoice`.
- `/card ...` sendet LINE-Rich-Card-Voreinstellungen. Siehe [LINE](/de/channels/line).
- `/codex status|models|threads|resume|compact|review|account|mcp|skills` untersucht und steuert den gebündelten Codex-App-Server-Harness. Siehe [Codex Harness](/de/plugins/codex-harness).
- `/codex status|models|threads|resume|compact|review|account|mcp|skills` prüft und steuert das gebündelte Codex-App-Server-Harness. Siehe [Codex Harness](/de/plugins/codex-harness).
- Nur QQBot-Befehle:
- `/bot-ping`
- `/bot-version`
@ -170,70 +171,70 @@ Gebündelte Plugins können weitere Slash-Befehle hinzufügen. Aktuelle gebünde
### Dynamische Skill-Befehle
Vom Benutzer aufrufbare Skills werden auch als Slash-Befehle bereitgestellt:
Von Nutzern aufrufbare Skills werden ebenfalls als Slash-Befehle bereitgestellt:
- `/skill <name> [input]` funktioniert immer als generischer Einstiegspunkt.
- Skills können auch als direkte Befehle wie `/prose` erscheinen, wenn der Skill/das Plugin sie registriert.
- Die Registrierung nativer Skill-Befehle wird über `commands.nativeSkills` und `channels.<provider>.commands.nativeSkills` gesteuert.
- Die Registrierung nativer Skill-Befehle wird durch `commands.nativeSkills` und `channels.<provider>.commands.nativeSkills` gesteuert.
Hinweise:
- Befehle akzeptieren optional ein `:` zwischen Befehl und Argumenten (z. B. `/think: high`, `/send: on`, `/help:`).
- `/new <model>` akzeptiert einen Modellalias, `provider/model` oder einen Anbieternamen (unscharfer Abgleich); wenn es keine Übereinstimmung gibt, wird der Text als Nachrichtentext behandelt.
- Befehle akzeptieren optional ein `:` zwischen dem Befehl und den Argumenten (z. B. `/think: high`, `/send: on`, `/help:`).
- `/new <model>` akzeptiert einen Modellalias, `provider/model` oder einen Anbieternamen (fuzzy match); wenn es keine Übereinstimmung gibt, wird der Text als Nachrichtentext behandelt.
- Für die vollständige Aufschlüsselung der Anbieternutzung verwenden Sie `openclaw status --usage`.
- `/allowlist add|remove` erfordert `commands.config=true` und beachtet kanalbezogene `configWrites`.
- In Kanälen mit mehreren Konten beachten konfigurationsbezogenes `/allowlist --account <id>` und `/config set channels.<provider>.accounts.<id>...` auch `configWrites` des Zielkontos.
- `/allowlist add|remove` erfordert `commands.config=true` und beachtet Channel-`configWrites`.
- In Channels mit mehreren Konten beachten das auf Konfiguration zielende `/allowlist --account <id>` und `/config set channels.<provider>.accounts.<id>...` auch die `configWrites` des Zielkontos.
- `/usage` steuert die Nutzungsfußzeile pro Antwort; `/usage cost` gibt eine lokale Kostenzusammenfassung aus OpenClaw-Sitzungsprotokollen aus.
- `/restart` ist standardmäßig aktiviert; setzen Sie `commands.restart: false`, um es zu deaktivieren.
- `/plugins install <spec>` akzeptiert dieselben Plugin-Spezifikationen wie `openclaw plugins install`: lokaler Pfad/Archiv, npm-Paket oder `clawhub:<pkg>`.
- `/plugins enable|disable` aktualisiert die Plugin-Konfiguration und kann zu einem Neustart auffordern.
- `/plugins enable|disable` aktualisiert die Plugin-Konfiguration und fordert möglicherweise zu einem Neustart auf.
- Nur auf Discord verfügbarer nativer Befehl: `/vc join|leave|status` steuert Sprachkanäle (erfordert `channels.discord.voice` und native Befehle; nicht als Text verfügbar).
- Discord-Befehle zur Thread-Bindung (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) erfordern, dass effektive Thread-Bindungen aktiviert sind (`session.threadBindings.enabled` und/oder `channels.discord.threadBindings.enabled`).
- Discord-Thread-Bindungsbefehle (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) erfordern, dass effektive Thread-Bindungen aktiviert sind (`session.threadBindings.enabled` und/oder `channels.discord.threadBindings.enabled`).
- ACP-Befehlsreferenz und Laufzeitverhalten: [ACP Agents](/de/tools/acp-agents).
- `/verbose` ist für Debugging und zusätzliche Sichtbarkeit gedacht; lassen Sie es im normalen Gebrauch **aus**.
- `/trace` ist enger gefasst als `/verbose`: Es zeigt nur plugin-eigene Trace-/Debug-Zeilen an und lässt normales ausführliches Tool-Logging ausgeschaltet.
- `/fast on|off` persistiert eine Sitzungsüberschreibung. Verwenden Sie in der Sitzungs-UI die Option `inherit`, um sie zu löschen und auf Konfigurationsstandards zurückzufallen.
- `/fast` ist anbieterspezifisch: OpenAI/OpenAI Codex ordnen es auf nativen Responses-Endpunkten `service_tier=priority` zu, während direkte öffentliche Anthropic-Anfragen, einschließlich an `api.anthropic.com` gesendetem OAuth-authentifiziertem Datenverkehr, es `service_tier=auto` oder `standard_only` zuordnen. Siehe [OpenAI](/de/providers/openai) und [Anthropic](/de/providers/anthropic).
- Zusammenfassungen von Tool-Fehlern werden weiterhin angezeigt, wenn relevant, aber detaillierter Fehlertext wird nur eingeschlossen, wenn `/verbose` `on` oder `full` ist.
- `/reasoning`, `/verbose` und `/trace` sind in Gruppensettings riskant: Sie können internes Reasoning, Tool-Ausgaben oder Plugin-Diagnosen offenlegen, die Sie nicht beabsichtigt hatten. Lassen Sie sie bevorzugt deaktiviert, insbesondere in Gruppenchats.
- `/model` persistiert das neue Sitzungsmodell sofort.
- Wenn der Agent untätig ist, verwendet die nächste Ausführung es sofort.
- Wenn bereits eine Ausführung aktiv ist, markiert OpenClaw einen Live-Wechsel als ausstehend und startet erst an einem sauberen Wiederholungspunkt in das neue Modell neu.
- Wenn Tool-Aktivität oder Antwortausgabe bereits begonnen hat, kann der ausstehende Wechsel bis zu einer späteren Wiederholungsmöglichkeit oder dem nächsten Benutzerzug in der Warteschlange bleiben.
- **Schnellpfad:** Nur-Befehl-Nachrichten von zugelassenen Absendern werden sofort verarbeitet (umgehen Queue + Modell).
- **Gruppen-Erwähnungs-Gating:** Nur-Befehl-Nachrichten von zugelassenen Absendern umgehen Erwähnungsanforderungen.
- **Inline-Kurzbefehle (nur für zugelassene Absender):** Bestimmte Befehle funktionieren auch, wenn sie in eine normale Nachricht eingebettet sind, und werden entfernt, bevor das Modell den verbleibenden Text sieht.
- Beispiel: `hey /status` löst eine Statusantwort aus, und der verbleibende Text läuft durch den normalen Ablauf weiter.
- `/trace` ist enger gefasst als `/verbose`: Es zeigt nur Plugin-eigene Trace-/Debug-Zeilen und lässt normale ausführliche Tool-Ausgaben deaktiviert.
- `/fast on|off` speichert ein Sitzungs-Override. Verwenden Sie in der Sitzungs-UI die Option `inherit`, um es zu löschen und auf die Standardwerte aus der Konfiguration zurückzufallen.
- `/fast` ist anbieterspezifisch: OpenAI/OpenAI Codex ordnen es auf nativen Responses-Endpunkten `service_tier=priority` zu, während direkte öffentliche Anthropic-Anfragen, einschließlich OAuth-authentifiziertem Datenverkehr an `api.anthropic.com`, es `service_tier=auto` oder `standard_only` zuordnen. Siehe [OpenAI](/de/providers/openai) und [Anthropic](/de/providers/anthropic).
- Zusammenfassungen von Tool-Fehlern werden weiterhin angezeigt, wenn relevant, aber detaillierter Fehlertext wird nur aufgenommen, wenn `/verbose` auf `on` oder `full` steht.
- `/reasoning`, `/verbose` und `/trace` sind in Gruppeneinstellungen riskant: Sie können internes Reasoning, Tool-Ausgaben oder Plugin-Diagnosen offenlegen, die Sie nicht beabsichtigt hatten preiszugeben. Lassen Sie sie vorzugsweise deaktiviert, besonders in Gruppenchats.
- `/model` speichert das neue Sitzungsmodell sofort.
- Wenn der Agent inaktiv ist, verwendet der nächste Lauf es sofort.
- Wenn bereits ein Lauf aktiv ist, markiert OpenClaw einen Live-Wechsel als ausstehend und startet erst an einem sauberen Wiederholungszeitpunkt mit dem neuen Modell neu.
- Wenn Tool-Aktivität oder Antwortausgabe bereits begonnen hat, kann der ausstehende Wechsel bis zu einer späteren Wiederholungsmöglichkeit oder bis zur nächsten Nutzerinteraktion in der Warteschlange bleiben.
- **Schnellpfad:** Nur-Befehl-Nachrichten von Absendern auf der Allowlist werden sofort verarbeitet (umgehen Queue + Modell).
- **Gruppen-Erwähnungs-Gating:** Nur-Befehl-Nachrichten von Absendern auf der Allowlist umgehen Erwähnungsanforderungen.
- **Inline-Kurzbefehle (nur für Absender auf der Allowlist):** Bestimmte Befehle funktionieren auch, wenn sie in eine normale Nachricht eingebettet sind, und werden entfernt, bevor das Modell den verbleibenden Text sieht.
- Beispiel: `hey /status` löst eine Statusantwort aus, und der verbleibende Text läuft normal weiter.
- Aktuell: `/help`, `/commands`, `/status`, `/whoami` (`/id`).
- Nicht autorisierte Nur-Befehl-Nachrichten werden stillschweigend ignoriert, und Inline-`/...`-Token werden als Klartext behandelt.
- **Skill-Befehle:** `user-invocable`-Skills werden als Slash-Befehle bereitgestellt. Namen werden auf `a-z0-9_` bereinigt (maximal 32 Zeichen); bei Kollisionen werden numerische Suffixe angehängt (z. B. `_2`).
- `/skill <name> [input]` führt einen Skill nach Namen aus (nützlich, wenn native Befehlsgrenzen Befehle pro Skill verhindern).
- Nicht autorisierte Nur-Befehl-Nachrichten werden stillschweigend ignoriert, und Inline-`/...`-Token werden als normaler Text behandelt.
- **Skill-Befehle:** `user-invocable` Skills werden als Slash-Befehle bereitgestellt. Namen werden zu `a-z0-9_` bereinigt (max. 32 Zeichen); bei Kollisionen werden numerische Suffixe angehängt (z. B. `_2`).
- `/skill <name> [input]` führt einen Skill nach Namen aus (nützlich, wenn native Befehlslimits Befehle pro Skill verhindern).
- Standardmäßig werden Skill-Befehle als normale Anfrage an das Modell weitergeleitet.
- Skills können optional `command-dispatch: tool` deklarieren, um den Befehl direkt an ein Tool zu routen (deterministisch, ohne Modell).
- Skills können optional `command-dispatch: tool` deklarieren, um den Befehl direkt an ein Tool zu routen (deterministisch, kein Modell).
- Beispiel: `/prose` (OpenProse-Plugin) — siehe [OpenProse](/de/prose).
- **Argumente nativer Befehle:** Discord verwendet Autovervollständigung für dynamische Optionen (und Button-Menüs, wenn Sie erforderliche Argumente weglassen). Telegram und Slack zeigen ein Button-Menü an, wenn ein Befehl Auswahlmöglichkeiten unterstützt und Sie das Argument weglassen.
- **Argumente nativer Befehle:** Discord verwendet Autovervollständigung für dynamische Optionen (und Schaltflächenmenüs, wenn Sie erforderliche Argumente weglassen). Telegram und Slack zeigen ein Schaltflächenmenü an, wenn ein Befehl Auswahlmöglichkeiten unterstützt und Sie das Argument weglassen.
## `/tools`
`/tools` beantwortet eine Laufzeitfrage, keine Konfigurationsfrage: **was dieser Agent jetzt gerade in
diesem Gespräch verwenden kann**.
dieser Unterhaltung verwenden kann**.
- Standard-`/tools` ist kompakt und für schnelles Überfliegen optimiert.
- Das Standard-`/tools` ist kompakt und für schnelles Überfliegen optimiert.
- `/tools verbose` fügt kurze Beschreibungen hinzu.
- Oberflächen mit nativen Befehlen, die Argumente unterstützen, bieten denselben Moduswechsel als `compact|verbose`.
- Ergebnisse sind sitzungsbezogen, daher kann das Ändern von Agent, Kanal, Thread, Absenderautorisierung oder Modell
die Ausgabe ändern.
- Ergebnisse sind sitzungsbezogen, daher können Änderungen an Agent, Channel, Thread, Absenderautorisierung oder Modell
die Ausgabe verändern.
- `/tools` enthält Tools, die zur Laufzeit tatsächlich erreichbar sind, einschließlich Kern-Tools, verbundener
Plugin-Tools und kanalbezogener Tools.
Plugin-Tools und Channel-eigener Tools.
Für das Bearbeiten von Profilen und Überschreibungen verwenden Sie das Tools-Panel der Control-UI oder Konfigurations-/Katalogoberflächen, statt
`/tools` als statischen Katalog zu behandeln.
Für die Bearbeitung von Profilen und Overrides verwenden Sie das Tools-Panel der Control-UI oder Konfigurations-/Katalogoberflächen,
anstatt `/tools` als statischen Katalog zu behandeln.
## Nutzungsoberflächen (was wo angezeigt wird)
- **Anbieternutzung/Kontingent** (Beispiel: „Claude 80% left“) erscheint in `/status` für den aktuellen Modellanbieter, wenn Nutzungsverfolgung aktiviert ist. OpenClaw normalisiert Anbieterfenster zu `% left`; bei MiniMax werden verbleibend-only-Prozentfelder vor der Anzeige invertiert, und Antworten mit `model_remains` bevorzugen den Chat-Modelleintrag plus ein modellmarkiertes Plan-Label.
- **Token-/Cache-Zeilen** in `/status` können auf den neuesten Nutzungseintrag im Transkript zurückfallen, wenn der Live-Sitzungs-Snapshot spärlich ist. Vorhandene von null verschiedene Live-Werte haben weiterhin Vorrang, und der Transkript-Fallback kann auch das aktive Laufzeitmodell-Label plus eine größere promptorientierte Gesamtsumme wiederherstellen, wenn gespeicherte Summen fehlen oder kleiner sind.
- **Tokens/Kosten pro Antwort** werden über `/usage off|tokens|full` gesteuert (an normale Antworten angehängt).
- **Anbieternutzung/-quota** (Beispiel: „Claude 80 % übrig“) wird in `/status` für den aktuellen Modellanbieter angezeigt, wenn Nutzungsverfolgung aktiviert ist. OpenClaw normalisiert Anbieterfenster auf `% übrig`; bei MiniMax werden Prozentfelder mit nur Restwert vor der Anzeige invertiert, und `model_remains`-Antworten bevorzugen den Chat-Modell-Eintrag plus ein planbezogenes Label mit Modell-Tag.
- **Token-/Cache-Zeilen** in `/status` können auf den neuesten Nutzungeintrag im Transkript zurückfallen, wenn der Live-Sitzungs-Snapshot lückenhaft ist. Vorhandene von null verschiedene Live-Werte haben weiterhin Vorrang, und der Transkript-Fallback kann auch das aktive Laufzeitmodell-Label sowie einen größeren promptorientierten Gesamtwert wiederherstellen, wenn gespeicherte Summen fehlen oder kleiner sind.
- **Token/Kosten pro Antwort** wird durch `/usage off|tokens|full` gesteuert (an normale Antworten angehängt).
- `/model status` betrifft **Modelle/Auth/Endpunkte**, nicht die Nutzung.
## Modellauswahl (`/model`)
@ -253,14 +254,14 @@ Beispiele:
Hinweise:
- `/model` und `/model list` zeigen eine kompakte, nummerierte Auswahl an (Modellfamilie + verfügbare Anbieter).
- Auf Discord öffnen `/model` und `/models` eine interaktive Auswahl mit Dropdowns für Anbieter und Modell plus einem Submit-Schritt.
- `/model <#>` wählt aus dieser Auswahl aus (und bevorzugt wenn möglich den aktuellen Anbieter).
- `/model status` zeigt die Detailansicht an, einschließlich konfiguriertem Anbieter-Endpunkt (`baseUrl`) und API-Modus (`api`), sofern verfügbar.
- `/model` und `/model list` zeigen eine kompakte nummerierte Auswahl (Modellfamilie + verfügbare Anbieter).
- Auf Discord öffnen `/model` und `/models` eine interaktive Auswahl mit Dropdowns für Anbieter und Modell sowie einem Schritt zum Absenden.
- `/model <#>` wählt aus dieser Auswahl aus (und bevorzugt nach Möglichkeit den aktuellen Anbieter).
- `/model status` zeigt die Detailansicht an, einschließlich konfiguriertem Anbieter-Endpunkt (`baseUrl`) und API-Modus (`api`), wenn verfügbar.
## Debug-Überschreibungen
## Debug-Overrides
`/debug` ermöglicht das Setzen von **nur zur Laufzeit gültigen** Konfigurationsüberschreibungen (Arbeitsspeicher, nicht Festplatte). Nur Eigentümer. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.debug: true`.
`/debug` ermöglicht es Ihnen, **nur zur Laufzeit geltende** Konfigurations-Overrides zu setzen (im Speicher, nicht auf Datenträger). Nur für Owner. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.debug: true`.
Beispiele:
@ -274,12 +275,12 @@ Beispiele:
Hinweise:
- Überschreibungen gelten sofort für neue Konfigurationslesevorgänge, schreiben aber **nicht** in `openclaw.json`.
- Verwenden Sie `/debug reset`, um alle Überschreibungen zu löschen und zur Konfiguration auf Datenträger zurückzukehren.
- Overrides werden sofort auf neue Konfigurationslesevorgänge angewendet, schreiben jedoch **nicht** in `openclaw.json`.
- Verwenden Sie `/debug reset`, um alle Overrides zu löschen und zur Konfiguration auf Datenträger zurückzukehren.
## Plugin-Trace-Ausgabe
`/trace` ermöglicht das Umschalten **sitzungsbezogener pluginbezogener Trace-/Debug-Zeilen**, ohne den vollständigen ausführlichen Modus einzuschalten.
`/trace` erlaubt es Ihnen, **sitzungsbezogene Plugin-Trace-/Debug-Zeilen** umzuschalten, ohne den vollständigen ausführlichen Modus zu aktivieren.
Beispiele:
@ -294,13 +295,13 @@ Hinweise:
- `/trace` ohne Argument zeigt den aktuellen Trace-Status der Sitzung an.
- `/trace on` aktiviert Plugin-Trace-Zeilen für die aktuelle Sitzung.
- `/trace off` deaktiviert sie wieder.
- Plugin-Trace-Zeilen können in `/status` und als diagnostische Folgemeldung nach der normalen Assistentenantwort erscheinen.
- `/trace` ersetzt `/debug` nicht; `/debug` verwaltet weiterhin nur zur Laufzeit gültige Konfigurationsüberschreibungen.
- `/trace` ersetzt `/verbose` nicht; normale ausführliche Tool-/Statusausgabe gehört weiterhin zu `/verbose`.
- Plugin-Trace-Zeilen können in `/status` und als nachfolgende Diagnosenachricht nach der normalen Assistentenantwort erscheinen.
- `/trace` ersetzt nicht `/debug`; `/debug` verwaltet weiterhin nur zur Laufzeit geltende Konfigurations-Overrides.
- `/trace` ersetzt nicht `/verbose`; normale ausführliche Tool-/Statusausgabe gehört weiterhin zu `/verbose`.
## Konfigurationsaktualisierungen
`/config` schreibt in Ihre Konfiguration auf Datenträger (`openclaw.json`). Nur Eigentümer. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.config: true`.
`/config` schreibt in Ihre Konfiguration auf Datenträger (`openclaw.json`). Nur für Owner. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.config: true`.
Beispiele:
@ -315,11 +316,11 @@ Beispiele:
Hinweise:
- Die Konfiguration wird vor dem Schreiben validiert; ungültige Änderungen werden abgelehnt.
- Aktualisierungen durch `/config` bleiben über Neustarts hinweg erhalten.
- `/config`-Aktualisierungen bleiben über Neustarts hinweg erhalten.
## MCP-Aktualisierungen
`/mcp` schreibt von OpenClaw verwaltete MCP-Serverdefinitionen unter `mcp.servers`. Nur Eigentümer. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.mcp: true`.
`/mcp` schreibt von OpenClaw verwaltete MCP-Serverdefinitionen unter `mcp.servers`. Nur für Owner. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.mcp: true`.
Beispiele:
@ -332,12 +333,12 @@ Beispiele:
Hinweise:
- `/mcp` speichert Konfiguration in der OpenClaw-Konfiguration, nicht in Pi-eigenen Projekteinstellungen.
- `/mcp` speichert die Konfiguration in der OpenClaw-Konfiguration, nicht in Pi-eigenen Projekteinstellungen.
- Laufzeitadapter entscheiden, welche Transporte tatsächlich ausführbar sind.
## Plugin-Aktualisierungen
`/plugins` ermöglicht es Operatoren, erkannte Plugins zu prüfen und die Aktivierung in der Konfiguration umzuschalten. Nur-Lese-Abläufe können `/plugin` als Alias verwenden. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.plugins: true`.
`/plugins` ermöglicht es Betreibern, erkannte Plugins zu prüfen und deren Aktivierung in der Konfiguration umzuschalten. Schreibgeschützte Abläufe können `/plugin` als Alias verwenden. Standardmäßig deaktiviert; aktivieren Sie es mit `commands.plugins: true`.
Beispiele:
@ -351,34 +352,34 @@ Beispiele:
Hinweise:
- `/plugins list` und `/plugins show` verwenden echte Plugin-Erkennung gegen den aktuellen Workspace plus die Konfiguration auf Datenträger.
- `/plugins enable|disable` aktualisiert nur die Plugin-Konfiguration; Plugins werden nicht installiert oder deinstalliert.
- Starten Sie das Gateway nach Änderungen an Aktivieren/Deaktivieren neu, damit sie angewendet werden.
- `/plugins list` und `/plugins show` verwenden echte Plugin-Erkennung für den aktuellen Workspace plus die Konfiguration auf Datenträger.
- `/plugins enable|disable` aktualisiert nur die Plugin-Konfiguration; Plugins werden dadurch nicht installiert oder deinstalliert.
- Starten Sie das Gateway nach Änderungen durch Aktivieren/Deaktivieren neu, um sie anzuwenden.
## Hinweise zu Oberflächen
- **Textbefehle** laufen in der normalen Chatsitzung (DMs teilen sich `main`, Gruppen haben ihre eigene Sitzung).
- **Textbefehle** laufen in der normalen Chat-Sitzung (Direktnachrichten teilen `main`, Gruppen haben ihre eigene Sitzung).
- **Native Befehle** verwenden isolierte Sitzungen:
- Discord: `agent:<agentId>:discord:slash:<userId>`
- Slack: `agent:<agentId>:slack:slash:<userId>` (Präfix über `channels.slack.slashCommand.sessionPrefix` konfigurierbar)
- Telegram: `telegram:slash:<userId>` (zielt über `CommandTargetSessionKey` auf die Chatsitzung)
- **`/stop`** zielt auf die aktive Chatsitzung, damit die aktuelle Ausführung abgebrochen werden kann.
- **Slack:** `channels.slack.slashCommand` wird weiterhin für einen einzelnen Befehl im Stil von `/openclaw` unterstützt. Wenn Sie `commands.native` aktivieren, müssen Sie einen Slack-Slash-Befehl pro integriertem Befehl anlegen (mit denselben Namen wie `/help`). Menüs für Befehlsargumente werden in Slack als ephemere Block-Kit-Buttons bereitgestellt.
- Slack: `agent:<agentId>:slack:slash:<userId>` (Präfix konfigurierbar über `channels.slack.slashCommand.sessionPrefix`)
- Telegram: `telegram:slash:<userId>` (zielt über `CommandTargetSessionKey` auf die Chat-Sitzung)
- **`/stop`** zielt auf die aktive Chat-Sitzung, damit der aktuelle Lauf abgebrochen werden kann.
- **Slack:** `channels.slack.slashCommand` wird weiterhin für einen einzelnen Befehl im Stil von `/openclaw` unterstützt. Wenn Sie `commands.native` aktivieren, müssen Sie einen Slack-Slash-Befehl pro integriertem Befehl erstellen (mit denselben Namen wie `/help`). Befehlsargumentmenüs für Slack werden als ephemere Block-Kit-Schaltflächen bereitgestellt.
- Native Slack-Ausnahme: Registrieren Sie `/agentstatus` (nicht `/status`), weil Slack `/status` reserviert. Text-`/status` funktioniert weiterhin in Slack-Nachrichten.
## BTW-Nebenfragen
`/btw` ist eine schnelle **Nebenfrage** zur aktuellen Sitzung.
Anders als normaler Chat:
Im Unterschied zu normalem Chat:
- verwendet es die aktuelle Sitzung als Hintergrundkontext,
- läuft es als separater **tool-loser** One-Shot-Aufruf,
- ändert es den zukünftigen Sitzungskontext nicht,
- läuft es als separater **Tool-loser** Einmalaufruf,
- verändert es den zukünftigen Sitzungskontext nicht,
- wird es nicht in den Transkriptverlauf geschrieben,
- wird es als Live-Nebenergebnis statt als normale Assistentennachricht zugestellt.
Das macht `/btw` nützlich, wenn Sie eine vorübergehende Klärung möchten, während die Haupt-
Dadurch ist `/btw` nützlich, wenn Sie eine vorübergehende Klärung möchten, während die Haupt-
aufgabe weiterläuft.
Beispiel:
@ -387,5 +388,5 @@ Beispiel:
/btw was machen wir gerade?
```
Siehe [BTW Side Questions](/de/tools/btw) für das vollständige Verhalten und Details
zur Client-UX.
Siehe [BTW Side Questions](/de/tools/btw) für das vollständige Verhalten und die UX-Details
des Clients.