消息队列可能重复投递,Agent 也可能因超时重试。你会怎样保证同一个业务意图不会被执行两次?
考察说明
考查跨模型、队列与工具调用的幂等和重复处理能力。
回答思路
- 为用户确认后的业务意图生成稳定幂等键,并贯穿队列消息、Agent 状态和最终工具请求。
- 工具端以数据库唯一约束或原子状态记录执行结果,不能只靠进程内缓存判断是否处理过。
- 超时后先查询已有执行状态,再决定返回结果、继续等待或安全重试,未知结果不能直接再次写入。
- 幂等键的作用域和有效期需匹配业务语义,避免不同操作错误合并或过期重放重新产生副作用。
- 通过并发重复、网络中断和响应丢失测试验证只产生一次业务结果,并保留所有尝试的审计记录。