两种模式并存
每个知识库连接可以独立选择模式:直搜模式(默认)
不索引,不存储。每次提问实时调用平台 API 搜索。适合文档少、更新频繁、对搜索质量要求不高的场景。
RAG 模式
开启后,系统定期同步文档、分块、建立向量索引。提问时走本地混合检索(向量 + 关键词),质量远高于平台原生搜索。
启用 RAG 索引
1
连接知识平台
在 设置 → 连接器 中绑定平台凭证(详见知识库连接)。
2
开启 RAG 开关
在连接卡片上打开「启用 RAG 索引」开关。
3
首次同步
点击「立即同步」按钮触发首次全量同步。卡片上会显示同步进度和状态。
4
开始对话
同步完成后,启用 Knowledge 插件开始对话。搜索自动走 RAG 管线,回复中带有来源标记。
RAG 管线架构
整条管线运行在 Core 服务内部,零新增容器、零新增部署配置。同步机制
增量同步
同步引擎不是每次全量重新处理。每篇文档在首次同步时计算内容的 SHA-256 哈希值,后续同步时对比哈希——内容未变的文档直接跳过,只处理新增和变更的部分。文档处理流程
1
拉取文档列表
通过平台 API 获取全量文档元数据(标题、ID、所属知识库)。
2
变更检测
对比本地已索引文档的 content_hash,筛出新增和变更的文档。
3
获取全文
对变更文档调用平台 API 获取 Markdown 全文。
4
智能分块
使用 MarkdownTextSplitter 按标题层级(
#/##/###)作为首选分割点,超长段落在句号/换行处二次切割,保留 100 字符的上下文重叠。每个 chunk 约 1500 字符。5
向量嵌入
每个 chunk 通过 DashScope text-embedding-v3 生成 1024 维向量(与记忆系统复用同一嵌入模型)。
6
原子写入
在数据库事务内完成:UPSERT 文档记录 → 删除旧 chunks → 插入新 chunks。保证数据一致性。
并发与容错
- Worker 单实例:同步 worker 使用 PostgreSQL Advisory Lock 保证跨副本单实例运行,不会出现多个 pod 同时同步同一连接
- 单文档容错:某篇文档处理失败不阻塞其他文档,错误记录在连接的 sync_error 字段
- 嵌入并发控制:批量嵌入有并发上限(5 并行),避免打满 DashScope API 配额
混合检索
RAG 检索不是单纯的向量搜索——而是向量 + 关键词双通道检索,通过 RRF(Reciprocal Rank Fusion)融合排序。向量检索
将用户问题嵌入为向量,在 pgvector 中按余弦相似度检索 Top-30 语义最相关的 chunks。擅长理解同义词和语义关联。
关键词检索
使用 PostgreSQL 全文搜索(tsvector + tsquery)检索 Top-30 关键词匹配的 chunks。擅长精确术语和专有名词匹配。
- 向量检索擅长的语义匹配和关键词检索擅长的精确匹配互补
- 某条结果在两个列表中都排名靠前时,融合后得分更高(共识增强)
- 单通道噪声被另一通道稀释(噪声抑制)
来源溯源
RAG 检索结果与来源引用管线集成。专家回复中的[1] [2] 标记链接到对话底部的来源卡片,每张卡片显示:
- 原始文档标题和平台来源
- 匹配的段落预览
- 文档所属知识库名称
- 文档原始链接(如有)
同步状态
连接卡片右侧实时显示同步状态:
同步失败不影响已有索引——之前成功索引的文档仍可被正常检索。下次同步会自动重试。
平台支持
计费说明
- 同步过程:文档嵌入消耗 DashScope embedding API 配额(平台内部成本,不扣用户积分)
- 检索过程:query 嵌入同上,不额外扣用户积分
- 对话消耗:检索到的 chunk 内容注入对话上下文,按模型 token 计费——与直搜模式一致,具体消耗以产品内实时显示为准
RAG 模式的主要成本在首次全量同步的嵌入调用。增量同步只处理变更文档,后续成本极低。

