LangChain Agent 核心概念与实战开发指南
一、什么是 LangChain Agent(代理)
LangChain 中代理背后的想法是利用语言模型以及要执行的一系列操作。代理正在使用推理引擎来确定要执行哪些操作来获取结果。
代理对于处理从简单的自动响应到复杂的上下文感知交互等任务至关重要。
例如,您可能有一个与 Google 搜索、Wikipedia 和 OpenAI LLM 集成的代理。使用给定的代理工具,它们可以在 Google 中搜索结果,然后使用维基百科工具中检索到的上下文来查找详细信息并扩展上下文。
请记住,您必须放置明确定义的指令,以确保代理将以正确的顺序调用工具。
该图展示了代理及其组件的示例:

二、提升你的 Agent(代理)
你可能想知道,'为什么我不能使用简单的 LLM 来回答我的问题?在某些情况下,使用的 LLM 模型具有旧数据,或者您必须提供一些内部数据(并使用嵌入来查找相似性)。
探索这些可以提升代理功能的示例:
1. 网页搜索工具
您可以轻松地将不同类型的 Web 搜索作为可用操作添加到您的代理。它可能是 Google 搜索、Tavily 搜索、DuckDuckGo 等。
2. 在矢量数据库中嵌入搜索
您可以从检索器创建一个工具并根据需要对其进行描述,因此代理将使用此工具来获取某种数据,例如相似性检查和嵌入模型。
3. 做特定动作
您的代理可以是多用途的。例如,它可能在 Internet 上搜索某种信息,执行推理步骤,然后调用操作来创建 Jira 事务。
4. API 集成工具
LangChain 框架已经做了很多 API 集成,你需要做的就是获取 API 密钥,安装包并将工具附加到代理上。
5. 自定义工具
您可以编写自己的工具,请参阅文档以了解如何操作。它可能是与您的内部 API、文档系统和许多其他应用程序的集成!
三、LangChain Agent vs. Chain
除了拥有代理之外,LangChain 还支持链的想法。
链是要执行的操作的子序列,始终以硬编码的方式进行。这是代理和链之间的关键区别。虽然在代理中,推理模型可以选择其他操作(从给定的工具)来获取特定数据,但链将始终采用我们选择的相同路径。
与链相比,代理的优势:
- 根据工具的描述,代理决定应使用哪种工具来获取相关信息。
- 代理采取行动并获取给定结果的上下文,例如在其他资源(例如 Google 搜索和维基百科)中搜索其他信息。
- 代理检查结果并重复该过程以获取所需的数据。
四、使用代理的主要目标
当您构建自己的 AI LangChain 解决方案时,您需要了解使用代理是否是您想要的方式。
如果您的用例始终基于相同的流程和策略,例如:
- 网络搜索。
- 文本嵌入。
- 推理。
然后,您可以考虑使用链而不是代理。代理成本是不可预测的,因为有些问题可能会在调用一个工具后直接回答,而另一些问题可能会使用一套全面的工具进行适当的推理。如果您的用例基于确定来自不同来源的事物(称为工具),那么代理似乎是一个很好的解决方案。另一方面,一种代理类型使用单个工具将复杂的查询划分为更简单的查询,因此这也可能是决定是使用链查询还是代理的另一个标准。

五、LangChain Agent 类型
LangChain 根据几个维度对代理进行分类:


