Zum Inhalt springen
tutorials·6 min Lesezeit

Slack mit OpenClaw verbinden: Bot, Mentions und Routing sauber einrichten

Slack mit OpenClaw verbinden: Transport-Wahl, Gruppenzugriff, Mention-Gating, DM-Pairing und deterministisches Routing sauber einrichten.

openclawslackmessagingagentops

Für OpenClaw ist Slack einer von mehreren Messaging-Kanälen. Slack unterstützt Direct Messages und Channels. Der Standardtransport ist Socket Mode; alternativ stehen HTTP Request URLs zur Verfügung. Relay Mode richtet sich an Managed Deployments, in denen ein vertrauenswürdiger Router den Slack-Ingress übernimmt.

OpenClaw entscheidet nicht spontan, wohin eine Antwort geht. Antworten laufen deterministisch zurück in den Kanal, aus dem die Nachricht kam. Die Host-Konfiguration kontrolliert diese Zuordnung, nicht das Modell. Deshalb müssen Zugriff und Raumlogik vor dem produktiven Test sauber gesetzt sein.

1. Slack-App und Credentials vorbereiten

Bevor du OpenClaw konfigurierst, brauchst du eine Slack-App in deinem Workspace. Dieser Happy Path nutzt Socket Mode. Er benötigt keine öffentliche Gateway-URL, muss aber ausgehenden WebSocket-Traffic zu wss-primary.slack.com erreichen können.

Öffne das Slack API Dashboard und richte die App in dieser Reihenfolge ein:

  1. App erstellen: Wähle “From scratch”, vergib einen Namen und wähle deinen Workspace.
  2. Socket Mode aktivieren: Öffne Socket Mode und aktiviere den Schalter. Erzeuge einen App-Level Token mit connections:write. Kopiere den meist mit xapp- beginnenden Token.
  3. Scopes setzen: Ergänze unter OAuth & PermissionsBot Token Scopes die Rechte app_mentions:read, chat:write, im:history, im:read, im:write, channels:history und groups:history.
  4. Events abonnieren: Aktiviere Event Subscriptions. Trage unter Subscribe to bot events app_mention, message.im und message.channels ein.
  5. App installieren: Installiere die App über Install App im Workspace. Kopiere anschließend den meist mit xoxb- beginnenden Bot User OAuth Token.

Schreibe die Tokens weder in eine versionierte Konfigurationsdatei noch in Logs oder Shell-Befehle, die im Verlauf landen. Das folgende Beispiel liest sie aus Umgebungsvariablen. Bei einer Offenlegung widerrufst du die betroffenen Tokens in Slack und erzeugst neue.

2. OpenClaw konfigurieren

OpenClaw verwendet für Slack-DMs und Channels unterschiedliche Zugriffsebenen. channels.slack.allowFrom nimmt Slack User IDs wie U12345678 auf. Erlaubte Channels werden mit IDs wie C12345678 eingetragen. requireMention legt fest, ob der Bot in einem freigegebenen Channel ausdrücklich erwähnt werden muss.

Eine kopierbare config.json5 für Socket Mode sieht so aus:

{
  channels: {
    slack: {
      enabled: true,
      botToken: "${SLACK_BOT_TOKEN}",
      appToken: "${SLACK_APP_TOKEN}",
      dmPolicy: "pairing",
      allowFrom: ["U12345678"], // Deine Slack User ID
      groupPolicy: "allowlist",
      groupAllowFrom: ["C12345678"], // Erlaubte Slack Channel ID
      groups: {
        "C12345678": { requireMention: true }
      }
    }
  },
  messages: {
    groupChat: {
      visibleReplies: "automatic"
    }
  }
}

Ersetze U12345678 und C12345678 durch die IDs aus deinem Workspace. Gruppen bleiben mit groupPolicy: "allowlist" eingeschränkt. Im eingetragenen Channel löst bei requireMention: true erst eine passende Erwähnung eine Antwort aus.

Weitere Hintergründe zur Datei und zur JSON5-Syntax findest du in Gateway-Konfiguration: openclaw.json verständlich erklärt.

Alternative: HTTP Request URLs

Bei HTTP Request URLs benötigt OpenClaw eine öffentlich erreichbare HTTPS-URL mit DNS, TLS und Reverse Proxy oder Tunnel. Für die Bot-Identität brauchst du den Bot Token und das Signing Secret aus den Basic Information der Slack-App. OpenClaw prüft damit die Signatur eingehender Slack-Anfragen.

Trage unter Event Subscriptions die in deiner OpenClaw-Slack-Konfiguration vorgesehene öffentliche Request URL ein. Slack sendet beim Speichern eine Verifikationsanfrage. Die URL ist erst einsatzbereit, wenn Slack sie als verifiziert anzeigt. Der Gateway muss dafür laufen und von Slack über HTTPS erreichbar sein.

Socket Mode und HTTP Request URLs bieten laut OpenClaw-Dokumentation denselben Funktionsumfang für Messaging, Slash Commands, App Home und Interaktivität. Verwende pro Setup einen klar festgelegten primären Ingress.

