Slack Search 是一个面向 AI 助手的技能,用于指导如何有效搜索 Slack,以查找消息、文件和信息。
何时使用
当你需要在 Slack 中查找信息时即可应用该技能,包括用户要求你定位消息、对话、文件或人员,或者你在回答关于 Slack 中发生什么的问题之前需要收集上下文时。
搜索工具概览
- slack_search_public:仅搜索公开频道,不需要用户同意。
- slack_search_public_and_private:搜索所有频道,包括私密频道、私信和群组私信,需要用户同意。
- slack_search_channels:按名称或描述查找频道。
- slack_search_users:按姓名、邮箱或角色查找人员。
搜索策略
先宽后窄
先用简单的关键词或自然语言问题开始。如果结果太多,就添加过滤器(in:、from:、日期范围)。如果结果太少,就去掉过滤器,尝试同义词或相关词。
选择合适的搜索模式
- 自然语言问题(例如“项目 X 的截止日期是什么?”)——适合模糊的、概念性的搜索,当你不知道确切关键词时使用。
- 关键词搜索(例如 project X deadline)——适合查找具体、确切的内容。
使用多次搜索
不要只依赖一次搜索。把复杂问题拆成更小的搜索:先搜索主题,再搜索特定人员的贡献,然后在特定频道中搜索。
搜索修饰符参考
位置过滤器
- in:channel-name — 在特定频道内搜索
- in:<#C123456> — 按频道 ID 搜索
- -in:channel-name — 排除某个频道
- in:<@U123456> — 在与此用户的私信中搜索
用户过滤器
- from:<@U123456> — 来自特定用户的消息(按 ID)
- from:username — 来自某个用户的消息(按 Slack 用户名)
- to:me — 直接发送给你的消息
内容过滤器
- is:thread — 仅线程消息
- has:pin — 已置顶的消息
- has:link — 包含链接的消息
- has:file — 带附件的消息
- has::emoji: — 带有特定表情回应的消息
日期过滤器
- before:YYYY-MM-DD — 某日期之前的消息
- after:YYYY-MM-DD — 某日期之后的消息
- on:YYYY-MM-DD — 特定日期的消息
- during:month — 某个月份的消息(例如 during:january)
文本匹配
- "exact phrase" — 匹配精确短语
- -word — 排除包含某个词的消息
- wild* — 通配符匹配(* 之前至少 3 个字符)
文件搜索
要搜索文件,请使用 content_types="files" 参数并配合类型过滤器:
- type:images — 图片文件
- type:documents — 文档文件
- type:pdfs — PDF 文件
- type:spreadsheets — 电子表格文件
- type:canvases — Slack Canvas
示例:content_types="files" type:pdfs budget after:2025-01-01
跟进结果
找到相关消息后:
- 使用 slack_read_thread 获取任何线程消息的完整线索上下文。
- 使用 slack_read_channel 配合 oldest/latest 时间戳读取周围消息以获取上下文。
- 当结果中出现用户 ID 时,使用 slack_read_user_profile 识别该用户是谁。
常见陷阱
- 布尔运算符无效。不支持 AND、OR、NOT。使用空格(隐式 AND)和 - 表示排除。
- 括号无效。不要尝试用 () 对搜索词分组。
- 搜索并非实时。非常新的消息(最近几秒)可能不会出现在搜索结果中。要获取最新消息,请使用 slack_read_channel。
- 私密频道访问。当需要包含私密频道时,使用 slack_search_public_and_private,但请注意这需要用户同意。