LangChain+LangGraph 智能 Agent 核心逻辑
什么是大模型 Agent
单纯的大模型,只会基于自身知识生成文本,存在两个明显短板:
- 知识有截止时间,无法获取实时信息;
- 不能操作外部环境,没法读写文件、执行计算、调用接口。
而 Agent(智能体),就是给大模型装上「手脚」和「思考决策能力」。
简单总结:
Agent = 大模型 + 思考决策逻辑 + 外部工具集
它不再是被动问答,而是可以自主判断、自主选择工具、分步完成复杂任务。
我们本次实战的代码,就是最经典的 ReAct 架构 Agent,也是目前工业界使用最广的智能体模式。
技术栈说明及使用环境
LangChain:1.3.2
LangGraph:1.2.2
模型:DeepSeek 通用大模型
整体架构拆解(四大核心模块)
先看整体结构,我们的 Agent 一共由 4 个部分组成,缺一不可:
- 大模型 LLM:负责思考、判断、生成调用指令
- 自定义 Tools 工具集:外部可执行能力(文件、计算、查询等)
- @tool 装饰器:LangChain 标准工具封装方式
- ReAct Agent 调度器:串联「思考→调用工具→汇总结果」全流程
大模型 LLM
apikey=
"sk-xxxxxxx"
baseurl=
"https://api.deepseek.com/v1"
llm = ChatOpenAI(
model="deepseek-chat",
temperature=0.5,
api_key=apikey,
base_url=baseurl
)
Tool 工具(Agent 的手脚)
工具是 Agent 能落地业务的关键。
LangChain 统一使用 @tool 装饰器 来定义工具,这是官方标准写法。
@tool
def 工具名(入参: 类型) -> 字符串:
""" 工具描述(非常重要!模型靠这段文字理解工具用途)
:param 参数名: 参数说明 """
# 业务逻辑
return "执行结果"
ReAct 调度器(核心执行逻辑)
# 所有定义工具加入tools数组
tools = [write_to_file,write_file,list_files,delete_file,calculate,get_weather]
# 绑定agent
agent = create_react_agent(llm, tools)
这一行代码,背后就是整个 Agent 的决策循环逻辑。
**ReAct = Reason(推理思考) + Act(执行动作)**也是整个智能体最核心的运行机制。
ReAct Agent 完整执行流程
示例:命令 今天的深圳天气怎么样,帮信息存在weather.txt
步骤 1:接收用户输入
用户提问被封装为消息格式,送入 Agent:
{"messages": [("user", "今天的深圳天气怎么样,帮信息存在weather.txt")]}
步骤 2:大模型「推理 Reason」
模型收到三类信息:
- 用户原始问题
- 所有工具的名称、功能描述、入参要求
- 历史执行记录
模型自主判断:
这个任务无法直接回答,需要调用工具 → 选择
delete_file工具 → 提取参数file_name="poem.txt"
然后输出工具调用指令,而非自然语言回答。
步骤 3:执行动作 Act(调用工具)
Agent 调度器解析模型的调用指令,找到对应工具函数,传入参数并本地执行代码:
- 校验文件路径是否在安全目录
- 判断文件是否存在
- 执行删除逻辑
- 返回工具执行结果(成功 / 失败信息)
步骤 4:结果回传给大模型,二次汇总
工具执行结果再次发回大模型。模型拿到执行状态后,不再调用新工具,整理信息,生成最终自然语言回答返回给用户。

完整个代码如下
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent
# 1. 加载环境变量
load_dotenv()
# 2. 定义安全工作目录(沙箱隔离)
WORK_DIR = r"safe_files"
os.makedirs(WORK_DIR, exist_ok=True)
# 3. 初始化大模型(Agent 大脑)
api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
base_url = "https://api.deepseek.com/v1"
llm = ChatOpenAI(
model="deepseek-chat",
temperature=0.5,
api_key=api_key,
base_url=base_url
)
# ---------------------- 自定义工具集(Agent 手脚) ----------------------
@tool
def write_to_file(file_name: str, content: str) -> str:
"""将内容写入指定文件,仅允许写入安全目录内的文件"""
file_path = os.path.abspath(os.path.join(WORK_DIR, file_name))
if not file_path.startswith(os.path.abspath(WORK_DIR)):
return "❌ 错误:禁止写入安全目录外的文件!"
try:
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
return f"✅ 成功写入文件:{file_path}"
except Exception as e:
return f"❌ 写入失败:{str(e)}"
@tool
def list_files() -> str:
"""列出安全目录下所有文件"""
try:
files = os.listdir(WORK_DIR)
return "当前目录文件:\n" + "\n".join(files)
except Exception as e:
return f"列出失败: {str(e)}"
@tool
def delete_file(file_name: str) -> str:
"""删除安全目录内指定文件"""
file_path = os.path.abspath(os.path.join(WORK_DIR, file_name))
if not file_path.startswith(os.path.abspath(WORK_DIR)):
return "错误:禁止删除安全目录外的文件"
if not os.path.exists(file_path):
return "错误:文件不存在"
try:
os.remove(file_path)
return f"已成功删除文件: {file_name}"
except Exception as e:
return f"删除失败: {str(e)}"
@tool
def calculate(expression: str) -> str:
"""计算数学表达式,示例:(10+20)*5"""
try:
result = eval(expression, {"__builtins__": None}, {})
return f"计算结果: {expression} = {result}"
except Exception as e:
return f"计算失败: {str(e)}"
@tool
def get_weather(city: str) -> str:
"""查询指定城市天气"""
data = {
"北京": "晴天 25℃,湿度40%",
"上海": "多云 27℃,湿度65%",
"广州": "小雨 30℃,湿度85%",
"深圳": "晴转多云 28℃,湿度70%"
}
return data.get(city, f"{city} 暂无天气数据")
# 注册所有工具
tools = [write_to_file, list_files, delete_file, calculate, get_weather]
# 4. 创建 ReAct 智能体(调度核心)
agent = create_react_agent(llm, tools)
# 5. 启动测试
if __name__ == "__main__":
print("Agent 已启动,请等待任务执行...")
# 可自行修改测试指令
user_input = "帮删除 safe_files 中的 poem.txt"
response = agent.invoke({
"messages": [("user", user_input)]
})
print("\n==== 最终回答 ====")
print(response["messages"][-1].content)
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)