已可通过官方 Discord Gateway 网关用于私信和公会频道。Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
配对
斜杠命令
渠道故障排除
快速设置
你需要创建一个带有机器人的新应用,将机器人添加到你的服务器,并将它与 OpenClaw 配对。我们建议将你的机器人添加到你自己的私人服务器。如果你还没有服务器,请先创建一个(选择 Create My Own > For me and my friends)。创建 Discord 应用和机器人
启用特权 intents
- Message Content Intent(必需)
- Server Members Intent(推荐;角色 allowlist 和名称到 ID 匹配需要)
- Presence Intent(可选;仅在需要在线状态更新时才需要)
复制你的机器人令牌
生成邀请 URL 并将机器人添加到你的服务器
botapplications.commands
- View Channels Text Permissions
- Send Messages
- Read Message History
- Embed Links
- Attach Files
- Add Reactions(可选)
启用 Developer Mode 并收集你的 ID
- 点击 User Settings(头像旁边的齿轮图标)→ Advanced → 打开 Developer Mode
- 右键点击侧边栏中的 server icon → Copy Server ID
- 右键点击你自己的 own avatar → Copy User ID
允许来自服务器成员的私信
安全设置你的机器人令牌(不要在聊天中发送)
openclaw gateway run 进程。
对于托管服务安装,请在存在 DISCORD_BOT_TOKEN 的 shell 中运行 openclaw gateway install,或将该变量存储在 ~/.openclaw/.env 中,这样服务在重启后就能解析 env SecretRef。
如果你的主机被 Discord 的启动应用查询阻止或限速,请从 Developer Portal 设置 Discord 应用/客户端 ID,这样启动时就能跳过该 REST 调用。默认账号使用 channels.discord.applicationId;运行多个 Discord 机器人时使用 channels.discord.accounts.<accountId>.applicationId。配置 OpenClaw 并配对
- 询问你的智能体
- CLI / 配置
“我已经在配置中设置了 Discord 机器人令牌。请使用 User ID<user_id>和 Server ID<server_id>完成 Discord 设置。”
DISCORD_BOT_TOKEN 仅用于默认账号。
如果两个已启用的 Discord 账号解析到同一个机器人令牌,OpenClaw 只会为该令牌启动一个 Gateway 网关监视器。来自配置的令牌优先于默认 env 回退;否则第一个启用的账号胜出,重复账号会被报告为已禁用。
对于高级出站调用(消息工具/渠道操作),显式的按调用 token 会用于该调用。这适用于发送和读取/探测类操作(例如读取/搜索/获取/线程/pins/权限)。账号策略/重试设置仍来自活动运行时快照中选定的账号。推荐:设置公会工作区
私信可用后,你可以将 Discord 服务器设置为完整工作区,其中每个频道都会获得自己的智能体会话,并拥有自己的上下文。对于只有你和你的机器人的私人服务器,推荐这样做。将你的服务器添加到公会 allowlist
- 询问你的智能体
- 配置
“将我的 Discord Server ID <server_id> 添加到公会 allowlist”
允许无需 @mention 即可响应
message 工具显式发送,因此智能体默认可以静默观察,只在判断频道回复有用时才发帖。这意味着选定的模型必须能可靠调用工具。如果 Discord 显示正在输入,日志显示有令牌用量,但没有发布消息,请检查会话日志中是否有带 didSendViaMessagingTool: false 的助手文本。这表示模型生成了私密最终答案,而不是调用 message(action=send)。请切换到更强的工具调用模型,或使用下面的配置恢复旧版自动最终回复。- 询问你的智能体
- 配置
“允许我的智能体在这个服务器上响应,而不必被 @mentioned”
#coding、#home、#research,或任何适合你工作流的频道。
运行时模型
- Gateway 网关拥有 Discord 连接。
- 回复路由是确定性的:Discord 入站回复会回到 Discord。
- Discord guild/渠道元数据会作为不受信任的上下文添加到模型提示中,而不是作为用户可见的回复前缀。如果模型把该包络复制回来,OpenClaw 会从出站回复和未来的回放上下文中剥离复制的元数据。
- 默认情况下(
session.dmScope=main),直接聊天共享智能体主会话(agent:main:main)。 - Guild 渠道使用隔离的会话键(
agent:<agentId>:discord:channel:<channelId>)。 - 群组私信默认会被忽略(
channels.discord.dm.groupEnabled=false)。 - 原生斜杠命令在隔离的命令会话中运行(
agent:<agentId>:discord:slash:<userId>),同时仍携带CommandTargetSessionKey到已路由的对话会话。 - 面向 Discord 的纯文本 cron/heartbeat 通告投递会使用最终的助手可见答案一次。媒体和结构化组件载荷在智能体发出多个可投递载荷时仍保持多消息形式。
论坛渠道
Discord 论坛和媒体渠道只接受线程帖子。OpenClaw 支持两种创建方式:- 向论坛父级(
channel:<forumId>)发送消息以自动创建线程。线程标题使用你消息中的第一个非空行。 - 使用
openclaw message thread create直接创建线程。不要为论坛渠道传入--message-id。
channel:<threadId>)。
交互式组件
OpenClaw 支持用于智能体消息的 Discord components v2 容器。使用带有components 载荷的消息工具。交互结果会作为普通入站消息路由回智能体,并遵循现有 Discord replyToMode 设置。
支持的区块:
text、section、separator、actions、media-gallery、file- Action rows 最多允许 5 个按钮或一个选择菜单
- 选择类型:
string、user、role、mentionable、channel
components.reusable=true 以允许按钮、选择框和表单在过期前多次使用。
要限制谁可以点击按钮,请在该按钮上设置 allowedUsers(Discord 用户 ID、标签或 *)。配置后,不匹配的用户会收到一条 ephemeral 拒绝消息。
/model 和 /models 斜杠命令会打开一个交互式模型选择器,其中包含提供商、模型和兼容运行时下拉框以及一个提交步骤。/models add 已弃用,现在会返回弃用消息,而不是从聊天中注册模型。选择器回复是 ephemeral,且只有调用用户可以使用它。
文件附件:
file区块必须指向附件引用(attachment://<filename>)- 通过
media/path/filePath提供附件(单个文件);多个文件请使用media-gallery - 当上传名称应与附件引用匹配时,使用
filename覆盖上传名称
- 添加
components.modal,最多包含 5 个字段 - 字段类型:
text、checkbox、radio、select、role-select、user-select - OpenClaw 会自动添加触发按钮
访问控制和路由
- DM policy
- DM access groups
- Guild policy
- Mentions and group DMs
channels.discord.dmPolicy 控制私信访问。channels.discord.allowFrom 是规范的私信允许列表。pairing(默认)allowlistopen(要求channels.discord.allowFrom包含"*")disabled
pairing 模式下提示配对)。多账号优先级:channels.discord.accounts.default.allowFrom仅适用于default账号。- 对于单个账号,
allowFrom优先于旧版dm.allowFrom。 - 当命名账号自身的
allowFrom和旧版dm.allowFrom未设置时,它们会继承channels.discord.allowFrom。 - 命名账号不会继承
channels.discord.accounts.default.allowFrom。
channels.discord.dm.policy 和 channels.discord.dm.allowFrom 仍会为兼容性读取。openclaw doctor --fix 会在不改变访问权限的情况下,将它们迁移到 dmPolicy 和 allowFrom。用于投递的私信目标格式:user:<id><@id>提及
allowFrom 中列出的 ID 会为了兼容性被视为用户私信目标。基于角色的智能体路由
使用bindings[].match.roles 按角色 ID 将 Discord guild 成员路由到不同智能体。基于角色的绑定仅接受角色 ID,并在 peer 或 parent-peer 绑定之后、guild-only 绑定之前求值。如果绑定还设置了其他匹配字段(例如 peer + guildId + roles),则所有已配置字段都必须匹配。
原生命令和命令认证
commands.native默认为"auto",并为 Discord 启用。- 按渠道覆盖:
channels.discord.commands.native。 commands.native=false会在启动期间跳过 Discord 斜杠命令注册和清理。先前注册的命令可能仍会在 Discord 中可见,直到你从 Discord 应用中移除它们。- 原生命令鉴权使用与普通消息处理相同的 Discord allowlist/策略。
- 对未授权的用户,命令可能仍会在 Discord UI 中可见;执行时仍会强制应用 OpenClaw 鉴权,并返回 “not authorized”。
ephemeral: true
功能详情
Reply tags and native replies
Reply tags and native replies
Live stream preview
Live stream preview
channels.discord.streaming 接受 off(默认)| partial | block | progress。progress 会保留一个可编辑的 Status 草稿,并用工具进度更新它,直到最终送达;streamMode 是旧版别名,会自动迁移。默认保持为 off,因为当多个机器人或 Gateway 网关共享一个账号时,Discord 预览编辑会很快触发速率限制。partial会在 token 到达时编辑单条预览消息。block会发出草稿大小的分块(使用draftChunk调整大小和断点,并限制在textChunkLimit内)。- 媒体、错误和显式回复的最终消息会取消待处理的预览编辑。
streaming.preview.toolProgress(默认true)控制工具/进度更新是否复用预览消息。streaming.preview.commandText/streaming.progress.commandText控制紧凑进度行中的命令/执行详情:raw(默认)或status(仅工具标签)。
block 流式传输时,OpenClaw 会跳过预览流,以避免双重流式传输。History, context, and thread behavior
History, context, and thread behavior
channels.discord.historyLimit默认值20- 回退:
messages.groupChat.historyLimit 0禁用
channels.discord.dmHistoryLimitchannels.discord.dms["<user_id>"].historyLimit
- Discord 线程会作为渠道会话路由,并继承父渠道配置,除非被覆盖。
- 线程会话会继承父渠道的会话级
/model选择,作为仅模型回退;线程本地的/model选择仍优先,并且不会复制父转录历史,除非启用了转录继承。 channels.discord.thread.inheritParent(默认false)会让新的自动线程选择从父转录播种。按账号覆盖位于channels.discord.accounts.<id>.thread.inheritParent下。- 消息工具 reaction 可以解析
user:<id>私信目标。 guilds.<guild>.channels.<channel>.requireMention: false会在回复阶段激活回退期间保留。
Thread-bound sessions for subagents
Thread-bound sessions for subagents
/focus <target>将当前/新线程绑定到子智能体/会话目标/unfocus移除当前线程绑定/agents显示活跃运行和绑定状态/session idle <duration|off>查看/更新已聚焦绑定的不活跃自动取消聚焦设置/session max-age <duration|off>查看/更新已聚焦绑定的硬性最长存续时间
session.threadBindings.*设置全局默认值。channels.discord.threadBindings.*覆盖 Discord 行为。spawnSessions控制为sessions_spawn({ thread: true })和 ACP 线程生成自动创建/绑定线程。默认:true。defaultSpawnContext控制线程绑定生成的原生子智能体上下文。默认:"fork"。- 已弃用的
spawnSubagentSessions/spawnAcpSessions键会由openclaw doctor --fix迁移。 - 如果某个账号禁用了线程绑定,则
/focus和相关线程绑定操作不可用。
Persistent ACP channel bindings
Persistent ACP channel bindings
bindings[],其中包含type: "acp"和match.channel: "discord"
/acp spawn codex --bind here会就地绑定当前渠道或线程,并让未来消息保持在同一个 ACP 会话上。线程消息会继承父渠道绑定。- 在已绑定的渠道或线程中,
/new和/reset会就地重置同一个 ACP 会话。临时线程绑定在活跃时可以覆盖目标解析。 spawnSessions通过--thread auto|here控制子线程创建/绑定。
Reaction notifications
Reaction notifications
offown(默认)allallowlist(使用guilds.<id>.users)
Ack reactions
Ack reactions
ackReaction 会在 OpenClaw 处理入站消息时发送确认 emoji。解析顺序:channels.discord.accounts.<accountId>.ackReactionchannels.discord.ackReactionmessages.ackReaction- 智能体身份 emoji 回退(
agents.list[].identity.emoji,否则为 ”👀”)
- Discord 接受 Unicode emoji 或自定义 emoji 名称。
- 使用
""可为某个渠道或账号禁用 reaction。
Config writes
Config writes
/config set|unset 流程(当命令功能启用时)。禁用:Gateway proxy
Gateway proxy
channels.discord.proxy 通过 HTTP(S) 代理路由 Discord gateway WebSocket 流量和启动时 REST 查询(应用 ID + allowlist 解析)。PluralKit support
PluralKit support
- allowlist 可以使用
pk:<memberId> - 仅当
channels.discord.dangerouslyAllowNameMatching: true时,才会按名称/slug 匹配成员显示名 - 查询使用原始消息 ID,并受时间窗口限制
- 如果查询失败,代理消息会被视为机器人消息并丢弃,除非
allowBots=true
Outbound mention aliases
Outbound mention aliases
mentionAliases。键是不带前导 @ 的 handle;值是 Discord 用户 ID。未知 handle、@everyone、@here 以及 Markdown 代码 span 内的提及会保持不变。Presence configuration
Presence configuration
- 0:正在玩
- 1:流式传输(需要
activityUrl) - 2:正在听
- 3:正在观看
- 4:自定义(使用 activity 文本作为 Status 状态;emoji 可选)
- 5:正在竞赛
autoPresence.healthyTextautoPresence.degradedTextautoPresence.exhaustedText(支持{reason}占位符)
Discord 中的审批
Discord 中的审批
channels.discord.execApprovals.enabledchannels.discord.execApprovals.approvers(可选;可能时回退到commands.ownerAllowFrom)channels.discord.execApprovals.target(dm|channel|both,默认:dm)agentFilter、sessionFilter、cleanupAfterResolve
enabled 未设置或为 "auto",且至少可以从 execApprovals.approvers 或 commands.ownerAllowFrom 解析出一个审批人时,Discord 会自动启用原生 exec 审批。Discord 不会从渠道 allowFrom、旧版 dm.allowFrom 或直接消息 defaultTo 推断 exec 审批人。设置 enabled: false 可明确禁用 Discord 作为原生审批客户端。对于 /diagnostics 和 /export-trajectory 等敏感的仅所有者群组命令,OpenClaw 会私下发送审批提示和最终结果。当调用的所有者有 Discord 所有者路由时,它会优先尝试 Discord 私信;如果不可用,则回退到 commands.ownerAllowFrom 中第一个可用的所有者路由,例如 Telegram。当 target 为 channel 或 both 时,审批提示会在渠道中可见。只有已解析的审批人可以使用按钮;其他用户会收到一条临时拒绝消息。审批提示包含命令文本,因此只应在受信任的渠道中启用渠道投递。如果无法从会话键派生渠道 ID,OpenClaw 会回退到私信投递。Discord 还会渲染其他聊天渠道使用的共享审批按钮。原生 Discord 适配器主要添加审批人私信路由和渠道扇出。
当这些按钮存在时,它们是主要审批用户体验;OpenClaw
只有在工具结果表明聊天审批不可用,或手动审批是唯一路径时,
才应包含手动 /approve 命令。
如果 Discord 原生审批运行时未激活,OpenClaw 会保持
本地确定性的 /approve <id> <decision> 提示可见。如果
运行时已激活但无法向任何目标投递原生卡片,
OpenClaw 会在同一聊天中发送回退通知,其中包含待处理审批中的精确 /approve
命令。Gateway 网关认证和审批解析遵循共享 Gateway 网关客户端契约(plugin: ID 通过 plugin.approval.resolve 解析;其他 ID 通过 exec.approval.resolve 解析)。审批默认在 30 分钟后过期。参见 Exec 审批。工具和操作门禁
Discord 消息操作包括消息、渠道管理、审核、状态和元数据操作。 核心示例:- 消息:
sendMessage、readMessages、editMessage、deleteMessage、threadReply - 表情回应:
react、reactions、emojiList - 审核:
timeout、kick、ban - 状态:
setPresence
event-create 操作接受可选的 image 参数(URL 或本地文件路径),用于设置定时事件封面图片。
操作门禁位于 channels.discord.actions.* 下。
默认门禁行为:
| 操作组 | 默认值 |
|---|---|
| reactions, messages, threads, pins, polls, search, memberInfo, roleInfo, channelInfo, channels, voiceStatus, events, stickers, emojiUploads, stickerUploads, permissions | enabled |
| roles | disabled |
| moderation | disabled |
| presence | disabled |
Components v2 UI
OpenClaw 对 exec 审批和跨上下文标记使用 Discord components v2。Discord 消息操作也可以接受components 以实现自定义 UI(高级;需要通过 discord 工具构造组件载荷),旧版 embeds 仍可使用,但不推荐。
channels.discord.ui.components.accentColor设置 Discord 组件容器使用的强调色(十六进制)。- 使用
channels.discord.accounts.<id>.ui.components.accentColor为每个账号设置。 - 当 components v2 存在时,
embeds会被忽略。
语音
Discord 有两个不同的语音表面:实时 语音频道(连续对话)和 语音消息附件(波形预览格式)。Gateway 网关同时支持两者。语音频道
设置检查清单:- 在 Discord Developer Portal 中启用 Message Content Intent。
- 使用角色/用户允许列表时,启用 Server Members Intent。
- 使用
bot和applications.commandsscopes 邀请机器人。 - 在目标语音频道中授予 Connect、Speak、Send Messages 和 Read Message History 权限。
- 启用原生命令(
commands.native或channels.discord.commands.native)。 - 配置
channels.discord.voice。
/vc join|leave|status 控制会话。该命令使用账号默认智能体,并遵循与其他 Discord 命令相同的允许列表和群组策略规则。
voice.tts仅针对语音播放覆盖messages.tts。voice.model仅覆盖用于 Discord 语音频道响应的 LLM。保持未设置可继承已路由的智能体模型。- STT 使用
tools.media.audio;voice.model不影响转录。 - 每个渠道的 Discord
systemPrompt覆盖会应用于该语音频道的语音转录轮次。 - 语音转录轮次会从 Discord
allowFrom(或dm.allowFrom)派生所有者状态;非所有者说话者无法访问仅所有者工具(例如gateway和cron)。 - Discord 语音对于纯文本配置是选择加入;设置
channels.discord.voice.enabled=true(或保留现有channels.discord.voice块)以启用/vc命令、语音运行时和GuildVoiceStatesgateway intent。 channels.discord.intents.voiceStates可以显式覆盖 voice-state intent 订阅。保持未设置时,该 intent 会跟随有效的语音启用状态。voice.daveEncryption和voice.decryptionFailureTolerance会透传给@discordjs/voice加入选项。- 如果未设置,
@discordjs/voice默认值为daveEncryption=true和decryptionFailureTolerance=24。 voice.connectTimeoutMs控制/vc join和自动加入尝试的初始@discordjs/voiceReady 等待时间。默认值:30000。voice.reconnectGraceMs控制 OpenClaw 在销毁已断开的语音会话前,等待其开始重新连接的时长。默认值:15000。- OpenClaw 还会监视接收端解密失败,并在短时间窗口内重复失败后通过离开/重新加入语音频道自动恢复。
- 如果更新后接收日志反复显示
DecryptionFailed(UnencryptedWhenPassthroughDisabled),请收集依赖报告和日志。内置的@discordjs/voice行包含来自 discord.js PR #11449 的上游填充修复,该修复关闭了 discord.js issue #11419。
- Discord PCM 捕获会转换为 WAV 临时文件。
tools.media.audio处理 STT,例如openai/gpt-4o-mini-transcribe。- 转录会通过 Discord 入口和路由发送,同时响应 LLM 会使用语音输出策略运行,该策略隐藏智能体
tts工具并要求返回文本,因为 Discord 语音负责最终 TTS 播放。 - 设置
voice.model时,它仅覆盖此语音频道轮次的响应 LLM。 voice.tts会合并覆盖messages.tts;生成的音频会在已加入的频道中播放。
voice.model 的 LLM 路由认证、tools.media.audio 的 STT 认证,以及 messages.tts/voice.tts 的 TTS 认证。
语音消息
Discord 语音消息会显示波形预览,并要求 OGG/Opus 音频。OpenClaw 会自动生成波形,但需要 gateway 主机上的ffmpeg 和 ffprobe 来检查和转换。
- 提供 本地文件路径(URL 会被拒绝)。
- 省略文本内容(Discord 会拒绝同一载荷中的文本 + 语音消息)。
- 接受任意音频格式;OpenClaw 会按需转换为 OGG/Opus。
故障排除
使用了不允许的 intents,或机器人看不到服务器消息
使用了不允许的 intents,或机器人看不到服务器消息
- 启用 Message Content Intent
- 当你依赖用户/成员解析时,启用 Server Members Intent
- 更改 intents 后重启 gateway
服务器消息被意外阻止
服务器消息被意外阻止
- 验证
groupPolicy - 验证
channels.discord.guilds下的服务器允许列表 - 如果服务器
channels映射存在,则只允许列出的渠道 - 验证
requireMention行为和提及模式
Require mention 为 false 但仍被阻止
Require mention 为 false 但仍被阻止
groupPolicy="allowlist"但没有匹配的服务器/渠道允许列表requireMention配置在了错误位置(必须位于channels.discord.guilds或渠道条目下)- 发送者被服务器/渠道
users允许列表阻止
长时间运行的 Discord 轮次或重复回复
长时间运行的 Discord 轮次或重复回复
Slow listener detected ...stuck session: sessionKey=agent:...:discord:... state=processing ...
- 单账号:
channels.discord.eventQueue.listenerTimeout - 多账号:
channels.discord.accounts.<accountId>.eventQueue.listenerTimeout - 这只控制 Discord gateway 监听器工作,而不是智能体轮次生命周期
Gateway 网关元数据查找超时警告
Gateway 网关元数据查找超时警告
/gateway/bot 元数据。短暂故障会回退到 Discord 的默认网关 URL,并在日志中限频记录。元数据超时配置项:- 单账号:
channels.discord.gatewayInfoTimeoutMs - 多账号:
channels.discord.accounts.<accountId>.gatewayInfoTimeoutMs - 配置未设置时的环境变量回退:
OPENCLAW_DISCORD_GATEWAY_INFO_TIMEOUT_MS - 默认值:
30000(30 秒),最大值:120000
Gateway 网关 READY 超时重启
Gateway 网关 READY 超时重启
READY 事件。带启动错峰的多账号设置可能需要比默认值更长的启动 READY 等待窗口。READY 超时配置项:- 启动单账号:
channels.discord.gatewayReadyTimeoutMs - 启动多账号:
channels.discord.accounts.<accountId>.gatewayReadyTimeoutMs - 配置未设置时的启动环境变量回退:
OPENCLAW_DISCORD_READY_TIMEOUT_MS - 启动默认值:
15000(15 秒),最大值:120000 - 运行时单账号:
channels.discord.gatewayRuntimeReadyTimeoutMs - 运行时多账号:
channels.discord.accounts.<accountId>.gatewayRuntimeReadyTimeoutMs - 配置未设置时的运行时环境变量回退:
OPENCLAW_DISCORD_RUNTIME_READY_TIMEOUT_MS - 运行时默认值:
30000(30 秒),最大值:120000
权限审计不匹配
权限审计不匹配
channels status --probe 权限检查仅适用于数字渠道 ID。如果你使用 slug 键,运行时匹配仍可工作,但探测无法完整验证权限。私信和配对问题
私信和配对问题
- 私信已禁用:
channels.discord.dm.enabled=false - 私信策略已禁用:
channels.discord.dmPolicy="disabled"(旧版:channels.discord.dm.policy) - 在
pairing模式中等待配对批准
机器人到机器人循环
机器人到机器人循环
语音 STT 遇到 DecryptionFailed(...) 时丢失
语音 STT 遇到 DecryptionFailed(...) 时丢失
- 保持 OpenClaw 为最新版本(
openclaw update),确保包含 Discord 语音接收恢复逻辑 - 确认
channels.discord.voice.daveEncryption=true(默认) - 从
channels.discord.voice.decryptionFailureTolerance=24(上游默认值)开始,仅在需要时调整 - 在日志中留意:
discord voice: DAVE decrypt failures detecteddiscord voice: repeated decrypt failures; attempting rejoin
- 如果自动重新加入后故障仍继续,请收集日志,并与 discord.js #11419 和 discord.js #11449 中的上游 DAVE 接收历史进行对比
配置参考
主要参考:配置参考 - Discord。高价值 Discord 字段
高价值 Discord 字段
- 启动/身份验证:
enabled、token、accounts.*、allowBots - 策略:
groupPolicy、dm.*、guilds.*、guilds.*.channels.* - 命令:
commands.native、commands.useAccessGroups、configWrites、slashCommand.* - 事件队列:
eventQueue.listenerTimeout(监听器预算)、eventQueue.maxQueueSize、eventQueue.maxConcurrency - 网关:
gatewayInfoTimeoutMs、gatewayReadyTimeoutMs、gatewayRuntimeReadyTimeoutMs - 回复/历史记录:
replyToMode、historyLimit、dmHistoryLimit、dms.*.historyLimit - 发送:
textChunkLimit、chunkMode、maxLinesPerMessage - 流式传输:
streaming(旧版别名:streamMode)、streaming.preview.toolProgress、draftChunk、blockStreaming、blockStreamingCoalesce - 媒体/重试:
mediaMaxMb(限制传出的 Discord 上传,默认100MB)、retry - 操作:
actions.* - 在线状态:
activity、status、activityType、activityUrl - UI:
ui.components.accentColor - 功能:
threadBindings、顶层bindings[](type: "acp")、pluralkit、execApprovals、intents、agentComponents、heartbeat、responsePrefix
安全和运维
- 将机器人令牌视为机密(在受管环境中优先使用
DISCORD_BOT_TOKEN)。 - 只授予最低必要的 Discord 权限。
- 如果命令部署/状态已过期,请重启 Gateway 网关,并用
openclaw channels status --probe重新检查。