核心用法
本技能解决 OpenClaw 会话隔离导致的上下文盲区问题。由于 OpenClaw 仅向代理暴露其参与会话的消息,未加入的 Discord 线程或频道内容完全不可见。技能通过将 Discord Bot Token 存储于独立文件,使用 curl 直接调用 Discord API v10 获取任意频道/线程的消息历史。
典型触发场景:
- "read that thread" — 读取未加入的线程
- "what did they say in #channel" — 获取频道历史上下文
- "fetch Discord messages" / "get thread history" — 批量获取消息
技术实现:
1. 一次性配置:将 ~/.openclaw/.discord-bot-token 设为 600 权限,记录于 TOOLS.md
2. 读取消息:GET /channels/{id}/messages?limit=50(最大 100)
3. 分页:使用 before/after 参数遍历历史
4. 列活跃线程:GET /channels/{parent_id}/threads/active
关键能力:
- 突破 OpenClaw 会话边界,读取任意可访问频道/线程
- 支持消息分页、回复引用链解析
- 线程与频道 ID 通用(Discord 统一模型)
显著优点
- 解决核心痛点:唯一可行的方式获取代理未参与的 Discord 对话上下文
- 轻量无依赖:纯
curl+python3 -m json.tool,无需 SDK - 权限最小化:仅需
View Channel+Read Message History,不暴露敏感操作 - 配置隔离:Token 文件位于 git 忽略区域,避免意外提交
潜在局限与风险
- 配置依赖:需人工完成初始 Token 存储,无法完全自动化
- 权限前置:Bot 必须预先加入目标 Guild 并配置权限,无法动态授权
- 速率限制:50 req/s 硬上限,大规模历史抓取需实现退避逻辑
- Token 生命周期:Discord 轮换 Token 时需同步更新两处配置
- 无写入建议:文档明确建议仅用读取,发送消息应走 OpenClaw 原生路由(混合使用可能引发路由混乱)
适合人群
- 运维/支持代理需追溯事故相关 Discord 线程的技术团队
- 需要跨会话聚合 Discord 讨论摘要的自动化工作流
- 使用 OpenClaw 作为 Discord 集成层但需突破其可见性限制的高级用户
常规风险
| 风险类型 | 描述 | 缓解措施 |
|---------|------|---------|
| Token 泄露 | `Bot` Token 即完整账户权限,泄露可导致数据篡改 | `chmod 600`、路径隔离、禁止硬编码 |
| 权限边界模糊 | 直接 API 调用绕过 OpenClaw 的审计/路由层 | 严格只读、避免混合原生/直接发送消息 |
| 速率封禁 | 高频调用触发 Discord 429 | 尊重 `Retry-After`、实现指数退避 |
| 合规隐患 | 读取非公开频道可能违反 Guild 数据政策 | 确保 Bot 仅加入授权频道、保留审计日志 |