LangChain 实战:Agent 思维框架与代码实现
前言
大型语言模型(LLM)虽然具备强大的自然语言理解和生成能力,但其本质是基于训练数据预测下一个 token。这意味着它存在几个固有局限:无法访问实时信息、缺乏特定领域知识库、无法执行外部操作(如搜索、计算、调用 API)。为了解决这些问题,我们需要引入'外部工具'。当大模型需要通过自主判断调用外部工具来进一步完成任务时,LangChain 提供了 Agent(代理)模块。
Agent 的核心思想是让大模型像人类一样,通过观察环境、思考决策、采取行动来解决问题。在 LangChain 中,Agent 充当了连接大模型与外部工具的桥梁。
Agent 核心概念
Agent 是一个抽象概念,当 LLM 无法仅凭自身内部知识准确回复用户请求时,Agent 会协助其调用外部工具。除了基础的代理概念外,LangChain 提供了一系列常用的 Agent 实现,例如用于数据库查询的 create_sql_agent,以及本文重点介绍的基于 ReAct 框架的通用 Agent。
我们可以从以下几个维度理解 Agent 的工作机制:
1. 大模型(LLM)
大模型是 Agent 的大脑。在 Agent 的工作过程中,LLM 负责逻辑推理、任务拆解和决策生成。它接收用户的输入和当前的状态信息,输出下一步的行动指令。
2. 外部工具(Tools)
工具是 Agent 的手脚。这包括接口调用、文件处理、搜索引擎、计算器等。LangChain 封装了多种常用工具,开发者也可以自定义工具函数。
3. 控制交互的代理(Controller)
这是 Agent 的管家。当有多个代理协作时,负责调度分配任务。对于单个 Agent,它负责决定何时调用哪个工具,以及如何解析工具返回的结果。
ReAct 思维框架
ReAct(Reasoning + Acting)是 Agent 工作的核心思维框架。它模拟了人类解决问题的过程:先思考(Reasoning),再行动(Acting),然后根据观察结果再次思考。
以开发一个智能定价 Agent 为例:
- 行动(Action):去批发网查找今天的干货成本价。
- 观察(Observation):获取到当前价格为 4.2 元。
- 思考(Thought):根据成本价决定加价幅度,比如加价 20%。
- 行动(Action):使用计算器计算最终售价。
- 最终答案:输出定价建议。
这种'观察 - 思考 - 行动'的循环,将人类学习新任务并做出决策的能力赋予了 LLM。LangChain 的 Agent 类对 ReAct 进行了封装和实现,使得大模型获得了极大的自主性。
干货定价 Agent 代码实现
下面我们通过一个完整的 Demo,开发一个 Agent,帮助找到大蒜子的当前市场价格,并自动计算加价 20% 后的销售价格。
1. 安装依赖
首先,我们需要安装 LangChain 及相关工具库。
pip install langchain
pip install openai
pip install google-search-results
这里我们使用了 SerpAPI,它是 Agent 需要的 Google 搜索工具,用于找出大蒜子的价格。同时需要 llm-math 工具来进行数学计算。
2. 配置 API Key
为了使用 OpenAI 的大模型和 SerpAPI 的搜索服务,需要配置环境变量。
import os
os.environ["OPENAI_API_KEY"] = "Your_OpenAI_API_Key_Here"
os.environ["SERPAPI_API_KEY"] = "Your_SerpAPI_Key_Here"


