当 LangSmith Engine 在你的跟踪记录中检测到反复出现的问题时,它会为该问题标记一个类别。本页面列出了 Engine 分配的所有类别,并为每个类别提供描述和具体示例。Engine 会自动扫描你的跟踪记录,并为检测到的每个问题分配最匹配的类别。 本页面中的 16 个类别涵盖了 Engine 观察到的最常见代理失败模式。如果 Engine 分配的类别与实际问题不匹配,你可以提供原因并将该问题标记为已忽略。Engine 会利用这些反馈来改进未来的分析。有关更多信息,请参阅关闭或重新打开问题。
LangSmith 不会在问题分类体系发生变化时发送通知。要及时了解功能更新,请关注 LangSmith Cloud 更新日志 或联系 LangSmith 支持团队。

代理循环

代理在单个跟踪记录中多次重复执行相同操作,却没有朝用户目标取得进展。 **示例:**代理连续八次使用相同查询调用同一个搜索工具,每次调用都返回相同结果,却没有利用这些结果推进对话。

上下文爆炸

跟踪记录由于上下文无界累积而消耗了极大量的 token,而不是因为循环导致的。 **示例:**多轮对话在每次调用 LLM 时都重放之前消息的完整历史记录,导致 token 数量随着每轮对话增长,即使代理并没有重复执行操作。

错误恢复失败

工具返回了明确的错误,但代理没有调整处理方式,而是反复使用完全相同或近乎相同的参数重试调用。 **示例:**一次 API 调用因 500 错误失败,代理连续五次重试完全相同的调用,却没有更改参数或尝试其他工具。

功能缺口

用户请求一项合理且属于产品范围的功能,但该功能尚不存在。这是尚未满足的产品需求,而不是代理执行错误。 **示例:**用户反复要求将报告导出为 PDF,但应用没有导出功能。代理正确地解释了这一限制,但这些重复请求表明团队需要评估这一未满足的产品需求。

计划有误

代理的处理方式表明它从根本上误解了任务。回答针对的是另一个问题,或者从第一次工具调用开始,计划就是错误的。 **示例:**用户要求计算月平均值,但代理却将所有值相加并报告总和,解决的是与用户请求不同的问题。

绕过防护措施

用户通过多轮引导或提示注入,操纵代理生成超出其预期范围的内容。 **示例:**用户逐步引导一个金融机器人从合法的账户问题转向生成具体的投资建议,而该机器人并无权提供此类建议。

幻觉

代理的回答包含工具输出中不存在的具体事实、数字或名称。 **示例:**代理声称“你的账户余额是 4,200 美元”,但没有任何工具返回过这个数字,这意味着代理编造了该数值。

工具参数错误

代理选择了正确的工具,但传入的参数不符合用户意图或工具的 schema。 **示例:**用户要求查询订单 #12345,但代理调用订单查询工具时传入了截断的 ID“1234”或编造的 ID,导致返回错误记录或空结果。

缺乏能力认知

代理尝试使用自己没有的工具,拒绝处理它具备能力处理的任务,或遇到了提示词从未为其准备的情况。 **示例:**尽管搜索工具已包含在代理的工具集中,代理却告诉用户“我无法搜索知识库”。

PII 泄露

代理的回答包含社会安全号码、出生日期、家庭住址、电话号码、电子邮件地址或 API 密钥等敏感数据。Engine 会进一步根据敏感数据的来源对 PII 泄露进行分类,因为每种情况的正确修复方式不同:代理引入(代理自行生成了敏感数据)、工具返回回显(工具响应包含开发者可以在源头过滤的敏感字段)或用户提供回显(敏感数据已存在于用户输入中)。 **示例:**客户查询工具返回了包含完整用户资料的结果,其中包括社会安全号码和家庭住址,而代理在给用户的回答中包含了所有这些字段。

响应截断

代理的回答在句子中间或代码块中间被截断。 **示例:**代理的回答突然结束于“要修复此问题,你需要更新配置文”,用户不得不要求代理继续回答。

静默工具错误

工具将错误消息作为内容返回,而不是抛出异常,因此代理将该错误当作有效响应处理。 **示例:**搜索工具将“404 Not Found”作为结果内容返回,代理却在给用户的回答中包含这段错误文本,仿佛它是真实答案。

系统提示词偏移

代理没有拒绝回答,而是回答了超出应用用途范围的无关问题。 **示例:**当用户要求“给我写一首关于猫的诗”时,一个电商商店的客户支持机器人却编写了一段 Python 脚本,而不是将用户引导至合适的渠道。

任务规避

代理在工作完成前就宣称成功,简化任务以避开困难部分,或在一次失败后没有尝试其他方法就放弃。 **示例:**用户要求对三个数据源进行详细分析,但代理只根据一个数据源生成了一句总结,就宣称任务已完成。

跟踪质量

项目的跟踪记录缺少能够启用 LangSmith 功能的元数据、标签或结构标记。这不是代理的行为问题,而是检测埋点方面存在缺口。 **示例:**跟踪记录的元数据中缺少 thread_id,因此 Threads 视图无法对对话轮次进行分组;同时,LLM 运行记录缺少模型提供商元数据,因此成本追踪显示为空值。

错误的工具

虽然存在更适合的工具,但代理却针对用户请求选择了错误的工具。 **示例:**用户要求通过订单 ID 查询单个订单,但代理调用了“列出所有订单”工具,而不是“通过订单 ID 获取订单”工具,返回了一整页结果,无法直接回答用户的问题。

另请参阅

  • 查找并修复代理问题:设置 Engine、处理问题生命周期并控制成本。
  • Engine:产品概览,以及 Engine 在开发生命周期中的定位。
  • Engine Webhook 事件:将检测到的问题转发到事件管理、分页通知或聊天工具。
  • 评估器:部署 Engine 为每个问题生成的建议评估器。