Agent Flight Recorder:为长时程工具调用智能体提供链上锚定的防篡改审计追踪
Agent Flight Recorder: Tamper-Evident Audit Trails with On-Chain Anchoring for Long-Horizon Tool-Using Agents
Full在合成N=10K上median为47.6µs,四类篡改检出率为100%。
- 长程工具智能体连续执行大量动作,失败常是错误序列。争议要核验因果与授权,且不能默认信任运营方日志。现有可观测栈假设记录可变、且同一方消费遥测。
- 记录器把意图、策略、审批、执行、效果和三类来源收成事件,用确定性CBOR、哈希链与Merkle epoch承诺顺序和包含关系,链上只写32字节root与回指。载荷默认加密,审计时按事件给密钥。
- 五层消融测开销、篡改、费用与三组取证。Table II里Full、N=10K的median为47.6µs、512字节。Table IV里Full对四类篡改为100%,假阳性0%。100事件epoch的L2费用为每10万事件2.295美元。
- 作者列出未入录事件、攻破后新条目、载荷不可恢复、侧信道、链不可用和故意延迟锚定等边界。主负载为合成数据,RQ3与RQ4是单次确定性运行,美元成本按给定gas与ETH价格投影。
- Benchmarks
- synthetic workloadsSWE-benchBase Sepolia
- Metrics
- per-event latency (median/P95/P99)bytes/eventanchoring costtamper detection ratefalse positive rateprecisionrecall
Agent Flight Recorder 将智能体每个动作记录为绑定意图、执行到来源等八个语义字段的规范化事件,通过哈希链与 Merkle 批处理实现防篡改和紧凑包含证明,并周期性将 epoch root 锚定上链,使任何持有载荷与 Merkle 证明的验证方可独立核验记录。在合成智能体负载的五种累积消融配置上,完整系统每事件中位延迟约 48 微秒、512 字节,L2 锚定在 100 事件 epoch 下每 10 万事件成本 $2.30,对编辑、删除、重排和分叉篡改的检测率为 100% 且零误报。结构化取证查询在护栏与委派查询上精确率达 1.0,非结构化文本搜索仅为 0.013 和 0.077。
Paper analysis
What problem does this paper attempt to solve?
长程智能体争议需要防篡改记录;系统用八字段事件、哈希链、Merkle与链上锚定。
长程工具智能体出事之后,需要不依赖运营方的防篡改动作记录。
- 场景:作者称智能体可在数小时或数天内执行数千次工具调用。主导失败是错误动作序列,例如删生产库、提示注入跨智能体传播、未授权提权,从而引出因果、授权与不可抵赖的第三方核验。
- 现有不足:OpenTelemetry span以及LangSmith、Langfuse等仪表盘帮助合作方调试,但假设内部日志可变,且同一方既生产又消费遥测,不提供适合争议的外部可核验记录。
- 核心边界:对手于时刻tc攻破主机后,新写入条目的真实性不能保证;系统只能保住tc之前的历史并检出篡改。锚定频率收窄该窗口,但不消除它。
- 本文系统:Agent Flight Recorder把每次动作记成绑定八个语义字段的规范序列化事件,再用哈希链、Merkle批处理与周期链上锚定做证据结算。作者称原语是标准的,工作在于集成进智能体语义系统。
- 威胁模型:
- 目标:攻破后对日志做edit、delete、reorder,或equivocation(从共同前缀向不同核验方出示分叉历史,即fork attack)。
- 时机:对手在tc攻破agent host。论文沿Schneier and Kelsey划界,不保证此后新条目为真。
- 须成立的假设(至少一项):链上epoch root仍可用且不可变(chain liveness and finality);核验方密钥与外部watcher未被攻破;存在tc之前写出的主机外原始日志副本。
- 受害记录:长程工具使用智能体的审计日志。completeness是明确non-goal,不保证所有事件到达记录器。
What related research exists?
相关工作从哈希链、透明度日志到链上承诺;作者称本文是这些层加语义模式的首次被评测组合。
论文把相关工作放在从可观测到可审计的谱系上,并按日志基础、公共承诺、链上审计和智能体记录来讨论。
防篡改日志
- Schneier and Kelsey(1999)与Bellare and Yee(1997):前者用哈希链使攻破前的条目难以被无检测地修改;后者将该性质形式化为forward integrity。论文称继承Schneier–Kelsey的威胁边界。
- Crosby and Wallach(2009)与Zhao等(2025):前者用Merkle树给出对数大小的防篡改证明;后者用eBPF协同设计防篡改日志系统。
- AWS CloudTrail:用digest为云日志提供完整性,但信任AWS作为运营方。论文指出,运营方本身是争议一方时该假设不成立。
透明度日志与时间戳
- Certificate Transparency(Laurie等,RFC 6962,2013):用Merkle包含证明支持仅追加审计。
- Sigstore、Trillian、RFC 3161与无密钥签名:把该模式推广到软件签名与时间戳。论文称它们改进可审计性,但依赖指定日志生态或权威,并在Section IV与链上锚定对照。
链上可审计日志
- Putz等(2019):本地哈希链加周期链上承诺。论文称本文扩展这一两层模式。
- Logchain与Jan等(2025):前者把日志哈希存上链;后者用Hyperledger Fabric做LangChain智能体的运行时治理。论文称这三者面向通用事件或粗粒度治理,而不是逐动作的agent-semantic审计。
智能体可观测与审计格式
- OpenTelemetry、LangSmith、Braintrust、Langfuse:记录提示词、工具span与执行流,供调试和监控。论文称它们假设合作运营方,不把日志当作外部承诺的证据对象。
- IETF draft(Sharif,2026)与Phiri(2025):前者定义带SHA-256哈希链和可选ECDSA的JSON智能体审计格式;后者公理化完整性、覆盖与可核验性。论文在II-E称:该draft没有Merkle批处理、链上锚定、选择性披露和评测;公理化工作没有实现或测量系统。
- AI Action Ledger、AIR、ProofTrail与Ojewale等(2026):分别做默认隐私的哈希链、问题陈述、工具调用的Merkle收据,以及覆盖治理、训练与部署的生命周期框架。论文称先前工作没有同时给出四项:绑定意图到执行的语义模式、面向跨组织争议的外部锚定、按事件选择性披露、对长程失败的实证消融。
基线与数据
- 基线方法:累积消融Baseline、Schema、Chain、Merkle、Full。论文写明未纳入签名digest文件或TSA时间戳日志,与已部署替代方案的实证比较留作未来工作。
- 基准:合成工作负载;五条SWE-agent在SWE-bench上的轨迹(38个事件);Base Sepolia上的锚定交易。
作者在II-E称,本文是这些层与agent-semantic schema、选择性披露和链上锚定的首次被评测组合。监管方面,论文提到Microsoft Purview记录Copilot交互,并称EU AI Act第12条要求高风险系统自动记录事件,但未规定区块链或密码学防篡改。
How does the paper address this problem?
八字段经确定性CBOR成链,按epoch做Merkle,链上只存32字节root与回指。
Agent Flight Recorder把一次工具动作收成结构化事件,再依次加上哈希链、Merkle epoch和链上锚定。Figure 1的图注写:记录器序列化、成链并打成Merkle epoch,锚定器周期提交各32字节的epoch root,核验器对照锚定root检查包含;加密与选择性披露不在图中。
设计目标与记录边界
- 六项目标:integrity、ordering、external verifiability、privacy、low overhead(sub-millisecond per event、异步锚定)、interoperability(中间件接入,不改智能体逻辑)。
- 非目标:completeness。只保证已记录事件的完整性,不保证所有事件到达记录器。
- 动作单位:工具调用、审批门决定、委托请求,以及文件写、API调用、数据库变更等副作用。作者称伤害单位是序列,不是单次动作。
八字段与序列化
- 字段:intent、policy evaluation、human approval、execution、effects、context provenance、code provenance、delegation provenance。intent只记提出的工具名和参数,不记原始推理与chain-of-thought;作者给出的理由是推理痕迹不稳定、涉及知识产权与隐私,且供应商可能合同禁止记录。
- 审批与委托:论文写生产部署中审批字段应当带密码学签名或令牌,而不只是元数据字符串;跨组织委托应当包含标明权限范围的签名委托令牌。
- 序列化:确定性CBOR(RFC 8949 §4.2)。作者称这是为避开JSON规范化的哈希不稳定,包括浮点、键序和Unicode。后续哈希都算在该字节序列上。
- 载荷分离:哈希链、Merkle树和epoch root只处理事件记录(事件ID、序号、载荷哈希、前驱摘要,以及工具名、时间戳、记录器身份等明文元数据)。载荷另存,启用披露时加密。
三层完整性
- 哈希链:ei.prev=H(ei−1)。该式把前一条记录的哈希写入当前条目,使持有后续条目的一方能发现后缀截断。单写者路径串行化并发工具调用;每事件另有单调计数器和可选concurrency-group标签,用于区分因果序与观察序。
- Merkle:每N个事件的SHA-256摘要作叶,内部节点哈希有序对;叶数不是2的幂时复制最后一片叶。包含证明为O(log N)。N可调。
- epoch链:Rt=H(Mt∥ Rt−1)。该式把本epoch的Merkle根与上一epoch根绑在一起;R0取M0与32个零字节拼接后的哈希。只把Rt上链,不把Mt或事件数据上链。作者称后继回指对不上时,可发现整段epoch被删。
- 分层:作者称去掉任一层都会削弱对相应威胁的防护:链防epoch内篡改,Merkle提供紧凑证明,epoch链发现锚定点之间的缺口。
核验、披露与锚定
- 两级核验:无披露时,由载荷哈希、Merkle证明和链上锚点重算到Rt,并核对回指,不看载荷。披露每事件解密密钥后,先解密并核对明文哈希等于已承诺的载荷哈希,再做上述步骤。两者都非交互,核验方需要披露材料和公链读权限。
- 协议外两点:权威合约地址与msg.sender须经带外材料确定,例如签名的运营方清单;同一身份、同一epoch号若有两个锚,更早被包含的交易为规范。链只保证承诺存在,不保证载荷、证明或密钥可独立取得,这些依赖单独的链下可用性安排。
- 密钥:主密钥经HKDF导出每epoch密钥,再导出每事件密钥。审计只披露被调查事件的密钥。作者写明:若审计方得到epoch密钥,就能导出该epoch全部事件密钥。零知识包含证明被标为未来工作。
- 上链内容:每个epoch提交Rt与上一根的哈希。合约还记录msg.sender、用作映射键的epoch号和区块时间戳,不存日志数据。作者对比optimistic rollup:后者需要争议窗口和至少一名诚实核验方;本系统在最终性之后无需挑战窗口。锚定频率用成本换妥协窗口宽度。
- 五种机制:Table I比较无锚定、签名digest、透明度日志、TSA和链上锚定。作者观察到只有链上锚定无需事先约定承诺介质,持有披露载荷与证明的任一方可独立核验,且运营方失效后承诺仍在。表中把链上的每事件成本标为medium,其余为zero、negligible或low。
原型
- 组件:约1500行Python。本地记录器拦截工具调用并写CBOR、链指针和Merkle叶。锚定器把Rt提交到EVM兼容链;Solidity合约约30行,链上只存32字节root与回指。核验器输出verified、tampered或incomplete。
- 并发标记:logical_clock是单调计数器,不是向量时钟;另有可选concurrency_group。选择性披露开启时,密文与完整性结构一起保存。
- 链的选择:作者称最高外部可核验性面向无许可链(Ethereum L2或等价物)。许多L2使用单一sequencer;force-inclusion允许把锚定交易直接交到L1上的rollup合约。许可链用于不需要外部争议解决、且对成本敏感的部署。
What experiments did the paper conduct?
Full在N=10K的median为47.6µs;四类篡改检出100%,L2每10万事件约2.30美元。
实验设置
- 环境:单机Apple M-series、16 GB RAM、Python 3.11。延迟用perf_counter_ns。论文写所有运行使用seed 42,同一seed的事件流确定,并称结果来自30次不同seed的运行。VIII-C写RQ1为30次运行,RQ3与RQ4为单次确定性运行。
- 合成负载:N取100、1K、10K;八类工具为file read/write、shell、API、database query、retrieval、code execution、approval gate、delegation。约15%事件并发,每组2至3个同时发出。类别权重来自公开智能体文档中的频率分布。Table II对应N=10K。
- 轨迹与链:RQ1复验五条SWE-agent的SWE-bench轨迹,共38个事件(47% shell、34% file edits、18% file reads)。RQ2在Base Sepolia测量100笔anchor交易的gas。
- 消融:Baseline(json.dumps,无模式、无完整性)⊂ Schema(加八字段与确定性CBOR)⊂ Chain(加SHA-256哈希链)⊂ Merkle(100事件epoch)⊂ Full(加链上锚定)。Baseline到Schema同时改变结构与编码。
- 费用假设:用测得gas,按L1 30 Gwei、L2 0.01 Gwei、ETH 2500美元投影。窗口按每秒1个事件,等于epoch大小乘平均间隔。负载10万事件,epoch取10、50、100、500、1000。
- 注入:四类篡改打在10,000事件日志的10个位置:8个均匀内部位置,加N−2与N−1。指标为延迟、字节、gas与美元、检出率、假阳性率、precision和recall。论文写明未纳入签名digest或TSA对照。
主结果
据Table II,合成负载N=10K。P95未列入本表。
Swipe horizontally to read the table
配置 Median (µs) P99 (µs) 字节/事件 Baseline 20.3 30.7 272 Schema 6.0 10.0 476 Chain 48.2 76.8 477 Merkle 48.8 4067.6 512 Full 47.6 30020.9 512 - 编码:作者把Schema快于Baseline归因于确定性CBOR避开json.dumps处理嵌套dict,并把字节增加概括为75%。
- 48 µs的说法:摘要与Takeaway写完整系统增加约48 µs的median每事件延迟;Table II给出的是绝对median。不宜把该说法读成相对Baseline的差值。作者称该延迟处于任何涉及I/O的工具调用预算内。签名只在epoch边界发生(论文写为1%的事件);生产中可异步提交,P99测的是本地准备,不是网络往返。
- 真实轨迹:作者称相对模式仍成立。Full的median比Baseline的2.4 µs高约14 µs,签名开销出现在P95。绝对延迟更低,作者归因于真实事件填充字段更少,且编码任务没有delegation或approval事件。
锚定成本(RQ2)
合约在Base Sepolia上测100笔交易。anchor()平均gas为91,800:首次冷写71,680,其后热写91,976。下表据Table III,负载10万事件,假设每秒1个事件。
Swipe horizontally to read the table
epoch 窗口(s) 锚点数 L1美元 L2美元 10 10 10000 68850 22.95 50 50 2000 13770 4.59 100 100 1000 6885 2.295 500 500 200 1377 0.459 1000 1000 100 688.5 0.2295 - 概括:epoch为100时,作者把L2费用概括为每10万事件2.30美元,并把L1写成6,885美元。作者称L2相对L1降低3000倍。epoch为1000时,表中L1为688.5美元,正文写689美元,窗口为1000秒,作者称约17分钟。
- 窗口:作者称L2使亚分钟窗口在费用上可行;epoch为10时窗口10秒,L2为22.95美元。作者称实际负载是突发的,墙钟窗口不由epoch大小单独决定。论文未另给突发负载下的美元数。
篡改检出(RQ3)
据Table IV。各配置、各攻击类型的假阳性率论文写为0%。
Swipe horizontally to read the table
攻击 Baseline Schema Chain Merkle Full edit 0% 0% 90% 100% 100% delete 0% 0% 90% 100% 100% reorder 0% 0% 100% 100% 100% equivocation/fork 0% 0% 0% 0% 100% - 终端事件:作者称Chain漏掉的edit与delete位置是最后一条N−1,因为没有后继去暴露prev_hash断裂;倒数第二条仍会被后继检查到。Merkle用封存时提交的叶哈希补上单日志攻击的终端位置。
- reorder与fork:作者称交换相邻事件总会打断至少一条内部链指针。fork在各分支内部自洽,单日志核验不能发现;实验另用一个记录器记下分叉分支,再与原分支已锚定的root对照。作者称无锚定则两支都自洽。
- 重复:论文在VIII-C写RQ3为单次确定性运行。检出率适用于论文所述的证据模型;攻破后的后缀截断需要主机外副本。
取证查询(RQ4)
- 场景A:向II-D的提示注入场景植入失败,做五条查询。Baseline的guardrail文本检索返回79条、1个真阳性,正文写precision 1.3%,摘要写0.013。Schema至Full用精确字段查找,五条查询的precision与recall均为1.0。
- 委托与因果链:结构化委托查找的precision为1.0。grep命中全部13条delegation事件,precision为0.077。Baseline重建完整因果链的precision与recall为0.0;作者归因于无结构日志缺少把事件连成序列的哈希链指针。
- 场景B与C:grep返回2条,precision为0.5;结构化环境字段返回恰好1条配置读取事件。场景C中各配置都能从日志回答争议,作者称只有Full的链上锚定能让中立第三方核验;否则须信任某一方的密钥或日志服务器。作者称结构化字段消除取证分诊中的假阳性,且不应把查询改进推广到所测配置之外。
其他消融与分析
- P95(Table II,N=10K,µs):Baseline 26.2,Schema 8.2,Chain 57.2,Merkle 60.8,Full 60.2。
- 作者称Schema相对Baseline的字节多75%,Full相对Baseline增加88%。
- Baseline到Schema的差异是事件结构与JSON到确定性CBOR的合效应,不是schema单独效应(VI-B)。
- 作者称Full与Merkle的median处于噪声内,因为签名只占1%的事件。
- 约15%事件并发,组大小为2至3(VI-B)。
- 本评测不包含非区块链完整性基线;与已部署替代方案的对照被写成未来工作(VI-B)。
What are some points that can be further explored?
作者列出完整性、攻破后真实性与载荷恢复等边界,并把ZK与TEE列为后续。
作者指出的局限与后续方向
- 完整性(VIII-A、VIII-D):绕过插桩网关的动作记录器看不到;只看日志不能发现epoch内压制。epoch链能发现缺失epoch,不能发现epoch内缺失事件。作者把远程证明的TEE网关列为未来工作,并写明证明密钥失陷或证明边界外的侧信道仍是剩余风险。
- 攻破后与载荷(VIII-A):完全主机攻破之后写入的条目不可信。载荷库丢失且没有主机外副本时,承诺只能证明日志曾存在,内容不可恢复。
- 侧信道与锚定(VIII-A):记录器不捕获模型内部或带外通信。链不可用时动作继续但不锚定,窗口扩大到连接恢复。运营方可故意推迟锚定;监测锚点规律能缓解,但需要watcher。
- 擦除与合规(VIII-B):密码学擦除必须销毁或重封装epoch密钥材料,不能只删派生的每事件密钥。作者称这是否满足GDPR取决于司法辖区、元数据可链接性与保留政策,只作为操作机制,不是法律充分性主张。
- 效度与操作(VIII-C):主负载为合成。演练用实验者定义的查询和模拟失败,不是独立响应者面对真实事故;基线是纯JSON,不是成熟审计系统。美元数字在既定假设下是示意性的。作者称规范化边角、密钥管理失败、对抗输入、拥堵延迟、重组与最终性边角可能削弱保证,但不改变所测密码学性质。
- 后续(VIII-D、VI-B、IX):ZK的Merkle包含证明、TEE完整性、费用升高时加宽epoch、以抵押品配合欺诈证明的链上保证金、类似Certificate Transparency的跨厂商Agent Transparency Log。与已部署替代方案的实证比较留作未来工作。作者称给第三方经济激励去主动审计,是最有希望的下一步。
实验覆盖范围
- 被评测配置为Baseline、Schema、Chain、Merkle、Full;Table II的延迟与字节对应合成负载N=10K,论文写RQ1为30次运行(VI-B、VI-C)。
- 篡改类为edit、delete、reorder、equivocation/fork;日志长10,000,每类10个位置;假阳性率写为0%(Table IV、VI-E)。
- 锚定gas来自Base Sepolia的100笔交易;美元按30 Gwei、0.01 Gwei与ETH 2500美元投影。epoch为10、50、100、500、1000,负载10万事件,间隔按每秒1个事件(Table III、VI-D)。
- 取证覆盖II-D的三个合成场景;RQ1另在五条SWE-agent的SWE-bench轨迹上复验,共38个事件(VI-C、VI-F)。
- 论文写明RQ3与RQ4为单次确定性运行;Full的P99测本地签名准备,不含网络往返;本评测不包含签名digest或TSA基线;fork检出要对照已锚定根,论文写明篡改表覆盖单日志核验(VI-B、VI-C、VIII-C)。
Summarize the main content of the paper
语义事件加哈希链、Merkle与链上锚定,用来在争议中核验长程智能体的动作序列。
Agent Flight Recorder把长程工具智能体的动作收成可被第三方独立核验的审计记录,面向运营方本身可能改写历史的争议。
- 问题:作者关心的不是单次错答,而是删库、注入传播、跨组织委托这类序列失败之后,如何回答做了什么、谁批准、谁委托,且核验方不必信任任一方的基础设施。
- 做法:八个语义字段经确定性CBOR固定为字节序列;哈希链维持全序,Merkle树按epoch给出包含证明,公链只承诺32字节root与回指。默认只留哈希与结构元数据,调查时披露单个事件的密钥。
- 开销:Table II在N=10K的合成负载上给出Full的绝对median 47.6 µs、P99 30020.9 µs、512字节/事件。摘要把完整栈的median延迟概括为约48 µs。五条SWE-agent轨迹(38事件)上,Full比Baseline的2.4 µs高约14 µs。
- 检出与费用:Table IV中只有Full对edit、delete、reorder和fork都是100%,假阳性为0%;Chain对edit与delete为90%,漏的是没有后继的最后一条。Table III里,100事件epoch、10万事件的L2费用为2.295美元,作者概括为2.30美元。
- 取证:Schema及之后的配置在提示注入场景五条查询上precision与recall为1.0。Baseline的guardrail文本检索precision为1.3%(79条命中、1个真阳性),委托关键词为0.077。作者称中立第三方核验只出现在有链上锚定的配置。
- 作者结论:链上锚定去掉的是事先约定的信任中介,不替代链下的载荷保存与披露安排。作者把让第三方有经济激励去主动审计,写成最有希望的下一步。