Channels 导读

Discord 接入:先拿 Token,再配频道,最后决定谁 @ 你

这页教你把 Discord Bot 接入 OpenClaw,核心三步:创建应用、启用 Message Content Intent、配对。最容易漏的是没开 Message Content Intent 导致收不到消息;另外群组 DM 默认关闭,需要手动开启。

先讲这一页到底在解决什么

Discord 接入:先拿 Token,再配频道,最后决定谁 @ 你

这页教你把 Discord Bot 接入 OpenClaw,核心三步:创建应用、启用 Message Content Intent、配对。最容易漏的是没开 Message Content Intent 导致收不到消息;另外群组 DM 默认关闭,需要手动开启。

原文共 20 节,先看 Start Here 路径:/channels/discord 查看官方原文

第一站

🏠 先想画面:Discord 像一栋楼,OpenClaw 先要有自己的房卡

Discord 通道的第一件事,不是写配置,而是先在 Discord Developer Portal 里造一个应用,再把 bot 请进你的服务器。

🪪 Bot Token 是工牌

你点 Reset Token,其实不是在“重置”什么,而是在拿到第一张真正能用的 bot 工牌。没有它,OpenClaw 连门都进不去。

🔎 Developer Mode 是找门牌

Discord 的 Server ID、User ID、Channel ID 都要靠开发者模式去复制。它像在楼里找房号,数字才是最稳的门牌。

📨 Invite URL 是请帖

你在 OAuth2 里勾选 botapplications.commands,再选好权限,生成的链接就像一张请帖,带着机器人走进你的服务器。

⭐ 如果你只先记一句

Discord 不是“登录一个账号”这么简单,它更像“先造机器人,再拿请帖,把它送进服务器”。

第二站

🛠 真正动手时,先做五件小事

原文的 quick setup 信息很多,但第一次上手最重要的顺序只有五步。

🎬 把这五步想成一个小剧情

先去 Discord 后台造应用,再把机器人送进你自己的服务器,接着把三个关键身份信息交给 OpenClaw,最后让它第一次在私聊里报到。

1. 创建应用和 bot

在 Discord Developer Portal 里点 New Application,再去 Bot 页面设置 bot 名字。这里就是先把“机器人同事”造出来。

2. 开启必要的权限开关

打开 Message Content Intent,最好再开 Server Members Intent。前者让它看得见消息内容,后者让它更容易做角色白名单和名字转 ID。

3. 把 bot 请进服务器

在 OAuth2 里生成 invite URL,勾上 botapplications.commands,再选好基本权限。这一步像拿请帖去前台登记,把机器人领进楼里。

4. 把 token 安全放好

Discord bot token 像密码,不要扔到聊天里。先放到环境变量或 SecretRef,再让 OpenClaw 读取。这样就像把钥匙锁进抽屉,而不是挂在门把手上。

5. 先让私聊跑起来

bot 先在 DM 里跟你报到,拿到 pairing code,再去批准。等私聊通了,再往 guild 频道扩。

💡 命令 / 配置怎么理解
  • openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN:像先把 bot 工牌放进环境变量柜子里,再告诉 OpenClaw 去那个柜子里取。
  • channels.discord.enabled: true:像把这条通道的开关打开,不然再好的工牌也不会上班。
  • openclaw pairing list discord:像翻门口登记簿,看看谁在等你批准。
  • openclaw pairing approve discord <CODE>:像把这个人从门口放进来,允许它和 bot 正式说话。

第三站

🚪 Discord 里要分清两扇门:私聊门和服务器门

原文的 access control 和 routing 其实就在讲这件事:DM 和 guild 不是同一个房间,门禁也不是同一套。

🚪

DM Policy

管私聊谁能来找 bot。pairing 是先登记,allowlist 是只认名单,open 是全放行,disabled 是干脆关门。

🏛

Guild Policy

管服务器频道怎么开门。默认安全基线是 allowlist,也就是先认你列出来的服务器,再决定它能不能说话。

