Discord聊天

通过message工具在Discord频道实现消息发送、回复、搜索、读取、回应、编辑与删除,支持线程回复和消息管理。

天轰穿

@thcjp

Install

$ openclaw skills install @thcjp/discord-chat

核心功能: 本技能提供中文交互、化工作流场景等能力。

Discord Chat

输入规范

参数名类型必填说明
inputstringDiscord Chat处理的输入数据或指令
optionsobject附加配置选项,如模式选择、格式偏好等
callback_urlstring异步处理完成后的回调通知URL

专业版增值服务

能力免费版付费版
基础功能支持支持
多渠道消息批量发送不支持支持
消息模板与变量注入不支持支持
送达状态实时回调不支持支持
通信记录归档与检索不支持支持
消息频控与智能排队不支持支持

能力总览

消息发送

message action=send channel=discord target="#channel-name" message="你的消息"
message action=send channel=discord target="1234567890" message="按 ID 发送"
  • target 支持带 # 前缀的频道名或裸频道 ID.
  • 多链接用 <> 包裹抑制预览:<https://example.com>.
  • 支持消息特效:effect=balloonseffectId=invisible-ink.
  • 不支持 markdown 表格,改用项目符号列表.

线程回复

message action=send channel=discord target="#channel-name" message="回复内容" replyTo="message-id"
  • replyTo 以指定消息 ID 创建线程式回复.

全文搜索

message action=search channel=discord channelId="1234567890" query="搜索词" limit=50
  • query:搜索关键词.
  • authorId:按作者过滤.
  • before/after/around:以消息 ID 分页.
  • limit:最大返回数,默认 25.

历史读取

message action=read channel=discord target="#channel-name" limit=20

表情回应

message action=react channel=discord messageId="1234567890" emoji="👍"

消息编辑与删除

message action=edit channel=discord messageId="1234567890" message="更新后的文本"
message action=delete channel=discord messageId="1234567890"

频道管理

message action=channel-list channel=discord guildId="server-id"
message action=channel-info channel=discord channelId="1234567890"

典型场景

场景一:社区答疑机器人

  • 输入:用户提问"如何配置 webhook",频道 #support.
  • 输出:机器人 action=search 检索历史中已有答案,action=send replyTo 回复提问消息并附上历史解答链接.

场景二:通知广播

  • 输入:公告文本"今晚 20:00 维护",频道 #announcements.
  • 输出:action=send target="#announcements" 发送公告,action=react emoji="📌" 标记,并通过 channel-list 同步到子公告频道.

场景三:历史内容检索归档

  • 输入:服务器 guildId、关键词"release notes"、时间范围.
  • 输出:跨频道 action=search 分页拉取匹配消息,提取作者、时间、内容写入本地归档文件.

使用指南

  1. 确认配置:Discord bot 已在 gateway config 中配置,channel=discord 能正确路由到 Discord 插件.
  2. 定位目标频道:优先用 target="#频道名"(更可读);频道名含特殊字符或需精确控制时用频道 ID。可用 channel-list 查询服务器频道清单.
  3. 检索先行:答疑或归档场景先 action=search 查历史,避免重复提问;读取近况用 action=read limit=N.
  4. 发送与回复:action=send 发新消息;需关联某条消息用 replyTo;纯确认用 action=react 优于回复.
  5. 维护消息:对已发消息用 action=edit 修正内容,过期信息用 action=delete 清理.
  6. 格式适配:Discord 用项目符号而非表格,链接用 <> 抑制预览,短句优于长段落.

案例展示

案例 1:搜索历史并回复

目标:用户在 #support 问"webhook 怎么配",检索历史答案并回复.

message action=search channel=discord channelId="1234567890" query="webhook 配置" limit=10

找到历史解答消息 ID 9988776655,向提问用户回复:

message action=send channel=discord target="#support" message="webhook 配置见 <https://docs.example.com/webhook>,之前也有讨论" replyTo="1122334455"

结果:提问消息下出现线程式回复,附带文档链接与历史讨论引用.

案例 2:多频道通知广播

目标:向 #announcements#general 同步维护通知.

message action=send channel=discord target="#announcements" message="**今晚 20:00-22:00 维护**,期间服务暂停"

返回消息 ID 4455667788 后标记:

message action=react channel=discord messageId="4455667788" emoji="📌"
message action=send channel=discord target="#general" message="维护通知已发 #announcements,请提前知悉"

结果:主公告频道发布并置顶标记,通用频道同步提醒.

案例 3:按作者分页检索归档

目标:检索 #dev-log 中作者 userId=444 在某消息之后的所有发布,每页 50 条.

