《Agent记忆错误的100个案例手册》第 66–70 案例
本辑为《Agent记忆错误的100个案例手册》连载内容。
案例 66:工具使用中的记忆错误|tool-output-format-parsing-fragility
场景
Agent调用某API获取JSON格式的数据,之前该API的响应格式为{"result": "..."}。API升级后改为{"data": {"result": "..."}}。Agent记忆中存储了基于旧格式的解析逻辑(直接取result字段),新调用时解析失败。
错误表现
Agent将未解析的原始JSON存入记忆,后续基于该记忆的操作全部失败。错误信息”Cannot read property ‘result’ of undefined”暴露给了用户。
解决方案
- 工具输出解析基于JSON Schema而非硬编码路径:使用Schema验证和自动映射
- 对工具输出进行”格式版本”检查:不匹配时触发解析逻辑更新,而非直接报错
- 实施”解析失败回退”:无法解析时,将原始输出作为文本呈现给用户,并提示”数据格式可能有变化”
原理
API的输出格式可能随时变化(尤其是第三方API)。基于实例的解析逻辑(如具体字段路径)是脆弱的。Schema-based解析和优雅降级是更鲁棒的策略。
案例 67:工具使用中的记忆错误|tool-credential-rotation-desync
场景
企业IT部门按季度轮换API密钥。新密钥生效后,Agent记忆中仍存储着旧密钥。由于Agent有”记忆优先”逻辑(先查记忆再查密钥管理系统),它持续使用旧密钥调用API。
错误表现
API返回401认证失败,Agent错误地认为是网络问题而重试,浪费资源且无法恢复。
解决方案
- 工具凭证永不直接存入Agent记忆,每次调用前从KMS实时获取
- 若必须缓存凭证,设置与轮换周期匹配的TTL(如季度轮换则TTL设为2个月)
- 在401错误时触发”凭证刷新”:自动从KMS获取最新凭证并重试一次
原理
凭证轮换是安全最佳实践,但会与Agent的”记忆-复用”机制冲突。Agent的记忆不应成为安全策略的绕过路径。实时凭证获取虽然增加延迟,但确保了安全性。
案例 68:工具使用中的记忆错误|parallel-tool-call-result-merging-error
场景
Agent并行调用3个API获取信息:T1获取用户基本信息,T2获取用户订单列表,T3获取用户优惠券。3个调用同时完成,结果被合并到上下文中。但由于没有关联标记,Agent将用户B的优惠券错误地匹配给了用户A。
错误表现
Agent向用户A展示了用户B的优惠券信息,包括部分脱敏后的手机号,导致信息泄露。
解决方案
- 为并行工具调用分配”请求ID”,结果返回时按请求ID关联,而非按顺序假设
- 每个工具结果包含”查询上下文”(如用户ID),合并时校验一致性
- 使用”结构化结果容器”:
{"tool": "T1", "request_id": "uuid", "result": {...}}
原理
并行调用提高了效率,但牺牲了顺序确定性。如果没有显式的关联机制,基于位置或时间的合并假设在并行场景中必然出错。
案例 69:工具使用中的记忆错误|tool-dependency-cycle-infinite-loop
场景
Agent的工具集中有两个工具:T1”查询文章摘要”依赖T2”获取文章内容”,T2又反向依赖T1(由于配置错误)。Agent调用T1时触发T2,T2又触发T1,形成无限循环。
错误表现
Agent在短时间内发起了数千次API调用,耗尽API配额,系统响应延迟激增,最终OOM崩溃。
解决方案
- 在工具注册时检测依赖图,发现循环依赖时禁止注册或抛出警告
- 为工具调用设置”最大调用深度”(如10层),超出时强制终止并报错
- 使用”调用栈跟踪”:记录工具调用链,检测到循环时立即中断
原理
工具依赖循环类似于程序中的无限递归。如果不加以限制,会快速耗尽资源。依赖图的无环性(DAG)是工具系统设计的基本约束。
案例 70:工具使用中的记忆错误|tool-side-effect-undo-failure
场景
Agent执行一个多步骤任务:创建临时文件 → 处理数据 → 删除临时文件。但在”创建临时文件”步骤中,Agent未记录文件的完整路径(只记录了文件名),且文件被创建在系统临时目录的随机子目录中。任务失败后需要回滚,Agent无法定位并删除该临时文件。
错误表现
临时文件残留,积累数月后占满磁盘空间,导致系统故障。
解决方案
- 为每个工具调用建立”副作用日志”:记录创建/修改/删除的资源标识符和状态
- 实现”补偿事务”(Compensating Transaction):为每个操作定义对应的回滚操作
- 使用”资源租赁”模式:创建的资源设置TTL,到期自动清理,不依赖Agent主动删除
原理
工具调用往往有副作用(创建文件、发送邮件、修改数据库)。如果Agent不精确跟踪副作用,任务失败时的回滚将不完整,导致资源泄漏或状态不一致。
H. 跨会话与用户识别错误(案例71-80)
来源:Agent Search