当前位置: 首页 > news >正文

LangChain+LangGraph 智能 Agent 核心逻辑

什么是大模型 Agent

单纯的大模型,只会基于自身知识生成文本,存在两个明显短板:

  • 知识有截止时间,无法获取实时信息;
  • 不能操作外部环境,没法读写文件、执行计算、调用接口。

而 Agent(智能体),就是给大模型装上「手脚」和「思考决策能力」。

简单总结:

Agent = 大模型 + 思考决策逻辑 + 外部工具集

它不再是被动问答,而是可以自主判断、自主选择工具、分步完成复杂任务。

我们本次实战的代码,就是最经典的 ReAct 架构 Agent,也是目前工业界使用最广的智能体模式。

技术栈说明及使用环境

LangChain:1.3.2 LangGraph:1.2.2 模型:DeepSeek 通用大模型

整体架构拆解(四大核心模块)

先看整体结构,我们的 Agent 一共由 4 个部分组成,缺一不可:

  1. 大模型 LLM:负责思考、判断、生成调用指令
  2. 自定义 Tools 工具集:外部可执行能力(文件、计算、查询等)
  3. @tool 装饰器:LangChain 标准工具封装方式
  4. 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 调度器解析模型的调用指令,找到对应工具函数,传入参数并本地执行代码

  1. 校验文件路径是否在安全目录
  2. 判断文件是否存在
  3. 执行删除逻辑
  4. 返回工具执行结果(成功 / 失败信息)

步骤 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%免费

http://www.gsyq.cn/news/1458088.html

相关文章:

  • 2026年评价高的VOCs压缩机/浙江油气压缩机主流厂家对比评测 - 品牌宣传支持者
  • SpringBoot+Vue大学校园篮球赛事管理系统源码+论文
  • MATLAB版IMCRA语音降噪工具包:含可运行代码、测试音频与频谱对比图
  • AutoGen多LLM协同架构:构建可审计、可降级的AI团队协作系统
  • TA-Lib国内实操包:三平台安装避坑指南+A股指标调用代码+C源码对照图解
  • 三步搞定B站无水印视频下载:BiliDownload让你的视频收藏更纯净
  • 中文NLP四大任务实战代码集:情感分析、句子匹配、NER识别与句向量建模
  • distilroberta-base-rejection-v1性能分析:98.87%准确率的秘密
  • Mac Mouse Fix终极指南:如何让普通鼠标在Mac上超越触控板体验
  • AntiMicroX游戏手柄映射终极指南:5分钟让任何游戏支持手柄操作
  • 告别CLI手忙脚乱:用OpenConfig和gRPC实现网络设备配置自动化(实战Docker环境搭建)
  • Copilot与ChatGPT技术区别:模型权属、服务边界与合规实践
  • 6G语义通信与智能体AI架构解析
  • 支付与超充融合:微信出海和宁德6分钟快充的底层协同逻辑
  • GPT-5.5工作流革命:从提问到委派的AI协作者范式
  • 企业AI安全防护缺口有多大?78%的CISO尚未部署LLM沙箱与提示词防火墙(2024 MITRE ATTCK® AI扩展版首发解读)
  • 如何避免BERT-large-cased-whole-word-masking的偏见问题:实用解决方案
  • AI工具×智能偏好整合黄金标准(ISO/IEC 23894-2023合规实践版)
  • 如何在Windows上安装安卓应用:APK安装器完全指南
  • (非常详细)AI大模型学习路线,从零到专家:AI大模型学习全攻略,月薪30K+不是梦!
  • 告别模型下载与部署,用快马平台ai服务直接提升你的代码开发效率
  • 从零到一:手把手教你用Vivado配置7系列FPGA的GTX收发器(以XC7K325T为例)
  • 如何在15分钟内完成Windows系统优化:WinUtil终极指南
  • 混合精度训练O2模式深度测评:Faster Mask RCNN在昇腾NPU上的精度与速度平衡
  • 10分钟掌握Illustrator智能填充:Fillinger插件完整解决方案
  • 微信支付出海、宁德超充、Kimi K2.6落地实战指南
  • 别扔!用全志A13山寨平板打造你的专属Linux服务器(附Ubuntu 18.04镜像)
  • Python为何成为TVA的神经与感官系统(6)
  • 别再只画二维图了!用Matplotlib的Axes3D给你的K-means聚类结果做个酷炫三维体检
  • 【仅开放72小时】AI秒杀整合SOP白皮书V3.2:含12个生产环境故障快照、4类GPU资源争抢日志分析、1套AB测试评估矩阵