标准答案
- 参数错误应把可修复的字段问题返回给模型或用户,限制修复次数;权限、资源不存在和业务冲突应停止或走明确分支。
- 无副作用的瞬时网络错误可有限退避;有副作用的动作要依赖幂等键、执行状态查询或人工确认,避免“超时后再做一次”。
- 部分成功要记录每一步结果和补偿动作。不能把整个任务简单标为成功或失败,应向用户说明已完成、未完成和需要处理的部分。
题目解析
“请求超时”不等于“动作未执行”。执行器应提供幂等查询或状态查询接口,让编排器先确认结果再决定重试。
工具错误返回要结构化,例如 retryable、needs_confirmation、reason_code 和 user_message,避免模型从一段内部异常文本中猜测下一步。
补偿不是总能撤销。例如邮件已发送、外部付款已受理,只能创建后续补偿或人工工单,必须在设计阶段明确不可逆动作。
常见误区
- 对工具调用统一最多重试三次。
- 只保存最终 Agent 文本,不保存每个工具的 requestId 和状态。
- 遇到部分成功时重新执行全部步骤,造成重复写入。