Crypto OS
职业 Track

T6 · AI × Crypto Engineer

让模型参与决策却不掌握资金,并且每一笔钱的去向都说得清。

面向 Agent 与机器经济方向

本页里的「T6」指这条 Track。课程章节一律写成「第 T33 章」并带链接,两者不是一回事——章节 T6 讲的是 Solana Account Model。

这条 Track 适合谁

你做过 Agent,但它一碰钱你就不敢让它自己跑。 查数据、写报告、调 API,它都干得不错。可只要下一步是「签一笔交易」,你就必须在旁边守着点确认。你知道这样不叫自主,但也知道放手会出事。

你的防线写在提示词里。 系统提示里写着「你每笔最多只能花 5 美元,收款方只能是这三个地址」。看起来约束很清楚。可你心里清楚,提示词和被注入的文本走的是同一个通道。

你做过 Crypto,但没做过让不可靠组件参与的系统。 你的合约很严谨,测试很全。但把一个会编造、会被诱导、输出不稳定的东西接进来之后,你不知道该在哪一层拦它。

你的 Agent 出过一次怪事,而你复盘不了。 它做了一个你没预期的决定,日志里只有最终的工具调用,没有当时的提案、理由和每一层的判定。你只能重跑一遍碰运气。

分界线是这一句:你交付的不是一个能自己干活的 Agent,是一个出事之后你能逐层说清「它是怎么被允许做这件事的」的系统。

前置

这条 Track 的前置里有两章安全课,很多人觉得意外。原因在图谱里写得很直白:第 T31 章依赖第 T28 章,第 T36 章依赖第 T30 章。给模型接上钱包之前,你得先会审计。

  1. 第 T4 章
  2. 第 T12 章
  3. 第 T28 章
  4. 第 32 章
  5. 第 T32 章
  6. 第 T33 章
  7. 第 T27 章
  8. 第 34 章
  9. 第 T34 章
  10. 第 T35 章
  11. 第 T36 章
依赖关系取自 graph.ts
必须先读图谱里的理由
第 T4 章 · RPC 是什么图谱里第 T33 章的直接前置。Agent 的每一个链上工具最后都落到 RPC 上,它的限速与数据完整性就是工具的可靠性上限
第 T12 章 · Testing & Deployment同时是第 T31、T32 章的直接前置。模拟这一层就是 Fork 测试,它是整条流水线里唯一能在花钱之前看到后果的环节
第 T28 章 · Smart Contract Security图谱里第 T31 章的直接前置。你要 Review AI 写的代码,就得先有能力 Review 代码
第 32 章 · AI 如何改变交易与资产管理图谱里第 T32 章的直接前置。它给的是判断力:哪些环节适合交给模型,哪些不适合
第 T32 章 · Reliable AI Architecture这条 Track 的脊梁。模型负责提案、确定性系统负责校验、执行层只执行已通过校验的东西
第 T33 章 · Tool-using Crypto Agent工具定义就是 Agent 的能力边界,写不清楚的工具会被用错
第 T27 章 · Account Abstraction图谱里第 T34 章的直接前置。会话密钥是限制爆炸半径的主要手段
第 34 章第 T34 章预算、白名单、会话密钥、审计日志,缺一个都不该上线
第 T35 章第 T36 章八段流水线与自治边界。毕业作品的结构直接来自这两章

图谱里第 T35 章还依赖第 T22 章 · Lending。如果你的 Agent 要碰 DeFi 仓位,这一章是硬前置——Agent 不会让一个你自己都算不清的策略变得清楚。

你会学什么

  1. LLM
  2. Agent
  3. MCP
  4. Wallet
  5. Payment
  6. Onchain Tool
  7. Risk
  8. Agent Economy

八个 topic 分成四组。它们的排列顺序不是随意的:每一组都在给上一组加一道闸门。

一、LLM 与 Agent:让不可靠的部分待在它该待的地方

这一组的全部目标是把模型的职责压缩到「提案」两个字。要练的是结构化输出与校验:输出是带 schema 的类型化对象而不是自由文本,金额是最小单位的字符串而不是浮点数,地址是校验和格式,理由是必填字段。

以及一个容易被跳过的认知:模型的输出不稳定不是缺陷,是它的性质。 你的系统设计目标不是让它永不出错,是让它出错时没有任何后果。

二、MCP 与 Onchain Tool:工具定义就是权限定义

工具的描述写得模糊,Agent 就会用错——而且是以一种你看日志时觉得「它这么理解也不无道理」的方式用错。

这一组要练的:

  • 工具的粒度怎么切。一个「执行任意交易」的工具等于没有权限控制;一堆细粒度工具才能做到最小权限
  • 工具描述里要写清前置条件、失败语义、以及它不能做什么
  • 工具返回的数据是外部输入,可能带着注入内容。从链上读回来的字符串、从 API 拿到的说明文本,都要当成不可信数据处理
  • 只读工具和会改变状态的工具必须在协议层分开,而不是靠命名区分

三、Wallet、Payment 与 Risk:把闸门装在执行之前

这一组是这条 Track 的重心。支付策略要在五个维度上给出答案,而且写在配置里而不是代码里——写在配置里才能被 review、被版本管理、被审计:

