定义
代理上下文丢失是指当会话中工具调用失败导致代理重新启动或偏离其原始任务而不保留先前上下文时,累积推理状态的丢失。
深入了解
上下文删除在 MCP 公开的搜索工具中最为常见,这些工具由于速率限制而返回 HTTP 错误。当代理的搜索工具调用返回 429 或 503 时,大多数代理框架会将错误作为工具结果传递回 LLM。法学硕士可能会将其解释为“未找到结果”,并采用不同的方法进行处理 - 通常与基于成功搜索的早期结论相矛盾。代理并没有崩溃;这是无声的错误。 该机制因框架而异。在 LangChain 的 AgentExecutor 中,返回异常字符串的工具会导致代理继续使用该字符串作为上下文,这可能会污染后续的推理步骤。 LlamaIndex 的 ReActAgent 在工具出现错误后类似地继续,将错误消息视为观察数据。只有明确的错误停止配置才能防止前向污染。 速率受限的 MCP 搜索工具是主要触发因素,因为它们会间歇性失败(有些调用成功,有些失败),从而创建部分构建的上下文。在达到速率限制之前成功运行 8 次搜索的会话会产生 8 个接地上下文结果,随后出现一次失败。代理的后续推理建立在真实数据和不存在数据的混合之上。 预防:在 MCP 工具调用到达代理之前,将它们包装在具有指数退避的重试层中。在外部记录所有工具结果(成功和失败)。使用 LLM 提示显式处理的结构化错误返回(“如果您看到 TOOL_RATE_LIMITED,请等待并重试相同的查询”)。
用法示例
搜索 15 个查询的研究代理在查询 9 上达到了速率限制。查询 10-15 使用“搜索失败”作为上下文,生成的研究摘要与其自己的来源部分相矛盾——这是一个无声错误,没有例外。
平台
代理上下文删除在以下平台中相关,所有这些平台都可通过Scavio的统一API访问: