【必看收藏】LangChain v1.0大更新!create_agent核心功能详解,让你的AI助手更强大

LangChain v1.0更新后,create_agent成为核心入口,可统一配置模型、工具和中间件。Tool作为AI的"手脚",通过@tool装饰器定义,让AI能执行实际操作。Middleware则可在模型调用前后插入自定义逻辑,实现业务解耦。两者结合使用,可创建功能强大的AI助手,实现从简单问答到复杂任务的多种应用。


LangChain 是AI辅助工作的主流框架。最近它进行了大版本更新,语法变得更加优雅。准备用他做一个数据分析流程正好学习了一下,在这里把核心的几个变化进行总结。我们从create_agent类进行出发,介绍其几个核心功能:tool和Middleware。

create_agent

create_agent是 v1.0 的核心入口,一个函数搞定 Agent 创建:

from langchain.agents import create_agent agent = create_agent( model=llm, 模型 tools=[...], # 工具:让 AI 能做事 middleware=[...], # 中间件:事前/事后处理 system_prompt="...", # 系统提示词)result = agent.invoke({ "messages": [{"role": "user", "content": "你的问题"}]})

核心组成:

┌─────────────────────────────────────────────────┐ │ create_agent │ ├─────────────────────────────────────────────────┤ │ model → 大语言模型 │ │ tools → 工具列表(让 AI 能做事) │ │ middleware → 中间件(事前检查/事后处理) │ └─────────────────────────────────────────────────┘

下面分别介绍Tool和Middleware的用法。

Tool = Agent 的"手脚",让 AI 能执行实际操作(查天气、调 API、操作数据库…),像不像热门词汇MCP

1.1 定义

from langchain.tools import tool @tool def get_weather(city: str) -> str: """获取城市天气""" ← docstring 决定 AI 何时调用 return f"{city}:晴天 25°C"

三要素:

要素说明
函数名简洁明了,如get_weather
docstring最重要!AI 据此判断何时调用
参数类型帮助 AI 正确传参

1.2 使用

agent = create_agent( model=llm, tools=[get_weather, calculate], 传入工具列表)

1.3 完整示例

from langchain.agents import create_agent from langchain.tools import tool from langchain_community.chat_models import ChatTongyi @tool def get_weather(city: str) -> str: """获取城市天气""" weathers = {"北京": "晴天 25°C", "上海": "多云 28°C"} return weathers.get(city, f"{city}:暂无数据") @tool def calculate(expression: str) -> str: """计算数学表达式,如 1+2*3""" return f"结果是 {eval(expression)}" llm = ChatTongyi(model_name="qwen-plus") agent = create_agent( model=llm, tools=[get_weather, calculate], ) AI 会自动选择合适的工具result = agent.invoke({ "messages": [{"role": "user", "content": "北京天气怎么样?"}]})print(result["messages"][-1].content)

二、Middleware 中间件

Middleware = 在模型调用前后插入自定义逻辑,这个可以大大优化逻辑,让业务逻辑和功能逻辑解耦,非常好用。langchain也不在使用链式语言,归功于中间件的建构。

2.1 定义

from langchain.agents.middleware import AgentMiddleware class MyMiddleware(AgentMiddleware): def before_model(self, state, runtime): """模型调用前""" return None 返回 None = 放行 def after_model(self, state, runtime): """模型返回后""" return None # 返回 None = 不修改结果

关键点:

返回值效果
None放行 / 不修改
{"jump_to": "end"}拦截,跳过模型调用
{"messages": [...]}修改消息内容

2.2 使用

agent = create_agent( model=llm, tools=[...], middleware=[MyMiddleware()], ← 直接加到列表)

2.3 示例:脏话过滤

from langchain.agents import create_agent from langchain.agents.middleware import AgentMiddleware from langchain.messages import AIMessage from langchain_community.chat_models import ChatTongyi class BadWordFilter(AgentMiddleware): """脏话过滤中间件""" BAD_WORDS = ["傻瓜", "笨蛋", "垃圾"] def before_model(self, state, runtime): text = state["messages"][-1].content for word in self.BAD_WORDS: if word in text: 检测到脏话,拦截并返回提示 return { "messages": state["messages"] + [ AIMessage(content="请文明用语哦") ], "jump_to": "end" # 跳过模型,直接结束 } return None # 放行llm = ChatTongyi(model_name="qwen-plus")agent = create_agent( model=llm, tools=[], middleware=[BadWordFilter()],)# 测试result = agent.invoke({ "messages": [{"role": "user", "content": "你好"}]})print(result["messages"][-1].content) # 正常回复result = agent.invoke({ "messages": [{"role": "user", "content": "你这个傻瓜"}]})print(result["messages"][-1].content) # "请文明用语哦"

三、调用方式

场景写法
简单问答model.invoke("问题").content
需要工具create_agent(tools=[...])
需要拦截/日志create_agent(middleware=[...])
简单问答:直接调用from langchain_community.chat_models import ChatTongyillm = ChatTongyi(model_name="qwen-plus")result = llm.invoke("什么是 Python?")print(result.content)

这个句式真是舒服了,之前需要定义llm,定义调用函数,定义输出结构。:)

四、create_agent 参数

agent = create_agent( model=llm, 模型实例 tools=[...], # 工具列表 system_prompt="...", # 系统提示词 middleware=[...], # 中间件列表 memory=True, # 启用记忆 max_iterations=10, # 最大迭代次数(防止死循环))
| 参数 | 说明 | | ---------------- | ----------------------------------- | | `model` | 模型实例 | | `tools` | 工具列表,可为空 `[]` | | `system_prompt` | 设定 AI 角色/风格 | | `middleware` | 中间件列表,事前/事后处理 | | `memory` | 启用后配合 `thread_id` 实现多轮对话 | | `max_iterations` | 防止 AI 无限调用工具 |

五、完整示例

""" 综合示例:Tool + Middleware + Agent """ from langchain.agents import create_agent from langchain.agents.middleware import AgentMiddleware from langchain.tools import tool from langchain.messages import AIMessage from langchain_community.chat_models import ChatTongyi ========== 1. 定义工具 ==========@tooldef get_weather(city: str) -> str: """获取城市天气""" weathers = {"北京": "晴天 25°C", "上海": "多云 28°C"} return weathers.get(city, f"{city}:暂无数据")@tooldef calculate(expression: str) -> str: """计算数学表达式""" return f"结果是 {eval(expression)}"# ========== 2. 定义中间件 ==========class BadWordFilter(AgentMiddleware): """脏话过滤""" def before_model(self, state, runtime): text = state["messages"][-1].content if any(w in text for w in ["傻瓜", "笨蛋"]): return { "messages": state["messages"] + [ AIMessage(content="请文明用语") ], "jump_to": "end" } return None# ========== 3. 创建 Agent ==========llm = ChatTongyi(model_name="qwen-plus")agent = create_agent( model=llm, tools=[get_weather, calculate], system_prompt="你是一个helpful助手,简洁回答", middleware=[BadWordFilter()], max_iterations=10,)# ========== 4. 使用 ==========# 查天气result = agent.invoke({ "messages": [{"role": "user", "content": "北京天气如何?"}]})print(result["messages"][-1].content)# 计算result = agent.invoke({ "messages": [{"role": "user", "content": "123 * 456 等于多少?"}]})print(result["messages"][-1].content)# 脏话测试(会被拦截)result = agent.invoke({ "messages": [{"role": "user", "content": "你这个傻瓜"}]})print(result["messages"][-1].content) # "请文明用语"

最后做一个总结:TOOL可以引入外部操作函数,让AI去进行一些功能实现,Middleware则是大大简化了AI的业务流程。

我理解的Agent=LLM+MCP,大脑加上肢体,协调的工作。

┌─────────────────────────────────────────────────┐ │ Tool = 让 AI 能做事 │ │ Middleware = 在调用前后加逻辑 │ │ Agent = Tool + Middleware 的容器 │ └─────────────────────────────────────────────────┘

AI时代,未来的就业机会在哪里?

答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具,到自然语言处理、计算机视觉、多模态等核心领域,技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。

掌握大模型技能,就是把握高薪未来。

那么,普通人如何抓住大模型风口?

AI技术的普及对个人能力提出了新的要求,在AI时代,持续学习和适应新技术变得尤为重要。无论是企业还是个人,都需要不断更新知识体系,提升与AI协作的能力,以适应不断变化的工作环境。

因此,这里给大家整理了一份《2026最新大模型全套学习资源》,包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题等,带你从零基础入门到精通,快速掌握大模型技术!

由于篇幅有限,有需要的小伙伴可以扫码获取!

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

4. 大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

5. 大模型行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

为什么大家都在学AI大模型?

随着AI技术的发展,企业对人才的需求从“单一技术”转向 “AI+行业”双背景。企业对人才的需求从“单一技术”转向 “AI+行业”双背景。金融+AI、制造+AI、医疗+AI等跨界岗位薪资涨幅达30%-50%。

同时很多人面临优化裁员,近期科技巨头英特尔裁员2万人,传统岗位不断缩减,因此转行AI势在必行!

这些资料有用吗?

这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


大模型全套学习资料已整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1135844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Edge浏览器143便携版:基于Chromium内核的官方增强,免安装更轻便

随着Chromium内核的Edge浏览器在性能、兼容性和扩展生态上的显著提升,它已成为许多用户替代Chrome的首选。然而,官方安装版会深度集成到系统中。这个便携版则提供了另一种更灵活的使用方式,既保留了Edge的全部功能,又具备了绿色软…

从零实现数字信号观测:Proteus示波器使用方法

从零开始玩转数字信号:手把手教你用Proteus示波器看懂电路“心跳”你有没有过这样的经历?写了一段单片机代码,烧进芯片后LED就是不闪;或者搭了个555振荡电路,万用表测电压正常,可信号就是不对劲。这时候要是…

基于Windows的Packet Tracer网络仿真项目应用实例

用Packet Tracer搭建企业网:从零开始的实战仿真之旅你有没有遇到过这种情况?学了一堆网络协议,背了无数命令行,可一到真机配置就手忙脚乱——IP配错了、路由不通、ACL莫名其妙拦掉了流量……别急,这不是你不够努力&…

Thinkphp-Laravel基于体能分析的个性化健身方案生成

目录 基于体能分析的个性化健身方案生成数据采集与处理方案生成逻辑动态调整与反馈技术实现要点 项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理 基于体能分析的个性化健身方案生成 ThinkPHP和Laravel作为流行的PHP框架,能够高效支持…

智能体路由模式深度解析:4种实现方式+5步落地方法,收藏级干货

路由模式是智能体系统的"动态决策中枢",通过"接收输入→评估决策→导向路径"的闭环,让智能体从固定流程升级为上下文感知的决策者。文章详解了4种主流实现方式(基于LLM、嵌入、规则、机器学习模型)的优缺点和…

上升下降时间对比:TTL与CMOS开关特性的深度解析

上升时间与下降时间之争:TTL 和 CMOS 到底谁更快? 你有没有遇到过这样的问题:明明逻辑功能都对,信号波形一上示波器,边沿却“软绵绵”的?时序勉强过关,但系统一提速就出错?噪声干扰下…

Java中的三大特性 - 超详细篇_java类的三特性探讨,零基础入门到精通,收藏这篇就够了

前言 这一节的内容可能有点多,大家可以选择性的来看 简介 Java的三大特性:封装、继承、多态 乍一听,好像很高大上,其实当你真正用的时候,会发现高大上的还在后面呢。。。 热身 在正式讲解三大特性之前&#xff0…

Thinkphp-Laravel基于协同过滤算法的图书借阅推荐系统vue功能多

目录系统架构设计协同过滤算法实现核心功能模块性能优化策略扩展功能集成项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理系统架构设计 Thinkphp-Laravel框架作为后端基础,采用MVC模式实现业务逻辑与数据分离。Vue.js构建动态前端界面…

rs485和rs232区别总结详解:图文并茂易懂版

RS-485 和 RS-232 到底怎么选?一文讲透工业通信的底层逻辑 在调试一块老式PLC时,你有没有遇到过这样的问题:明明程序烧录正确、线也接好了,但就是收不到传感器的数据?换一根线试试——好了;再远一点装设备—…

快速理解WinDbg Preview的Local Kernel Debugging

一台电脑搞定内核调试:WinDbg Preview 的 Local Kernel Debugging 实战指南你有没有遇到过这样的场景?系统突然蓝屏,错误代码一闪而过;驱动在特定操作下无响应,却没有任何日志输出;内存使用一路飙升&#x…

爆肝整理!AI Agent记忆系统全指南:一篇搞定记忆三大核心问题,建议收藏!

本文深入解析AI Agent记忆系统,揭示其解决大模型"金鱼脑"问题的关键。系统包含三大核心问题:记忆形成、进化与检索;三种形态:Token级、参数化与潜变量记忆;三大功能:事实记忆、经验记忆与工作记忆…

Thinkphp-Laravel基于协同过滤算法的药品商城推荐系统vue_b46n1

目录系统概述技术架构协同过滤算法实现功能模块创新点与优化应用价值项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理系统概述 Thinkphp-Laravel药品商城推荐系统(vue_b46n1)是一个基于前后端分离架构的电子商务平台&#…

Proteus 8 Professional下载赋能在线远程教学解决方案探讨

打破实验室围墙:用Proteus 8 Professional构建可落地的远程电子教学新范式你有没有遇到过这样的困境?讲完单片机中断原理,学生一脸茫然;布置一个“点亮LED按键控制”的实验任务,结果一半人反馈“没开发板”、“家里没有…

强烈安利专科生必看!9个AI论文网站TOP9测评

强烈安利专科生必看!9个AI论文网站TOP9测评 为什么需要这份AI论文工具测评? 随着人工智能技术的不断进步,越来越多的专科生开始借助AI工具提升论文写作效率。然而,面对市场上琳琅满目的平台,如何选择真正适合自己需求的…

通俗解释ES6语法中的类与继承机制

搞懂 ES6 的class和继承:从写代码的“土办法”到优雅编程你有没有过这样的经历?在早期写 JavaScript 时,想做个“人”这个对象,结果只能靠函数模拟:function Person(name, age) {this.name name;this.age age; } Per…

有关HDFS的三种客户端操作方式详解 (命令行,网页界面,Java API一步到位)_hdfs客户端,收藏这篇就够了

前言 Hadoop分布式文件系统(HDFS)提供了多种客户端操作方式,本文将详细介绍三种主流操作方法:命令行操作、Web界面操作和Java API编程。通过在VMware Workstation Pro虚拟环境中使用CentOS 8系统,结合MobaXterm终端工具,我将逐一…

Thinkphp-Laravel基于微信小程序一对一教学班级作业小助手的设计与实现_7nl0d

目录摘要内容项目开发技术介绍PHP核心代码部分展示系统结论源码获取/同行可拿货,招校园代理摘要内容 针对微信小程序环境下的一对一教学班级作业管理需求,设计并实现了一款基于ThinkPHP和Laravel框架的作业小助手系统。该系统整合了教师端与学生端功能,…

手把手教你绘制RS485接口详细接线图(含MAX485)

从零开始画懂RS485接线:MAX485实战全解析你有没有遇到过这样的情况?系统明明在实验室通得好好的,一拉到现场300米外的设备上就丢包、乱码,甚至通信完全中断。排查半天发现——不是程序写错了,而是RS485接线图没画对。别…

I2C协议总线电容影响分析:长线传输性能下降原因

为什么你的I2C总线一拉长就通信失败?揭秘总线电容的“隐形杀手”效应你有没有遇到过这种情况:在开发板上测试得好好的I2C通信,传感器读数稳定、响应迅速;可一旦把线拉长几米,接上几个设备,就开始丢数据、报…