跳转至

私域 Agentic Search 设计

核心定位

OrgReOrg / Harness 需要把组织私域数据做成可被 Agent 主动检索、深度阅读和引用的搜索基础设施。

它不是传统的一次性 RAG Pipeline,而是:

text 文档解析与业务数据接入 -> BM25 全文检索 / 向量检索 -> RRF 融合 / Rerank 重排序 -> MCP Search Server -> Agent 多轮检索、阅读、验证、回答

参考 /home/ai/workspace/data_engineering 的实现,第一版可以采用 Elasticsearch 作为统一检索底座:BM25 负责精确关键词、术语、编号和人名匹配,向量检索负责语义相似和模糊表达,Rerank 负责把候选结果按问题相关性重新排序。

为什么不是只做 RAG

传统 RAG 常见流程是:

text 文档切片 -> Embedding -> 向量库 -> 单次 top-k 检索 -> 塞进 prompt -> 生成回答

这条链路的问题是反馈回路太弱。复杂组织问题经常需要多次查询、换关键词、查不同系统、阅读完整上下文、比较多个证据源,而不是一次检索定生死。

OrgReOrg 更适合采用搜索引擎模式:

  • 搜索结果可解释,能返回标题、来源、路径、时间、权限标签和片段。
  • Agent 可以先搜宽,再搜窄,再读原文。
  • 对复杂问题可以拆成多个搜索子问题。
  • 检索不到时,Agent 能识别知识缺口并触发主动收集。
  • 搜索工具通过 MCP 暴露,便于 Claude Code、Codex、内部 Agent 或网页端统一调用。

Agentic Search Loop

text Trigger: 用户提出问题或 workflow 需要上下文 Plan: Agent 拆分检索意图,选择系统和关键词 Search: 调用私域搜索 MCP,返回候选结果 Read: 读取文档详情、章节、业务对象或原始记录 Verify: 交叉验证来源、时间、权限和事实一致性 Synthesize: 生成带证据引用的答案或行动建议 Gap: 标记缺失数据、过期数据或权限不足 Persist: 写入检索记录、引用、知识缺口和后续任务

这个 loop 的重点不是“模型一次答对”,而是让 Agent 像研究员一样持续搜索、阅读和校验。

检索对象

第一阶段先覆盖结构化程度较高的信息:

  • docs/vault/ 中的组织知识。
  • GitHub Issue、PR、Commit、CI 日志和技术文档。
  • 项目管理系统中的任务、里程碑、负责人和状态。
  • 文档系统中的制度、方案、会议纪要、合同摘要和培训材料。
  • CRM、财务、BI 等系统中经过授权的只读查询结果。

企业微信和飞书只作为统一交互入口与通知入口,不应被描述为组织信息的完整来源。真实业务信息分散在各部门业务系统中,搜索层必须围绕这些系统建立连接器和权限视图。

MCP 工具设计

最小工具集:

```text private_search.search 输入:query, source, filters, top_k, use_rerank 输出:候选结果、证据片段、来源、权限标签、score

private_search.get_document 输入:doc_id, section 输出:目录、章节正文、来源元数据

private_search.search_and_read 输入:query, source, top_k 输出:搜索结果与可阅读摘要

private_search.list_sources 输入:无或权限上下文 输出:当前用户可检索的数据源和覆盖范围

private_search.report_gap 输入:问题、缺失信息、建议连接器或负责人 输出:知识缺口记录 ```

所有工具返回都必须包含证据元数据:来源系统、对象 ID、更新时间、访问权限、检索得分、是否经过 Rerank、可引用路径。

证据引用

回答组织问题时,Agent 必须尽量引用具体证据,而不是只给结论。

推荐引用粒度:

  • 文档:文件路径、标题、章节、版本、更新时间。
  • GitHub:repo、issue/PR 编号、commit、CI run。
  • 财务:报销单、预算项、合同编号、发票编号,但要按权限脱敏。
  • CRM:客户、商机、合同、回款记录,同样按权限裁剪。
  • BI:看板、指标、查询时间、过滤条件。

用户没有权限查看的证据,不应在回答中泄露内容。系统可以说明“存在相关记录但当前角色不可见”,并给出申请授权路径。

知识缺口识别

Agentic Search 的一个关键产物是知识缺口,而不是只有答案。

常见缺口包括:

  • 搜不到相关资料。
  • 找到资料但明显过期。
  • 只有结论,没有原始证据。
  • 需要访问某个业务系统但没有连接器。
  • 有连接器但当前用户没有权限。
  • 多个系统信息互相冲突。

这些缺口应该进入主动收集和知识维护流程,由 Agent 识别部门、系统、负责人,发起授权或资料补充请求。

Anthropic 方向的工程启发

Anthropic 的 Claude Projects 提供了“围绕项目注入知识和指令”的产品形态;MCP Connector 提供了通过远程 MCP Server 接入工具的工程边界;连接器权限可以按工具动作做 allow、approval 或 block;Claude Code hooks 展示了在 agent loop 的不同生命周期插入治理逻辑的方式。

OrgReOrg 不应照搬任何单一产品形态,而应吸收这些工程启发:

  • Project Knowledge 对应组织上下文包。
  • Connectors / MCP 对应部门系统工具层。
  • Connector Permissions 对应工具动作权限。
  • Skills / Plugins 对应可复用任务模板和领域操作手册。
  • Hooks 对应权限、审计、质量和上下文维护的触发点。

参考资料:

  • Anthropic MCP Connector 文档:https://docs.anthropic.com/en/docs/agents-and-tools/mcp-connector
  • Anthropic Connectors 帮助文档:https://support.anthropic.com/en/articles/11176164-pre-built-web-connectors-using-remote-mcp
  • Anthropic Projects 发布说明:https://www.anthropic.com/news/projects
  • Claude Code Hooks 文档:https://docs.anthropic.com/en/docs/claude-code/hooks