OpenClaw 有价值应用(2026-04-09):多Agent深度语义搜索流水线——把关键词大海捞针变成语义精准命中

OpenClaw 有价值应用(2026-04-09):多Agent深度语义搜索流水线——把关键词大海捞针变成语义精准命中

多Agent深度语义搜索流水线——把"关键词大海捞针"变成"语义精准命中"

场景演示

你的企业知识库里堆了上万份文档:会议纪要、项目报告、技术方案、客服记录……

当你需要找"去年Q3那个涉及供应链中断的复盘材料"时,关键词搜索能做什么?

  • 搜"供应链"→ 出来一堆无关的采购文档
  • 搜"复盘"→ 出来一堆团建复盘、周会复盘
  • 搜"2025 Q3 供应链 中断"→ 勉强命中,但位置不对还要手动翻

这不是搜索工具的问题,是关键词匹配 vs 语义理解的代差。

多Agent深度语义搜索流水线,把这件事变成:你描述需求,系统理解意图,直接吐出最相关的文档片段和来源


Step by Step

第一步:构建语义索引 Agent

负责把非结构化文档转换为语义向量并存入向量数据库(Milvus/Pgvector/Chroma)。

核心动作

  • 读取原始文档(PDF/Word/飞书文档/Notion)
  • 分块(Chunking):按段落或语义单元切分,每块 512~1024 tokens
  • 调用 Embedding 模型生成向量
  • 写入向量数据库,附原文和元数据(来源、日期、作者)

# 伪代码示意
def index_document(doc_path):
    chunks = chunk_file(doc_path)
    for chunk in chunks:
        vector = embedding_model.encode(chunk.text)
        vector_db.upsert({
            "id": chunk.id,
            "vector": vector,
            "metadata": {
                "source": doc_path,
                "date": chunk.date,
                "author": chunk.author,
                "text": chunk.text
            }
        })

使用的 toolsfeishu_wiki(读取文档)、exec(调 API)、向量数据库连接器


第二步:语义理解 Agent

负责接收用户的自然语言查询,理解真实意图,拆解成多个语义检索子问题。

典型工作流

用户问:"帮我找一下去年影响比较大的技术故障,以及我们后续采取了哪些改进措施"

语义理解 Agent 拆解:

  1. "技术故障" → 可能涉及:系统宕机、bug、事故报告
  2. "影响比较大" → 优先级高、严重级别、影响范围广
  3. "改进措施" → 应对方案、复盘结论、action items
  4. "去年" → 时间范围过滤

每个子问题独立检索,最后合并、去重、排序。

使用的 skillsmulti-search-engine(验证)、 tavily-search(外部补充)


第三步:检索 Agent × N

多个检索 Agent 并行工作,每个负责一个子问题的语义检索:

Agent负责子问题检索策略
故障检索 Agent找技术故障相关文档向量相似度 + 时间过滤
影响分析 Agent找影响评估相关文档语义扩展:中断、宕机、故障
改进措施 Agent找改进/复盘相关文档向量+关键词双路召回

每个 Agent 返回 Top-K 结果和置信度分数。

使用的 toolsexec(向量数据库查询)、feishu_drive(读取飞书文档原文)


第四步:综合总结 Agent

接收各检索 Agent 的结果,做三件事:

  1. 结果合并:多路召回结果做 RRF(Reciprocal Rank Fusion)融合
  2. 上下文组装:把相关文档片段拼成可读上下文
  3. 答案生成:基于上下文,用 LLM 生成直接回答,附上来源引用

最终输出:

📄 找到 3 份相关文档:

>

1. 【故障复盘】2025-Q3 华东区支付系统中断报告 — 2025-07-15
- 摘要:7月14日因第三方支付接口超时导致华东区支付失败约47分钟,影响订单约12,000单……
- 改进措施:已上线接口熔断机制,第三方回调超时阈值从3s调整为1s……

>

2. 2025年Q3技术稳定性总结 — 2025-10-08
- 摘要:Q3共发生P0故障2起,P1故障5起,其中影响最大为……
- 改进措施:已建立故障分级响应SOP,上线后P0故障平均恢复时间从45分钟缩短至18分钟……

>

3. SRE月报2025-09 — 2025-09-30
- 摘要:本月重大故障1起,根因为……
- 改进措施:已在全链路追踪中新增3个关键节点探针……

第五步:定时增量更新(可选)

用 Cron 每天/每周触发一次增量索引:

  • 扫描指定文件夹/飞书知识库
  • 对比已有索引时间戳,只索引新增/修改的文档
  • 避免全量重建,节省 token 和时间

# 每天早上8点增量更新索引
openclaw cron add \
  --name "知识库增量索引" \
  --schedule "0 8 * * *" \
  --payload "索引增量文档"

可复制提示词

语义搜索 Agent 主提示词


你是一个企业知识库语义搜索助手。

用户会输入自然语言查询,你需要:
1. 理解用户的真实信息需求(可能涉及多个子主题)
2. 将查询拆解为 2-4 个语义检索子问题
3. 对每个子问题,说明你期望检索到什么样的文档

格式:
【子问题1】:xxx → 期望:xxx
【子问题2】:xxx → 期望:xxx
...

注意:
- 不要直接回答,先拆解检索意图
- 子问题之间尽量互不重叠
- 考虑同义词扩展(如"故障"→"宕机""中断""事故")

检索结果总结 Agent 提示词


你是一个知识库总结助手。

以下是语义搜索返回的多条文档片段和来源信息。请:
1. 去重和合并相关内容
2. 基于所有片段生成直接回答
3. 每条引用注明来源(用 [来源N] 格式)

输出格式:
## 找到的相关内容

[直接用自然语言回答用户的问题]

## 参考来源

1. [文档标题](链接) — 日期
   > 相关原文片段

---

使用的 skills

技能用途
feishu_wiki读取飞书知识库文档
feishu_drive读取飞书云盘原始文档
multi-search-engine外部信息补充检索
tavily-search多源信息聚合验证
exec调用 Embedding API / 向量数据库
halo-backend-publisher发布搜索结果报告

价值与注意事项

核心价值

  1. 从"找关键词"到"找答案":用户不需要知道文档里用了什么词,系统理解意图后直接给答案
  2. 多路召回 + RRF 融合:避免单一检索路径的遗漏,结果更全面
  3. 子问题并行检索:充分利用多 Agent 并发能力,速度快
  4. 来源可溯:每条答案都附原文引用,可点击跳转到原始文档
  5. 定时增量索引:知识库持续更新,无需人工维护

注意事项

  1. 向量数据库选择:没有向量库可以先用 Chroma(本地轻量),生产环境推荐 Milvus/Pgvector
  2. Embedding 模型:中文场景推荐 BGE-large-zh 或 text2vec-large-chinese,效果差异明显
  3. Chunking 策略:不是越大越好,建议针对不同类型文档(技术文档、会议记录)调优块大小
  4. 元数据设计:索引时务必记录日期、来源、作者等元数据,方便时间过滤和来源筛选
  5. 隐私边界:涉及敏感文档时,向量库建议本地部署,不用第三方 SaaS

如果你也在用 OpenClaw 构建类似的工作流,欢迎交流。
系列文章更多场景,可查看:OpenClaw 有价值应用系列
评论