趋近智
即使有周密的规划和明确的目标,LLM代理在尝试执行任务时也可能遇到问题。工具可能失效,信息可能无法获得,或者LLM本身可能误解了某个中间步骤。提供了代理可以用来应对这些简单执行失败的基本策略,以提升其可靠性和用户友好度。
执行障碍是代理运行的正常部分,尤其是在与外部系统交互或依赖LLM对每一步的理解时。造成这些中断的一些常见原因包括:
理解这些潜在的失败点是构建更具弹性的代理的第一步。
当代理出现问题时,有几种基本的恢复或报告策略可以带来很大的不同。
在代理能够处理失败之前,它必须首先识别到有失败发生。正如我们之前讨论如何追踪任务执行时所提及的,彻底的日志记录是很必要的。当代理尝试执行一个动作,尤其是涉及外部工具的动作时,它应该记录:
thought。tool及其获得的input。observation,即工具的输出或错误信息。这些记录的信息不仅仅是为了供您(开发者)稍后调试问题。它可以作为LLM下一个推理周期的一部分反馈给LLM,使其能够理解哪里出了问题,并可能自我修正。
有时,最简单的解决方案就是再次尝试相同的动作。这种策略对于临时性的、短暂的问题特别有效,例如代理尝试调用API时短暂的网络故障。
下图描述了一个包含重试机制的动作尝试基本流程。
一个动作尝试流程,在初始失败时包含重试循环。
当工具以非短暂的方式失败时,它通常会提供错误消息。这个消息非常有价值。代理不应该直接放弃,而是可以将其作为observation的一部分传回给LLM。
search_product(product_name)工具,它返回“错误:产品类别未指定”,LLM可以分析这一点。search_product(product_name="laptop", category="electronics")。考虑一个被赋予执行计算任务的代理:5除以0。
calculator工具,操作为divide,数字为5和0。calculator.divide(numerator=5, denominator=0)。这是一个比代理简单停止或反复尝试不可能的计算要智能和有帮助得多的响应。
对于某些任务,可能存在多种达到目标的方式,有些比其他更可靠或更精确。如果代理的主要方法因简单重试或输入修正无法解决的原因而失败,它可以尝试预定义的替代方案。
PriceCheckAPI工具。如果此API不可用或返回“未找到商品”之类的错误,代理可以有一个回退策略:使用通用WebSearchTool在购物网站上搜索商品价格。这种回退方法结构性可能较差,但仍能获得所需信息。并非所有失败都能由基本代理自主解决。很重要的是,代理不会陷入无限尝试和失败的循环,从而消耗资源或让用户感到沮丧。
这种信息丰富的失败比代理默默停止或返回模糊的错误要有用得多。
您可以通过在其主要系统提示词中包含具体指令,来很大程度上影响代理如何处理失败。这些指令会指导LLM在遇到指示错误的observation时的推理过程。
例如,您可以在代理的提示词中添加: “你是一个乐于助人的助手。当你使用工具时,如果它返回错误,请在你的思考过程中仔细分析错误消息。
这为LLM提供了基本的错误处理协议,鼓励一定程度的自我修正,同时确保它不会陷入困境。
这里讨论的技术,包括重试、使用错误消息、简单的回退和清晰报告,旨在处理相对常见和直接的执行失败。它们相比完全没有错误处理的代理,能显著提高其可靠性。
然而,这些是基本方法。它们无法解决所有问题,特别是:
更高级的代理设计包含更复杂的错误诊断、从过去失败中学习的机制以及更灵活的重新规划能力。这些是更高级学习的主题。目前,实施这些基本的故障处理方法将使您的第一个LLM代理在操作中更具实用性。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造