[控场AI]
· 4 分钟阅读· 2,352 字

开源记录器Deposition:用哈希链证明Agent行为未被篡改

开源记录器Deposition:用哈希链证明Agent行为未被篡改

开源工具Deposition用哈希链和签名让AI Agent行为可验证、不可抵赖。

Deposition是一个开源工具,旨在解决AI Agent行为记录可篡改的信任缺口。它通过装饰器将每次LLM和工具调用记录进哈希链式jsonl文件,任何编辑、删除或重排都能被精确定位。可选Ed25519签名防止整体重写攻击,将防护升级为防伪造。初始化时可传入mandate声明授权约束,封存进同一trace,审计时能指出越界事件并关联模型回合。每个工具调用可回溯到发起它的模型消息,支持因果分析。工具兼容LangGraph、CrewAI、OpenAI Agents SDK等主流框架。已知局限包括流式响应未捕获、签名密钥与trace同机存放。Deposition定位为事后举证工具,而非监控替代品。

当AI Agent出错——退错订单、调用了不该调用的工具——事后的记录通常是一份JSON文件或仪表盘里的一行数据,任何有权限的人都能改。规则文档也往往在事后被悄悄修订。一位开发者在Reddit上发布了自己利用夜晚和周末写出的开源工具Deposition,试图解决这个信任缺口:让Agent的每一步行为都可验证、不可抵赖。

核心机制:哈希链与Ed25519签名

Deposition的使用方式很轻:给Agent套一个装饰器,它就把每次LLM调用和工具调用记录进一个哈希链式的jsonl文件。每个事件的哈希都覆盖前一个事件,因此一旦有人编辑、删除或重排事件,depo verify能准确指出是哪一个事件破坏了链条。

哈希链本身有一个已知弱点:如果有人改完内容、把整个文件重新计算一遍哈希,链条看起来仍然完整。开发者为此加入了可选的Ed25519签名,专门覆盖这种“整体重写”的情况。按他的说法,这让记录从“防误改”升级到“防伪造”。

你可能没注意到,这一设计并不追求加密所有内容,而是聚焦于可验证性——记录内容仍可读,但改动会留下痕迹。

哈希链(Hash Chain)是一种将数据块按顺序串联的防篡改结构:每个区块的哈希值都包含前一个区块的哈希,形成单向依赖。任何对历史数据的修改都会导致后续所有哈希值变化,从而使验证者能定位到被改动的位置。这种结构广泛用于区块链和审计日志,但其安全前提是攻击者无法重新计算整条链——若攻击者能改写全部内容并重算哈希,链条本身无法自证清白。

Ed25519是一种基于椭圆曲线的数字签名算法,以高安全性和高性能著称。签名者用私钥对消息生成签名,验证者用公钥验证,确保消息来源真实且未被篡改。在Deposition中,Ed25519签名对哈希链的“链头”或整体摘要进行签名,使得即使攻击者重写整个文件并重算哈希,也无法伪造签名,从而将防护从“防误改”提升到“防伪造”。

用mandate把授权范围封进trace

开发者最看重的两个设计之一,是初始化时可以传入一个“mandate”,声明允许调用的工具、最大成本、最大步数等约束,这个mandate会被封存进同一条trace里。随后depo audit会拿运行记录和mandate对照,指出是哪一条事件越了界,并关联到导致越界的那个模型回合。

这实际上把“Agent被允许做什么”和“Agent实际做了什么”放进了同一个不可篡改的证据链。相比散落在文档里的规范,这种做法的价值在于:事后追责时不需要依赖任何一方对“当时规则是什么”的口头说明。

Mandate(授权指令)在Agent系统中指预先声明的行为约束集合,通常包括允许调用的工具列表、资源上限(如最大成本、最大步数)以及可接受的操作范围。与运行时动态策略不同,mandate在初始化时即被固定并封存,作为后续审计的基准。

在Deposition中,mandate被写入同一条哈希链trace,确保其不可篡改。审计时,depo audit将实际事件与mandate逐条比对,标记越界行为并关联到具体的模型回合。这种设计将“规则是什么”和“发生了什么”绑定在同一证据链上,消除了事后对规则的口头争议。

每个工具调用都能回溯到发起它的模型消息

第二个重点是因果可追溯性。每个工具调用都链接回请求它的模型消息,回放查看器因此可以反向追溯,回答“它为什么这么做”。对调试Agent异常行为来说,这比看到一串孤立事件更有用——你能看到决策链,而不只是结果。

工具捕获层面,作者声称兼容LangGraph 1.2、CrewAI、OpenAI Agents SDK、Pydantic AI和AutoGen。他强调自己没有照文档直接写,而是对真实包做了测试,并在工具函数上放了探针。这一做法确实发现了问题:Pydantic AI里最明显的那个hook其实是错的。这种一手验证的细节,在以“支持X框架”为宣传口径的工具里并不多见。

因果可追溯性(Causal Traceability)指在复杂系统中记录事件之间的因果依赖关系,而不仅仅是时间顺序。对于AI Agent,这意味着每个工具调用都应链接到触发它的模型消息(如LLM的决策输出),从而形成可回溯的决策链。

Deposition通过在工具函数上放置探针,捕获调用上下文并关联到发起调用的模型回合。回放查看器可反向追溯“为什么这么做”,帮助开发者调试异常行为。这种设计超越了传统日志的孤立事件记录,提供了决策链的可见性。

已知局限与定位

作者主动列出了尚不支持的场景:流式响应未被捕获——请求会被记录,响应则被标记为未捕获;签名密钥与trace存放在同一台机器上,安全性弱于听起来的效果。两点都写进了README。

定位上,他明确表示Deposition不打算替代LangSmith或Langfuse——那些是监控工具,而Deposition针对的是“日后有人要求你证明Agent做了什么”的场景。项目采用Apache 2.0许可,无必需依赖,14个示例中大部分不需要API密钥即可运行。

一个仍未回答的问题

作者在帖子末尾抛出的问题,其实比工具本身更值得思考:如果你要把一份trace交给不信任你的人——客户、审计员或自己的安全团队——他们会希望里面包含哪些你今天的日志里没有的东西?

这触及了AI Agent落地中的一个结构性缺口:能力越强,授权边界和事后举证的需求越刚性,而现有可观测性工具大多默认“记录方是可信的”。Deposition的价值不在于它已经完备,而在于它把一个常被跳过的问题摆上了台面,并给出了一个可以被攻击、被检验的具体实现。

#Deposition#Agent trace#哈希链#AI Agent审计#Ed25519签名#开源工具#LangGraph
分享:

相关推荐