message action=search channel=discord channelId="555000555000" authorId="444" after="777888999000" limit=50

翻页时将上一页最后一条消息 ID 作为新的 after 值继续检索,直至返回为空,提取内容写入 file:///tmp/dev-log-archive.md.

异常处置

错误场景触发原因处理方式
频道名找不到target="#name" 拼写错误或机器人不在该服务器channel-list guildId 核对频道名;确认机器人已加入目标服务器
replyTo 无效指定的 message-id 不存在或已删除action=read 确认消息存在;私信消息无法跨频道回复
搜索无结果query 过于具体或该频道未开启搜索权限放宽关键词;改用 authorIdbefore/after 分页缩小范围;确认服务器搜索权限
editMessage 失败目标消息非机器人发送,或超过编辑时限Discord 仅允许编辑自己发送的消息;超时后改用 action=send 补发更正
删除被拒机器人缺少 MANAGE_MESSAGES 权限或目标非自己发送由服务器管理员授予 MANAGE_MESSAGES;非自身消息需相应权限
特效无效effect=balloons 在非支持频道或未开通消息特效仅部分频道/服务器可用,改用纯文本发送
搜索分页丢失未用上一页最后消息 ID 作为 after严格链式分页:每次取末条 ID 作为下次 after,不可跳跃
频道 ID 与名称混用导致歧义target 同时含 # 与纯数字统一规范:用名称带 #,用 ID 则纯数字不带 #

问答集成

Q1:target 用频道名和频道 ID 有什么区别?

频道名带 # 前缀(如 #general)更可读,适合常用频道;频道 ID(纯数字)更精确,适合频道名含特殊字符或存在重名的场景。两者效果一致,推荐日常用名称、自动化脚本用 ID.

Q2:replyTo 和普通 send 有什么区别?

普通 action=send 在频道发一条独立消息;带 replyTo="消息ID" 会以线程回复的形式挂在指定消息下方,适合答疑和上下文关联。注意 replyTo 的消息必须与 target 在同一频道.

Q3:搜索支持哪些过滤条件?

query(关键词)、authorId(按作者)、before/after/around(以消息 ID 分页)、limit(最大返回数,默认 25)。可组合使用,例如按作者 + 时间范围精确检索.

Q4:为什么我的消息里表格显示成一堆竖线?

Discord 不渲染 markdown 表格,会把 | 列 | 列 | 原样显示。应改用项目符号列表(- 项目)或粗体分组来呈现结构化信息.

Q5:消息特效 effect=balloons 在所有频道都能用吗?

不能。消息特效受服务器 Boost 等级和频道设置约束,部分服务器未开通。特效失效时不会报错但无视觉效果,建议关键通知仍以文本为主.

Q6:如何批量清理某频道的旧消息?

message 工具不提供批量删除接口。可循环 action=search 取目标消息 ID 列表,逐条 action=delete 执行,注意 Discord 速率限制(约每频道每秒限若干次).

错误恢复方案

错误场景原因处理方式
LLM响应超时或无响应网络延迟或模型负载过高请求重试;确认Agent平台LLM服务正常
输入内容格式不正确用户输入不符合skill预期格式检查输入是否符合skill使用说明中的格式要求,参考示例章节
执行结果与预期不符指令描述不够明确或上下文不足提供更详细的指令描述,补充必要的上下文信息
命令执行失败运行环境不满足要求或权限不足确认运行环境符合依赖说明中的要求;检查命令权限设置

功能边界

  • 所有操作依赖 gateway config 中配置的 Discord bot token,未配置时 channel=discord 无法路由.
  • action=edit 仅能编辑机器人自己发送的消息,他人消息无法编辑.
  • action=delete 删除他人消息需 MANAGE_MESSAGES 权限,否则只能删自己的.
  • 消息特效(effect/effectId)受服务器 Boost 等级约束,并非所有频道可用.
  • 搜索(action=search)依赖服务器开启搜索权限,大型服务器可能延迟较高.
  • limit 默认 25,搜索与读取均有上限,大量历史需通过 before/after 链式分页.
  • markdown 表格不被渲染,结构化内容应改用列表.
  • 受 Discord 全局与按频道速率限制,高频操作会被 429 限流,需自行节流.

安装与配置

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux

依赖项

依赖项类型是否必需获取方式
LLM APIAPI必需由Agent内置LLM提供

API Key 配置

需要配置对应API Key,详见上文环境配置章节

可用性分类

  • 分类: MD+EXEC()

API Key配置方式:

export API_KEY="${API_KEY:?请设置环境变量}"

配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.

