先这样答
Agent 的停止条件分为正常完成、预算耗尽和异常终止三类。正常完成依赖目标达成校验。系统会比对当前状态与初始目标。预算耗尽指资源达到预设上限。开发者需要设置执行步数、Token 消耗总量、运行时间或 API 调用成本的阈值。异常终止用于处理执行错误。系统命中连续失败规则或循环检测规则时,程序会触发异常终止。
避免死循环需要实时检测重复状态与重复动作。系统记录 Agent 的历史执行轨迹。比对模块会检查当前动作是否与历史动作完全一致。系统发现 Agent 在连续 N 步内毫无进展时,程序必须强制中断执行。反思机制同样容易引发无限死循环。模型可能会陷入自我否定的死循环。开发者必须为反思环节设置独立的计次上限。
触发停止条件后的行为设计非常关键。Agent 停止执行不等于直接抛出错误。程序应该整理并交付已经完成的部分结果。系统同时需要生成一份未完成的任务清单。这种设计保证了部分产出的可用性。用户不会因为任务超时或异常中断而空手而归。
面试官会怎么追问
-
「如果 Token 预算耗尽,但任务差一步就完成了,怎么处理?」 系统会直接触发预算耗尽的停止条件。程序截断后续操作并记录当前状态。Agent 随后交付已完成部分和未完成清单。开发者可以通过分析这份清单来调整后续任务的预算上限。
-
「怎么判断 Agent 陷入了重复动作?具体比对什么内容?」 系统提取 Agent 每次调用的工具名称和输入参数。程序将这些信息存入历史轨迹列表。检测模块会计算当前动作与历史动作的匹配度。连续出现相同工具和相同参数即判定为重复动作。
-
「反思机制设置了计次上限,达到上限后模型还是认为结果不对,该听谁的?」 系统必须听从计次上限的硬性规定。程序会强制终止反思循环。Agent 返回最后一次反思前的结果。系统将模型认为不对的原因写入未完成清单。该清单后续交由人工处理。
回答的坑
认为停止条件只有任务成功和报错两种,忽略了预算控制和异常强制熔断机制。
认为发生死循环直接返回失败即可,没有设计交付已完成部分与未完成清单的兜底策略。
同系列的题