初始上下文

功能
Brain 的 Document access 机制——为 Google Drive 源新增「Original source」权限继承模式,检索时按每份文档的原始 Drive 权限逐文档强制访问控制
版本起源
v10.10.0 "Keno City" (2026-07-13)
解决的问题
Brain 此前按"源 scope"做粗粒度控制——能看到 GDrive 源就能检索源里所有文档,包括原本无权查看的机密文件(薪酬/法务/董事会材料),对任何有文档级权限边界的企业是致命数据越权风险,直接阻断企业采纳
战略动机
把 Brain 从"能用的知识库"打磨成"企业敢用的合规知识层"。文档级 ACL 继承是企业搜索(Glean)做了多年、agent 平台普遍缺失的能力——拆除企业采购 Brain 的数据越权审查障碍
评分
5/13(战略2 护城河1 用户1 复杂度1 创新0)[初始9→质疑-4→最终5] · 🔶 用户提级(Brain 企业化关键基建)

1. 概览

背景:Brain 的两层访问控制

Brain 访问控制分两层,Document access 是第二层。默认 source scope 是唯一门禁:能看到源的人能检索源里一切。Document access 让 Google Drive 源可进一步按每份文档自己的 Drive 权限约束检索。

┌──────────────────────────────────────────────────────────────────────┐
│                  Brain 访问控制 — 两层模型                             │
├──────────────────────────────────────────────────────────────────────┤
│  第 1 层:Source scope(所有源都有)                                   │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │  决定"谁能看到并搜索这个源":Personal / Team / Organization     │   │
│  └──────────────────────────────────────────────────────────────┘   │
│         │  默认:scope 是唯一门禁                                       │
│         ▼                                                             │
│  第 2 层:Document access(仅 Google Drive 源,v10.10.0 新)            │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │  Gumloop access(默认)/ Original source(权限继承)             │   │
│  └──────────────────────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────────────────────┘

两种模式

模式行为适用
Gumloop access(默认)源 scope 内任何人可检索全部文档,忽略原始权限无文档级权限边界的小团队
Original source(v10.10.0 新)只有在 Drive 里有访问权的人才能经 Brain 检索到该文档,逐文档检查有文档级权限边界的企业

目标

  1. 消除数据越权——检索结果不含用户在源系统无权查看的机密文档
  2. 尊重源系统 ACL——Brain 检索权限与企业既有文档权限对齐
  3. 通过企业安全审查——满足 SOC2/ISO27001 对"AI 检索尊重源 ACL"的要求
  4. Fail-closed 保守姿态——宁可漏检,不可越权

2. 核心机制 [文档已验证]

2.1 同步时快照 + 检索时强制

「Original source」分两阶段工作:同步时快照每份文档的 Drive 权限(按邮箱);检索时按用户连接的 Google 邮箱逐文档检查快照。权限不是实时查 Drive,而是同步快照——Drive 权限变更要等下一次同步才生效。

┌──────────────────────────────────────────────────────────────────────┐
│  阶段 1 — 同步时(Sync time):权限快照                                 │
│  Gumloop 读取每份文档,快照其当前 Drive 权限(谁有访问权,按邮箱)        │
│         │  权限快照随索引一起存储                                        │
│         ▼                                                             │
│  阶段 2 — 检索时(Search time):逐文档强制                             │
│  用户检索 → 对每个候选文档检查该用户是否有权                              │
│  匹配依据:用户【连接的 Google 账户邮箱】                                 │
│         │                                                             │
│    ┌────┴────┐                                                        │
│    ▼         ▼                                                        │
│   有权       无权                                                      │
│    │          │                                                       │
│    ▼          ▼                                                       │
│  返回内容   文档不浮现(fail-closed)                                    │
└──────────────────────────────────────────────────────────────────────┘

2.2 Fail-closed 设计(关键安全姿态)

Gumloop 原则:"fails closed rather than over-share"(宁可少给也不过度分享)。并非所有 Drive 授予方式都能被强制:

Drive 权限授予方式Brain 行为
直接用户访问✅ 遵守——有权用户可检索
组织/域访问(匹配已验证邮箱域)✅ 遵守——同域用户可检索
Google Group 共享✅ 遵守(v10.21.0 起)——需 org admin 连接 Google Workspace directory,组成员可检索
"任何拥有链接的人"❌ 仍视为无权限,不浮现(fail-closed 保持)
🟡 Google Group 从 fail-closed 到受支持(v10.21.0 演进)

Drive 只报告 Group 地址不报告成员。v1.0 时 Group 共享因"无法映射到特定用户"被一律视为无权限。v10.21.0 的解法:Brain 通过组织级 Google Workspace directory 连接(Organization settings > General,admin 用有权读目录的账号连接一次,只读 group memberships)展开 Group → 成员,适用于组织内所有 Drive 源。链接分享仍保守不浮现——原则不变(不确定仍 fail-closed),"不确定"的范围通过目录集成缩小。

