LangChain + Agent
- [一、LangChain 里的 **Tool(工具)** 是什么?](#一、LangChain 里的 Tool(工具) 是什么?)
-
- [1. 通俗解释](#1. 通俗解释)
- [2. Tool 的作用](#2. Tool 的作用)
- [3. 常见 Tool 例子](#3. 常见 Tool 例子)
- [4. 一句话记住](#4. 一句话记住)
- [二、**Agent(智能体)** 是什么?](#二、Agent(智能体) 是什么?)
-
- [1. 通俗解释](#1. 通俗解释)
- [2. Agent 的核心能力](#2. Agent 的核心能力)
- [3. Agent 工作流程(最经典)](#3. Agent 工作流程(最经典))
- [三、LangChain 中:Tool + Agent 如何配合?](#三、LangChain 中:Tool + Agent 如何配合?)
- 四、核心概念
-
- [1. Tool(工具)](#1. Tool(工具))
- [2. Agent(智能体)](#2. Agent(智能体))
- [3. AgentExecutor(执行器)](#3. AgentExecutor(执行器))
- [五、最经典、最常用的 Agent:**ReAct Agent**](#五、最经典、最常用的 Agent:ReAct Agent)
- [六、LangChain Tool + Agent 实战](#六、LangChain Tool + Agent 实战)
- 七、运行后你会看到
- 八、总结
一、LangChain 里的 Tool(工具) 是什么?
1. 通俗解释
Tool = AI 的手脚/能力扩展
大模型本身只会聊天、推理,但不会联网、不会计算、不会查文件、不会发消息、不会建工单 。
这些事,全部交给 Tool 做。
2. Tool 的作用
- 让 AI 调用外部能力
- 让 AI 获取实时信息
- 让 AI 执行真实操作
- 让 AI 使用专业功能
3. 常见 Tool 例子
- 计算器(准确计算)
- 联网搜索(获取最新信息)
- 向量库检索(RAG)
- 数据库查询
- 发送邮件/发送通知
- 调用API、创建工单
4. 一句话记住
LLM = 大脑(思考)
Tool = 手脚(执行)
二、Agent(智能体) 是什么?
1. 通俗解释
Agent = 会自己思考、自己选工具、自己完成任务的 AI
普通AI:你问啥它答啥。
Agent:
- 收到任务
- 自己判断该用什么工具
- 自己调用工具
- 自己看结果
- 自己决定下一步
- 直到任务完成
2. Agent 的核心能力
✅ 自主任务拆解
✅ 自主工具选择
✅ 多步循环执行
✅ 自我观察纠错
✅ 动态决策
3. Agent 工作流程(最经典)
用户提问 → 大脑思考 → 选择工具 → 执行工具 → 观察结果 → 继续思考 → 完成回答
这就是 ReAct 机制(Reason + Action)
三、LangChain 中:Tool + Agent 如何配合?
一句话:
Agent 负责思考决定用哪个 Tool
Tool 负责真正执行动作
四、核心概念
1. Tool(工具)
- 输入:自然语言指令
- 输出:工具执行结果
- 作用:扩展AI能力
2. Agent(智能体)
- 大脑:LLM(GPT / GLM / Qwen)
- 记忆:保存历史对话、步骤
- 决策:决定用什么工具
- 执行:循环调用工具直到完成
3. AgentExecutor(执行器)
- 控制循环
- 限制最大步数(防死循环)
- 打印思考过程(verbose)
五、最经典、最常用的 Agent:ReAct Agent
工作模式(固定四步)
- Thought(我该做什么?)
- Action(调用哪个工具、参数是什么)
- Observation(工具返回了什么结果)
- Final Answer(完成回答)
这是所有企业 AI 系统的基础架构。
六、LangChain Tool + Agent 实战
功能
- 自定义工具
- 让AI自主调用工具
- 显示完整思考过程
- 带角色、带限制、防混乱
python
# 安装依赖
# pip install langchain langchain-openai langchain-community
python
# ==========================
# 1. 导入模块
# ==========================
from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import BaseTool, Tool
from langchain import hub
# ==========================
# 2. 定义LLM(大脑)
# ==========================
llm = ChatOpenAI(
model="gpt-3.5-turbo",
temperature=0, # 工具调用必须0
api_key="你的API_KEY",
base_url="https://api.chatanywhere.tech/v1"
)
# ==========================
# 3. 自定义 Tool 1:计算器
# ==========================
def calculator_func(expression: str) -> str:
try:
return str(eval(expression))
except:
return "计算错误"
calculator_tool = Tool(
name="Calculator",
func=calculator_func,
description="用于数学计算,输入数学表达式,返回计算结果。"
)
# ==========================
# 4. 自定义 Tool 2:天气查询
# ==========================
def weather_func(city: str) -> str:
return f"{city} 今天晴天,25度。"
weather_tool = Tool(
name="Weather",
func=weather_func,
description="查询城市天气。"
)
# ==========================
# 5. 把工具放进列表
# ==========================
tools = [calculator_tool, weather_tool]
# ==========================
# 6. 加载 ReAct 提示词
# ==========================
prompt = hub.pull("hwchase17/react")
# ==========================
# 7. 创建 Agent
# ==========================
agent = create_react_agent(llm, tools, prompt)
# ==========================
# 8. 创建执行器
# ==========================
agent_executor = AgentExecutor(
agent=agent,
tools=tools,
verbose=True, # 显示思考过程(学习必开)
max_iterations=5 # 最大步数,防止死循环
)
# ==========================
# 9. 测试运行
# ==========================
if __name__ == "__main__":
question = "北京今天天气如何?38+62*2等于多少?"
result = agent_executor.invoke({"input": question})
print("\n=== 最终回答 ===")
print(result["output"])
七、运行后你会看到
> 进入新AgentExecutor链
思考:我需要先查北京天气,再计算数学题。
行动:调用 Weather,参数:北京
观察:北京今天晴天,25度。
思考:现在需要计算 38+62*2
行动:调用 Calculator,参数:38+62*2
观察:162
思考:任务完成。
最终回答:北京今天晴天25度,计算结果162。
这就是真正的 AI 智能体!
八、总结
Tool
- AI 的能力扩展
- 负责执行
Agent
- AI 的大脑
- 负责思考、选择工具、完成任务
ReAct
- 思考 → 行动 → 观察 → 回答
- 企业级标准架构