LangChain Agent 基础入门:LLM 外部工具调用
大语言模型(LLM)虽然具备强大的生成能力,但其知识训练数据存在时间局限性。当面对实时信息或需要精确计算的任务时,单纯依赖模型内部参数容易产生幻觉或无法回答。为了解决这一问题,可以结合本地知识库、在线搜索 API 或数学计算工具来增强模型能力。这些不属于大模型内部数据的资源被称为外部工具。
LangChain 框架提供了 Agent(代理)模块,使得大模型能够感知环境并调用外部工具,从而完成复杂任务。
Agent 是什么?
当大模型无法仅凭自身数据准确回复时,可能会产生一本正经的胡说八道。此时引入 Agent,可以让模型在遇到知识盲区时主动调用外部工具获取信息。
Agent 系统支持多智能体协作,即一个 Agent 的输出可以作为另一个 Agent 的输入。在这种架构下:
- LLM:负责生成预测、理解用户意图和处理输入文本。
- Agent:负责接口调用、文件处理、搜索策略制定及执行动作。
- 决策机制:当存在多个代理时,需要特定的框架来决定调用哪个工具,通常采用 ReAct 框架。
ReAct 框架详解
人类在日常行为中通常遵循'边观察、边思考,然后再行动'的模式。ReAct(Reasoning + Acting)框架的核心思想正是行动和推理的协同,将人类学习新任务并作出决策或再推理的能力赋予 LLM。
ReAct 工作流示例
以寻找胡椒瓶为例,LLM 会经历以下循环:
- Thought(思考):分析当前状态,决定下一步行动。
- Action(行动):选择工具并执行。
- Observation(观察):接收工具返回的结果。
- Repeat:根据观察结果继续思考,直到得出最终答案。
LangChain 中的 Agent 类对 ReAct 逻辑进行了封装和实现,开发者无需手动编写循环逻辑。
实战 Demo:大蒜价格查询与定价
本示例演示如何使用 Agent 让 LLM 找到大蒜的当前价格,并根据加价 20% 的逻辑计算售价。
核心逻辑
- 行动:在网上搜索当前成本价。
- 观察:分析搜索结果的价格高低。
- 思考:决定加价幅度。
- 行动:使用计算器计算最终售价。
1. 安装依赖
首先确保安装了必要的库。SerpAPI 是 Google 的搜索工具,用于查找实时价格。
!pip install langchain
!pip install openai
!pip install google-search-results
2. 配置 API Key
需要在环境变量中设置 OpenAI 和 SerpAPI 的密钥。
import os
os.environ["OPENAI_API_KEY"] = "Your_OpenAI_API_Key"
os.environ["SERPAPI_API_KEY"] = "Your_SerpAPI_API_Key"
3. 导入库
加载 LangChain 的工具加载器、Agent 初始化函数及 LLM 类。
langchain.agents load_tools
langchain.agents initialize_agent
langchain.agents AgentType
langchain.llms OpenAI


