LangChain,一个强大的工具,允许根据用户输入创建对语言模型和其他工具的复杂调用链。就像拥有一个私人助理,可以根据手头的任务做出决定。本文来分享一下在 LangChain 中使用 Agents 的心路历程。
LangChain中代理的概念
在 LangChain 中,代理是一个组件,可以访问一套工具,并可以根据用户的输入决定使用哪个工具。有两种主要类型的代理:行为代理 Action Agents
和 计划和执行代理 Plan-and-Execute Agents
。
-
行为代理 Action Agents
决定采取的动作并一次一步地执行该动作。它们更传统,适用于小型任务。 -
计划和执行代理 Plan-and-Execute Agents
首先决定要采取的行动计划,然后一次执行这些行动。它们非常适合更复杂或长期运行的任务,因为初始规划步骤有助于保持长期目标和重点。然而,这伴随着更多调用和更高延迟的权衡。
Agent剖析
LangChain 中的代理由几个关键组件组成:
- 代理:这是应用程序逻辑所在的地方。它接受用户输入以及代理已采取的先前步骤的列表,并返回 AgentAction 或 AgentFinish。
- 工具:这些是代理可以采取的行动。为代理提供的工具在很大程度上取决于希望代理做什么。
- 工具包:这些是为特定用例设计的工具组。
- 代理执行器:这包装了一个代理和一系列工具。它负责迭代地运行代理,直到满足停止条件。