LLM代理要有效规划和执行任务,特别是需要多步骤完成的任务,它必须先理解自己的目标。就像一个人在规划路线前需要知道目的地一样,代理在确定必要行动之前也需要一个明确的目标。明确定义的目标是代理运作的根本,并提供了制定它们的方法。
为什么明确目标很重要
想象一下,你让朋友“处理一下你凌乱的房间”。他们可能稍微整理一下,也可能把所有东西重新组织一遍,或者他们可能只是茫然地看着,不确定从何开始。这个指令太模糊了。LLM代理也面临类似的挑战。没有精确的目标,代理的行动可能会效率低下、方向错误或完全没有成效。
明确的目标很重要,原因有几点:
- 规划方向: 明确定义的目标是任何计划的起点。如果代理清楚地知道它需要完成什么,它就能确定所需的步骤顺序或工具。比如,一个“查找巴黎当前天气并将其通过电子邮件发送给我”这样的目标,能让代理规划:首先,使用天气工具查询巴黎;其次,使用电子邮件工具发送信息。
- 集中与效率: 明确的目标可以防止代理在不相关的行动上浪费资源。它帮助代理将其“思考”(LLM的处理过程)集中在手头的问题上,从而带来更快、更相关的结果。
- 可衡量结果: 当目标明确时,更容易判断代理是否成功或失败。如果目标是“总结关于AI伦理的最新消息”,你可以评估这个总结。如果目标仅仅是“消息”,那么成功的定义就更难了。
- 工具选择: 如我们稍后讨论工具时将看到的,代理通常可以访问各种功能。明确的目标有助于代理(或指导它的LLM)选择最适合这项工作的工具。
如果没有明确定义的目标,代理可能会陷入循环,产生无用的信息,或者无法令人满意地完成任务。
良好目标的特点
当你告诉代理要做什么时,请考虑如何使你的指令尽可能有效。一个好的LLM代理目标通常具有以下品质:
- 具体: 目标应该精确说明需要做什么。避免模棱两可。
- 不够具体: “帮我安排我的旅行。”
- 更具体: “查找下周末旧金山三家可入住的宠物友好型酒店,每晚预算低于200美元。”
- 行动导向: 目标应该暗示代理可以执行的一个或一组行动。
- 行动导向性不足: “关于LLM的信息。”
- 行动导向性更强: “列出大型语言模型在商业中的三个常见应用。”
- 明确预期输出(如适用): 如果你期望特定的输出,请说明它。
- 输出不明确: “告诉我这份文档的内容。”
- 输出明确: “将附件文档总结为三个要点,突出主要结论。”
- 可实现: 目标应该是代理通过其LLM能力和任何可用工具能够实际完成的事情。要求一个简单的代理“解决饥饿问题”不是一个可实现的目标。
将制定目标想象成给你的代理一份非常清晰的任务简报。误解的空间越小,代理的表现就会越好。
通过提示定义目标
对于大多数LLM代理,你主要通过提示来传达目标。提示是你给代理的初始指令或查询。仔细编写此提示对于设定明确的目标非常重要。
考虑以下示例:
目标1: 获取特定信息
- 模糊提示/目标: “找些关于木星的东西。”
- 问题: 什么类型的“东西”?多少?什么格式?代理可能会返回一个随机事实、一篇长文章,或者要求澄清。
- 清晰提示/目标: “木星的直径是多少公里?根据NASA,它官方有多少颗卫星?”
- 优点: 这很具体(直径,卫星数量),指明了来源偏好(NASA),并暗示一个事实性的、简洁的答案。
目标2: 使用工具执行任务(例如,日历工具)
- 模糊提示/目标: “管理我的日程。”
- 问题: 这太宽泛了。是意味着添加事件、清空日程,还是其他什么?
- 清晰提示/目标: “下周二下午2点与'[email protected]'安排一个名为'项目同步'的会议,并在会议前1小时添加提醒。”
- 优点: 这明确说明了行动(安排会议)、细节(标题、时间、参与者)以及相关的子任务(添加提醒)。
编写用于定义目标的提示时:
- 使用简单、直接的语言。
- 如果可能,分解复杂请求,或确保整体目标清晰明确。
- 如果重要,请指定你期望的响应格式或类型。
下图说明了用户的请求如何转化为明确的目标,然后目标如何驱动代理的规划和执行。
目标是从用户请求中得出的一个明确界定的目的,它指导着代理的规划和执行阶段。
随着你构建更复杂的代理,你可能会遇到目标从正在进行的过程或先前的互动中衍生出的情况。然而,对于代理的基础开发,从通过提示传达的清晰、明确陈述的目标开始是最有效的方法。这种清晰性是一个代理能够制定合理行动计划的根本,当我们讨论任务分解时将进一步查看此主题。如果主要目的模糊不清,将其分解为清晰的步骤对代理来说会变得困难得多。