你让 AI Agent 给客户退款,接口却超时了:钱到底退没退?答案不是“失败”,而是“未知”。如果 Agent 见错就重试,同一笔退款可能执行两次。TikTok 站点可靠性工程师 Salman Munaf 据此提醒,Agent 一旦开始调用外部服务、改变现实状态,就不再只是会生成文字的模型,而成了一个分布式系统——多个服务通过网络协作,局部故障会让结果暂时无法确定。
据 InfoQ 对其演讲的整理,关键防线应放在工具层:每次请求带上请求标识和幂等键——用来认出“这还是同一笔业务”,避免重试造成重复退款;系统还要提供状态查询,确认先前操作究竟成功还是失败。仅防重复也不够,开发者还需限制最大轮次、花费和并行调用数,并在下游异常时停止继续请求,以免形成重试风暴。
这套视角的价值在于,它把注意力从“怎么写好提示词”拉回工程基本功:保存每一步状态,为不可逆操作预设补偿,并把高风险权限锁在明确边界内。模型可以概率性地决定下一步,但退款、删库或发邮件这类副作用,仍需要确定性的控制。