语料信号
在智能体交易实验中反复出现的一种模式是:一个拿到现金余额和市场行情数据的智能体,并不会只下几笔经过深思熟虑的订单。它会频繁交易。它买入、卖出、再买入,交易日志里塞满了没有任何既定策略能解释的往返交易。人们很容易把这解读为策略失败——信号不好、风险偏好不当、提示词过于急切。这种解读错过了更有用的信号。真正有意思的失败是结构性的:智能体的意图与它下一步据以行动的状态之间,缺少结算边界。
在传统交易系统中,这个循环是显式的。订单被授权、提交、确认、成交,然后结算。每个阶段都有自己的表示,策略看到的持仓是经过对账的视图,而不是它希望下的那笔订单。没有这道边界的智能体会把各个阶段压扁。它把已授权的行动当作已执行的行动,把已执行的行动当作已结算的持仓。结果就是反复的往返交易,因为智能体从未得知实际发生了什么。
已授权不等于已执行
许可与结果是两回事,而智能体框架经常把它们混为一谈。智能体可以持有有效的交易授权,却仍然基于过时状态行动。授权说明它可以做什么;它完全没有说明世界当前是什么状态。当两者不被分开时,智能体的下一个决策就建立在假设而非事实之上。
想想交易循环必须区分开的三个不同对象:
- 订单——智能体有权发出的指令。
- 成交——交易场所对该订单的部分或全部执行。
- 已记录持仓——清算后经过对账、已结算的持有量。
订单不是成交。成交不是持仓。持仓不是可以再次动用的余额。每一次转换都可能失败、部分完成,或以乱序到达。一个把自己的意图当作状态读回来的智能体,会针对并不存在的持仓、或已经动用的现金,重新发出指令。
反复的往返交易是缺少对账的可见症状。如果智能体无法读回自己持有什么,它就无法知道先前的行动是否落地。于是它再次行动。一次又一次。这种频繁交易不是策略;它是被表达为交易活动的对账缺口。只要智能体被赋予某种能力却没有相应的读回路径,同样的动态就会出现。
结算层必须承载什么

面向智能体的结算层不是最后外挂上去的一张数据库表。它是让意图与状态得以对账的组件。三项属性承担了大部分分量。
幂等键按预期行动而非按请求
大多数幂等实现以 HTTP 请求为键。对智能体来说,这是错误的单位。智能体可能重试请求、改写提示词,或派生一个子智能体,通过不同路径发出同一个逻辑行动。如果键由请求派生,同一个意图就可能产生多个效果。键必须由预期行动派生——一个智能体在行动前就承诺、并在每次重试和每种传输方式中复用的稳定标识符。
intent_id = hash(agent_id, action_type, target, quantity, window)
智能体生成一次 intent_id,记录下来,并把它附加到每一次尝试上。结算层接受该键的第一个效果,拒绝或去重其余效果。这就是把至少一次的智能体变成恰好一次效果的方式,而无需要求模型本身可靠。
与正向路径同等权限的回退路径
如果智能体能够提交一个行动,却无法干净地回退它,那么每个错误都会变成永久性的,每种不确定性都会变成再次行动的理由。回退必须是一等操作,拥有与正向行动相同的授权、相同的审计轨迹和相同的幂等纪律。补偿行动不是异常处理器;它是正常接口的一部分。没有它,智能体要么冻结,要么过度交易,因为纠正疑似错误的唯一方式就是再发出一个正向行动。
把对账作为一等智能体工具
对账通常是下游批处理任务:一个夜间流程,把内部记录与交易场所进行比对。对智能体来说,这太慢,也离决策太远。对账必须作为工具暴露出来,让智能体在再次行动前调用。该工具回答一个狭窄的问题:我当前的已结算状态是什么,我的哪些
media/server-rack-closeup-79da28-73e14b.jpg)
推广到金融之外
这种结构并不特定于交易。任何带有结算步骤的领域都有相同的形状,也会在智能体获得授权却没有读回路径时出现相同的失败模式。
- 结账。 智能体授权一笔支付,支付处理方捕获它,订单状态异步结算。把已授权支付当作已完成订单的智能体会重试结账、重复扣款,或承诺它并不持有的库存。幂等键属于购买意图,而不是 API 调用。
- 预订。 一个预订被请求、确认,然后占用一份可释放的容量。把确认读作已结算预订的智能体,会在占用过期时超售,因为它从未对两者进行对账。
- 资源开通。 一个资源被请求、创建,然后在一段延迟后变为可用。把请求当作正在运行的资源来行动的智能体,会针对尚不存在的东西发出依赖行动。
在每种情况下,补救方法都一样:智能体必须在再次行动前读回状态,系统必须按意图而非按请求去重。领域改变的是词汇,不是机制。
诚实的权衡
结算边界会带来延迟和复杂性。在行动前读回状态会给每个决策增加一次往返,而维护意图键、回退路径和对账工具是实实在在的工程工作,朴素的智能体循环会避开它。对于以读为主或低风险的领域,人们会忍不住跳过它,因为重复行动的代价很小。
这种权衡是合理的,但应当被明确做出,而不是靠省略来默认。跳过它的失败模式不是智能体变慢;而是智能体无法分辨自己做过什么。在交易中,这表现为频繁交易。在结账中,这表现为重复扣款。在资源开通中,这表现为孤儿资源。结算层让智能体能够带着权限行动,同时仍然知道它所请求的与真实情况之间的区别。
一条设计规则
如果智能体能够采取带有结算步骤的行动,它就需要三样东西:意图的稳定身份、同等权限的回退路径,以及读回已结算状态的工具。仅有授权是不够的。来自智能体交易的语料信号不是说智能体交易得很糟;而是说当没有边界把它们的意图与世界分开时,它们会反复交易。构建这道边界,频繁交易就不再是症状,而会成为一个决策。
封面照片:panumas nikhomkhai / Pexels。
