AI Agent 链上操作:签名之前先生成可验证计划
AI Agent 链上操作:签名之前先生成可验证计划
一、Agent 不能直接替用户签名
AI Agent 能帮用户分析资产、构造交易、调用合约、提交治理提案。但链上操作一旦签名,就具备真实资产和权限后果。让 Agent 直接决定并发起签名,是非常危险的设计。
签名之前,Agent 必须生成可验证计划,让用户和系统都能看懂它准备做什么。
链上操作的不可逆性决定了它的安全模型必须比传统应用更严格。Web2 的 AI 助手在沙箱里生成文本,失误最多导致信息错误;但 Web3 Agent 一旦获得签名能力,就是事实上的资产操作者。这里的核心矛盾在于:用户既希望 AI 减少理解门槛和操作步骤,又必须保持最终的控制权。可验证计划就是这条边界——它把 AI 的想法翻译成结构化提案,让用户不是盲点确认,而是理解后再授权。计划不是多余的中间步骤,而是 Agent 和用户之间的信任协议。
二、计划要结构化
flowchart TD
A[用户意图] --> B[Agent 生成计划]
B --> C[模拟执行]
C --> D[风险解释]
D --> E[用户确认]
E --> F[钱包签名]
计划里要包含目标合约、方法名、参数、预计资产变化、授权范围、链 ID 和失败风险。不要只给一句“帮你完成兑换”。
{
"chainId": 1,
"contract": "0x...",
"method": "swapExactTokensForTokens",
"value": "0",
"riskLevel": "medium"
}
结构化计划可以被前端展示,也可以被后端校验。
三、模拟执行是底线
链上交易签名前,应尽量做 callStatic、fork 环境模拟或第三方风险检查。模拟不能保证百分百成功,但能提前发现余额不足、授权过大、滑点异常、合约 revert 等问题。
const result = await contract.callStatic.swapExactTokensForTokens(
amountIn,
amountOutMin,
path,
user,
deadline
);
模拟结果要和计划一起展示。用户看到的是“预计收到多少、最差收到多少、失败原因是什么”,而不是原始十六进制数据。
四、权限要最小化
Agent 如果需要 token 授权,应该优先申请本次操作所需额度,而不是无限授权。对高风险授权,要给出明显提示。
approval_policy:
prefer_exact_amount: true
warn_unlimited_approval: true
require_user_confirm_high_risk: true
还要记录计划哈希。用户确认的是哪份计划,最终签名交易是否和计划一致,都需要可追溯。否则 Agent 生成计划和钱包实际签名之间可能出现偏差。
最后,失败也要解释。交易失败后,Agent 应该基于链上回执、错误码和模拟结果给出原因,而不是继续让用户盲目重试。
计划还要支持差异校验。Agent 生成计划后,前端构造出的交易数据必须能反向解析,并和计划逐项对比:目标合约是否一致、方法签名是否一致、授权额度是否一致、链 ID 是否一致。任何差异都应该阻断签名。
plan_verify:
compare_chain_id: true
compare_contract: true
compare_method: true
compare_value: true
compare_token_approval: true
对批量操作更要谨慎。一次签名可能包含多笔交易或多次合约调用,用户需要看到每一步的顺序和依赖关系。比如先 approve 再 swap,第二步失败时第一步授权是否仍存在,要提前说明。
最后,Agent 的建议和钱包的签名界面要一致。产品层展示"低风险",钱包层却出现无限授权,这种体验会直接破坏信任。
计划的可读性也要纳入设计。过于抽象的计划——"将执行一次兑换"——或不加解释的十六进制参数,都会让用户退回盲点确认模式。计划应该在技术准确和用户可读之间找到平衡:显示目标协议名称、代币符号、预计数量和风险等级,而不是只展示合约地址和 ABI 编码。用户确认的是语义正确的意图,而不是一堆看不懂的字节。
还要考虑计划的历史可审计性。Agent 为某个用户生成了哪些计划、哪些被确认、哪些被拒绝、最终上链的交易是否和计划一致,都应该可以追溯。这不仅用于产品优化,也是合规和安全事件复盘的基础。一条被拒绝的计划如果后来被发现是钓鱼交易的雏形,就是值得警惕的信号。
五、总结
AI Agent 链上操作要先生成结构化计划,经过模拟、风险解释、最小授权和用户确认后再签名。
签名之前先生成可验证计划。Agent 可以辅助决策,但不能绕过用户的资产控制权。
更多推荐



所有评论(0)