2.3 模式切换触发重新同步

改变源的 Document access 设置会排队重新同步,按新模式重新快照权限。切到 Original source → 重新快照所有文档权限;切到 Gumloop access → 丢弃快照、回到 scope-only 门禁。

2.4 支持范围(Google Drive + Salesforce)

Document access 选项只出现在支持它的源上。当前支持 Google Drive 与 Salesforce(v10.23.0 起);其他源(Notion/Slack/GitHub/Confluence/Zendesk/文件上传)始终用 Gumloop access。Gumloop access 模式下不检查逐文档权限——能看到源的人能检索源里任何内容,文档建议把此类源 scope 到预期受众。

2.5 Salesforce 记录权限(v2.0 · v10.23.0)

Salesforce 是第 8 个 native source(CRM 域首个):同步 CRM records + Knowledge articles,object 粒度勾选;每条 record 一个文档,字段值带标签索引为文本,ID/系统时间戳/复合字段剔除。权限继承比 GDrive 更深一层:

层级机制效果
记录级sync 时快照每条记录的可读者,按 Salesforce 用户记录上的邮箱匹配无权读该记录的用户检索不到
字段级(FLS)用户在 Salesforce 无权读的字段不进其检索结果同一记录两人搜出不同字段——字段级裁剪
fail-closed记录无 owner 或应匹配用户无邮箱 → 视为无权限宁可漏检不越权
降级路径带 data categories 的 Knowledge 文章在连接账号无 Metadata API 权限时整类跳过按用户类别可见性过滤的前提是能查到类别
  • 权限每次 sync 重新快照——Salesforce 里的授权变更在下一次 sync 后生效于 Brain
  • 评分(本更新):7/13(战略2 护城河2 用户1 复杂度2 创新0)——CRM 是企业数据合规门槛最高的域,"每记录一文档 + 字段级权限快照"复检了 v1.0 架构的可复用性

3. 功能需求

模块 A — Document access 配置

ID触发场景系统行为优先级
A1添加 GDrive 源时出现 Document access 选项(其他源不出现)P0
A2选 Original source启用权限继承:同步快照 + 检索逐文档强制P0
A3选 Gumloop access(默认)仅 scope 门禁,不检查逐文档权限P0
A4编辑源设置可修改 Document access 模式P0
A5添加 Salesforce 源时(v2.0)出现 Document access 选项 + object 粒度勾选清单P0

模块 B — 权限快照与强制

ID触发场景系统行为优先级
B1Original source 模式同步快照每份文档 Drive 权限(按邮箱),随索引存储P0
B2用户检索按用户连接 Google 邮箱逐文档检查快照权限P0
B3用户对文档无权文档不浮现(fail-closed)P0
B4文档为 link-sharing / Group 共享link-sharing 一律视为无权限;Group 在 directory 连接后按成员展开(v10.21.0)P0
B5文档为直接用户/域授权遵守,有权用户可检索P0
B6Salesforce 源同步(v2.0)快照每条记录可读者 + 字段级 FLS;每 record 一文档,字段值带标签索引P0
B7Salesforce 记录无 owner / 用户无邮箱(v2.0)视为无权限(fail-closed)P0
B8Knowledge 文章带 data categories 且账号无 Metadata API 权限(v2.0)整类跳过索引;提示重连有权限账号P1

模块 C — 模式切换

ID触发场景系统行为优先级
C1切换 Document access排队重新同步,按新模式重新快照P0
C2切到 Gumloop access丢弃权限快照,回到 scope-onlyP0

4. 用户场景

场景 1 — HR Brain 索引全员 Drive,薪酬文件仅 HRBP 可见

作为 HRBP,我希望员工问 HR agent "我的薪酬明细"时,agent 不会把别的员工的薪酬文件返回给他——即使那文件在 HR Brain 源里被索引了。

画像:王芳,35 岁,企业 HRBP。公司 Organization scope 索引全员 Drive,但薪酬/绩效机密文件在 Drive 里只有 HRBP 团队有访问权。

验收标准:

  • HR Drive 源 Organization scope,Document access 设为 Original source
  • 同步快照每份文档 Drive 权限(薪酬文件只有 HRBP 邮箱在列)
  • 普通员工检索 → 薪酬文件因邮箱不在快照中而不浮现(fail-closed)
  • HRBP 检索 → 薪酬文件浮现(邮箱在快照中)
  • 无数据越权,员工只看到本就有权的内容

场景 2 — 受监管企业通过 SOC2 审查接入 Brain

