Slack¶
Socket မုဒ် (ပုံမှန်)¶
အမြန်တပ်ဆင်ခြင်း (အစပြုသူများ)¶
- Slack app တစ်ခု ဖန်တီးပြီး Socket Mode ကို ဖွင့်ပါ။
- App Token (
xapp-...) နှင့် Bot Token (xoxb-...) ကို ဖန်တီးပါ။ - OpenClaw အတွက် token များကို သတ်မှတ်ပြီး gateway ကို စတင်ပါ။
အနည်းဆုံး config:
{
channels: {
slack: {
enabled: true,
appToken: "xapp-...",
botToken: "xoxb-...",
},
},
}
တပ်ဆင်ခြင်း¶
- https://api.slack.com/apps တွင် Slack app တစ်ခု (From scratch) ဖန်တီးပါ။
- App Token (
xapp-...) ကို ကူးယူပါ။ OAuth & Permissions → bot token scopes များကို ထည့်ပါ (အောက်ပါ manifest ကို အသုံးပြုပါ)။ Install to Workspace ကို နှိပ်ပါ။ - Bot User OAuth Token (
xoxb-...) ကို ကူးယူပါ။ မဖြစ်မနေ မဟုတ်ပါ: OAuth & Permissions → User Token Scopes ကို ထည့်ပါ (အောက်ပါ read-only စာရင်းကို ကြည့်ပါ)။ App ကို ပြန်လည် install လုပ်ပြီး User OAuth Token (xoxp-...) ကို ကူးယူပါ။ - Slash Commands →
channels.slack.slashCommandကို အသုံးပြုပါက/openclawကို ဖန်တီးပါ။ Native commands ကို ဖွင့်ထားပါက built-in command တစ်ခုစီအတွက် slash command တစ်ခုစီကို ထည့်ပါ (/helpနှင့် အမည်တူ)။ - Event Subscriptions → events ကို ဖွင့်ပြီး အောက်ပါများကို subscribe လုပ်ပါ။
-
message.*(edit/delete/thread broadcast များ ပါဝင်) -app_mention-reaction_added,reaction_removed-member_joined_channel,member_left_channel-channel_rename-pin_added,pin_removed - ဖတ်ရှုစေလိုသော ချန်နယ်များသို့ bot ကို ဖိတ်ကြားပါ။
- Slack အတွက် Native သည် ပုံမှန်အားဖြင့် ပိတ်ထားပြီး
channels.slack.commands.native: trueကို သတ်မှတ်မှသာ ဖွင့်ပါမည် (globalcommands.nativeသည်"auto"ဖြစ်ပြီး Slack ကို ပိတ်ထားစေပါသည်)။ ပုံစံတူ အသုံးပြုနည်းအတွက်gateway/configurationကို ကြည့်ပါ။ OpenClaw သည် Slack user token (xoxp-...) ကို ဖတ်ရှုမှုလုပ်ငန်းများ (history, pins, reactions, emoji, member info) အတွက် အသုံးပြုနိုင်ပါသည်။ - App Home → Messages Tab ကို ဖွင့်ပြီး အသုံးပြုသူများ bot ကို DM ပို့နိုင်စေရန် ပြုလုပ်ပါ။
scope များနှင့် events များ တစ်ပြိုင်နက်တည်း ဖြစ်စေရန် အောက်ပါ manifest ကို အသုံးပြုပါ။
Multi-account ပံ့ပိုးမှု: per-account token များနှင့် optional name ကို အသုံးပြု၍ channels.slack.accounts ကို အသုံးပြုပါ။ ပုံမှန်အားဖြင့် ၎င်းသည် read-only အဖြစ် ဆက်လက်ရှိနေပါသည်: reads များသည် user token ရှိပါက ၎င်းကို ဦးစားပေးအသုံးပြုပြီး writes များသည် သင်က အထူးအနေဖြင့် မရွေးချယ်ပါက bot token ကိုသာ အသုံးပြုပါသည်။
OpenClaw config (Socket မုဒ်)¶
env vars ဖြင့် token များ သတ်မှတ်ပါ (အကြံပြု):
SLACK_APP_TOKEN=xapp-...SLACK_BOT_TOKEN=xoxb-...
သို့မဟုတ် config ဖြင့်:
{
channels: {
slack: {
enabled: true,
appToken: "xapp-...",
botToken: "xoxb-...",
},
},
}
User token (ရွေးချယ်စရာ)¶
userTokenReadOnly: false ဖြစ်နေသော်လည်း bot token ရရှိနိုင်ပါက writes များအတွက် bot token ကို ဦးစားပေးနေဆဲဖြစ်ပါသည်။ User token များကို config ဖိုင်တွင် သတ်မှတ်ရပါသည် (env var ပံ့ပိုးမှု မရှိပါ)။ Multi-account အတွက် channels.slack.accounts.<id>
.userToken ကို သတ်မှတ်ပါ။
Write လုပ်ငန်းများ (မက်ဆေ့ချ် ပို့/ပြင်/ဖျက်၊ reaction ထည့်/ဖယ်၊ pin/unpin,
ဖိုင်တင်ခြင်း) သည် ပုံမှန်အားဖြင့် bot token ကို အသုံးပြုပါသည်။ userTokenReadOnly: false ဖြစ်ပြီး bot token မရှိပါက OpenClaw သည် user token သို့ ပြန်လည်အသုံးပြုပါသည်။.userToken`.
bot + app + user token များပါသော ဥပမာ:
{
channels: {
slack: {
enabled: true,
appToken: "xapp-...",
botToken: "xoxb-...",
userToken: "xoxp-...",
},
},
}
userTokenReadOnly ကို အထူးသတ်မှတ်ထားသော ဥပမာ (user token ရေးသားခွင့် ပေးခြင်း):
{
channels: {
slack: {
enabled: true,
appToken: "xapp-...",
botToken: "xoxb-...",
userToken: "xoxp-...",
userTokenReadOnly: false,
},
},
}
Token အသုံးပြုမှု¶
- ဖတ်ရှုရေးရာ လုပ်ဆောင်ချက်များ (history, reactions list, pins list, emoji list, member info, search) သည် user token ရှိပါက ဦးစားပေးပြီး မရှိပါက bot token ကို အသုံးပြုပါသည်။
- Write operations (send/edit/delete messages, add/remove reactions, pin/unpin,
file uploads) use the bot token by default. If
userTokenReadOnly: falseand no bot token is available, OpenClaw falls back to the user token.
History context¶
channels.slack.historyLimit(သို့မဟုတ်channels.slack.accounts.*.historyLimit) သည် prompt ထဲသို့ ထည့်သွင်းမည့် ချန်နယ်/အုပ်စု မက်ဆေ့ချ် အရေအတွက်ကို ထိန်းချုပ်ပါသည်။messages.groupChat.historyLimitကို fallback အဖြစ် အသုံးပြုသည်။ ပိတ်ရန်0ကို သတ်မှတ်ပါ (မူလတန်ဖိုး 50)။
HTTP မုဒ် (Events API)¶
သင့် Gateway ကို Slack က HTTPS ဖြင့် ချိတ်ဆက်နိုင်သောအခါ HTTP webhook mode ကို အသုံးပြုပါ (ပုံမှန်အားဖြင့် server deployment များအတွက်)။ HTTP mode သည် Events API + Interactivity + Slash Commands ကို shared request URL တစ်ခုဖြင့် အသုံးပြုသည်။
တပ်ဆင်ခြင်း (HTTP မုဒ်)¶
- Slack app တစ်ခု ဖန်တီးပြီး Socket Mode ကို ပိတ်ပါ (HTTP ကိုသာ အသုံးပြုပါက ရွေးချယ်စရာ)။
- Basic Information → Signing Secret ကို ကူးယူပါ။
- OAuth & Permissions → app ကို install လုပ်ပြီး Bot User OAuth Token (
xoxb-...) ကို ကူးယူပါ။ - Event Subscriptions → events ကို ဖွင့်ပြီး Request URL ကို သင်၏ gateway webhook လမ်းကြောင်းသို့ သတ်မှတ်ပါ (ပုံမှန်
/slack/events)။ - Interactivity & Shortcuts → ဖွင့်ပြီး အတူတူသော Request URL ကို သတ်မှတ်ပါ။
- Slash Commands → သင်၏ command များအတွက် အတူတူသော Request URL ကို သတ်မှတ်ပါ။
Request URL ဥပမာ:
https://gateway-host/slack/events
OpenClaw config (အနည်းဆုံး)¶
{
channels: {
slack: {
enabled: true,
mode: "http",
botToken: "xoxb-...",
signingSecret: "your-signing-secret",
webhookPath: "/slack/events",
},
},
}
Multi-account HTTP mode: channels.slack.accounts.<id> ကို သတ်မှတ်ပါ.mode = "http"` ဟု သတ်မှတ်ပြီး account တစ်ခုချင်းစီအတွက် ထူးခြားသော
Manifest (ရွေးချယ်စရာ)¶
webhookPath ကို ပေးပါ၊ Slack app တစ်ခုချင်းစီက ကိုယ်ပိုင် URL ကို ညွှန်းနိုင်စေရန်။ ဒီ Slack app manifest ကို အသုံးပြုပြီး app ကို မြန်မြန် ဖန်တီးပါ (အမည်/command ကို လိုအပ်သလို ပြင်ဆင်နိုင်သည်)။
{
"display_information": {
"name": "OpenClaw",
"description": "Slack connector for OpenClaw"
},
"features": {
"bot_user": {
"display_name": "OpenClaw",
"always_online": false
},
"app_home": {
"messages_tab_enabled": true,
"messages_tab_read_only_enabled": false
},
"slash_commands": [
{
"command": "/openclaw",
"description": "Send a message to OpenClaw",
"should_escape": false
}
]
},
"oauth_config": {
"scopes": {
"bot": [
"chat:write",
"channels:history",
"channels:read",
"groups:history",
"groups:read",
"groups:write",
"im:history",
"im:read",
"im:write",
"mpim:history",
"mpim:read",
"mpim:write",
"users:read",
"app_mentions:read",
"reactions:read",
"reactions:write",
"pins:read",
"pins:write",
"emoji:read",
"commands",
"files:read",
"files:write"
],
"user": [
"channels:history",
"channels:read",
"groups:history",
"groups:read",
"im:history",
"im:read",
"mpim:history",
"mpim:read",
"users:read",
"reactions:read",
"pins:read",
"emoji:read",
"search:read"
]
}
},
"settings": {
"socket_mode_enabled": true,
"event_subscriptions": {
"bot_events": [
"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"
]
}
}
}
user token ကို ပြင်ဆင်သတ်မှတ်ရန် စီစဉ်ထားပါက user scopes များကို ထည့်သွင်းပါ။ native commands ကို ဖွင့်ထားပါက ဖော်ပြလိုသော command တစ်ခုချင်းစီအတွက် slash_commands entry တစ်ခုစီ ထည့်ပါ (/help စာရင်းနှင့် ကိုက်ညီရပါမည်)။
Scopes (လက်ရှိ vs ရွေးချယ်စရာ)¶
channels.slack.commands.native ဖြင့် override လုပ်နိုင်သည်။ Slack ၏ Conversations API သည် type အလိုက် scope ခွဲထားသည် — သင် တကယ် အသုံးပြုမည့် conversation type များ (channels, groups, im, mpim) အတွက်သာ scopes လိုအပ်ပါသည်။
Bot token scopes (လိုအပ်သည်)¶
chat:write(chat.postMessageဖြင့် မက်ဆေ့ချ် ပို့/ပြင်/ဖျက်) https://docs.slack.dev/reference/methods/chat.postMessageim:write(user DM များအတွက်conversations.openဖြင့် DM ဖွင့်ခြင်း) https://docs.slack.dev/reference/methods/conversations.openchannels:history,groups:history,im:history,mpim:historyhttps://docs.slack.dev/reference/methods/conversations.historychannels:read,groups:read,im:read,mpim:readhttps://docs.slack.dev/reference/methods/conversations.infousers:read(user lookup) https://docs.slack.dev/reference/methods/users.inforeactions:read,reactions:write(reactions.get/reactions.add) https://docs.slack.dev/reference/methods/reactions.get https://docs.slack.dev/reference/methods/reactions.addpins:read,pins:write(pins.list/pins.add/pins.remove) https://docs.slack.dev/reference/scopes/pins.read https://docs.slack.dev/reference/scopes/pins.writeemoji:read(emoji.list) https://docs.slack.dev/reference/scopes/emoji.readfiles:write(files.uploadV2ဖြင့် upload) https://docs.slack.dev/messaging/working-with-files/#upload
User token scopes (ရွေးချယ်စရာ၊ ပုံမှန် read-only)¶
channels.slack.userToken ကို ပြင်ဆင်သတ်မှတ်ပါက User Token Scopes အောက်တွင် အောက်ပါများကို ထည့်ပါ။
channels:history,groups:history,im:history,mpim:historychannels:read,groups:read,im:read,mpim:readusers:readreactions:readpins:reademoji:readsearch:read
ယနေ့မလိုအပ်သေးသော်လည်း (နောင်တွင် ဖြစ်နိုင်)¶
mpim:write(conversations.openဖြင့် group-DM ဖွင့်ခြင်း/DM စတင်ခြင်း ထည့်ပါကသာ)groups:write(private-channel စီမံခန့်ခွဲမှု: create/rename/invite/archive ထည့်ပါကသာ)chat:write.public(bot မပါဝင်သော ချန်နယ်များသို့ ပို့လိုပါက) https://docs.slack.dev/reference/scopes/chat.write.publicusers:read.email(users.infoမှ email field များ လိုအပ်ပါက) https://docs.slack.dev/changelog/2017-04-narrowing-email-accessfiles:read(ဖိုင် metadata များကို စာရင်းပြုစု/ဖတ်ရန် စတင်ပါက)
Config¶
အကျဉ်းချုပ်အတွက် ကြည့်ပါ https://docs.slack.dev/apis/web-api/using-the-conversations-api/ ။ Slack သည် Socket Mode ကိုသာ အသုံးပြုသည် (HTTP webhook server မရှိပါ)။
{
"slack": {
"enabled": true,
"botToken": "xoxb-...",
"appToken": "xapp-...",
"groupPolicy": "allowlist",
"dm": {
"enabled": true,
"policy": "pairing",
"allowFrom": ["U123", "U456", "*"],
"groupEnabled": false,
"groupChannels": ["G123"],
"replyToMode": "all"
},
"channels": {
"C123": { "allow": true, "requireMention": true },
"#general": {
"allow": true,
"requireMention": true,
"users": ["U123"],
"skills": ["search", "docs"],
"systemPrompt": "Keep answers short."
}
},
"reactionNotifications": "own",
"reactionAllowlist": ["U123"],
"replyToMode": "off",
"actions": {
"reactions": true,
"messages": true,
"pins": true,
"memberInfo": true,
"emojiList": true
},
"slashCommand": {
"enabled": true,
"name": "openclaw",
"sessionPrefix": "slack:slash",
"ephemeral": true
},
"textChunkLimit": 4000,
"mediaMaxMb": 20
}
}
token များကို env vars ဖြင့်လည်း ပေးနိုင်ပါသည်။
SLACK_BOT_TOKENSLACK_APP_TOKEN
token နှစ်ခုစလုံးကို ပေးပါ: Ack reactions များကို messages.ackReaction +
messages.ackReactionScope ဖြင့် global အဆင့်တွင် ထိန်းချုပ်သည်။
ကန့်သတ်ချက်များ¶
- အပြင်ပို့ text များကို
channels.slack.textChunkLimitအထိ ခွဲထုတ်ပို့ပါသည် (ပုံမှန် 4000)။ - newline ဖြင့် ခွဲထုတ်ခြင်း (ရွေးချယ်စရာ): အရှည်အလိုက် ခွဲထုတ်မီ စာပိုဒ်အလိုက် ခွဲရန်
channels.slack.chunkMode="newline"ကို သတ်မှတ်ပါ။ - Media upload များကို
channels.slack.mediaMaxMbဖြင့် ကန့်သတ်ထားပါသည် (ပုံမှန် 20)။
Reply threading¶
bot က ပြန်ကြားပြီးနောက် ack reaction ကို ဖယ်ရှားရန် messages.removeAckAfterReply ကို အသုံးပြုပါ။ မူလအနေဖြင့် OpenClaw သည် main channel တွင် ပြန်ကြားသည်။
| Mode | Behavior |
|---|---|
off |
automatic threading ကို ထိန်းချုပ်ရန် channels.slack.replyToMode ကို အသုံးပြုပါ: မူလတန်ဖိုး။ main channel တွင် ပြန်ကြားသည်။ |
first |
trigger ဖြစ်စေသော message သည် thread အတွင်းရှိပြီးသားဖြစ်ပါကသာ thread ထဲတွင် ပြန်ကြားသည်။ ပထမဆုံး ပြန်ကြားချက်သည် thread (trigger message အောက်တွင်) သို့ သွားပြီး နောက်ထပ် ပြန်ကြားချက်များသည် main channel သို့ သွားသည်။ |
all |
context ကို မြင်သာစေပြီး thread များ အလွန်များခြင်းကို ရှောင်ရှားရန် အသုံးဝင်သည်။ ပြန်ကြားချက်အားလုံးကို thread ထဲသို့သာ ပို့သည်။ |
ဤ mode သည် auto-replies နှင့် agent tool calls (slack sendMessage) နှစ်ခုလုံးအတွက် အသုံးဝင်ပါသည်။
Chat အမျိုးအစားအလိုက် threading¶
channels.slack.replyToModeByChatType ကို သတ်မှတ်ခြင်းဖြင့် chat အမျိုးအစားတစ်ခုချင်းစီအလိုက် threading behavior ကို သတ်မှတ်နိုင်ပါသည်။
{
channels: {
slack: {
replyToMode: "off", // default for channels
replyToModeByChatType: {
direct: "all", // DMs always thread
group: "first", // group DMs/MPIM thread first reply
},
},
},
}
ပံ့ပိုးထားသော chat အမျိုးအစားများ:
direct: 1:1 DM များ (Slackim)group: group DM / MPIM များ (Slackmpim)channel: ပုံမှန် ချန်နယ်များ (public/private)
ဦးစားပေးမှု အစီအစဉ်:
- စကားဝိုင်းများကို ထိန်းသိမ်းထားနိုင်သော်လည်း မြင်သာမှု လျော့နည်းနိုင်သည်။
replyToModeByChatType.<chatType> replyToMode- provider ပုံမှန် (
off)
Legacy channels.slack.dm.replyToMode ကို chat-type override မရှိသည့်အခါ direct အတွက် fallback အဖြစ် လက်ခံထားဆဲဖြစ်ပါသည်။
ဥပမာများ:
DM များကိုသာ thread လုပ်ခြင်း:
{
channels: {
slack: {
replyToMode: "off",
replyToModeByChatType: { direct: "all" },
},
},
}
Group DM များကို thread လုပ်ပြီး ချန်နယ်များကို root တွင်ထားခြင်း:
{
channels: {
slack: {
replyToMode: "off",
replyToModeByChatType: { group: "first" },
},
},
}
ချန်နယ်များကို thread လုပ်ပြီး DM များကို root တွင်ထားခြင်း:
{
channels: {
slack: {
replyToMode: "first",
replyToModeByChatType: { direct: "off", group: "off" },
},
},
}
Manual threading tags¶
အသေးစိတ် ထိန်းချုပ်ရန် agent response များအတွင်း အောက်ပါ tag များကို အသုံးပြုပါ။
[[reply_to_current]]— triggering message သို့ ပြန်ကြားခြင်း (thread စတင်/ဆက်လက်)။[[reply_to:<id>]]— message id တစ်ခုကို သတ်မှတ်ပြီး ပြန်ကြားခြင်း။
Sessions + routing¶
- DM များသည်
mainsession ကို မျှဝေပါသည် (WhatsApp/Telegram ကဲ့သို့)။ - ချန်နယ်များသည်
agent:<agentId>:slack:channel:<channelId>session များသို့ ချိတ်ဆက်ပါသည်။ - Slash commands များသည်
agent:<agentId>:slack:slash:<userId>session များကို အသုံးပြုပါသည် (prefix ကိုchannels.slack.slashCommand.sessionPrefixဖြင့် ပြင်ဆင်နိုင်)။ - Slack မှ
channel_typeကို မပေးပါက OpenClaw သည် channel ID prefix (D,C,G) မှ ခန့်မှန်းပြီး session key များ တည်ငြိမ်စေရန်channelကို ပုံမှန်အဖြစ် သတ်မှတ်ပါသည်။ Native command registration သည်commands.native(global မူလတန်ဖိုး "auto" → Slack ပိတ်ထား) ကို အသုံးပြုပြီး workspace အလိုက်channels.slack.commands.nativeဖြင့် override လုပ်နိုင်သည်။ Text commands များသည် standalone/...message များ လိုအပ်ပြီးcommands.text: false` ဖြင့် ပိတ်နိုင်သည်။ Slack slash commands များကို Slack app အတွင်းတွင် စီမံခန့်ခွဲရပြီး အလိုအလျောက် ဖယ်ရှားမပေးပါ။- Command အပြည့်အစုံနှင့် config: Slash commands
DM လုံခြုံရေး (pairing)¶
- ပုံမှန်:
channels.slack.dm.policy="pairing"— မသိသော DM ပို့သူများကို pairing code ပေးပြီး (၁ နာရီအကြာ သက်တမ်းကုန်)။ - အတည်ပြုရန်:
openclaw pairing approve slack <code>ကို အသုံးပြုပါ။ - လူတိုင်း ခွင့်ပြုရန်:
channels.slack.dm.policy="open"နှင့်channels.slack.dm.allowFrom=["*"]ကို သတ်မှတ်ပါ။ - command များအတွက် access-group စစ်ဆေးမှုကို ကျော်လွှားရန်
commands.useAccessGroups: falseကို အသုံးပြုပါ။channels.slack.dm.allowFromသည် user IDs, @handles သို့မဟုတ် emails များကို လက်ခံပြီး (token များ ခွင့်ပြုပါက startup အချိန်တွင် resolve လုပ်သည်)။
Group policy¶
channels.slack.groupPolicyသည် ချန်နယ် ကိုင်တွယ်ပုံကို ထိန်းချုပ်ပါသည် (open|disabled|allowlist)။allowlistသည် ချန်နယ်များကိုchannels.slack.channelsအတွင်း စာရင်းသွင်းထားရန် လိုအပ်ပါသည်။- wizard သည် setup အတွင်း usernames များကို လက်ခံပြီး token များ ခွင့်ပြုပါက ids များသို့ resolve လုပ်သည်။
SLACK_BOT_TOKEN/SLACK_APP_TOKENကိုသာ သတ်မှတ်ပြီးchannels.slacksection ကို မဖန်တီးပါက runtime သည်groupPolicyကိုopenဟု မူလအနေဖြင့် သတ်မှတ်သည်။ - Configure wizard သည်
#channelအမည်များကို လက်ခံပြီး ဖြစ်နိုင်ပါက ID များသို့ ပြောင်းလဲပေးပါသည် (public + private)။ ကိုက်ညီမှု များစွာရှိပါက active channel ကို ဦးစားပေးပါသည်။ - စတင်ချိန်တွင် OpenClaw သည် allowlist များအတွင်း channel/user အမည်များကို ID များသို့ ပြောင်းလဲပြီး (token များ ခွင့်ပြုပါက) mapping ကို log ထုတ်ပြပါသည်။ မဖြေရှင်းနိုင်သော entry များကို မူလအတိုင်း ထားရှိပါသည်။
- ချန်နယ် မည်သည့်တစ်ခုမျှ မခွင့်ပြုလိုပါက
channels.slack.groupPolicy: "disabled"ကို သတ်မှတ်ပါ (သို့မဟုတ် အလွတ် allowlist ကို ထားပါ)။
lock down လုပ်ရန် channels.slack.groupPolicy,
channels.defaults.groupPolicy သို့မဟုတ် channel allowlist တစ်ခု ထည့်ပါ။Channel options (channels.slack.channels.<id>`` သို့မဟုတ်channels.slack.channels.
allow:groupPolicy="allowlist"ဖြစ်ပါက ချန်နယ်ကို ခွင့်ပြု/ပိတ်။requireMention: ချန်နယ်အတွက် mention gating။tools: ချန်နယ်အလိုက် tool policy override များ (allow/deny/alsoAllow)။toolsBySender: ချန်နယ်အတွင်း ပို့သူအလိုက် tool policy override များ (key များမှာ sender id/@handle/email;"*"wildcard ပံ့ပိုး)။allowBots: ဤချန်နယ်တွင် bot ရေးသားသော မက်ဆေ့ချ်များကို ခွင့်ပြုခြင်း (ပုံမှန်: false)။users: ချန်နယ်အလိုက် user allowlist (ရွေးချယ်စရာ)။skills: skill filter (မရေးပါက = Skills အားလုံး, အလွတ် = မည်သည့် Skill မဆို မရှိ)။systemPrompt: ချန်နယ်အတွက် ထပ်ဆောင်း system prompt (topic/purpose နှင့် ပေါင်းစပ်)။enabled: ချန်နယ်ကို ပိတ်ရန်falseကို သတ်မှတ်ပါ။
Delivery targets¶
cron/CLI ပို့ရန်များနှင့်အတူ အောက်ပါများကို အသုံးပြုပါ။
- DM များအတွက်
user:<id> - ချန်နယ်များအတွက်
channel:<id>
Tool actions¶
Slack tool actions များကို channels.slack.actions.* ဖြင့် gating လုပ်နိုင်ပါသည်။
| Action group | Default | Notes |
|---|---|---|
| reactions | enabled | React + list reactions |
| messages | enabled | Read/send/edit/delete |
| pins | enabled | Pin/unpin/list |
| memberInfo | enabled | Member info |
| emojiList | enabled | Custom emoji list |
လုံခြုံရေး မှတ်ချက်များ¶
- ရေးသားရေးရာ လုပ်ဆောင်ချက်များကို ပုံမှန်အားဖြင့် bot token ဖြင့်သာ လုပ်ဆောင်ပြီး state ပြောင်းလဲမှုများကို app ၏ bot permission နှင့် identity အတွင်း ထိန်းသိမ်းထားပါသည်။
- Setting
userTokenReadOnly: falseallows the user token to be used for write operations when a bot token is unavailable, which means actions run with the installing user's access.userTokenReadOnly: falseကို သတ်မှတ်ပါက bot token မရရှိနိုင်သည့်အခါ user token ကို write operations များအတွက် အသုံးပြုခွင့်ပေးပြီး လုပ်ဆောင်ချက်များသည် installing user ၏ access ဖြင့် လည်ပတ်မည်ဖြစ်သည်။ - user-token writes ကို ဖွင့်ပါက user token တွင် မျှော်လင့်ထားသော write scopes (
chat:write,reactions:write,pins:write,files:write) ပါဝင်ကြောင်း သေချာစေရန်၊ မပါဝင်ပါက အဆိုပါ လုပ်ဆောင်ချက်များ မအောင်မြင်ပါ။
ပြဿနာဖြေရှင်းခြင်း¶
အရင်ဆုံး အောက်ပါ ladder ကို လုပ်ဆောင်ပါ။
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
လိုအပ်ပါက DM pairing အခြေအနေကို ထပ်မံ အတည်ပြုပါ။
openclaw pairing list slack
ပုံမှန် တွေ့ရသော ပြဿနာများ:
- ချိတ်ဆက်ပြီးသားဖြစ်သော်လည်း ချန်နယ်တွင် ပြန်ကြားချက် မရှိခြင်း: ချန်နယ်ကို
groupPolicyဖြင့် ပိတ်ထားခြင်း သို့မဟုတ်channels.slack.channelsallowlist ထဲ မပါဝင်ခြင်း။ - DM များကို လျစ်လျူရှုခြင်း:
channels.slack.dm.policy="pairing"ဖြစ်နေစဉ် ပို့သူကို မအတည်ပြုထားခြင်း။ - API error များ (
missing_scope,not_in_channel, auth မအောင်မြင်ခြင်း): bot/app token များ သို့မဟုတ် Slack scopes မပြည့်စုံခြင်း။
Triage လုပ်ငန်းစဉ်အတွက်: /channels/troubleshooting။
Notes¶
- Mention gating ကို
channels.slack.channelsဖြင့် ထိန်းချုပ်ပါသည် (requireMentionကိုtrueဟု သတ်မှတ်ပါ)။agents.list[].groupChat.mentionPatterns(သို့မဟုတ်messages.groupChat.mentionPatterns) ကိုလည်း mention အဖြစ် ရေတွက်ပါသည်။ - Multi-agent override: agent တစ်ခုချင်းစီအလိုက် pattern များကို
agents.list[].groupChat.mentionPatternsတွင် သတ်မှတ်ပါ။ - Reaction notification များသည်
channels.slack.reactionNotificationsကို လိုက်နာပါသည် (modeallowlistဖြင့်reactionAllowlistကို အသုံးပြုပါ)။ - user token ကို အလွန်အရေးကြီးသော အခွင့်အာဏာရှိသည့်အရာအဖြစ် သတ်မှတ်ပြီး action gates နှင့် allowlists များကို တင်းကျပ်စွာ ထိန်းသိမ်းပါ။bot မှ ရေးသားထားသော messages များကို မူလအနေဖြင့် မလက်ခံပါ —
channels.slack.allowBotsသို့မဟုတ်channels.slack.channels.<id>ဖြင့် ဖွင့်နိုင်သည်။ - .allowBots
.သတိပေးချက်: အခြား bot များထံ ပြန်ကြားမှုကို ခွင့်ပြုပါက (channels.slack.allowBots=trueသို့မဟုတ်channels.slack.channels..allowBots=true),requireMention,channels.slack.channels.<id> - Slack tool အတွက် reaction ဖယ်ရှားမှု အပြုအမူများကို /tools/reactions တွင် ဖော်ပြထားပါသည်။
- Attachment များကို ခွင့်ပြုထားပြီး အရွယ်အစားကန့်သတ်ချက်အောက်တွင် ရှိပါက media store သို့ ဒေါင်းလုဒ် ပြုလုပ်ပါသည်။