Akmon 实战:给 AI Agent 装上不可篡改的审计黑匣子
AI Agent 写代码快、改东西多,但当一个审计员、合规官或安全团队问”你的 Agent 到底修改了哪些文件?”时,你能给出什么证明?日志?终端回放记录?截图?这些在审计面前毫无说服力——任何一方都能质疑它们被篡改过。
两个月后(2026 年 8 月 2 日),欧盟 AI 法案的高风险日志记录义务(Article 12 + Annex IV)正式生效。如果你的 AI Agent 涉及高风险应用,法律会要求你提供可验证、不可抵赖的操作记录。
Akmon(Anvil——铁砧)就是这个问题的答案:一个 Rust 写的开源证据层,为任何 AI Agent 的会话生成加密签名的审计记录,且验证方只需要一条 OpenSSL 命令,不需要安装 Akmon、不需要云服务、不需要信任你。
痛点对比:你现在的”证据”有多脆弱?
| 维度 | 终端日志 | 截屏/录屏 | 应用内操作记录 | Akmon |
|---|---|---|---|---|
| 防篡改 | ❌ 可随意编辑 | ❌ 可 PS | ❌ HMAC(需信任服务端) | ✅ Ed25519 非对称签名 |
| 脱机验证 | ✅ cat 即可 | ✅ 肉眼可见 | ❌ 需登录系统 | ✅ OpenSSL 即可,无需装 Akmon |
| 确定回放 | ❌ 缺少上下文 | ❌ 仅画面 | ❌ 厂商锁定 | ✅ akmon replay 确定性回放 |
| 跨 Agent | ❌ 特定工具 | ❌ 需手动录 | ❌ 同一平台 | ✅ 任意 OpenTelemetry 输出的 Agent |
| 合规就绪 | ❌ | ❌ | ⚠️ 部分 | ✅ EU AI Act / NIST / SOC 2 映射 |
安装:两行命令搞定
macOS 或 Linux 用 Homebrew:
brew tap radotsvetkov/akmon brew install akmon # CLI brew install agef-verify # 审计员的独立验证器
Linux 用户也可直接下载预编译二进制:
base=https://github.com/radotsvetkov/akmon/releases/latest/download curl -LO $base/akmon-linux-x86_64 curl -LO $base/agef-verify-linux-x86_64 chmod +x akmon-linux-x86_64 agef-verify-linux-x86_64 mv akmon-linux-x86_64 ~/bin/akmon mv agef-verify-linux-x86_64 ~/bin/agef-verify
从源码构建也行(需要 Rust 1.88+):
cargo install --git https://github.com/radotsvetkov/akmon akmon cargo install --git https://github.com/radotsvetkov/akmon agef-verify
三个核心场景
场景一:从已有 Agent 的 OpenTelemetry 追踪创建证据链
Akmon 的最大亮点是不要求你换 Agent。只要你的 Agent(Claude Code、Codex、OpenCode 或自建 Agent)输出了 OpenTelemetry GenAI Trace,Akmon 就可以导入并封存为证据。
akmon bundle keygen --out signer.pk8 --public-out signer.pub akmon otel import trace.json --journal ./journal akmon bundle export--journal ./journal --output audit.akmon akmon bundle sign audit.akmon --key signer.pk8 akmon bundle verify audit.akmon --verify-key signer.pub --require-signature
每一步的输出结构都是内容寻址的(content-addressed),即会话内容本身作为指纹,任何人无法在不破坏签名的情况下修改任何一行日志。
场景二:生成”只需 OpenSSL 就能验证”的证据(审计友好)
如果第三方不信任你的机器或你的工具链怎么办?Akmon 专门为这个场景设计了 prove-openssl 命令:
akmon bundle prove-openssl audit.akmon --verify-key signer.pub --out-dir proof
这条命令会生成三个文件:statement.bin(原始声明内容)、signature.bin(Ed25519 签名)、pubkey.pem(公钥文件)。审计员拿到这三个文件后,在任何一台没有装 Akmon 的机器上执行:
openssl pkeyutl -verify -pubin -inkey proof/pubkey.pem -rawin \ -in proof/statement.bin -sigfile proof/signature.bin
输出 Verified OK——完成。不需要信任你、不需要装你的软件、不需要联网。这是异步审计、跨国合规审查等场景的杀手特性。
场景三:操作者问责(Operator Attestation)
在受监管环境中,不仅需要证明”Agent 做了 X”,还需要证明”是谁批准 Agent 做 X 的”。Akmon 的 attest 命令解决了这个问题:
akmon bundle attest--key operator.pk8 \ --operator-id zhang.san@company.com --role approver
这条命令为会话追加一个独立签名的操作者证明,与 Agent 的会话签名完全分离。操作者的私钥和 Agent 的私钥由不同的人保管,任何一方都不能单独伪造对方的行为记录。这对金融、医疗、政务等强监管行业特别有用。
与微软 Agent 治理工具包的对比
微软今年 4 月开源的 Agent Governance Toolkit(3600+ ⭐)是 Akmon 最直接的参照物。两者的关键差异:
| 特性 | 微软 Agent Governance Toolkit | Akmon |
|---|---|---|
| 防篡改机制 | HMAC(对称密钥 + 哈希链) | Ed25519 非对称签名 |
| 独立验证 | ❌ 需部署 Toolkit | ✅ 一条 OpenSSL 命令 |
| 跨平台验证 | ❌ 仅 .NET/Python SDK 可验证 | ✅ 所有有 OpenSSL 3.x 的平台 |
| 确定性回放 | ❌ Foundry 不支持完整回放 | ✅ 完整捕获可 akmon replay |
| 签名密钥管理 | 服务器管理对称密钥 | Ed25519 密钥对,私钥自管 |
| 云绑定 | 支持 Azure Confidential Ledger | 纯本地,无需云 |
微软的优势在于分发渠道(Purview 和 Copilot Control System 已嵌入 M365 租户)和 Azure 的 Merkle 签名收据。Akmon 的优势在于可移植性——不依赖任何云基础设施,一个 .akmon 文件 + 一条 openssl 命令就能完成验证。
捕获级别:诚实记录
Akmon 在记录中显式写入 capture_level 字段,并对其签名。这样接收方可以明确知道:
full(完全捕获):来自 Akmon 自带的 Agent 引擎,保留完整的 Prompt、响应和工具调用,可确定性回放structural(结构捕获):从其他 Agent 的 OpenTelemetry 追踪导入,保留会话结构和元数据,但不能保证字节级回放
akmon bundle verify --require-capture full 会在 structural 级别上直接报错,防止有人把”部分捕获”伪装成”完全捕获”。这种设计在审计场景中至关重要——审计员必须能区分”这就是 Agent 看到的一切”和”这只是 Agent 做事的形状”。
合规就绪
Akmon 的文档提供了已映射的合规框架清单:
- EU AI Act:Article 12 高风险系统日志义务 + Annex IV 技术文档要求(2026 年 8 月 2 日生效)
- NIST AI RMF:MEASURE 2.8 可追溯性控制
- SOC 2:CC7.x(系统操作)和 CC8.1(变更管理)
当然,Akmon 本身不是合规认证,它提供的 AGEF 证据格式需要和你自己的合规/法务团队一起验证映射的准确性。
注意事项
- macOS 用户注意:macOS 自带的
openssl实际上是 LibreSSL,不支持 Ed25519 验证。需先通过 Homebrew 安装 OpenSSL 3.x:brew install openssl@3。之后用/opt/homebrew/opt/openssl@3/bin/openssl替代裸openssl命令。 - 两套密钥体系:Agent 会话签名密钥和操作者密钥要分开保存、分开管理,避免单点信任漏洞。
- 证据容量:
full级别的捕获会记录全部 Prompt 响应内容,高频 Agent 会话注意磁盘占用。
总结
Akmon 不是替换 Agent 的工具,而是给 Agent「装上黑匣子」——让审计员、合规官和安全团队在无需信任发布方的前提下,用最基础的工具(OpenSSL)验证 Agent 到底做了什么。EU AI Act 的生效倒计时已经开始,如果你在搭建需要合规的 Agent 系统,现在就应该把证据层纳入架构。
项目地址:github.com/radotsvetkov/akmon
文档站:radotsvetkov.github.io/akmon
证据格式规范:github.com/radotsvetkov/agef