Install
openclaw skills install @thcjp/discord-toolkit企业级Discord管理工具,支持批量消息、审核/角色权限管理、自定义表情贴纸及多频道调度与查询。
openclaw skills install @thcjp/discord-toolkit核心功能: 本技能提供化流程等能力。
核心功能: 本技能提供中文交互等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 多服务器批量管理与自动化运营 | 不支持 | 支持 |
| 多渠道消息批量发送 | 不支持 | 支持 |
| 消息模板与变量注入 | 不支持 | 支持 |
| 送达状态实时回调 | 不支持 | 支持 |
| 通信记录归档与检索 | 不支持 | 支持 |
| 能力模块 | 说明 | 免费版 | Pro 版 |
|---|---|---|---|
| 消息操作 | 发送/编辑/删除 | 单条 | 批量+定时 |
| 表情反应 | 添加/查看 | 支持 | 支持(批量) |
| 投票 | 创建投票 | 单题 | 多题+批量 |
| 审核管理 | 禁言/踢出/封禁 | 不支持 | 支持 |
| 角色管理 | 角色增删与权限 | 不支持 | 支持 |
| 表情上传 | 自定义表情 | 不支持 | 支持 |
| 贴纸上传 | 自定义贴纸 | 不支持 | 支持 |
| 成员/角色查询 | 批量信息 | 不支持 | 支持 |
| 频道/语音/事件 | 状态查询 | 部分 | 全量 |
| 操作门控 | 细粒度权限控制 | 部分 | 完整 |
详细的输入输出格式请参考下方章节说明。
运营团队需要将一条重要公告同步发布到多个频道,并加上统一的 ✅ 反应.
{
"action": "batchSend",
"targets": [
"channel:1111111",
"channel:2222222",
"channel:3333333"
],
"content": "**【重要】** 服务器规则更新,请查看置顶公告。",
"autoReact": "✅",
"pinFirst": true
}
批量发送支持自动反应、首条置顶和发送结果汇总,避免逐条手动操作.
社区管理员发现违规成员,需要进行禁言处理.
{
"action": "timeout",
"guildId": "9999999999",
"userId": "1111111111",
"durationMinutes": 60,
"reason": "发布广告内容,违反社区规则第3条"
}
更严重的违规可执行踢出或封禁:
{
"action": "ban",
"guildId": "9999999999",
"userId": "1111111111",
"deleteMessageDays": 1,
"reason": "多次违规,封禁处理"
}
审核操作默认需二次确认,可在配置中开启自动审核策略.
新成员加入服务器后,自动分配对应身份角色.
{
"action": "roleAdd",
"guildId": "9999999999",
"userId": "1111111111",
"roleId": "2222222222"
}
批量角色分配:
{
"action": "batchRoleAdd",
"guildId": "9999999999",
"userIds": ["111", "222", "333"],
"roleId": "2222222222",
"reason": "新成员入门角色批量分配"
}
为品牌社区上传专属表情和贴纸.
{
"action": "emojiUpload",
"guildId": "9999999999",
"name": "brand_celebrate",
"mediaUrl": "file:///tmp/celebrate.png",
"roleIds": ["222", "333"]
}
{
"action": "stickerUpload",
"guildId": "9999999999",
"name": "brand_welcome",
"description": "品牌欢迎贴纸",
"tags": "👋",
"mediaUrl": "file:///tmp/welcome.png"
}
表情限制 256KB(PNG/JPG/GIF),贴纸限制 512KB(PNG/APNG/Lottie JSON).
在配置中启用审核与角色操作组(默认禁用):
{
"discord": {
"actions": {
"moderation": true,
"roles": true,
"emojiUploads": true,
"stickerUploads": true,
"events": true,
"voiceStatus": true
}
}
}
检查机器人是否具备目标频道的审核与角色权限:
{
"action": "permissions",
"channelId": "1234567890"
}
机器人需要「禁言成员」「踢出成员」「封禁成员」「管理角色」等高级权限.
{
"action": "batchSend",
"targets": ["channel:111", "channel:222"],
"content": "测试批量发送",
"dryRun": true
}
建议先用 dryRun: true 预演,确认无误后正式执行.
结果验证: 任务完成后,查看输出确认状态。成功时返回摘要和数据;失败时根据错误信息排查,参考恢复章节获取修复步骤.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 否 | discord-toolkit处理的内容输入 |
| strict_level | string | 否 | 审查严格度, 可选: strict/normal/loose, 默认: normal |
{
"success": true,
"data": {
"overall_grade": "A",
"total_score": 92,
"max_score": 100,
"summary": "处理完成",
"details": [
{
"item": "代码风格",
"status": "pass",
"score": 95,
"comment": "符合规范"
},
{
"item": "安全合规",
"status": "warn",
"score": 80,
"comment": "符合规范"
}
],
"improvements": [
{
"priority": "high",
"suggestion": "建议优化",
"expected_gain": "+5分"
},
{
"priority": "medium",
"suggestion": "建议优化",
"expected_gain": "+3分"
}
]
},
"error": null
}
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM 能力 | API | 必需 | 由 Agent 内置大模型提供 |
| Discord Bot Token | 凭证 | 必需 | Discord Developer Portal 创建机器人获取 |
| Discord API | 服务 | 必需 | Discord 平台提供 |
| 调度器 | 服务 | 可选 | Agent 平台 cron 调度或系统 crontab |
| 媒体文件 | 本地资源 | 可选 | 本地路径或远程 URL(表情/贴纸上传) |
DISCORD_TOKEN 注入).discord.actions.moderation 和 discord.actions.roles.exec 执行能力)discord-toolkit-free 指令格式完全兼容,可平滑升级{
"discord": {
"actions": {
// 默认启用
"reactions": true,
"stickers": true,
"polls": true,
"permissions": true,
"messages": true,
"threads": true,
"pins": true,
"search": true,
"memberInfo": true,
"roleInfo": true,
"channelInfo": true,
"voiceStatus": true,
"events": true,
// Pro 版解锁(默认仍关闭,按需开启)
"emojiUploads": true,
"stickerUploads": true,
"roles": true,
"moderation": true
},
"batch": {
"enabled": true,
"maxConcurrency": 5,
"rateLimitMs": 500,
"dryRunByDefault": false
},
"audit": {
"enabled": true,
"logPath": "logs/discord-audit.jsonl",
"sensitiveActions": ["ban", "batchDelete", "roleRemove"]
}
}
}
{
"action": "batchDelete",
"channelId": "1234567890",
"filters": {
"authorId": "1111111111",
"before": "9876543210",
"limit": 50
},
"reason": "清理违规用户的历史消息"
}
{
"action": "scheduleSend",
"to": "channel:1234567890",
"content": "每周一例会提醒:今晚 20:00 技术分享",
"schedule": {
"cron": "0 10 * * 1",
"timezone": "Asia/Shanghai"
}
}
... (更多案例请参考完整文档)
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 技能调用无响应 | LLM服务不可达 | 检查网络连接和API Key配置 |
| 输出格式异常 | 输入参数不符合规范 | 参考输入格式章节校验参数 |
| 执行超时 | 处理数据量过大 | 分批处理或增加超时时间 |
| 权限错误 | 运行环境权限不足 | 检查文件系统和命令执行权限 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
审核操作(禁言/踢出/封禁)默认关闭。需在配置中设置 discord.actions.moderation = true 启用,并确保机器人具备「禁言成员」「踢出成员」「封禁成员」等服务器权限。建议同时开启审计日志记录敏感操作.
| 错误场景(续) | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 请求重试;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
会。Discord API 有全局和按频道维度的频率限制。Pro 版内置 rateLimitMs(默认 500ms)和 maxConcurrency(默认 5)控制,接近限制时自动排队。若仍触发 429 限制,Agent 会按响应头 Retry-After 自动退避重试.
角色增删属于高影响操作。建议:仅对非关键角色启用自动化;管理角色和敏感权限角色需人工审核后单独操作;所有角色变更记录审计日志。Pro 版支持 sensitiveActions 配置,对指定操作强制二次确认.
检查:表情图片是否为 PNG/JPG/GIF 格式;大小是否超过 256KB;服务器表情槽位是否已满(普通服务器 50 个,提升等级后更多);机器人是否有「管理表情」权限.
Discord API 不支持一次拉取全部成员。Pro 版通过分页查询 + 缓存的方式,可分批获取成员列表。大规模社区建议配合成员加入事件实时维护本地成员缓存,而非全量拉取.
Pro 版定时消息依赖 Agent 平台的 cron 调度。若 Agent 进程在调度时刻未运行,消息会延迟到下次启动时补发(可配置)。对时效性要求高的通知,建议结合外部监控确保 Agent 可用性.
可以。两者指令格式兼容。建议生产环境统一使用 Pro 版(包含全部能力),免费版仅用于轻量测试场景。两者共用同一机器人令牌,无需重复配置.
审计日志记录:操作时间、操作人、操作类型、目标(用户/频道/角色)、原因、结果(成功/失败)。敏感操作(ban、batchDelete、roleRemove 等)会额外记录操作前后的状态快照,便于追溯。日志写入 audit.logPath 指定的文件,保留期建议 90 天以上.
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 批量发送消息 | 1小时 | 10分钟 | 50分钟 | 100% |
| 清理违规消息 | 2小时 | 30分钟 | 1.5小时 | 100% |
| 定时发布公告 | 1小时 | 5分钟 | 55分钟 | 100% |
| 角色权限管理 | 4小时 | 30分钟 | 3.5小时 | 100% |
| 成员信息查询 | 1小时 | 10分钟 | 50分钟 | 100% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 功能全面性 | 高 | 低 | 中 | 高 |
| 操作便捷性 | 高 | 低 | 中 | 高 |
| 成本效益 | 高 | 低 | 中 | 高 |
| 定制化程度 | 高 | 低 | 中 | 高 |
| 支持平台 | Discord | Discord | Discord | 多平台 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 批量操作效率低 | 手动操作耗时过长,影响工作效率 | 所有批量操作场景 | 自动化批量操作 | 时间节约50%以上 |
| 角色权限管理复杂 | 手动管理角色权限耗时且容易出错 | 所有角色权限管理场景 | 角色权限自动化管理 | 准确率提升100% |
| 社区审核困难 | 手动审核违规成员耗时且容易遗漏 | 所有社区审核场景 | 审核管理自动化 | 准确率提升100% |
针对Discord工具箱专业版使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |
针对Discord工具箱专业版使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |