Skip to main content

Slack

Status: produktionsklar för DM + kanaler via Slack-appintegrationer. Standardläget är Socket Mode; HTTP Events API-läge stöds också.

Pairing

Slack-DM använder parkopplingsläge som standard.

Slash commands

Inbyggt kommandobeteende och kommandokatalog.

Channel troubleshooting

Diagnostik över flera kanaler och reparationsguider.

Snabbstart

1

Create Slack app and tokens

I Slack-appens inställningar:
2

Prenumerera på apphändelser

Prenumerera på bothändelser för:
  • app_mention
  • message.channels, message.groups, message.im, message.mpim
  • reaction_added, reaction_removed
  • member_joined_channel, member_left_channel
  • channel_rename
  • pin_added, pin_removed
Aktivera även App Home Messages Tab för DM.
3

Starta gateway

Tokenmodell

  • botToken + appToken krävs för Socket Mode.
  • HTTP-läge kräver botToken + signingSecret.
  • Konfigurationstokens åsidosätter miljövariabler som reserv.
  • Miljövariablerna SLACK_BOT_TOKEN / SLACK_APP_TOKEN gäller endast för standardkontot.
  • userToken (xoxp-...) är endast konfigurationsbaserad (ingen reserv via miljövariabel) och använder som standard skrivskyddat läge (userTokenReadOnly: true).
  • Valfritt: lägg till chat:write.customize om du vill att utgående meddelanden ska använda den aktiva agentidentiteten (anpassat username och ikon). icon_emoji använder syntaxen :emoji_name:.
För åtgärder/katalogläsningar kan user-token prioriteras när den är konfigurerad. För skrivningar är bot-token fortsatt prioriterad; skrivningar med user-token tillåts endast när userTokenReadOnly: false och bot-token saknas.

Åtkomstkontroll och routing

channels.slack.dmPolicy styr DM-åtkomst (äldre: channels.slack.dm.policy):

OpenClaw-konfig (minimal)

  • Inbyggt kommando auto-läge är av för Slack (commands.native: "auto" aktiverar inte Slack-inbyggda kommandon).
  • Aktivera inbyggda Slack-kommandohanterare med channels.slack.commands.native: true (eller globalt commands.native: true).
  • När inbyggda kommandon är aktiverade, registrera motsvarande slash-kommandon i Slack (/<command>-namn).
  • Om inbyggda kommandon inte är aktiverade kan du köra ett enskilt konfigurerat slash-kommando via channels.slack.slashCommand.
Standardinställningar för slash-kommando:
  • enabled: false
  • name: "openclaw"
  • sessionPrefix: "slack:slash"
  • ephemeral: true
Snedstreckssessioner använder isolerade nycklar:
  • agent:<agentId>:slack:slash:<userId>
och dirigerar fortfarande kommandokörning mot målkonversationssessionen (CommandTargetSessionKey).

Scopes (aktuella vs valfria)

  • DMs dirigeras som direct; kanaler som channel; MPIMs som group.
  • Med standardinställningen session.dmScope=main slås Slack-DMs ihop till agentens huvudsession.
  • Kanalsessioner: agent:<agentId>:slack:channel:<channelId>.
  • Trådsvar kan skapa trådsessionssuffix (:thread:<threadTs>) när det är tillämpligt.
  • channels.slack.thread.historyScope är som standard thread; thread.inheritParent är som standard false.
  • channels.slack.thread.initialHistoryLimit styr hur många befintliga trådmeddelanden som hämtas när en ny trådsession startar (standard 20; sätt 0 för att inaktivera).
Inställningar för svarstrådning: Manuella svarstaggar stöds:
  • [[reply_to_current]]
  • [[reply_to:<id>]]
Obs: replyToMode="off" inaktiverar implicit svarstrådning. Explicita [[reply_to_*]]-taggar respekteras fortfarande.

Inte behövda idag (men sannolikt i framtiden)

Slack-filbilagor laddas ner från Slack-hostade privata URL:er (tokenautentiserat begärdeflöde) och skrivs till medielagret när hämtningen lyckas och storleksgränser tillåter.
  • textblock använder channels.slack.textChunkLimit (standard 4000)
  • channels.slack.chunkMode="newline" aktiverar styckevis uppdelning först
  • filsändningar använder Slack upload APIs och kan inkludera trådsvar (thread_ts)
  • utgående mediagräns följer channels.slack.mediaMaxMb när den är konfigurerad; annars använder kanalsändningar MIME-typsstandarder från mediapipelinen
Föredragna explicita mål:

Begränsningar

Slack-åtgärder styrs av channels.slack.actions.*. Tillgängliga åtgärdsgrupper i nuvarande Slack-verktyg:

Händelser och operativt beteende

  • Redigeringar/raderingar av meddelanden och trådsändningar mappas till systemhändelser.
  • Händelser för att lägga till/ta bort reaktioner mappas till systemhändelser.
  • Händelser för medlem som går med/lämnar, kanal som skapas/byter namn samt nålning som läggs till/tas bort mappas till systemhändelser.
  • channel_id_changed kan migrera kanalens konfigurationsnycklar när configWrites är aktiverat.
  • Kanalens ämnes-/syftesmetadata behandlas som opålitlig kontext och kan injiceras i routningskontexten.

Trådning per chatttyp

Du kan konfigurera olika trådningsbeteenden per chatttyp genom att sätta channels.slack.replyToModeByChatType: Upplösningsordning:
  • channels.slack.accounts.<accountId>.ackReaction
  • channels.slack.ackReaction
  • messages.ackReaction
  • reserv-emoji för agentidentitet (agents.list[].identity.emoji, annars ”👀”)
Obs:
  • Slack förväntar sig shortcodes (till exempel "eyes").
  • Använd "" för att inaktivera reaktionen för en kanal eller ett konto.

Manifest och omfattningschecklista

Om du konfigurerar channels.slack.userToken är typiska läsbehörigheter:

Felsökning

Kontrollera, i ordning:
Kontrollera:
Verifiera bot- och app-token samt att Socket Mode är aktiverat i Slack-appens inställningar.
Verifiera:
Verifiera om du avsåg:

Verktygsåtgärder

Slack-verktygsåtgärder kan spärras med channels.slack.actions.*:
  • Configuration reference - Slack Viktiga Slack-fält:
    • läge/autentisering: mode, botToken, appToken, signingSecret, webhookPath, accounts.*
    • DM-åtkomst: dm.enabled, dmPolicy, allowFrom (äldre: dm.policy, dm.allowFrom), dm.groupEnabled, dm.groupChannels
    • kanalåtkomst: groupPolicy, channels.*, channels.*.users, channels.*.requireMention
    • trådar/historik: replyToMode, replyToModeByChatType, thread.*, historyLimit, dmHistoryLimit, dms.*.historyLimit
    • leverans: textChunkLimit, chunkMode, mediaMaxMb
    • drift/funktioner: configWrites, commands.native, slashCommand.*, actions.*, userToken, userTokenReadOnly

Säkerhetsnoteringar

  • Skrivningar använder som standard bot-token så att tillståndsändrande åtgärder hålls inom appens botbehörigheter och identitet.
  • Channel routing
  • Om du aktiverar skrivningar med användartoken, säkerställ att användartoken inkluderar de skriv- scopes du förväntar dig (chat:write, reactions:write, pins:write, files:write) annars kommer dessa operationer att misslyckas.
  • Configuration
  • Slash commands