Ontology Tool Gateway¶
结论¶
本轮把 domain-topology.json 里的 ontology action 接到 Tool Gateway 前置治理层,验证 action 是否允许不再只看工具 scope。
当前结果:
- Case 数:10。
- 通过数:10。
- 通过率:100%。
- 覆盖检查:ToolPolicy 映射、required scopes、rule 覆盖、按 action type 判断对象 lifecycle、writeback 审计。
运行命令:
bash
python scripts/ontology_tool_gateway_conformance.py --write-report
结果文件:
vault/50-outputs/ontology-tool-gateway-results.jsonvault/50-outputs/ontology-tool-gateway-analysis.md
验证边界¶
OntologyToolGateway 不替代通用 ToolGateway,而是在工具调用前增加领域语义检查:
text
ontology action
-> tool_id / action_type 映射到 ToolPolicy
-> required_scopes 必须是 user_scopes 子集
-> object_ids 必须被允许该 action 的 rule 覆盖
-> object lifecycle 必须适配 action type:pending 可以 review,但不能 promote 或 reindex
-> writeback_event_type 必须存在并要求 audit_required=true
-> ToolGateway schema / scope / audit 检查
这让 ontology 不只是“业务对象目录”,而是真正参与工具调用决策。
当前它已经接入 personal、department、project 三类 Ask Router route、Knowledge Card review、promote 和 reindex queue 的本地执行路径。Ask route 和队列 worker 运行前会先验证 action、rule、scope、registry lifecycle 和 writeback。
Case 明细¶
| Case | 目的 | 结果 |
|---|---|---|
policy_catalog_covers_ontology_actions |
每个 ontology action 都能映射到 ToolPolicy | pass |
allows_personal_ask_action |
personal ask action 可以在 Ask Router 执行前通过 ontology action policy | pass |
allows_department_ask_action |
department ask action 可以在缺少 personal/project scope 时通过 ontology action policy | pass |
allows_project_ask_action_with_pending_artifact |
project ask action 可以作用于 pending 项目知识对象,用于补上下文 | pass |
allows_reviewed_reindex_action |
reviewed knowledge card + ready queue 可以触发 reindex action | pass |
allows_pending_project_card_review_action |
pending project knowledge card 可以触发 review action | pass |
allows_reviewed_project_card_promote_action |
reviewed project knowledge card 可以触发 promote action | pass |
denies_missing_required_scope |
缺少 dept:agent-infra 时拒绝 reindex |
pass |
denies_pending_lifecycle |
pending knowledge card 不能 reindex | pass |
denies_object_not_covered_by_rule |
rule 未覆盖的对象不能借用 reindex action | pass |
得到的 Insight¶
- 只做
allowed_scopes不够。对组织私域动作来说,scope 只能证明“这个人有一类权限”,不能证明“这个动作可以作用在这个对象上”。 - 对象 lifecycle 必须按 action type 判断:pending knowledge card 可以 review,但不能 promote 或 reindex。
- writeback event type 必须要求审计,否则 action 结果不会沉淀回研用测闭环。
- personal、department、project 三类 Ask Router route、Knowledge Card review、promote 和 reindex queue 已走过 OntologyToolGateway;缺少 ontology required_scopes 时不会执行 route 或运行 worker。
- Ask Router 对应对象状态、review/promote 与 reindex queue worker 前后态已经写入
ontology-object-registry.json;Tool Gateway safe output 只暴露 registry 计数,不暴露 object id。 - Ask Router 的 owner 来源已收敛为
load_owner_registry():显式目录优先,缺失时从 Domain Topology 派生 owner profiles;真实企微通讯录后续应替换 registry 来源,而不是绕过 ontology gate。
下一步¶
- 把 ontology registry 扩展到外部 Connector action,并把企微通讯录、真实投递和回调 adapter 接到当前 Ask Router topology binding 与 owner registry contract 后面。
- 把 ontology action audit event 与统一审计日志、worker retry 和 human review 事件串起来。
- 把 registry safe output 的泄漏检查扩展到真实 adapter 失败、重试和回放状态。