基于Langchain的llm的代理机制之规划| 豆包MarsCode AI刷题

123 阅读2分钟

引言

对于一个由LLM驱动的代理系统来说,其主要构成有以下几个部分:规划(Planning)、工具(Tool)、记忆(Memory)。这些部分共同作用与代理一起完成操作。接下来将从每个部分进行介绍并对代理结构进行总结。

规划(Planning)

一个复杂的任务往往涉及很多步骤,因此对这些步骤进行管理和规划是一件很重要的事情。

任务分解

首先可以将需要完成的任务进行分解,使得代理可以一步一步地完成。常见的任务分解方式可能为以下几种

CoT

Chain of Thought是一种在应对复杂任务时有效的标准提示技巧。它通过将一个庞大且复杂的任务分解成很多个简单的小块任务吗,然后一步步对模型的思维过程进行解释。

ToT

Tree of Thoughts是通过在每一步探索多种推理可能性,对 CoT 进行了扩展。它首先将问题分解为多个思考步骤,并在每个步骤中生成多个思考,从而创建一个树状结构。 搜索过程可以是 BFS(广度优先搜索)或 DFS(深度优先搜索),每个状态由分类器(通过提示)或多数票进行评估。

自我反思

自我反思是一个重要方面,它允许自主代理通过完善过去的行动决策和纠正以前的错误来不断改进。常见的自我反思方式可能有以下几种:

ReAct

ReAct (Yao 等人,2023 年)将推理和行动整合到 LLM 中,将行动空间扩展为特定任务离散行动和语言空间的组合。推理(Thought)使 LLM 能够与环境互动(如使用维基百科搜索 API),行动(Action)则促使 LLM 用自然语言生成推理痕迹。 ReAct 的提示模板包含了明确的步骤供 LLM 思考,大致格式如下:

Action: ...
Observation: ...
... (Repeated many times)

image.png

如上图所示就是一个任务的推理轨迹。

Reflexion

Reflexion(Shinn & Labash,2023 年)是一个为代理配备动态记忆和自我反思能力以提高推理技能的框架。 Reflexion 具有标准的 RL 设置,其中奖励模型提供了一个简单的二进制奖励,而行动空间则遵循 ReAct 的设置,其中特定于任务的行动空间使用语言进行扩展,以实现复杂的推理步骤。

image.png 如上图所示,Reflexion框架在每次行动ai之后,代理都会计算启发式h并根据自我反思的结果决定重置环境以开始新的试验。

Chain of Hindsight

CoT(CoH;Liu 等人,2023 年)通过向模型明确展示一系列过去的输出结果,鼓励模型改进自己的输出结果。