Install
openclaw skills install @thcjp/slack-hub-tool-freeopenclaw skills install @thcjp/slack-hub-tool-freeSlack Hub工具免费版是一款面向个人用户的Slack消息发送与搜索工具。通过Slack Bot Token认证,提供消息发送、线程回复、工作区搜索和频道列表查看功能,帮助你高效完成日常Slack沟通。
向指定频道或用户发送文本消息,支持通过频道ID或频道名称指定目标。
输入: 用户提供消息发送所需的指令和必要参数。 处理: 按照skill规范执行消息发送操作,遵循单一意图原则。 输出: 返回消息发送的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作在指定消息的线程中进行回复,保持讨论上下文完整。
输入: 用户提供线程回复所需的指令和必要参数。 处理: 按照skill规范执行线程回复操作,遵循单一意图原则。 输出: 返回线程回复的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作搜索工作区中的消息或文件,快速定位历史信息。
输入: 用户提供工作区搜索所需的指令和必要参数。 处理: 按照skill规范执行工作区搜索操作,遵循单一意图原则。 输出: 返回工作区搜索的执行结果,包含操作状态和输出数据。
input_params参数,支持创建/查询/导出操作列出工作区中所有公开频道,方便查找目标频道。
输入: 用户提供频道列表所需的指令和必要参数。
处理: 按照skill规范执行频道列表操作,遵循单一意图原则。
输出: 返回频道列表的执行结果,包含操作状态和输出数据。
技术参数:使用input_params和output_format参数控制执行行为,支持json/text/csv输出格式。
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:Slack、消息发送与搜索基、础工具、支持频道列表查看、消息发送与线程回、适合个人日常使用、Hub、免费版、面向个人用户的、消息发送与搜索工等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
# 通过频道名称发送
slack-hub-tool send \
--target "#general" \
--message "今日部署已完成,版本v2.1.0已上线"
# 通过频道ID发送
slack-hub-tool send \
--target "C0123456789" \
--message "项目评审会议改至周五14:00"
# 在指定消息的线程中回复
slack-hub-tool send \
--target "C0123456789" \
--message "这个问题我来处理,预计今天内解决" \
--thread-ts "1712023032.1234"
# 搜索包含关键词的消息
slack-hub-tool search --query "部署文档"
# 搜索特定频道的消息
slack-hub-tool search --query "bug修复" --channel "C0123456789"
以下场景Slack Hub工具免费版不适合处理:
需要消息发送、通知推送、邮件短信、通信集成时使用。不适用于非本工具能力范围的需求。
npx skillhub@latest install slack-hub-tool-free
在项目根目录创建 .env 文件:
# .env
SLACK_BOT_TOKEN=xoxb-your-bot-token-here
# 列出所有公开频道
slack-hub-tool list-channels
# 发送消息
slack-hub-tool send --target "#general" --message "Hello World"
# 线程回复
slack-hub-tool send --target "C0123456789" \
--message "收到,我来跟进" \
--thread-ts "1712023032.1234"
# 搜索消息
slack-hub-tool search --query "项目计划"
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
# config.yaml
slack:
bot_token: "${SLACK_BOT_TOKEN}"
default_channel: "#general"
# 功能配置
features:
send: true # 消息发送
thread_reply: true # 线程回复
search: true # 内容搜索
list_channels: true # 频道列表
# 搜索配置
search:
max_results: 20 # 最大返回结果数
sort: "timestamp" # 排序方式: timestamp / score
| 工具 | 功能 | 必需参数 | 可选参数 |
|---|---|---|---|
slack_send | 发送消息 | target, message | thread_ts |
slack_search | 搜索消息 | query | channel, max_results |
slack_list_channels | 列出频道 | 无 | exclude_archived |
| 实践 | 说明 |
|---|---|
| 目标明确 | 使用频道名称时以#开头,私信用@用户名 |
| 内容简洁 | 每条消息聚焦一个主题,长内容用线程 |
| 线程回复 | 讨论具体消息时使用thread_ts在线程内回复 |
| 搜索优化 | 使用具体关键词,避免过于宽泛的搜索词 |
# 精确短语搜索
slack-hub-tool search --query "\"部署文档\""
# 按频道搜索
slack-hub-tool search --query "bug" --channel "C0123456789"
# 组合关键词
slack-hub-tool search --query "项目 AND 评审"
# 查看所有频道(包括已归档)
slack-hub-tool list-channels --include-archived
# 仅查看活跃频道
slack-hub-tool list-channels --exclude-archived
| 场景 | 是否使用线程 | 说明 |
|---|---|---|
| 回复具体消息 | 是 | 保持讨论上下文 |
| 全频道通知 | 否 | 直接发送到频道 |
| 讨论技术细节 | 是 | 避免刷屏主频道 |
| 简短确认 | 否 | 用表情回应代替 |
chat:write、search:read、channels:readxoxb- 开头的 Bot User OAuth Token两者均可使用。频道名称更直观(如#general),频道ID更精确(如C0123456789)。当频道名称包含特殊字符时,建议使用ID。
thread_ts 是被回复消息的时间戳。可以通过读取频道消息获取,格式如1712023032.1234。
免费版搜索范围限于公开频道和已加入的私密频道。私信内容不在搜索范围内。
# 常见权限错误:
# missing_scope - 需要添加对应Scope
# not_authed - Token无效,重新获取
# channel_not_found - Bot未加入目标频道
确保Bot Token包含以下Scope:
chat:write - 发送消息search:read - 搜索消息channels:read - 读取频道列表https://slack.com/api/| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Slack Bot Token | API凭证 | 必需 | Slack App管理页面创建 |
| requests | Python库 | 推荐 | pip install requests |
# Slack Bot Token(必需)
export SLACK_BOT_TOKEN="xoxb-your-bot-token-here"
# 所需Bot Token Scopes:
# - chat:write 发送消息
# - search:read 搜索工作区内容
# - channels:read 列出公开频道
# - groups:read 列出私密频道(如需)
本工具调用以下Slack Web API端点:
https://slack.com/api/chat.postMessage - 发送消息https://slack.com/api/search.messages - 搜索消息https://slack.com/api/conversations.list - 列出频道| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |