跳转至

Knowledge Card Tool Gateway:review 后知识外挂工具验收

数据分类:synthetic_internal_demo。样例为合成 knowledge card、合成 reviewer 和临时 workspace,用于验证 reviewed/promoted knowledge card 进入 D3 检索投影前后的工具安全边界。

实验定位

这个验收集验证无企微条件下的核心闭环:

text 主动询问补充信息 -> knowledge card -> 人工 review -> promote 到 vault/docs -> 写入待 reindex queue -> queue worker 构建本次增量索引 -> Agentic Search 通过 Tool Gateway 查询

关键点是:reindex/search 不应绕过 Tool Gateway。knowledge_card.search 先过 Tool Gateway,再调用 context.search,实际检索仍复用 SearchConnector Tool Gateway。

工具策略

工具 动作 风险 要求
knowledge_card.search search R1 schema hash、user scope、requested allowed_scopes 子集检查;safe output 不返回 doc_id、source_uri、路径、owner 或候选/过滤计数
knowledge_card.review review R1 review 前先过 OntologyToolGateway;safe output 不返回 card path、object id、owner 或 reviewer
knowledge_card.promote promote R2 promote 前先过 OntologyToolGateway;safe output 不返回 promoted path、object id 或 source path
knowledge_card.reindex reindex R2 只允许治理 scope 触发;safe output 不返回路径、ID、owner、skipped 列表或错误路径
context.search search R0 knowledge_card.search 内部调用,继续执行 SearchConnector gateway 检查

汇总结果

  • Case 数:14
  • 通过数:14
  • 失败数:0
  • 通过率:100%
Case 要求 结果
allows_team_card_search reviewed/promoted team knowledge card 可以通过 Tool Gateway 检索 pass
denies_search_scope_escalation team 用户不能请求 restricted scope pass
hides_restricted_card_from_team_search team 检索不能看到 restricted 卡片的内容、路径、owner 或对象 ID pass
search_safe_output_excludes_object_identity 允许命中的 team 检索 safe output 也不暴露 doc_id、owner、source_uri 或路径 pass
search_safe_rank_log_excludes_existence_counts team 检索 safe rank_log 不暴露候选数、权限过滤数等隐藏对象存在性线索 pass
denies_reindex_without_restricted_scope 普通 team 用户不能触发全局 reindex pass
reindex_safe_output_excludes_paths_and_ids reindex safe output 不泄漏路径、card id、promoted path 或 skipped card pass
reindex_error_path_is_internal_only reindex 错误路径只保留在内部结果,safe output 不泄漏 broken card、owner 或路径 pass
review_card_records_ontology_registry_lifecycle review action 通过 OntologyToolGateway 并写入 pending -> reviewed lifecycle pass
promote_card_records_ontology_registry_lifecycle promote action 通过 OntologyToolGateway 并写入 reviewed -> promoted lifecycle pass
reindex_queue_safe_output_excludes_identity queue safe output 只暴露状态,不暴露 card path、owner、reviewer 或内容 marker pass
reindex_queue_processes_ready_cards ready queue item 先通过 OntologyToolGateway,再构建本次增量索引 pass
reindex_queue_process_requires_ontology_scopes 缺少 ontology required_scopes 时 queue processing 不运行 worker pass
reindex_queue_records_ontology_registry_lifecycle queue worker 前后态写入 ontology object registry,safe output 不泄露 object id pass

当前结论

  1. reviewed/promoted knowledge card 可以作为无企微条件下的知识外挂,接入 D3 检索投影闭环。
  2. orgreorg_demo --search-card-index 已切到 KnowledgeCardToolGateway,不再直接暴露原始 SearchResponse
  3. 普通 team 用户只能查自己 scope 内的 reviewed/promoted card,不能通过 allowed_scopes 扩权。
  4. 全局 reindex 当前被当作治理动作,只允许具备 restricted scope 的用户触发。
  5. search safe output 不返回 doc_id、source_uri、connector_id、source path、owner、reviewer 或候选/过滤计数,避免对象存在性泄漏。
  6. reindex safe output 不返回 source path、card path、promoted path、owner、reviewer、skipped card 或错误路径;详细错误只保留在内部 index_result
  7. 本地 reindex queue 已能把 ready card 处理成本次增量索引;queue safe output 只暴露状态或计数,不暴露路径、owner、reviewer 或内容 marker。
  8. reindex queue 处理路径已接入 OntologyToolGateway,缺少 ontology required_scopes 时不会运行 worker。
  9. review/promote 路径已接入 OntologyToolGateway,并把 pending/reviewed/promoted lifecycle 写入 ontology-object-registry.json
  10. queue worker 前后态会写入 ontology-object-registry.json,safe output 只暴露 registry 计数,不暴露 object id。

当前没证明什么

  • 已有本地结构化回复解析字段,但还没有接真实企微身份、签名校验、消息 ID、会话 ID 和可靠投递状态。
  • 还没有把本地 JSON queue 替换成可恢复 worker / Postgres table。
  • 还没有覆盖审计事件、worker retry 事件和真实增量 adapter 状态中的全部字段泄漏。

下一步

  1. 把真实企微回调接到现有 append_parsed_reply_to_card,并把身份、消息 ID、会话 ID 和签名校验纳入 conformance。
  2. 把 ontology registry 扩展到外部 Connector action,并把企微通讯录、投递和回调 adapter 接到当前 Ask Router topology binding 与 owner registry contract 后面。
  3. 把 reindex queue 从本地 JSON 替换为可恢复的持久化 worker / Postgres table,并接真实 adapter。
  4. 把 permission leak test 扩展到 registry 事件、worker retry 事件和增量 adapter 状态。