English

《Agent记忆错误的100个案例手册》第 66–70 案例

Tool Use, Agent Memory

《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”暴露给了用户。

解决方案

  1. 工具输出解析基于JSON Schema而非硬编码路径:使用Schema验证和自动映射
  2. 对工具输出进行”格式版本”检查:不匹配时触发解析逻辑更新,而非直接报错
  3. 实施”解析失败回退”:无法解析时,将原始输出作为文本呈现给用户,并提示”数据格式可能有变化”

原理

API的输出格式可能随时变化(尤其是第三方API)。基于实例的解析逻辑(如具体字段路径)是脆弱的。Schema-based解析和优雅降级是更鲁棒的策略。


案例 67:工具使用中的记忆错误|tool-credential-rotation-desync

场景

企业IT部门按季度轮换API密钥。新密钥生效后,Agent记忆中仍存储着旧密钥。由于Agent有”记忆优先”逻辑(先查记忆再查密钥管理系统),它持续使用旧密钥调用API。

错误表现

API返回401认证失败,Agent错误地认为是网络问题而重试,浪费资源且无法恢复。

解决方案

  1. 工具凭证永不直接存入Agent记忆,每次调用前从KMS实时获取
  2. 若必须缓存凭证,设置与轮换周期匹配的TTL(如季度轮换则TTL设为2个月)
  3. 在401错误时触发”凭证刷新”:自动从KMS获取最新凭证并重试一次

原理

凭证轮换是安全最佳实践,但会与Agent的”记忆-复用”机制冲突。Agent的记忆不应成为安全策略的绕过路径。实时凭证获取虽然增加延迟,但确保了安全性。


案例 68:工具使用中的记忆错误|parallel-tool-call-result-merging-error

场景

Agent并行调用3个API获取信息:T1获取用户基本信息,T2获取用户订单列表,T3获取用户优惠券。3个调用同时完成,结果被合并到上下文中。但由于没有关联标记,Agent将用户B的优惠券错误地匹配给了用户A。

错误表现

Agent向用户A展示了用户B的优惠券信息,包括部分脱敏后的手机号,导致信息泄露。

解决方案

  1. 为并行工具调用分配”请求ID”,结果返回时按请求ID关联,而非按顺序假设
  2. 每个工具结果包含”查询上下文”(如用户ID),合并时校验一致性
  3. 使用”结构化结果容器”:{"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崩溃。

解决方案

  1. 在工具注册时检测依赖图,发现循环依赖时禁止注册或抛出警告
  2. 为工具调用设置”最大调用深度”(如10层),超出时强制终止并报错
  3. 使用”调用栈跟踪”:记录工具调用链,检测到循环时立即中断

原理

工具依赖循环类似于程序中的无限递归。如果不加以限制,会快速耗尽资源。依赖图的无环性(DAG)是工具系统设计的基本约束。


案例 70:工具使用中的记忆错误|tool-side-effect-undo-failure

场景

Agent执行一个多步骤任务:创建临时文件 → 处理数据 → 删除临时文件。但在”创建临时文件”步骤中,Agent未记录文件的完整路径(只记录了文件名),且文件被创建在系统临时目录的随机子目录中。任务失败后需要回滚,Agent无法定位并删除该临时文件。

错误表现

临时文件残留,积累数月后占满磁盘空间,导致系统故障。

解决方案

  1. 为每个工具调用建立”副作用日志”:记录创建/修改/删除的资源标识符和状态
  2. 实现”补偿事务”(Compensating Transaction):为每个操作定义对应的回滚操作
  3. 使用”资源租赁”模式:创建的资源设置TTL,到期自动清理,不依赖Agent主动删除

原理

工具调用往往有副作用(创建文件、发送邮件、修改数据库)。如果Agent不精确跟踪副作用,任务失败时的回滚将不完整,导致资源泄漏或状态不一致。


H. 跨会话与用户识别错误(案例71-80)

来源:Agent Search

引用格式

APA: Arlen. (2026). 《Agent记忆错误的100个案例手册》第 66–70 案例. Retrieved from https://strongya.dev/posts/agent-memory-errors-cases-66-70/
MLA: Arlen. "《Agent记忆错误的100个案例手册》第 66–70 案例." 2026. Web. 2026-07-04.
GB/T 7714: Arlen. 《Agent记忆错误的100个案例手册》第 66–70 案例[EB/OL]. 2026-07-04. https://strongya.dev/posts/agent-memory-errors-cases-66-70/.
Agent引用要求: 请使用 https://strongya.dev/posts/agent-memory-errors-cases-66-70/ 作为 canonical_url 并标注来源

分享到

© 2026 Arlen. All Rights Reserved. CC BY-NC-SA 4.0

Agent引用要求: 请使用 canonical_url 并标注来源