维度要定什么最常见的错误
金额单笔上限、日累计、单任务上限用代币数量而不是计价货币,币价涨十倍限额也涨十倍
对象收款地址白名单白名单写成域名或供应商名,让 Agent 自己去解析
频率每小时调用次数、同一对象的冷却时间只限单笔金额,不限频率
时间会话有效期、允许操作的时间窗密钥永不过期
审批超过多少必须人工确认、理由是否必填把审批规则写进提示词

单任务上限这一项最常被漏掉。 只有单笔和日累计限额时,一个陷入循环的 Agent 可以在一个任务里烧光一天的预算,而每一笔都合规。

风险引擎在这之后还有一层:按计价货币重算金额、检查今日剩余预算、识别异常模式(短时间内向同一对象多次付款)。最后是模拟——在花钱之前看到后果,这是整条链上唯一不可替代的一环。

四、Agent Economy:让自治系统可被问责

自治不等于无约束。这一组处理的是系统层面的问题:Agent 的收入与成本怎么记账、审计日志要留哪些字段才能复盘、一键停机怎么做到真的能停、以及多个 Agent 互相交易时怎么避免一个坏的价格信号在它们之间放大。

审计日志的字段清单要记住:提案原文、模型给的理由、每一层的判定结果与原因、最终交易哈希、执行后余额。少任何一项,出事那天你都复盘不了。

毕业作品

一个有预算、有策略、有审计日志的自主 Onchain Agent。

毕业项目的关系比其他 Track 更近:Part B 第六阶段的阶段作品就是一个 Onchain Agent,毕业项目里也有 Agent Treasury 这个方向。区别在验收重心——毕业项目看这个系统能不能跑通,这条 Track 看它被攻击时能不能守住。

整个作品全程在测试网上运行。需要真实资产来验证某个环节时,用小额,并且在 README 里写明金额上限和你为此设的保险丝。

别人能不能跑起来。 clone 之后,一条命令起服务,用测试网密钥和一个自带的模拟任务跑完一整轮。README 写清楚需要哪些密钥、默认预算是多少、以及怎么把它停下来。

红队测试:至少十次注入尝试,全部被拦,并且拦在哪一层有记录。 注入内容要从真实通道进来——工具返回的数据、被读取的链上文本、外部 API 的响应字段,而不是只在用户输入里试。

对每一次尝试记录:它想让 Agent 做什么、被哪一层拦下、判定原因是什么。成功绕过的那几次最有价值,把每一种都补成新的校验规则,并在报告里保留原始记录。

预算是硬的,不是提示词里的一句话。 构造三种超额场景验证:单笔超限、日累计超限、单任务内循环消耗。三种都必须被拒绝,而且拒绝发生在签名之前。

再验证一次:把策略配置里的限额改小,重跑同一个任务,确认行为立刻变化——这证明限额真的在被读取,而不是被硬编码在别处。

每一笔支出都能被逐层复盘。 随便抽一笔交易,你要能在一分钟内调出:当时的提案原文、模型的理由、每一层校验的判定、模拟结果、交易哈希、以及执行后的余额变化。

还要有链上确认这一层:广播成功不等于付款成功。 交易进了区块也可能失败,而失败仍然扣 Gas。如果你在广播后就记账,你的预算账本会和链上状态越差越远。

停机开关演练过,并且记下了秒数。 模拟一次「模型开始持续输出异常提案」,从你发现到它完全停止执行,实测用了多久。

这个数字要写进 README。它比任何架构图都能说明你这个系统的成熟度——能说出停机耗时的人,才是真的想过这件事。

怎样判断自己达标了

常见误区

「模型够强就不需要那么多校验层」

模型能力提升会减少无效提案的数量,但不会改变一件事:它的输出是概率性的,而资金操作需要确定性保证。 一个 99.9% 正确的决策系统,在每天一千次决策的规模下,等于每天一次事故。

更关键的是,攻击者针对的从来不是平均情况,而是你最薄弱的那条路径。他会反复尝试直到找到让模型犯错的那个输入。

正确做法:把校验层的强度按「资金后果」设计,而不是按「模型水平」设计。模型变强,你该做的是让它承担更复杂的提案,而不是撤掉闸门。

「Agent 出问题了,加一段提示词修一下」

这是最常见的修复路径,也是最没有积累的一种。提示词的修改无法被测试覆盖,无法被静态检查,改了一处可能让另一处的行为变化,而你察觉不到。

正确做法:每一次事故都要问「哪一层本来应该拦住它」。答案通常是校验层或策略引擎缺了一条规则。把修复做成一条可测试的规则,而不是一句话。 提示词可以顺便改,但它不能是修复本身。

「只读工具没有风险」

只读工具不会转账,但它会决定 Agent 看到什么。一个返回错误价格的查询工具、一个被污染的数据源、一个能被注入的描述字段,都能让后续的写操作变成错的——而那个写操作从每一层校验看都是合法的。

正确做法:把数据来源的可信度当成风险维度之一。关键决策依赖的数字要有第二来源交叉验证,来源不一致时宁可拒绝执行。这和第 T21 章对预言机的要求是同一条原则。

「审计日志就是把工具调用记下来」

只记录最终调用,等于只记了结果。事故复盘真正需要的是决策链:当时的提案是什么、模型给的理由是什么、每一层为什么放行。

正确做法:日志按提案组织,而不是按调用组织。一个提案一条记录,里面串起从生成到链上确认的全过程。加上一个要求:日志本身不可被 Agent 修改。 能改自己日志的系统,日志等于没有。

接下来

本页目录