一个聊天机器人返回文本,一个经济代理返回签名交易。两者之间的距离,不是一句更好的提示词,而是一个策略引擎、一次模拟步骤,和一个幂等键。
大多数"AI代理+加密"的演示都跳过了这段距离。它们把私钥直接塞给大模型,让它去转USDC,然后把结果叫作自主。接着模型被一段从内存池喂料里读到的代币名做了提示词注入,金库就没了。
这里要搭的是无聊版本。
为什么选Base
链ID 8453,出块约2秒,USDC转账成本只有几分钱的一个零头。最后这个数字就是全部理由。在以太坊主网上,一笔50美元的工资转账可能要花3美元,所以你只能批量处理、按月结算。在Base上你可以按动作结算,这意味着代理可以是反应式的,而不是排程式的。便宜的执行是一种设计约束,不是脚注。
从过去几个月的经验数据看,Base上的ERC-20转账通常落在0.001到0.05 gwei的基础费加L1数据费区间;按当前ETH价格算,大约每笔0.0004到0.004美元。这就是自主性的预算。
能扛住真实接触的架构
三层:
- 提议者——大模型。不可信。只输出一个意图JSON,别的什么都不做。
- 策略——Base上的一个合约,配一把会话密钥。真正的支出限额、白名单、频率限制都放在这里。
- 执行者——一个笨拙的Python进程。负责签名、模拟、广播、重试。
金库地址是 0x92Aff59709b03b9373b8fA887D24953D60fAd919。大模型永远看不到这个地址的私钥。它负责提议,合约负责处置。
提议者的输出长什么样
一个意图JSON,包含动作、代币、收款地址、USDC金额和备注,比如转账1250.00 USDC、备注为某张供应商发票。解析要严格:拒绝未知字段;收款地址必须校验和正确且在白名单内;金额必须是小数位不超过6位的Decimal。解析失败就直接丢弃这个意图——不要让模型去修,那等于给了它第二次提交坏提议的机会。
签名之前先模拟
执行者拿到意图后,先用Web3连上Base主网节点,把金库地址和Base原生USDC合约地址都转成校验和格式,用最小ABI构造transfer和balanceOf两个调用。金额按6位小数换算成整数,构建交易时填入from、nonce等字段。这一步不广播,只模拟。
模拟通过,才进入签名和广播。失败就重试,重试要带幂等键,避免同一笔意图被执行两次。整套流程里,大模型始终只碰意图,不碰密钥,不碰签名。
这套东西不酷。它没有"自主"的叙事,只有限额、白名单、模拟和幂等。但演示和金库之间隔着的,正是这些无聊的部分。
热门跟贴