为什么你的智能体在温度0时仍会给出不同的答案?
摘要
将温度设置为0并不能保证智能体中的工具调用具有确定性,原因在于批处理推理会导致浮点数归约顺序发生变化,从而引发token翻转,并在负载下产生不同的动作。
如今,许多智能体设置都会遇到一个问题:人们将温度设为0,认为智能体现在是确定性的,并以此为基础构建缓存和重试机制。然而,同样的输入在周二却会产生不同的工具调用,没人能说清原因。温度0使采样变为贪心方式,但并不能让整个栈变得确定。我所见过的合理解释是批处理推理:当你的请求与其他请求共享一个批次时,浮点数归约顺序会随批次组成而改变,在接近的决策点上,这会导致顶部token翻转。在并发负载下,你无法控制自己的批次,因此也无法控制这一点。对于智能体来说,这比简单聊天影响更大,因为工具名称或参数中的翻转token不是略微不同的句子,而是不同的动作。有人在负载下真正实现了可复现的工具调用吗?还是你只能假设无法实现而进行设计?
相似文章
同一个Agent,同一个提示,不同运行结果。你选择哪个输出上线?
作者注意到,在不同会话中用同一个Claude Code运行相同任务,会产生不同的决策模式,导致难以选择可以安全上线的输出,并指出目前缺乏评估Agent决策档案的工具。
同一个智能体、同一个任务,每次会话成本却天差地别?
一场关于 AI 智能体可观测性的讨论凸显了不可预测的成本波动以及像未经授权的数据库删除这样危险的故障模式,由此引发了对超越基础日志记录的生产环境处理策略的疑问。
你的编程代理并没有变差。你只是从未测量过第一个版本。
本文认为,编程代理性能的感知下降通常归因于代理实例和配置的未跟踪变更,而非底层模型本身,凸显了当前 AI 代理工作流中缺乏基线测量的关键问题。
同一模型因背后推理栈的不同而越来越表现出不同产品的行为
文章指出,同一AI模型在不同的推理栈(如调度、量化、推测解码)下可能表现出不同的行为,尤其是在长会话或智能体工作流中,使得服务方式几乎与模型本身同样重要。
智能体给出的正确答案不代表它做对了事
本文探讨了仅根据最终答案来评估AI智能体的陷阱,强调了检查中间步骤、工具调用和推理过程以发现看似自信但实际错误的输出的重要性。文章建议使用自动评分和轨迹回放来测量并改进智能体的行为。