作为 CISO,我希望向审计师证明 Brain 不会把员工在 Drive 里无权查看的文件经 AI 检索泄露——这样我才能放行 Brain 进生产。

画像:陈总,40 岁,金融企业 CISO。公司想用 Brain 索引 Drive 知识库,但 SOC2 要求"AI 检索必须尊重源系统 ACL"。

验收标准:

  • Drive 源 Document access 设为 Original source
  • 审计验证:无权用户检索 → 机密文档不浮现(逐文档强制 + fail-closed)
  • 审计验证:link-sharing 文档一律不浮现(保守姿态);Google Group 文档在 directory 连接后仅对组成员浮现(v10.21.0)
  • 权限变更后下一次同步生效(快照机制可解释、可审计)
  • 满足 SOC2 要求,CISO 放行 Brain

5. 竞争分析

竞品文档级权限能力优势劣势
Glean文档级 ACL 继承多年权限模型成熟,覆盖源广搜索工具非 agent 平台
Copilot for M365尊重 Microsoft Graph 权限与 M365 深度集成绑定微软生态,非跨源
ChatGPT/Claude(文件上传)无文档级权限—孤立文件,无源连接,无 ACL
Gumloop Brain(v10.10.0 前)仅源 scope 粗粒度—数据越权风险,企业不敢采购
Gumloop Brain(v10.23.0 后)GDrive 文档级 + Salesforce 记录级/字段级 FLS + fail-closed + Group 目录展开agent 平台少见的文档级权限;CRM 域最深;保守姿态仅 2 源支持;同步快照非实时;link-sharing 漏检

关键洞察

  1. 文档级 ACL 是企业搜索标配,agent 平台普遍缺失——Glean 做了多年,Gumloop 是追赶而非引领。但这块短板不补,企业不会采购 Brain——"必须做"而非"差异化"
  2. Fail-closed 是正确的企业安全姿态——"宁可漏检不可越权"面向审计。link-sharing 一律无权限(保持);Google Group 在 v10.21.0 前同样无权限,现已通过 directory 连接按成员展开
  3. 同步快照是务实折中——不实时查 Drive(慢、API 成本高),而是快照+检索强制。代价是权限变更有同步延迟,对多数场景够用
  4. 仅 2 源支持仍是局限——v2.0 验证:Salesforce 已加入且比预测更深(字段级 FLS),多源框架成立;Notion/Confluence/Slack/Zendesk 仍走粗粒度 scope,是下一批候选

6. 遥测

漏斗阶段事件名称指标/KPI优先级
采用brain_doc_access_original_source_enabledGDrive 源启用率P0
安全brain_doc_access_denied拦截次数/日(去标识)P0
安全brain_doc_access_link_group_private保守拦截次数P1
采用brain_sf_source_original_source_enabledCRM 源权限继承启用率(v2.0)P0
安全brain_sf_fls_filtered字段级拦截次数/日(v2.0)P1
影响brain_enterprise_adoption_post_acl受监管企业采纳数P0
质量brain_doc_access_false_negative漏检投诉率P1

7. 未来演进方向

阶段时间线里程碑状态
Phase 1 — GDrive 文档级权限v10.10.0Original source + fail-closed + 同步快照已发布
Phase 1.5 — Google Group 授权v10.21.0Workspace directory 只读连接,Group 按成员展开已发布
Phase 2 — Salesforce 记录/字段级权限v10.23.0第二个支持源,记录级 + 字段级 FLS,权限继承多源框架化已发布(v2.0)
Phase 2.5 — 扩展到更多源v10.x+Notion/Confluence/Slack/Zendesk 的文档级权限继承推断/规划
Phase 3 — 实时权限校验v11.x权限变更近实时生效或缓存失效机制探索
Phase 4 — 可解释访问拒绝远期告知"文档存在但无权"(可审计 deny)而非静默不浮现探索

关键演进判断

  1. 扩展到更多源是必然下一步——仅 GDrive 支持意味着 Notion/Confluence 源机密页面仍有越权风险。v2.0 验证:已在 Salesforce 落地且比预测更深(字段级 FLS)——多源框架成立,Notion/Confluence/Zendesk 是下一批候选
  2. link/Group 处理演进——"解析 Group 成员"已在 v10.21.0 落地(Workspace directory 连接);link-sharing 仍一律无权限,未来可能识别白名单域以减少漏检,但增加安全复杂度
  3. 同步快照 vs 实时校验的张力——权限变更频繁的企业(离职即时收回)可能需要更实时校验或 webhook 驱动的权限失效
📚 源文档参考

docs.gumloop.com/core-concepts/brain(Document access 章节,完整验证)

父规格:Gumloop Brain(公司知识库) — 10/13