📣

requireMention

管频道里是不是必须 @ 它才回应。默认是要点名的,这样它在群里不会乱插嘴。

🆔

稳定 ID 更靠谱

服务器名、用户名会变,数字 ID 不容易变。官方也一直在强调:做白名单,尽量用 ID。

⚠️ 这页最大的坑

Discord 里“我能私聊 bot”不等于“我能在服务器里随便说话”。DM 授权和 guild 授权是两套门。

第四站

🏢 如果你把服务器当工作区,OpenClaw 会给每个频道分小房间

原文还特地讲了 guild workspace。意思很直白:服务器里不同频道,能当成不同的工作小房间,各自有自己的会话。

🧩 服务器白名单

把 Server ID 放进 guilds,就像给这栋楼发了一张通行证。没有通行证,别的服务器就进不来。

🗂 频道独立会话

同一个服务器里的 #coding#home#research 可以各有各的 session,不会全塞成一锅粥。

📚 记忆怎么放

Discord 的 guild 频道默认不会像 DM 那样自动加载 MEMORY.md。如果你想让它记住长期信息,最好把稳定规则放进 AGENTS.mdUSER.md,长期笔记再用 memory 工具去取。

🎈 一句话收住

Discord 的服务器像一栋楼,频道像不同房间,OpenClaw 会尽量让它们各自安静地工作。

第五站

🧱 论坛频道和组件,是更高级的“门口告示牌”

如果你用 Discord 的论坛、媒体频道,或者想做按钮、表单、下拉菜单,这一段就很关键。它不是装饰,是让机器人更像一个会操作的小助手。

🧵

论坛频道

给论坛父频道发一条消息,就能自动开一个线程。像先在公告板上贴一张纸,再让它自己长成一个话题房间。

🔘

Interactive Components

按钮、下拉菜单、表单这些组件,都可以像现场小按钮一样,让人点一下再回到 OpenClaw 继续处理。

🪟

谁能点按钮

可以给按钮加 allowedUsers。这就像在按钮上写“只有这几个人可以按”。

📎

文件块怎么用

file 块要指向附件引用,像把文件名贴在贴纸上,再让系统把对应附件挂上去。

🛠 命令 / 配置像在做什么
  • openclaw message thread create:像手工把一个话题房间先开出来。
  • components.reusable: true:像给按钮装上可重复使用的小弹簧,不是按一次就报废。
  • /model/models:像给自己加一个“选老师”的互动菜单。

第六站

⌨️ 这些快捷命令,不只是名字好看,它们真的会管门

Discord 原文里还有 native commands、slash commands、thread bindings 和 ACP 绑定。它们的共同点是:不是让页面更花,而是让消息路由更聪明。

🧷 原生命令

commands.native 默认是 auto,Discord 会启用原生命令。你也可以把它关掉,等于把这类快捷入口收起来。

🪢 线程绑定

/focus/unfocus/agents 这些命令像把某个线程绑到一个固定会话上,方便后续一直在同一个小房间里说话。

🛠 命令 / 配置像在做什么
  • commands.native = false:像把 Discord 的原生快捷入口先收起来。
  • session.threadBindings.enabled:像告诉系统“线程绑定这件事我真的要用”。
  • bindings[] 配 ACP:像把某个 Discord 线程直接钉到一个固定代理身上,让它长期值班。
🎈 一句话收住

Discord 的命令不是摆设,它们是把“哪个房间归谁管”这件事做实的按钮。

最后总结

🎈 把 Discord 这页压缩成一句最好记的话

Discord 通道的本质,就是先造机器人、再给它请帖、再把私聊门和服务器门分别管好,最后让频道和线程各自安静工作。

如果你下一页只继续看一页,我建议先看 /channels/pairing/channels/troubleshooting。Discord 真正容易卡住的,通常不是“能不能连上”,而是“权限、门禁和频道规则有没有摆对”。