3. Routing und sichtbare Antworten

OpenClaw routet Antworten deterministisch zurück zu dem Kanal, aus dem die Nachricht kam. Das Modell wählt keinen Zielkanal. Diese Aussage beschreibt das dokumentierte Kanalrouting; sie ersetzt keine gesonderte Prüfung der Slack-Thread-Zustellung.

OpenClaw unterscheidet Channel, AccountId, AgentId und SessionKey. Direct Messages laufen beim standardmäßigen DM-Scope in der Main-Session des Agenten zusammen. Bei mehreren Slack-Konten solltest du zusätzlich die Account-Zuordnung prüfen. Eine ausführlichere Einordnung bietet der Artikel OpenClaw Channel-Routing: Mehrere Kanäle und Agenten sauber zuordnen.

Für Gruppen und Channels steuert messages.groupChat.visibleReplies die sichtbare Ausgabe. Mit "automatic" postet OpenClaw den finalen Antworttext in den Raum. Dieser Pfad ist im Konfigurationsschema der Runtime vorhanden.

Der Modus "message_tool" verlangt für eine sichtbare Raumausgabe einen Aufruf von message(action=send). Normaler finaler Text bleibt privat. Nutze diesen Modus nur mit einem Modell, das den erforderlichen Tool-Aufruf zuverlässig ausführt.

4. Gateway starten und Integration abnehmen

Setze SLACK_BOT_TOKEN und SLACK_APP_TOKEN im geschützten Laufzeitkontext deines Gateways. Starte anschließend OpenClaw:

openclaw gateway

Führe die Abnahme zuerst in einer DM und einem privaten Test-Channel aus:

  1. Neue Slack-DM: Sende dem Bot eine Nachricht. Bei dmPolicy: "pairing" sollte OpenClaw einen Pairing-Code liefern.
  2. Pairing freigeben: Bestätige den erhaltenen Code im Terminal:
openclaw pairing approve slack <CODE>
  1. Gepairte DM: Sende eine normale Anfrage. OpenClaw sollte sie verarbeiten und in derselben Slack-DM antworten.
  2. Nicht freigegebener Channel: Lade den Bot in einen Channel ein, dessen ID nicht konfiguriert ist. Es darf keine sichtbare Antwort erscheinen.
  3. Freigegebener Channel ohne Mention: Sende eine Nachricht in C12345678. Bei aktivem requireMention bleibt eine sichtbare Antwort aus.
  4. Freigegebener Channel mit Mention: Erwähne den Bot mit @DeinBot. Die Antwort sollte im selben Slack-Kanalkontext erscheinen.
  5. Thread-Test: Antworte in einem Test-Thread und erwähne dort den Bot. Dokumentiere, ob die Antwort im Thread oder im Channel erscheint, bevor du den Bot für wichtige Team-Channels freigibst.

Bleibt der Bot stumm, prüfe zuerst, ob der Gateway läuft und beide Socket-Mode-Tokens verfügbar sind. Kontrolliere danach die installierten Slack-Scopes und Events. Bei Channel-Nachrichten vergleichst du die tatsächliche C...-ID mit der Konfiguration und prüfst groupPolicy, Allowlist sowie requireMention.

Kernpunkte

Socket Mode bietet einen überschaubaren Einstieg ohne öffentlichen Gateway-Endpunkt. Beginne mit einer gepairten DM und erweitere die Freigabe anschließend um einen privaten Test-Channel. User IDs, Channel IDs und Mention-Regeln bleiben dabei ausdrücklich gesetzt.

Das dokumentierte Routing bringt Antworten zum Ursprungskanal zurück. Die konkrete Thread-Zustellung prüfst du separat im eigenen Workspace. So erkennst du vor der Freigabe, ob das Verhalten zu den Arbeitsabläufen deines Teams passt.

Reality Check

  • Geprüft auf Grundlage von: aktueller OpenClaw-Dokumentation zu Slack, Gruppenregeln und Channel-Routing; kein eigener Live-Test in einem Slack-Workspace.
  • Geeignet für: private Slack-Workspaces, kleine Teams und Test-Channels mit klarer Mention-Regel.
  • Typische Fehlerquellen: gemischte Transportannahmen, eine fehlende Allowlist, ein fehlendes Signing Secret bei HTTP oder ein fehlender App-Level Token bei Socket Mode.
  • Sicherheitsrisiko: Ein falsch freigegebener Channel kann Agentenantworten in einen gemeinsamen Raum bringen. Tokens gehören in einen geschützten Laufzeitkontext.
  • Betriebsaufwand: HTTP Request URLs benötigen zusätzlich einen öffentlich erreichbaren HTTPS-Endpunkt; Socket Mode benötigt ausgehenden WebSocket-Zugriff.

Weiterlesen

Transparenz

Agentenlog nutzt KI-Assistenz für Recherche, Struktur und Entwurf. Inhaltliche Auswahl, Einordnung und Veröffentlichung liegen redaktionell bei Agentenlog; Quellen und Fakten werden vor Veröffentlichung geprüft.