这篇文章来自于一个让我失眠一整晚的真实测试。我的初衷很简单:设置一个Newton Agent帮我监控以太坊价格,当ETH跌破3800美元时把持仓全部换成USDC止损。这个逻辑用自然语言写出来就一句话,但在Newton的Agent编排台上,我花了接近两个小时才把它变成一个可部署的策略,而在随后的模拟回测中,Agent的表现和我以为的完全不一样。
首先是我的自然语言转策略这一环,目前的Agent编排台严重依赖预设模板。如果你想让Agent执行一个模板库里没有的逻辑,你需要手动调整policy里面的条件表达式和触发阈值。我当时以为自己设置得很清楚:IF price(ETH/USDC) < 3800 THEN swap_all_to(USDC),但Agent执行引擎在处理价格比较时,读取的是Chainlink在EVM上最近一轮更新的价格,而Chainlink在EigenLayer AVS相关的高负载时间段出现过一次长达3分钟的价格未更新。就是这3分钟内,Agent因为无法获取有效价格,直接跳到了fallback逻辑——我设置fallback时偷懒选了“执行最后一次成功的策略意图”,而最后一次成功执行的策略是在回测环境里的一次买入操作。于是Agent在真实主网上帮我开出了一笔ETH多单,而且GAS我上次设的还是高优先加速模式,直接瞬间成交。
如果不是这个测试钱额度只放了0.5 ETH,我当时大概会砸键盘。这个事故暴露出Newton当前策略引擎的一个设计缺陷:timeout和fallback的处理权限太大了。一个需要高频价格信号的金融策略,在数据源断连时不应该静默执行任何有资金方向的操作,而系统默认的fallback倾向是“保持预期动作以抓住窗口”,在波动剧烈时这种设计就是加速亏钱的助推器。
第二个让我后怕的点是Agent的操作是不可中断的。当策略触发并进入执行队列后,我没有找到任何可以紧急叫停的开关——你只能提前撤资,但在价格急剧变化的那一刻,撤资本身就是需要Agent去执行的另一个策略,这一环套一环的设计让止损变成了必须承受的硬着陆。我问了Newton的Mod,回复是目前正在开发“紧急冻结核”,需要用户在发起策略前提前设置冻结地址和质押金,这意味着对大部分已经运行的Agent来说,保护为零。
第三个收获反而和代码无关,和人性有关。当Agent已经自动执行了错误的开多行为后,我没有第一时间手动去Uniswap平仓,而是盯着屏幕想“万一待会儿ETH真涨了呢”,这一犹豫让浮亏又扩大了2%。事实证明,即便工具变得自动了,人还是会替错误动作找借口,Agent只是把这个危险的犹豫期从手动操作的几秒钟拉长到了人盯着不出手的无限长。我后来把这个Agent停掉了,不是因为亏钱,是因为我发现自己在和一个没有止损边界的自动程序一起赌。$BTC
如果你正在用Newton Agent管钱,我只有一个建议:在策略的最外层强制加一个日均最大亏损限额,不要依赖任何fallback,也不要在夜里睡得正香的时候把资金交给一个还没经过断网测试的引擎。
