news 2026/9/19 20:28:04

Agent Governance Toolkit 策略引擎的离线可验证证据体系:AGT-EVIDENCE-1.0 规范解读

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent Governance Toolkit 策略引擎的离线可验证证据体系:AGT-EVIDENCE-1.0 规范解读

Agent Governance Toolkit 策略引擎的离线可验证证据体系:AGT-EVIDENCE-1.0 规范解读

【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit

本文围绕 Agent Governance Toolkit(AGT,Agent Control Specification 的治理层)仓库中 AGT-EVIDENCE-1.0 规范 展开,系统讲解高保证策略分发器(SMT 门、机械化证明 PDP、TEE 证明 PDP)如何在决策裁决中携带离线可验证证据、运行时如何将该证据做红action(脱敏)传播到遥测与审计日志,以及审计者如何依据审计记录完成可复现的决策验证。读完本文,你可以理解 AGT 证据契约的字段语义、4 KiB 体积约束与 fail-closed 失败模式,并能对照仓库中的 JSON Schema、Python SDK 与 Rust 遥测实现验证其落地细节。

1. 设计动机:为什么需要"裁决附带证据"

AGT-EVIDENCE-1.0 规范开篇给出了一个核心问题:有些策略分发器(policy dispatcher)在做出allow/deny/transform决策时,希望随裁决一起交付一份对运行时不透明、但可离线验证的证明。规范列出了三类典型分发器:

  1. SMT 验证门(SMT-verified gates)—— 离线生成 Z3 / CVC5 证明脚本,将其哈希随裁决一起捆绑,审计者可以据此重新推导出证明;
  2. 机械化证明 PDP(Mechanised-proof PDPs)—— Coq / Lean / F* 推导出的决策证明,存储在证明注册表中;
  3. TEE 证明 PDP(TEE-attested PDPs)—— 针对产出决策的二进制执行 SGX / TDX / AMD-SEV 远程证明,随裁决附带证明令牌。

三者的共同点是:证据对运行时(runtime)而言是不透明的,且体积有界。这一设计决定了 AGT 运行时的行为边界——它不解析证明内容、不校验哈希、不拉取任何证明指针,只负责把证据原样搬运到遥测和审计通道中。这一"opaque propagation(不透明传播)"原则在 SPECIFICATION.md §13.3 中被明确写入主规范:"The runtime treatsevidenceas opaque. It does not validateartefactand does not fetch anyverification_pointers."

2. 裁决级证据:evidence字段契约

按 SPECIFICATION.md §13.3,裁决(verdict)MAY 携带如下证据对象:

"evidence": { "artefact": "sha256:<hex> | uri", "verification_pointers": { "<role>": "<url>" } }

规范对这两个字段给出了严格的实现要求:

字段约束
artefactMUST 是sha256:<lowercase-hex>(内容寻址)或 RFC-3986 URI 二者之一
verification_pointers键为每个分发器自行文档化的短标识符(如issuer_pubkeypolicy_registryattestation_endpoint);值是审计者可以咨询的 URI
总体积序列化后的 evidence 对象 MUST NOT 超过4 KiB;超限的分发器视为失败,运行时 MUST 发出runtime_error:policy_output_invalid

这个契约在仓库的 wire schema 中有对应落地。verdict.schema.json 将evidence定义为裁决对象上的可选成员,并明确标注其来源为 "AGT D2: optional opaque evidence object carried by high-assurance dispatchers (SMT-verified gates, mechanised-proof PDPs, TEE-attested PDPs)";$defs.evidence(同文件 L142-L161)进一步把artefact约束为string | null(内容寻址或 URI),把verification_pointers约束为"短标识符 → URI 字符串"的映射,并对整个证据对象启用additionalProperties: false防止分发器夹带未定义成员。

主规范还规定了失败模式:任何非对象的evidence(包括类型错误的结构)都会导致规范化 fail-closed,产生runtime_error:policy_output_invalid。这与规范第 2 节"超过 4 KiB 即视为失败"的要求一致——证据契约本身是 fail-closed 的:宁可拒绝整个裁决,也不容忍畸形或超大的证据对象。

3. 遥测级证据:受控脱敏的字段传播

当裁决携带证据时,运行时总是把证据传播到遥测事件。AGT-EVIDENCE-1.0 规范给出了一张"哪些事件可携带证据"的映射表(事件名为上游 ACS 命名,与 SPECIFICATION.md §19 对齐):

事件携带证据的条件
policy.invoked只要裁决带有evidence就总是携带
intervention_point.allowed源裁决携带了evidence
intervention_point.denied源裁决携带了evidence
intervention_point.warned源裁决携带了evidence
intervention_point.escalated源裁决携带了evidence
intervention_point.transformed源裁决携带了evidence

