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 |
当前结论¶
- reviewed/promoted knowledge card 可以作为无企微条件下的知识外挂,接入 D3 检索投影闭环。
orgreorg_demo --search-card-index已切到KnowledgeCardToolGateway,不再直接暴露原始SearchResponse。- 普通 team 用户只能查自己 scope 内的 reviewed/promoted card,不能通过 allowed_scopes 扩权。
- 全局 reindex 当前被当作治理动作,只允许具备
restrictedscope 的用户触发。 - search safe output 不返回 doc_id、source_uri、connector_id、source path、owner、reviewer 或候选/过滤计数,避免对象存在性泄漏。
- reindex safe output 不返回 source path、card path、promoted path、owner、reviewer、skipped card 或错误路径;详细错误只保留在内部
index_result。 - 本地 reindex queue 已能把 ready card 处理成本次增量索引;queue safe output 只暴露状态或计数,不暴露路径、owner、reviewer 或内容 marker。
- reindex queue 处理路径已接入 OntologyToolGateway,缺少 ontology required_scopes 时不会运行 worker。
- review/promote 路径已接入 OntologyToolGateway,并把 pending/reviewed/promoted lifecycle 写入
ontology-object-registry.json。 - queue worker 前后态会写入
ontology-object-registry.json,safe output 只暴露 registry 计数,不暴露 object id。
当前没证明什么¶
- 已有本地结构化回复解析字段,但还没有接真实企微身份、签名校验、消息 ID、会话 ID 和可靠投递状态。
- 还没有把本地 JSON queue 替换成可恢复 worker / Postgres table。
- 还没有覆盖审计事件、worker retry 事件和真实增量 adapter 状态中的全部字段泄漏。
下一步¶
- 把真实企微回调接到现有
append_parsed_reply_to_card,并把身份、消息 ID、会话 ID 和签名校验纳入 conformance。 - 把 ontology registry 扩展到外部 Connector action,并把企微通讯录、投递和回调 adapter 接到当前 Ask Router topology binding 与 owner registry contract 后面。
- 把 reindex queue 从本地 JSON 替换为可恢复的持久化 worker / Postgres table,并接真实 adapter。
- 把 permission leak test 扩展到 registry 事件、worker retry 事件和增量 adapter 状态。