3.5.4 安全

知识库汇集了企业最集中的资料,安全设计围绕四个问题展开:谁能看到这个库、应用能把内容带给谁、外部系统能操作多少、检索内容本身要不要过滤。本章逐一说明 MoAI 的对应机制。

团队隔离:第一道边界

知识库归属团队,团队之外的任何用户(包括其他团队的管理员)都无法看到、检索或引用它。跨团队共享知识只有两种途径:把用户加入团队(成员治理见 3.1 管理系统),或通过外部接口显式授权(见下文范围控制)。

应用侧内容脱敏

知识库内容经应用进入对话后,可能出现三类出口:模型看到的工具返回、页面上的回答、落库的会话记录。MoAI 的内容脱敏做在工具结果生成的源头——三处出口是同一份脱敏后的数据,不存在「模型看了原文再嘱咐它别说」的漏洞。

配置入口在应用工作台的「安全」分区(Agent 应用与流程应用通用):

应用安全分区:内容脱敏

  • 内容脱敏(总开关):开启后可维护脱敏规则(正则匹配 + 替换形式,如手机号 → ***);
  • 工具调用结果:对工具返回内容生效——知识库检索结果作为工具返回,同样经过规则过滤;
  • 工具调用参数:对调用记录展示与流程节点输入生效,防止参数回显泄露;
  • 模型回复:对模型最终回复生效,可维护一套独立规则兜底。

外部接入范围:知识库的读写分档

业务系统通过应用接入 key 访问知识库时,key 的访问范围决定它能做什么。编辑接入 key 的「访问范围」:

应用接入范围:知识库读写分档

知识库为无权限 / 只读 / 可写三档,另有知识库 MCP 等独立开关。原则:

  • 最小授权:只做检索的场景给「只读」,绝不顺手开「可写」;
  • 实时生效:范围调整立即生效,key 泄露时第一动作是收窄范围或直接吊销;
  • key 本体的管理(创建、刷新、吊销)见 3.10 应用接入。

检索内容为什么要过滤:一个例子

客服应用绑定了工单系统插件与产品知识库。用户问「帮我查一下张三的订单」,工单插件返回的数据里带着手机号、身份证号——没有脱敏时,这些内容会同时进入模型上下文、页面回答和会话记录三处。配置「工具调用结果」脱敏规则后,插件返回在生成源头即被改写,模型只能基于脱敏后的数据作答,页面与会话落库自然一致。完整的实战案例见 2.6 安全信息过滤。

安全清单:上线一个对外知识库应用前

  1. 确认知识库内容本身可对外——先审内容,再谈技术;
  2. 应用开启内容脱敏,按数据类型补齐规则(手机号、身份证号、银行卡号、邮箱);
  3. 业务系统接入一律走应用接入 key,且只给「只读」;
  4. 对外应用不开启沙箱,或保持审批管控(见 3.5.3 沙箱);
  5. 定期在应用工作台的「日志」「监控」分区检查异常调用。

常见问题

知识库设置了公开,团队成员都能看到吗?
知识库始终归属团队,团队隔离不会因任何配置放开;「公开」概念只出现在模型与插件等资源上。

脱敏规则会影响模型回答质量吗?
被脱敏的内容模型本来就不应使用(如个人证件号),正常问答不受影响;若业务确需完整数据,把该场景拆到内部应用,不要共用脱敏配置。

只读范围能防住误删吗?
能。「只读」档位下外部接口的写操作直接被拒绝;「可写」档位建议只授予确实要写入的业务系统。