关键的红action(redaction)规则是:每个事件上运行时只发出两个证据相关字段——

  • evidence_artefact:裁决中artefact字符串的原文
  • evidence_verification_pointer_keysverification_pointers键名的排序列表不含 URL 值

verification_pointers的 URL 值被刻意排除在遥测之外,目的是限制遥测基数(bounded telemetry cardinality)——URL 通常携带高基数的主机名、路径或令牌,直接进入指标/日志会破坏遥测系统的聚合能力。完整的指针映射由审计日志承载(见下文第 4 节),审计者从审计记录中恢复。

这一脱敏契约在仓库中有可对照的实现证据:

  • Rust 核心遥测序列化把这两个字段作为事件 JSON 的稳定成员输出,见 telemetry_sinks.rs:"evidence_artefact": self.evidence_artefact"evidence_verification_pointer_keys": self.evidence_verification_pointer_keys
  • Python SDK 的TelemetryEvent在结构层面就杜绝了 URL 泄漏,见 _telemetry.py:字段注释明确"dataclass holds no policy-target payload, no snapshot payload, no annotator output, no transform value, and no pointer URL value",且evidence_verification_pointer_keys存的是tuple(sorted(evidence.verification_pointers))(同文件 L168-L175),即从裁决提取证据时只保留排序后的键名;
  • 跨语言一致性由 parity 测试夹具固定,例如 telemetry_redaction_canonical.json 与 Python 侧的 test_telemetry.py、test_transform_evidence_identity.py,确保 Rust 桥与 Python/其他 SDK 发出的事件形状和脱敏行为一致;
  • OpenTelemetry 绑定(integrations/otel)把这些事件映射为 OTel 计数器/直方图,是规范允许的"一种受支持集成,而非一致性必要条件"。

4. 审计记录与审计者验证流程

AGT-EVIDENCE-1.0 第 4 节要求:AGT 主机为每一次引擎评估写入的审计记录 MUST 包含下表全部字段

字段来源
evidence_artefact当裁决携带evidence.artefact时,取自裁决原文
verification_pointers当裁决携带evidence.verification_pointers时,取自裁决的完整映射
input_identitySPECIFICATION.md §13.1 定义的动作身份
enforced_identity同上
intervention_point请求
policy_idmanifest
mode请求
verdict运行时
reason裁决
dispatcher该策略配置的分发器

两个值得注意的设计点:

  1. 双身份字段input_identityenforced_identity都是策略输入的规范化sha256:摘要,是审计记录与"策略当时看到的确切干预点、策略目标、快照、注解"之间的稳定绑定键。对于非 transform 裁决二者相等,但记录仍然同时携带两个字段,使审计消费者可以依赖稳定的 schema;
  2. 审计与遥测的分工:遥测只放指针键名,审计记录放完整verification_pointers映射。这样遥测基数有界,审计链路又完整可复现。

规范给审计者定义的四步验证流程是整套证据体系的目标:

  1. 从审计记录读取evidence_artefactverification_pointers
  2. 通过指针 URL 或内容注册表取回证明 blob;
  3. 验证证明对应input_identity(策略当时看到的内容);当裁决是transform时,还要验证发布的证明覆盖enforced_identity(主机实际执行的内容);
  4. 证明验证通过,则该决策是**可复现(reproducible)**的。

第 3 步中区分input_identity/enforced_identity的细节尤其重要:transform裁决会替换策略目标,"策略看到的世界"和"主机实际执行的世界"可能不同,证据必须覆盖后者才谈得上对执行结果的背书。

5. 迁移边界与参考分发器

规范的迁移边界规定:遗留证据载体(legacy evidence carriers)仅由单向的 AGT 迁移命令解释;运行时实现直接消费本规范定义的 ACS 裁决与遥测字段,不再兼容旧格式。

AGT 规划了三个参考分发器(按规范位于integrations/dispatchers/下),覆盖第 1 节列出的三类动机:

分发器形态行为
agt-dispatcher-smt-z3Rust + Python发出 Z3 脚本的artefact: sha256:
agt-dispatcher-tee-sgxRust + Python发出artefactverification_pointers.attestation_endpoint
agt-dispatcher-static-proof读盘从磁盘读取预生成证明并附加到裁决

