知识库问答RAG文件索引和权限边界

📅 2026/6/29 10:33:55
知识库问答RAG文件索引和权限边界
知识库问答最常见的误解是代码解读复制代码把文件丢进去Agent 就会知道一切。现实不是这样。知识库系统要解决三个问题代码解读复制代码能不能找到相关内容找到的内容能不能被信任这个用户有没有权限看到RAG 只是其中一部分。先说结论检索不是权限系统一个 OpenClaw 知识库问答方案应该拆成rust 代码解读复制代码文件来源- 清洗和切分- 索引- 检索- 权限过滤- 引用和回答- 反馈和更新向量搜索负责“相关性”不负责“授权”。OpenClaw 的记忆和知识基础OpenClaw memory 使用 workspace 中的 Markdown 文件css 代码解读复制代码MEMORY.mdmemory/YYYY-MM-DD.mdDREAMS.mdMEMORY.md 是紧凑、长期、每次会话启动会加载的 durable memory。memory/YYYY-MM-DD.md 更像工作层保存日常记录和更详细上下文。Agent 可以使用代码解读复制代码memory_searchmemory_get来查找和读取记忆。这和企业知识库有相似处但不完全等同。企业知识库通常还要额外处理文档来源、权限、版本和审计。Memory Search 如何工作官方文档说明memory_search 会把记忆文件切成小块并用向量、关键词或二者结合搜索。混合检索可以理解为rust 代码解读复制代码Query- Embedding- Vector SearchQuery- Tokenize- BM25 SearchVector BM25- Weighted Merge- Top Results向量搜索适合语义相似BM25 适合精确 ID、错误码、配置 key。RAG 问答链路一个知识库问答请求可以这样流动rust 代码解读复制代码用户问题- 识别领域和权限- 生成检索 query- 检索候选 chunk- 权限过滤- 去重和重排- 读取原文片段- 带引用回答- 记录无法回答或过期信号注意权限过滤要在“给模型看内容前”完成。不要先把所有检索结果塞进 prompt再让模型自己决定不能说什么。文件索引要设计什么索引前要定义代码解读复制代码哪些目录进入索引哪些文件类型允许单文件大小上限是否解析 PDF / docx / xlsx是否保留表格结构多语言和中文分词怎么处理版本更新如何重建索引删除文件后索引如何清理OpenClaw memory search 对 CJK 文本也有排错建议如果中文找不到重建 FTS index。css 代码解读复制代码openclaw memory index --force权限边界知识库权限通常有几层代码解读复制代码用户身份租户 / 团队文档 ACL目录范围字段脱敏工具权限审计记录如果你在一个 shared Gateway 里让多个人查询知识库要谨慎。OpenClaw security 文档明确说它默认是个人助手信任模型不是多个敌对用户共享一个 Gateway 的强多租户安全边界。强隔离应该使用单独 Gateway、单独 OS 用户或单独主机。真实场景客服知识库你要做一个客服问答助手。不要这样代码解读复制代码把所有客服文档、合同、客户资料都放进一个索引然后让模型判断能不能回答。更合理代码解读复制代码公开 FAQ所有客服可查客户专属合同按 customerId 过滤内部处理 SOP仅内部坐席可查敏感字段检索前过滤或回答前脱敏回答要带引用例如文档标题、版本、更新时间和段落位置。常见误解误解一RAG 等于知识库RAG 是检索增强生成。www.ycsjb.com知识库还包括来源、权限、版本、治理和审计。误解二向量搜索会自动找到正确答案不一定。ID、错误码、配置字段经常需要关键词检索。误解三权限可以交给模型遵守不应该。权限过滤应在上下文注入前完成。误解四把所有历史都放进 MEMORY.mdMEMORY.md 应该紧凑。详细材料应放入可检索的日常笔记或知识库。最后总结知识库问答不是“把文档喂给模型”而是检索、权限和引用的系统工程。一句话总结代码解读复制代码先确定谁能看什么再做索引和检索相关性解决找得到权限边界解决能不能看。本节作业画出一个客服知识库的 RAG 流程。给三类文档设计权限规则。判断哪些查询需要 BM25哪些适合向量搜索。设计回答中的引用格式。写一条索引重建和删除同步策略。