Install
openclaw skills install @thcjp/slack-freeopenclaw skills install @thcjp/slack-free通过 slack 工具对 Slack 工作区进行基础消息操作,涵盖发送消息与读取消息两大动作组。工具使用已配置的 Bot Token 进行认证.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| slack 工具 | Agent 平台工具 | 必需 | Agent 平台内置或插件提供 |
| Slack Bot Token | 凭证 | 必需 | 在 Slack App 配置页面创建 Bot 并获取 xoxb- 前缀的 Token |
| Bot 权限范围 | 配置 | 必需 | 在 Slack App 配置页授予 chat:write 与 channels:read 等 scope |
/invite @botname),否则消息操作会报 not_in_channel 错误channel:<id> 或 user:<id>针对消息目标,自动解析输入参数、调度任务队列、格式化输出,返回结构化响应. 输入: 用户提供消息目标相关的配置参数、输入数据和处理选项. 输出: 返回消息目标的处理结果。- 验证返回数据的完整性和格式正确性
消息目标的配置文档进行参数调优详细的输入输出格式请参考下方章节说明。
channel:<id> 或 user:<id>消息上下文行中包含 slack message id 与 channel 字段,可直接复用.
| 场景 | 输入 | 输出 |
|---|---|---|
| 发送通知消息 | 目标频道 channelId 与通知文本 | 频道收到通知消息 |
| 查询频道历史 | 频道 channelId 与读取数量 | 返回最近 N 条消息内容与发送者信息 |
不适用于: 需要消息回应(reactions)的场景(需升级付费版);需要置顶管理(pins)的场景(需升级付费版);需要编辑或删除消息的场景(需升级付费版).
{
"action": "sendMessage",
"to": "channel:C123",
"content": "周报已更新,请查看"
}
{
"action": "readMessages",
"channelId": "C123",
"limit": 20
}
场景: 向开发频道发送版本发布通知,告知团队上线时间
操作:
{
"action": "sendMessage",
"to": "channel:C0LPBBKMQ",
"content": "v2.3.0 版本即将发布,预计今日 18:00 上线,请各位关注发布窗口"
}
返回结果:
{
"ok": true,
"message": {
"ts": "1712023500.5678",
"text": "v2.3.0 版本即将发布,预计今日 18:00 上线,请各位关注发布窗口"
}
}
分析: sendMessage 向指定频道发送文本通知,返回的 ts 字段为消息时间戳。to 字段用 channel: 前缀加 channelId 指定目标频道。Bot 需已加入该频道,否则会报 not_in_channel 错误.
场景: 需要了解开发频道最近的讨论内容,获取最近 10 条消息
操作:
{
"action": "readMessages",
"channelId": "C0LPBBKMQ",
"limit": 10
}
返回结果:
{
"messages": [
{
"ts": "1712023032.1234",
"text": "这个 bug 我已经修复了",
"user": "U0ABC"
},
{
"ts": "1712023100.2345",
"text": "感谢,我来验证一下",
"user": "U0DEF"
}
]
}
分析: readMessages 返回指定频道最近 N 条消息,每条含文本、发送者 userId 与时间戳。limit 参数控制返回数量。返回的 ts 与 user 字段可用于后续引用或操作.
| 错误场景 | 错误现象 | 原因分析 | 处理方式 |
|---|---|---|---|
| channelId 无效 | 返回 {"ok": false, "error": "channel_not_found"} | channelId 拼写错误或频道不存在 | 核对 channelId 格式(C 开头),在 Slack 频道详情中确认正确 ID |
| Bot 未加入频道 | 返回 {"ok": false, "error": "not_in_channel"} | Bot 未被邀请加入目标频道 | 在频道中执行 /invite @botname 邀请 Bot 加入 |
| 权限不足 | 返回 {"ok": false, "error": "missing_scope"} | Bot Token 未授予 chat:write 或 channels:read scope | 在 Slack App 配置页授予对应 scope 后重新安装 App |
| 消息内容为空 | 返回 {"ok": false, "error": "no_text"} | sendMessage 的 content 字段为空字符串 | 确保 content 字段含至少一个非空白字符 |
| Bot Token 无效 | 返回 {"ok": false, "error": "invalid_auth"} | Bot Token 过期或已被撤销 | 在 Slack App 配置页重新生成 Bot Token,更新 Agent 平台配置 |
A: 在 Slack 客户端中,右键点击频道名称选择「查看频道详情」,channelId 显示在详情页底部或 URL 中,格式为 C 开头的字符串(如 C0LPBBKMQ)。也可通过 readMessages 读取消息时从返回结果的 channel 字段获取.
A: to 字段支持两种格式。发到频道用 channel:<channelId>(如 channel:C0LPBBKMQ),Bot 需已加入该频道。发给个人用 user:<userId>(如 user:U0ABC),Bot 需与该用户有过对话历史。两种格式的前缀(channel: 或 user:)不可省略.
A: Bot 不能自行加入频道,需由频道成员邀请。在频道中执行 /invite @botname 即可邀请 Bot。Bot 加入频道后才能执行 sendMessage 与 readMessages 等操作,否则会报 not_in_channel 错误.
A: 免费版(LITE)包含发送消息(sendMessage)与读取消息(readMessages)两大基础功能。付费版(Slack 消息管理)额外提供:
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 检查网络连接和配置后重试;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
本免费版提供发送消息与读取消息两大基础功能。如需消息回应(reactions)、置顶管理(pins)、成员信息查询(memberInfo)、表情列表(emojiList)、消息编辑与删除等高级能力,请升级至 slack 付费版,获取完整的五大动作组消息管理能力.