需要注意的适用前提:规范明确标注这三个参考分发器排期在 M5 / 5.0 之后,不是 5.0 GA 的必要项(文档版本为1.0.0-alpha,状态为 Draft)。从源码结构看,当前仓库 policy-engine/integrations 目录已包含otelmcpopenairigannotators等集成,但尚未包含dispatchers/子目录,与"尚未随 5.0 GA 交付"的说明相符。也就是说,现阶段读者可以把本规范当作**契约先行(contract-first)**的接口定义来理解:SDK 与运行时的证据传播/脱敏/审计字段已经就位,参考分发器本体待后续里程碑补齐。

6. 一致性(Conformance)要求

一个 AGT SDK 要声明符合本规范,需同时满足三条:

  1. 无损往返:在裁决上 round-tripevidence字段而不丢失任何成员;
  2. 遥测传播:在携带证据裁决的遥测事件上发出evidence_artefactevidence_verification_pointer_keys(且键名排序、不含 URL);
  3. 审计持久化:在 SDK 写入的任何审计记录中持久化完整的evidence对象(含verification_pointers完整映射)。

这三条正好对应第 2~4 节讲到的三个契约层次:wire 层(schema 校验与 fail-closed)、遥测层(受控脱敏传播)、审计层(完整证据落盘)。

7. 小结

AGT-EVIDENCE-1.0 用一份很短的规范定义了一套完整的"离线可验证决策证据"体系:分发器侧只承担"生成有界(≤4 KiB)、可寻址的证据对象"的义务,运行时侧只承担"不透明搬运 + 键名脱敏传播 + 完整落盘审计"的义务,审计者侧则获得一条清晰的四步复现路径。它对实现者的核心启示是:

  • 证据契约 fail-closed:畸形或超大的evidence一律导致runtime_error:policy_output_invalid,而不是静默丢弃;
  • 遥测与审计分层:遥测只放低基数的evidence_artefact和排序后的指针键名,完整指针 URL 只进审计记录,兼顾可观测性基数约束与审计完整性;
  • transform 场景的双身份校验:验证transform裁决的证据时必须覆盖enforced_identity,这是该规范在可验证性上的一个精细设计点。

如需继续深入,可对照阅读:AGT-EVIDENCE-1.0 原文、SPECIFICATION.md(§13 裁决与 §19 遥测审计)、verdict.schema.json、Python SDK 遥测实现 及其 测试,以及跨语言 parity 夹具 telemetry_redaction_canonical.json。

【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 20:26:45

基于小波变换与信息熵的自适应图像去雾技术

1. 项目背景与核心价值图像去雾技术是计算机视觉领域的重要研究方向&#xff0c;主要解决雾霾天气下拍摄的图像对比度低、色彩失真等问题。传统去雾算法往往存在边缘细节丢失、色彩偏移等缺陷&#xff0c;而小波变换凭借其多尺度分析特性&#xff0c;能够有效保留图像高频信息&…

作者头像 李华
网站建设 2026/9/19 20:25:43

Edge鼠标手势完全指南:扩展选型与标签页控制实战

1. 为什么鼠标手势在Edge里值得单独折腾用Edge的人越来越多&#xff0c;但真正把鼠标手势用起来的人其实不多。大部分人日常操作标签页的方式还是老三样&#xff1a;鼠标移到标签栏、找到那个小小的叉、点一下&#xff1b;或者按CtrlW&#xff1b;再或者右键菜单里翻半天。这些…

作者头像 李华
网站建设 2026/9/19 20:24:11

告别论文“硬伤”:让汇写AI辅助写作,回归精准与合规

每逢毕业季&#xff0c;撰写论文都是一场考验耐力与智力的漫长战役。从选题的迷茫、文献的搜集&#xff0c;到逻辑框架的搭建和最终格式的排版&#xff0c;每一个环节都可能成为压垮同学们的最后一根稻草。为了帮助广大学子高效、高质量地完成学术任务&#xff0c;全新升级的智…

作者头像 李华
网站建设 2026/9/19 20:21:44

73 份 DESIGN.md 设计系统:让 AI 代理还原品牌界面的完整指南

73 份 DESIGN.md 设计系统&#xff1a;让 AI 代理还原品牌界面的完整指南 【免费下载链接】awesome-design-md A collection of DESIGN.md files analysis by popular brand design systems. Drop one into your project and let coding agents generate a matching UI. 项目…

作者头像 李华
网站建设 2026/9/19 20:20:43

B/S架构宾馆系统测试实战:分层策略与状态机验证

简介&#xff1a;本资源是一份面向软件工程专业学生与测试初学者的宾馆管理系统软件测试实践报告&#xff0c;聚焦互联网环境下酒店管理类应用的质量保障全流程。报告完整覆盖测试计划制定、单元/集成/系统三阶段测试设计、JMeter与Selenium等工具实操、需求可追溯性分析及实验…

作者头像 李华