诊断与修复

错误现象可能原因诊断步骤解决方案
消息发送失败网络连接不稳定或Discord服务器维护检查网络连接,确认Discord服务器状态重试发送,如果问题持续,检查网络连接或等待服务器恢复
消息搜索无结果关键词拼写错误或搜索权限不足仔细检查关键词拼写,确认机器人拥有搜索权限修正关键词,确保机器人权限配置正确
消息编辑失败消息不是由机器人发送确认消息发送者,如果非机器人发送,无法编辑发送新消息替换原有内容
消息删除失败机器人权限不足或消息不是由机器人发送确认机器人权限,如果消息非机器人发送,无法删除由服务器管理员调整权限或发送新消息替代
消息特效无效服务器不支持特效或频道设置限制检查服务器设置和频道权限联系服务器管理员调整设置或使用纯文本消息

安全规范

风险项等级防护措施验证方法
API密钥泄露使用环境变量存储API密钥,避免代码仓库泄露定期检查代码仓库,确保API密钥未泄露
机器人权限滥用限制机器人权限,仅授予必要权限定期审计机器人权限,确保无滥用
消息内容敏感信息泄露对敏感信息进行脱敏处理定期检查消息内容,确保敏感信息未泄露
搜索结果误导限制搜索关键词,避免误导性搜索结果定期检查搜索结果,确保无误导性内容
速率限制绕过遵守Discord速率限制,避免被限流监控操作日志,确保操作未触发速率限制
恶意代码注入对输入数据进行验证和过滤,防止恶意代码注入定期进行安全扫描,确保无恶意代码

创新特色

场景效率提升量化分析
社区答疑通过自动化搜索历史答案,将平均响应时间从5分钟缩短到30秒
通知广播通过自动化发送通知,将平均通知时间从10分钟缩短到2分钟
历史内容检索通过自动化检索历史消息,将平均检索时间从30分钟缩短到5分钟
频道管理通过自动化频道管理,将平均管理时间从1小时缩短到10分钟
对比项差异化对比
自动化程度相比手动操作,自动化程度提高80%
操作效率相比手动操作,操作效率提高50%
精确度自动化操作精确度更高,减少人为错误
可扩展性自动化系统易于扩展,适应不同场景需求
成本效益自动化系统降低人力成本,提高工作效率

功能介绍

  • 自动化执行: 通过message工具在Discord频道发消息、回复、搜索、读取、回应、编辑与删除。discord-chat 通过 m
  • 文件处理: 支持多种文件格式的读取、解析和写入操作
  • API集成: 通过标准化接口调用外部服务并处理响应
  • 命令执行: 在安全沙箱中执行系统命令并收集结果
  • 信息检索: 快速搜索和过滤目标数据

技术支持

Q1: Discord聊天支持哪些输入格式?

A1: 通过message工具在Discord频道发消息、回复、搜索、读取、回应、编辑与删除。discord-chat 通过 message 工具与 Discord。支持文本指令和结构化参数输入,具体格式参考使用流程章节。

Q2: 需要配置API Key吗?

A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。

Q3: 命令行执行失败怎么办?

A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。

效率指标

操作场景手动耗时自动化耗时效率提升
文件解析与提取5-10分钟/个<5秒/个60-120x
批量文件处理(100个)8-16小时<5分钟96-192x
API调用与响应解析2-3分钟/次<1秒/次120-180x
多接口数据聚合15-30分钟<10秒90-180x
命令执行与结果收集3-5分钟/次<2秒/次90-150x
重复任务批量执行因任务而异线性缩减5-50x
错误排查与修复10-30分钟<30秒20-60x

优势分析

对比维度Discord聊天传统手动方式通用脚本工具
自动化程度全流程自动完全手动部分自动
错误处理内置错误恢复依赖人工经验基本try-catch
可复用性参数化配置一次性脚本模板化
安全合规内置安全检查无安全保障无安全保障
适用场景通过message工具在Discord频道发消息、回复、搜索、读取、回应、编辑与通用场景通用场景

Discord聊天通用排查步骤

  1. 检查输入参数: 确认所有必填参数已提供且格式正确
  2. 查看日志输出: 定位具体错误行和异常类型
  3. 验证环境配置: 确认依赖库版本和运行环境满足要求
  4. 逐步调试: 缩小问题范围,隔离故障模块

依赖说明

运行环境

  • Agent 平台: 支持SKILL.md的任意AI Agent
  • 操作系统: Windows / macOS / Linux

可用性分类

  • 分类: MD(纯Markdown指令,通过自然语言驱动Agent完成操作)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作。

Top skills in this category