如何用 enterprise-search 插件的 /search 用一次查询跨所有已连接工具找到决策或文档
【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins
你遇到的情况是:某个决策或文档很可能存在于聊天线程、邮件、云存储文档或 wiki 里,但你不确定在哪个工具中。knowledge-work-plugins 仓库中的 enterprise-search 插件(面向 Claude Cowork,也兼容 Claude Code)提供了一个/search命令:一条自然语言查询同时搜索所有已连接的工具,Claude 把问题拆成针对每个来源的子查询并行执行,最后合成一个带来源标注的答案。完成本文后,你能安装插件、写出带过滤条件的查询、读懂返回答案的来源归属,并处理查不到结果时的文档化回退路径。
准备条件:安装插件并确认已连接搜索源
安装插件
enterprise-search 的 README 给出的安装命令是:
claude plugins add knowledge-work-plugins/enterprise-search需要注意,仓库根目录的 README 展示的是另一套命令形式(先添加 marketplace,再安装具体插件,以 sales 为例):
# Add the marketplace first claude plugin marketplace add anthropics/knowledge-work-plugins # Then install a specific plugin claude plugin install sales@knowledge-work-plugins两处文档的命令语法不一致,本文照原样保留。安装完成后插件自动激活,斜杠命令在你的会话中可用,用法是/enterprise-search:search <你的问题>。
确认有哪些来源可被搜索
插件是工具无关的:文档中~~chat、~~email、~~cloud storage等占位符代表你在该类别下实际连接的工具(比如~~chat可能是 Slack、Microsoft Teams 或 Discord),这一点在 CONNECTORS.md 中有明确说明。该插件预配置的 MCP 连接(见.mcp.json)包括:
| 类别 | 占位符 | 已预配置的服务 | 其他可选 |
|---|---|---|---|
| Chat | ~~chat | Slack | Microsoft Teams, Discord |
~~email | Microsoft 365 | — | |
| Cloud storage | ~~cloud storage | Microsoft 365 | Dropbox |
| Knowledge base | ~~knowledge base | Notion, Guru | Confluence, Slite |
| Project tracker | ~~project tracker | Atlassian (Jira/Confluence), Asana | Linear, monday.com |
| CRM | ~~CRM | (未预配置) | Salesforce, HubSpot |
判断某个来源是否已连接的依据(见 source-management 技能):如果对应工具的 MCP 工具前缀出现在可用工具列表中,该来源就是已连接、可搜索的。如果没有任何来源连接,执行搜索会得到如下引导信息:
To search across your tools, you'll need to connect at least one source. Check your MCP settings to add ~~chat, ~~email, ~~cloud storage, or other tools.补充新来源的方式:在 MCP 设置中添加对应 MCP 服务器配置、按需认证;或者把 MCP 服务器配置加入.mcp.json。连接后,该来源会自动纳入后续搜索,无需额外配置。已连接的来源越多,搜索结果的完整性越高。
执行步骤:编写 /search 查询
基本形式是命令加一个自然语言问题:
/enterprise-search:search what's the status of Project Aurora?README 中给出的两个完整示例(保留原文):
/enterprise-search:search from:sarah about:budget after:2025-01-01 /enterprise-search:search decisions made in #product this week查询中可以携带过滤器,README 明确支持的过滤器是from:、in:、after:、before:、type:,插件会按各来源的原生查询语法分别应用。以~~chat为例,过滤器到聊天语法的具体映射(见 search-strategy 技能):
| Enterprise 过滤器 | ~~chat语法 |
|---|---|
from:sarah | from:sarah或from:<@USERID> |
in:engineering | in:engineering |
after:2025-01-01 | after:2025-01-01 |
before:2025-02-01 | before:2025-02-01 |
type:thread | is:thread |
type:file | has:file |
对~~project tracker,映射则不同:from:sarah对应assignee_any或created_by_any,after:2025-01-01对应modified_on_after: "2025-01-01",type:milestone对应resource_subtype: "milestone"。
插件内部如何拆解查询:决定答案排序的因素
理解内部流程有助于你判断答案为什么是那个样子。search 技能 定义的流程是:检查可用来源 → 解析查询 → 按来源生成子查询 → 并行执行 → 排序去重 → 呈现合成答案。
查询会先被分类,不同类型走不同的策略(search-strategy 技能):
| 查询类型 | 例子 | 策略 |
|---|---|---|
| Decision | "What did we decide about X?" | 优先会话类来源(~~chat、email),寻找结论信号 |
| Document | "Where's the spec for Z?" | 优先 Drive、wiki、共享文档 |
| Status | "What's the status of Project Y?" | 优先近期活动、任务跟踪器 |
| Person | "Who's working on X?" | 搜索任务分配、消息作者、文档协作者 |
| Factual | "What's our policy on X?" | 优先 wiki、官方文档,再用会话确认 |
| Temporal | "When did X happen?" | 宽日期范围搜索,寻找时间戳 |
| Exploratory | "What do we know about X?" | 全来源宽泛搜索,合成结果 |
对决策类查询,来源优先级是:~~chat(决策发生地)→~~email(决策确认、公告)→~~cloud storage(会议纪要、决策日志)→ Wiki → 任务跟踪器(source-management 技能)。所有子查询并行执行,文档要求"总是并行、绝不串行",一个来源失败不阻塞其他来源。
结果验证:如何读懂返回的答案
判断一次搜索是否完成、结果是否可信,看答案的两个部分:
答案正文 + Sources 列表。合成答案不是原始结果列表,而是先给直接回答,再列来源。来源标注规则(knowledge-synthesis 技能):必须注明来源类型(~~chat、~~email、~~cloud storage等)、具体位置(频道、文件夹、线程)、日期或相对时间,作者相关时注明作者,有文档/线程标题时一并给出。
被搜索的来源范围。文档要求报告搜索结果时包含本次搜索覆盖了哪些来源,这样你知道答案的边界。如果部分来源失败,答案会附带说明,例如:
Note: I couldn't reach [failed source(s)] during this search. Results above are from [successful sources] only.README 中的"Finding a decision"示例(以下整段为文档示例,不是固定预期输出):
You: /enterprise-search:search when did we decide to switch to Postgres? Claude searches: ~~chat → #engineering, #infrastructure for "postgres" "switch" "decision" ~~email → threads with "postgres" in subject ~~cloud storage → docs mentioning database migration Result: "The decision was made March 3 in #infrastructure (link). Sarah's email on March 4 confirmed the timeline. The migration plan doc was updated March 5."同一信息跨来源重复时(比如决策在~~chat讨论、又通过 email 确认),插件会合并为一条并引用所有出现位置,优先保留最完整、最权威、最新的版本。来源信息相互矛盾时,答案会显式列出冲突而不是默默选一个,例如同时给出"1 月 10 日的聊天讨论倾向 GraphQL"与"1 月 15 日的邮件确认 REST",并说明较新来源指向哪个结论。
查不到结果时:文档给出的回退路径
- 结果为空:插件会列出已搜索的来源并给出建议——换更宽泛的术语(例如用 "database" 替代 "PostgreSQL migration")、换时间范围、检查相关来源是否已连接。search-strategy 技能 给出了放宽约束的固定顺序:先移除日期过滤,再移除来源/位置过滤,然后删掉次要关键词,最后只保留核心实体词。
- 查询有歧义:如果同一个词可能指多个不同的事,插件会先问一个澄清问题再搜索,而不是猜测;只有当歧义会显著影响搜索结果时才会提问。
- 某个来源被限流:典型现象是 HTTP 429 或提示 "rate limit"、"too many requests"、"quota exceeded"。插件不会立即重试,会返回其他来源的结果并注明"X 来源暂时限流,几分钟后可重试以纳入该来源"。
- 只有单个来源连接:仍然会返回该来源的结果,但答案的覆盖范围仅此一个来源。
边界与限制
- 搜索结果完整度取决于已连接的来源数量;CRM 在默认配置下未预配置,需要手动添加 Salesforce 或 HubSpot 的 MCP 服务器。
- 答案中出现的
~~chat:、~~email:前缀是刻意的类别标记,解析为你实际连接的工具,不是拼写错误。 - 新鲜度会影响置信度表达:对状态类查询,超过一个月前的结果会被标记为"可能过时";对事实/政策类查询,来源权威性(官方 wiki > 共享文档 > 邮件公告 > 聊天消息)权重更高。
/search与/digest(跨来源的每日/每周摘要)是两个独立命令,本文只覆盖/search的决策与文档查找任务。
【免费下载链接】knowledge-work-pluginsOpen source repository of plugins primarily intended for knowledge workers to use in Claude Cowork项目地址: https://gitcode.com/GitHub_Trending/kn/knowledge-work-plugins
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考