Slack (@steipete/slack): Enable Agents to Read and Write Slack

前言

给 Agent 接 Slack,常见做法是自己写一套 Slack SDK 调用:要管 bot token、要自己拼 chat.postMessage、还要处理频道 ID 和消息时间戳。如果只是想让 Agent 在频道或私信里回消息、置顶一条结论,这套胶水代码很重。

下面介绍的 Skill 把这部分收进一个基于 SKILL.md 格式的 slack 工具里。先做安装,再做配置,然后就可以按 action 调用。

这是什么

一句话定位:@steipete/slack 是一个基于通用 SKILL.md 格式的 Skill,让 Clawdbot 通过 slack 工具控制 Slack,包括在频道或私信中回复消息、置顶或取消置顶项目。

  • 名称:Slack
  • 坐标:@clawhub_steipete/slack
  • 版本:1.0.0
  • 来源:clawhub
  • 分类:ai-agent(消息与社交领域的即时通讯集成能力)
  • 发布者:steipete(Peter Steinberger)
  • 上游仓库:https://clawhub.ai/steipete/slack
  • 许可证:MIT-0

SkillHub 页面(国内入口):https://www.skillhub.cn/skills/clawhub_steipete/slack

解决什么问题:Agent 侧不再自己拼 Slack Web API,只描述要做什么,工具负责 reactions、messages、pins、memberInfo 这几组动作。

核心功能

技能说明里的 slack 工具分五个 action 组,默认全部启用:

  1. reactions:对消息加 reaction、列出已有 reaction
  2. messages:读取、发送、编辑、删除消息
  3. pins:置顶、取消置顶、列出已置顶项
  4. memberInfo:查成员信息
  5. emojiList:取自定义 emoji 列表

工具使用 Clawdbot 中已配置的 bot token,不需要在调用里再传 token。资料中的标签为 requires_api_key=false,说明 token 由宿主环境提供,不在 Skill 输入里收集。

需要收集的输入:

  1. channelId
  2. messageId(Slack 消息时间戳,形如 1712023032.1234)
  3. reaction 时的 emoji(Unicode 或 :name:)
  4. 发送消息时的 to(channel:<id> 或 user:<id>)和 content

消息上下文行里已经带了 slack message id 和 channel 字段,可以直接复用,不必自己再查一遍。

安装与启用

官方给出两种安装入口,命令如下:

npx skills
openclaw skills install @steipete/slack

执行安装命令即可把 Skill 装进当前 Agent 环境。装完后在支持 SKILL.md 格式的宿主(Clawdbot / OpenClaw 生态)中启用,工具侧需要存在为 Clawdbot 配置的 bot token。

说明两点:

  1. 上游仓库只给了一条 openclaw skills install @steipete/slack,没有区分 Cursor、Codex CLI、Claude Code 的安装方式,资料里也没有这部分内容,不做推测。
  2. 本 Skill 属于通用 SKILL.md 格式,具体宿主如何加载本地 Skill,以该宿主的文档为准。

典型用法

官方给出的调用都是 JSON 形式,字段对齐上面的输入说明。

对一条消息加 reaction,用于标记完成:

{
  "action": "react",
  "channelId": "C123",
  "messageId": "1712023032.1234",
  "emoji": "✅"
}

列出该消息已有的 reaction:

{
  "action": "reactions",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}

发一条消息到频道:

{
  "action": "sendMessage",
  "to": "channel:C123",
  "content": "Hello from Clawdbot"
}

编辑已发送的消息:

{
  "action": "editMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234",
  "content": "Updated text"
}

删除消息:

{
  "action": "deleteMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}

读取频道最近消息:

{
  "action": "readMessages",
  "channelId": "C123",
  "limit": 20
}

置顶、取消置顶、列出置顶项:

{
  "action": "pinMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}
{
  "action": "unpinMessage",
  "channelId": "C123",
  "messageId": "1712023032.1234"
}
{
  "action": "listPins",
  "channelId": "C123"
}

查成员信息和自定义 emoji 列表:

{
  "action": "memberInfo",
  "userId": "U123"
}
{
  "action": "emojiList"
}

官方资料还给了两个可以直接试的场景:用 ✅ reaction 标记任务完成;置顶关键决策或每周状态更新。

适用场景与注意

适合谁:已经在用 Clawdbot / OpenClaw 生态,需要 Agent 参与 Slack 沟通的开发者。如果只是需要从 Slack 拉数据做分析、不需要发消息,这个 Skill 的覆盖面偏沟通侧,未必是最短路径。

限制和坑:

  1. 调用依赖宿主已配好的 bot token,Skill 自身不负责凭证管理;先确认 Clawdbot 侧 token 对目标频道有权限。
  2. messageId 是 Slack 消息时间戳格式(1712023032.1234),不是自增 ID,传错会找不到消息。
  3. 发送目标 to 要写全 channel:<id> 或 user:<id>,不能只给裸 ID。
  4. Skill 说明只覆盖频道与私信场景,没有提到文件上传、画板、多频道广播等能力。
  5. 关于评分与下载量:SkillHub 镜像页显示评分 100000、下载 73009、安装 4231(来源:已抓取的 SkillHub 页面资料);上游 ClawHub 页当前显示 v1.0.0、Security audit Pass、Bookmark 160。这些统计以官方页面实时数据为准。

结尾

这个 Skill 的价值在于把 Slack 的动作集收敛成一组声明式的 action:读消息、回消息、改消息、置顶、查成员,都在一个工具里完成,Agent 侧不必维护 Slack SDK 调用细节。

官方地址:https://clawhub.ai/steipete/slack
SkillHub 页面:https://www.skillhub.cn/skills/clawhub_steipete/slack

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye