钱包代理(Wallet Agent)上线第一天要的东西都一样:完整权限。任意签名、任意花费、没有上限。另一条路是每一笔操作都手动批准,可那样代理就失去了意义。我们不会给新员工这种待遇,更不会给一个从没见过我们怎么用钱包的软件。
![]()
人也不是第一天就拿到驾照。先拿学习许可证,有人在旁边看着开,证明能应付,限制再一条条摘掉。Shadowright 就是把这个思路搬到 Sui 钱包上,为 Walrus x Tatum 的“Total Recall”黑客松而做。
一次只挣一个类别的自主权
Shadowright 的自主权按决策类别逐个解锁:兑换、转账、质押、领取、NFT、DeFi、其他合约调用。起步时它没有任何权限。在你每次链上决策之前,它先私下预测你打算做什么;等你实际操作完,它再看你真正做了什么,并把这一段写成记录:上下文、预测、事实、判定和一条经验。
每个类别都有一张许可证。记忆不足 5 条时处于锁定状态;代理还不够格时只能“影子跟随”;最近 10 次调用里至少对 8 次,才算拿到许可。拿到许可的代理可以在该类别里单独行动,但要先跑一次试运行,而且它自己永远不签名。
许可证被故意设计得很脆弱。一次判断错误就吊销,想拿回来要连续 3 次判断正确。预测错误还会记在它预测的那个类别账上,因为按错误预测行动,造成的伤害是一样的。
Tatum 是代理的眼睛
代理在链上看到的一切都经由 Tatum 的 Sui 主网 RPC 网关。回填一个钱包的历史,是一次分页的 suix_queryTransactionBlocks 调用,带上输入、效果、事件和余额变化。实时模式下只取摘要,成本低;等预测存好之后,再用 sui_multiGetTransactionBlocks 读取新交易。事件查询用来找可供学习的钱包,sui_dryRunTransactionBlock 则模拟一个持证代理会做什么。
每次调用花 2 个积分,所以客户端会自我限流、退避重试、把稳定响应缓存到磁盘,并持续记录积分总额。到目前为止所有运行大约花了 100,000 积分里的 4,530 积分。一次实时轮询花 2 个积分。
它对你的了解只来自 Walrus Memory
预测器从不扫描你的原始历史。它知道的一切,都来自从 Walrus Memory 召回的记忆,每一条都是代理在自己判断对或错之后亲手写下的。每个钱包有独立的命名空间。一条记忆是普通散文,便于按语义召回,另加一行机器可读的记录,方便精确解析回来。
存储是一次 remember 调用,要等到数据块真正落到 Walrus 上。每次预测之前,代理会用记忆自己的措辞把同一个问题召回两次:一次找最相似的记忆,一次找最近且相似的记忆。第二次是为了不让用户上周刚改掉的习惯,被几个月的旧记忆投票压过去。随后 habit-v2 预测器让每条召回的记忆投票:前一个动作相同的记忆权重最高,较新的压过较旧的,过去判断失误的记忆则投票反对那个被错误预测的动作。
许可证面板这个小网页界面也完全靠召回重建。点“从 Walrus 恢复”,会启动一个没有任何本地文件的全新客户端,把面板重建出来:同样的 80 条记忆,同样的 31 次正确。许可证跟着它的记忆走。
它是怎么学的
第一个里程碑并不顺利,但教会了我们一些东西。挑中的测试钱包其实是个机器人,反复冲击同一家永续合约清算所:1,001 笔交易里有 983 笔是同一种合约调用。代理确实擅长预测它了,但只有一个类别动过。给机器人发学习许可证,没什么意思。
于是我们写了一个侦察器,通过 Tatum 采样近期质押、兑换和 DeepBook 事件的发送方,把看起来像脚本的统统剔除:一天几千笔交易、几乎每次都调同一个包,或者像“领取、兑换、质押”这样重复 94 次的循环。12 个钱包通过筛选。我们挑了一个习惯会随时间变化的人类钱包,因为变化的习惯才是对记忆的真正考验。
那个钱包在 267 天里有 91 笔交易。春天它领取借贷奖励,换成 SUI,再把 SUI 发到存款地址。9 月以来,它每隔几天领取金库奖励,在质押池里赎回,再把 SUI 发出去。我们对最新的 80 次决策做了影子跟随,并把 80 条记录全部写到主网的 Walrus Memory 上。
- 里程碑 1 的预测器(依据时段、上一个类别)80 次对 21 次,26%。
- habit-v2 只从自己在 Walrus 上的记忆学习,80 次对 31 次,39%。
- 最近 10 条记忆里,它对了 8 次,80%。
学习曲线比平均值更能说明问题。准确率早期上升,中段下跌,因为用户换了协议,旧记忆不再有用。随后随着新习惯在记忆里堆积,它再次上升:从第 65 次决策起,最近 16 次里对了 14 次,按“领取、赎回、发送”的顺序预测,置信度在 57% 到 97% 之间。2026 年 10 月 16 日,质押与解质押类别拿到许可证;下一次赎回时,日志写着“质押已获许可:代理本可单独行动(先试运行)”。
没做成的部分同样清楚。兑换仍是 10 次对 0 次,DeFi 存款 10 次对 1 次。转账和领取是 10 次对 5 次,部分原因是用户在两个存款地址之间来回切换。这些类别继续影子跟随,而这正是重点:一个预测不了你兑换操作的代理,没资格替你做兑换。
安全边界
Shadowright 从不持有它所学习的钱包的私钥。它不能签名,也不能发送。它唯一写下的东西是自己的记忆。某个类别拿到许可后,它会重建等价交易,并通过 Tatum 跑 sui_dryRunTransactionBlock,这一步不需要签名。在演示钱包上,这次试运行返回了 InsufficientCoinBalance,因为用户已经把 SUI 发出去了。这正是检查在起作用。对于还没有构建器的操作,代理会表示它需要请用户签名。
接下来的方向包括:在同一个 Predictor 接口后面接入由大模型驱动的预测器,把已存的经验当作上下文,许可证规则保持不变;补上更多试运行构建器(DEX 路由、流动性质押),让更多许可证能落到具体的“本会做什么”;允许用户按类别设定门槛,比如领取奖励 80% 也许够用,向新地址转账则不行;以及可携带的许可证——记忆存在 Walrus 上,新代理可以从旧代理学到的东西起步。代码以 MIT 协议开源。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.