[特殊字符]LangChain v1.0爆改大模型开发!四大组件+中间件机制,小白也能秒变智能体大神!

之前写过一篇关于《[从框架到智能体,一文看懂LangChain五兄弟的秘密]》文章,这里先跟大家道个歉,里面确实有些东西说的有歧义,而今天则系统的对LangChain最新的v1.0生态进行解读。

1、四大组成部分

LangChain发展至今,现早已不是一个框架那么简单,只是因为LangChain的名字使用的最广泛,知名度最高,所以还在延用,但我们要清楚,现在说的LangChain其实指的是一个生态。这个全新的家族生态,主要由四部分组成。

LangChain:生态的起点,智能体的开发基石,出现最早的基于LLM应用的框架,主打链式(Chain)结构,提供了基础能力,例如模型调用、工具调用、智能体创建、中间件等。

LangGraph:发展到一定阶段的必然产物,是复杂工作流的编排引擎,从名字上也可以看出来,主打Graph图结构。其核心是使用节点(Node)、边(Edge)和状态(State)打造有向图。

Deep Agents:LangChain的新成员,我没记错的话,应该是今年8月慢慢放出消息后发布的,其实我个人认为,还是属于一个探索性质的项目,比较年轻,出现的目的则是想打造对标Manus和Claude Code这类工业级智能体。它构建于LangChain与LangGraph之上,被定为是智能体执行框架,背后的核心是由Agent Harness驱动的。不过它内部封装的一些核心特性,例如任务自动规划、文件系统、大结果下沉(英文是Large tool result eviction,我也不知道咋翻译好)、子智能体等,还是确实能快速构建出一个较为复杂的智能体,尤其是Deep Research那种,确实特别快。

注:它内置的那些核心特性,本质上都是中间件机制。而中间件机制,我感觉是LangChain v1.0中最大的一个变化,也是最重要的一个变化,没有之一,后面会详细说明。

LangSmith:这个就不多说了,想必大家都很清楚,跟智能体开发没啥关系,是智能体的一个可观测性(监控)和智能体评估平台。当然,基于非langchain开发的智能体也可以使用,只不过他默认绑定的肯定是LangChain生态。所以从这也能看出来了LangChain团队的野心,他要玩闭环才能把他的商业模式转起来:开发->调试->部署->监控->评估->持续优化。

所以现在LangChain 1.0生态,主要包含我上面说的四部分,千万不要认为只是一LangChain框架,他是一个生态,不要被名字骗了。

2、LangChain v1.0新特性

之前使用LangChain v0.x版本时,大家可能都有这种感觉,虽然其功能强大,但是概念繁杂、框架整体臃肿、乱、学习曲线杂。而LangChain自2022年底发布以来,将近3年的时间里,版本号一直也没说直接上升到1.x,始终停留在0.x版本,这本身就说明了,其快速发展中保持了谨慎的态度。而此次直接跃迁至v1.0,真正意义上的第一个正式大版本,其意义不言而喻,并且其官方也声明了,在v2.0到来之前,不会再引入一些破坏性的颠覆功能特性,所以大家是时候,将老版本的代码,进行重构和升级了。

首先,LangChain v1.0解决的第一个问题是统一性。它对框架进行了一次彻底的重构与瘦身,目的不是为了引入更多的功能,而是重塑开发者的体验。它废弃了老版本中冗余API,统一了接口,新版本中使得框架变得更为轻量、直观且容易维护。

其背后的核心思想是抽象层设计,引入了Runnable Interface作为统一入口点,所有可执行组件实现了Runnable协议,可被例如‘.invoke’和‘.stream’调用。

result = model.invoke("请帮我生成一段关于AI未来的简短总结。")
pv = chat_prompt.invoke({"topic": "LangChain 的核心理念"})
result = agent.invoke(
{"messages": [HumanMessage(content="请计算3乘以5的结果是多少?")]}
)
for chunk in model.stream("请用一句话总结人工智能的意义:"):
print(chunk.content, end="")
for chunk in graph.stream(inputs, stream_mode="custom"):
print(chunk)

其次,更强化了智能体的理念。从早期的链式思维,升级为以智能体为核心,建立在LangGraph强大编排能力之上,封装了智能体的编程接口(‘create_agent’与’create_deep_agent’)来创建智能体,而并没有延用LangGraph的命名。因为在LangChain v1.0中,已经将LangGraph下沉为底层框架了,再加上有重要新特性中间件的加持,我们大多数场景下,无需再使用底层LangGraph API了。

agent = create_agent(
model=llm,
tools=[calculate, get_info],
system_prompt="你是一位专业的智能助理,拥有计算和信息查询的能力。请根据用户需求,自主选择最合适的工具进行处理。",
)
agent = create_deep_agent(
model=llm,
tools=[internet_search],
system_prompt=research_instructions,
)

最后,中间件与深度智能体。

我个人感觉,中间件绝对堪称LangChain v1.0版本增加的最核心机制,它也可作为底层的一种机制,LangChain v1.0封装的Agent组件背后,大量用到了中间件,感兴趣的可以看源码,这里就不详细剖析了。中间件设计思想,有点像Java Spring框架AOP的感觉,但又不完全一样,它允许开发者可以方便地注入日志记录和监控等通用性质逻辑,但不必污染核心的业务代码,为智能体的执行流程提供了强大的可观测性与可控性。除了可以自定义逻辑实现中间件外,官方现在内置了12种常用场景下的中间件,例如Summarization、Human-in-the-loop(HITL)、Model call limit等,实在太方便了,相信大家实际使用过就有感受了,省去了我们自己去实现这些复杂逻辑,用起来确实爽。

