文章提出给予 AI agent 钱包后威胁模型彻底改变的应对策略,介绍权限最小化、意图日志、审计追踪等分层防护模型的具体实现思路。
当你给一个 AI Agent 连接钱包的那一刻,威胁模型就变了。它不再是一个谈论金钱的聊天机器人,而成为一个经济行为者,能够移动资金。而这改变了你构建它的所有方式。
大多数 Agent 框架把钱包当作事后考虑——一个塞进环境变量的密钥对,用 sendTransaction 发送签名交易,然后祈祷。这在工作时尚可,直到出问题。一个能签署任何内容的 Agent,可能被诱导签署任何内容——无论是通过恶意输入、中毒的数据源,还是在错误时刻模型的一次错误输出。
解决方案不是移除自主性,而是给它划定边界。以下是一个实用的分层模型。
在设计边界之前,先明确你要防御的是什么会有所帮助:
过度授权。Agent 持有一把能做所有事的密钥:掏空钱包、兑换任何资产、与任何合约交互。一次糟糕的决策就意味着全部损失。
执行不透明。没有人能重建 Agent 为什么执行了某个操作。没有意图日志、没有审计跟踪、无法事后解释一笔交易。
无法恢复。当出问题的时候,没有 kill switch、没有密钥轮换、没有熔断器。你只能眼睁睁看着。
你添加的每个信任边界都应该至少堵住其中一个缺口。
第一个边界是密钥本身。单一的热密钥拥有完整权限是大多数 Agent 托管灾难的根本原因。标准缓解措施是在不同角色之间拆分权限:
根密钥——冷存储、离线,仅用于治理:密钥轮换、策略变更、紧急恢复。
操作密钥——由团队持有,用于部署和更新 Agent 配置。
Agent 密钥——Agent 实际签名时使用的密钥,且受到严格限制。
Agent 密钥应该携带明确的约束:每笔交易的最大价值、每日最大支出、以及它被允许交互的合约白名单。在支持的链上,这可以在协议层强制执行(例如,Solana 上程序的权利模型,或 EVM 链上的多签风格钱包合约)。如果你的链不支持原生约束,在签名层强制执行:密钥在物理上就无法产生违反策略的交易,因为策略存在于模型和签名者之间。
一个微妙但强大的转变:Agent 不应该直接产生原始交易。它应该产生一个意图——一个结构化的描述,说明它想做什么("将 0.5 ETH 兑换为 USDC,最大滑点 1%")——然后一个独立的策略引擎将其物化为一个具体的、有边界的交易。
这种分离很重要,因为它提供了一个检查点。策略引擎:
根据 Agent 允许的行为验证意图。
对价值、滑点、油费和交易对手设置上限。
添加模型可能不知道的不变式(例如,"永不与此标记地址交互")。
生成 Agent 密钥签名的最终字节。
现在模型无法被诱骗签署超出其权限的内容,因为它从未接触到它能滥用的签名流程。它提议;策略裁决。
完全自主是一个频谱,不是二元的。实用的模式是基于阈值的升级:
低于价值阈值:自动执行。这是 Agent 发挥价值的地方——高频、低风险操作不需要人介入。
高于阈值:需要批准。意图被渲染成通俗语言("Agent 想要将 5 ETH 转移到 0x...——批准?"),由人工签核。
高风险操作:除批准外,还需要时间锁,这样即使批准会话被入侵也无法立即造成损害。
关键设计决策是让升级路径成本低廉。如果批准需要点击十分钟,你的运维团队就会橡皮图章一切。让批准界面可读,让低风险操作默认自动执行,这样人类只在真正需要判断的地方参与。
如果你无法解释 Agent 过去的行为,就无法调试它未来的行为。有两个实践使 Agent 行为可控:
签名意图日志。Agent 提议的每个意图——无论执行还是拒绝——都被记录并签名。你可以稍后重放推理链:Agent 看到了什么、它提议了什么、策略如何处理。这把"Agent 做了些奇怪的事"从一个无法回答的谜题变成了一条可查询的记录。
事件重放。通过根据链的事件历史重放意图日志来重建任何过去的状态。这与事件溯源的想法相同,是在事故后审计一群 Agent 的最快方式。
对于恢复,按升级顺序有三个控制措施:
熔断器。对 Agent 自身行为的异常检测——交易速度、异常交易对手、偏离历史模式——自动暂停执行。
密钥轮换。当熔断器触发时,Agent 密钥被轮换,旧密钥被隔离而非删除。隔离保留证据链用于取证。
Kill switch。一个单一操作即可完全撤销 Agent 的签名权限。它应该难以意外触发,但 trivially 容易故意触发。
一个带钱包的单一 Agent 是你可以盯着的风险。一群 Agent——每个都在叠加、每个都有自己策略、每个接触不同协议——就变成了你无法手动监控的交易对手组合。那时信任边界就不再是最佳实践,而是实验和运营之间的分水岭。
那些将 Agent 安全视为头等架构问题的团队——受限密钥、策略引擎、升级门、审计跟踪——他们的 Agent 将在第一次真正的事故中存活。而那些认为"钱包在 .env 里,发版"就够了的团队,将为其他人提供警示。
没有边界的自主性不是力量,而是责任。
如果你正在构建自主 Agent,又不想自己从头实现密钥管理、策略层和升级门——这正是 BBIO 解决的问题:一个托管的链上 AI Agent 运行时,信任边界是平台的一部分,而非事后考虑。