官方预置中间件:

https://docs.langchain.com/oss/python/langchain/middleware/built-in

具体使用上,就给大家展示一小段使用它预置中间件的代码片段吧,用起来很方便。

# 会话摘要中间件:极低阈值,快速触发
middleware = SummarizationMiddleware(
model=summ_llm,
max_tokens_before_summary=30,   # 累计上下文估算到阈值30时触发,把早期消息压缩成摘要。
messages_to_keep=5,             # 摘要后仍保留的最近N条原文
summary_prompt="用20个字以内概括要点。", # 自定义“如何摘要”的提示词(不设则用默认)
)
agent = create_agent(
model=llm,
tools=[],
system_prompt="只用一句极短中文回答,且不超过30个字。",  # 只用“极简短句”回答
middleware=[middleware],
)

但真正复杂场景智能体中,需要切入很多主业务外的逻辑,我们自己实现中间件时(基于装饰器(Decorator-based)或基于类(Class-based)实现),也还是需要写不少代码的。

然后是Deep Agents,深度智能体。文中前面也简单介绍了一些,他背后就是在LangGraph之上,基于中间件机制高度封装了一些开箱即用的特性,通过提供了一套更高阶的Agent Harness进行调度。(Agent Harness是Deep Agent整体的运行骨架,负责驱动大模型、工具、文件系统、子智能体、中间件和长期记忆等协同工作。)

我们通过配置子智能体、文件系统路径、系统提示词和工具集等,即可快速组装出具备深度规划与协作能力的复杂智能体,我们也不需要理解底层Graph的实现细节,极大限度降低了构建工业级智能体应用的门槛。

Deep Agents背后最核心的三个中间件:规划任务(TodoListMiddleware)、文件系统记忆(FilesystemMiddleware)、子智能体调度(SubAgentMiddleware)。

最后关于Deep Agents再说一个实现要点吧,是我个人在真实使用时的感受。它虽然进行了高度封装,开箱即用,我们进行一些简单配置(例如配置模型、工具、子智能体、存储体系等)就可以使用,但是对于提示词编写的要求极高,提示词一定要明确定义出每一个步骤,所以反而最后优化系统提示词,花了很长时间,尤其复杂智能体下,想让系统每一次都按照提示词的指示去做,尤其稳定性,这绝对是一个挑战。简单的场景这一点请忽略,简单场景我测试时稳定性还是挺高的。当然,这一点,也跟模型的能力有关。

# 创建并返回 Deep Agent
agent = create_deep_agent(
model=model,
tools=[internet_search],
system_prompt=DEEP_RESEARCH_SYSTEM_PROMPT,
backend=backend_factory,
store=store,
subagents=subagents,
interrupt_on=interrupt_on,
checkpointer=checkpointer,
)

当然,LangChain v1.0中还有很多新特性,上面只列举了我认为重要的一些,还有很多,大家可以通过LangChain官网左侧文档目录就可以看出来,我就不过多说明了。

oh,对了,突然想起来,在使用LangSmith平台调试的时候,原LangGraph Studio改名为LangSmith Studio了,这个之前还真没注意。所以,LangChain哈哈,真是分的清楚,要调试,就在LangSmith上,怕还用LangGraph Studio误会,直接改为了LangSmith Studio,除此之外,官方也不建议再用LangServe了,以后慢慢就被废弃掉了。

3、LangChain v1.0迁移建议

最后,从我个人角度来聊聊,如果要老项目重构或迁移为LangChain v1.0版本,应该关注哪些重点。(注意,只提供需要考虑哪些重点,不作为迁移指南使用)以下建议仅供参考:

1)、分析代码现状,明确你代码用的是哪个LangChain生态包版本,又或是混用langgraph+老agent等方式。所以需要分析现有代码写法,尤其LangChain众多老版本中,API众多,写法肯定各异。最后还需注意,最后Python版本可能也需要升级,因为v1.0移除了对Python 3.9的支持,Python版本需>= 3.10,影响范围可想而知。

2)、明确LangChain v1.0全家桶的核心变更,评估想要迁移的具体写法。例如新的create\_agent()成为标准入口,取代langgraph.prebuilt.create\_react\_agentinitialize\_agent等接口。同时还需确认是否保留旧特性,如果需要,可以通过langchain-classiclangchain-legacy兼容旧组件。

3)、依据场景不同,评估是否需要重构。有些高级的复杂模块,例如Deep Research这类业务,我就推荐使用Deep Agent搞定了。还有些业务,是否需要拆分,使用子智能体或子图的方式实现。

最后,我个人建议,与其考虑迁移到LangChain v1.0版本,真不如直接就重构吧,因为LangChain v1.0版本变化太大了。整体流程肯定是:你需要先全面了解LangChain v1.0的新特性,然后分析自己项目的业务与代码现状,进行重要度、复杂度、重构风险与重构成本等评估,制定重构业务或技术点的优先级。等全方位进行整体评估后,制定重构计划,再进行具体重构作业,而并不简单的告诉开发者说,出LangChain新版本了,你们给系统升级下吧,没那么简单。


如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值