LangChain 全攻略:从零基础入门到生产级agent开发,一篇搞定!

该文章已生成可运行项目,

本文详细解析LangChain 1.0从Chain设计到ReAct循环的变革,介绍其核心组件如create_agent函数、Middleware机制和结构化输出,并探讨如何结合Milvus向量数据库构建具备长期记忆能力的生产级agent,同时提供技术选型指南。


不再搞Chain 设计的LangChain 1.0 ,如何结合Milvus打造生产级agent

最近,被广大开发者又爱又恨的LangChain ,迎来了重大改版:

专门为agent落地打造的LangChain 1.0版本终于来了!!!

简单来说,其改动主要在于:通过放弃早期的Chain 设计,引入标准化 ReAct 循环(推理→工具调用→观察→判断)和**Middleware 机制,**简化agent开发流程、统一标准。

那么改版的LangChain 怎么用,如何结合Milvus落地生产,本文将重点解读。

01

LangChain 为何改版?

Chain 设计不适用agent时代

过去,LangChain 0.x 版本的优点是能让开发者快速构建Agent 原型。但同时也存在三个核心问题:

1、僵化的 Chain 设计

预构建的 Chain(如SimpleSequentialChainLLMChain)在标准场景下很方便,但一旦业务逻辑偏离模板,开发者就会陷入两难——要么被迫接受框架的全部设计,要么放弃框架直接操作原始 LLM 调用。

2、缺少生产级控制

  • 上下文溢出:长对话导致 Token 超限,系统崩溃
  • 敏感信息泄露:PII 数据(邮箱、身份证)直接发送给第三方模型
  • 高风险操作:Agent 在无人工确认的情况下删除数据、发送邮件

这些问题在 Demo 阶段难以暴露,但上线后每一个都可能致命。

3、模型切换的重复工作

OpenAI、Anthropic、国产模型的接口差异(Reasoning 格式、Tool Calling 协议)迫使开发者在每次切换时重写适配代码。

而针对以上问题,LangChain 1.0选择放弃早期的Chain 设计,引入标准化 ReAct 循环(推理→工具调用→观察→判断,create_agent函数 10 行代码就能构建生产级 Agent)和Middleware 机制(注入 PII 检测、人工审批、自动重试)**,**简化agent开发流程、统一模型接入等标准。

02

LangChain 1.0 的核心设计 All-in ReAct Agent

LangChain 团队在分析大量生产环境的 Agent 后发现:绝大多数成功案例都收敛到了 ReAct 模式。

无论是多 Agent 协作的 Supervisor 架构,还是需要深度推理的复杂场景,核心循环都是:

推理 → 工具调用 → 观察结果 → 判断是否完成

既然绝大多数问题都能用 ReAct 解决,为什么不把这个模式做到极致?因此1.0的第一个核心改版就是引入标准化 ReAct 循环。

LangChain 1.0 的分层策略

  • 标准场景:用create_agent一个函数搞定(标准 ReAct 循环)
  • 扩展场景:通过 Middleware 机制扩展(PII 检测、人工审批、自动重试)
  • 复杂场景:用 LangGraph 精确控制(复杂状态机、多 Agent 编排)

这种渐进式设计让开发者可以从最简单的方案开始,按需增加复杂度。

1. create_agent 函数:简化的 Agent 构建接口

LangChain 1.0 的核心突破在于将 Agent 构建的复杂性压缩到一个函数中。create_agent不再要求开发者手动编排状态管理、错误处理和流式输出 —— 这些生产级能力现在由底层 LangGraph 运行时自动提供。

三个参数,一个运行时

  • 模型m``odel):支持字符串标识符或实例化对象
  • 工具tools):赋予 Agent 执行能力的函数列表
  • 系统提示system_prompt):定义 Agent 的角色和行为准则

底层自动继承 LangGraph 的持久化状态、中断恢复和流式处理能力,将过去需要数百行代码实现的 Agent 循环浓缩为声明式 API。

from langchain.agents import create_agent
agent = create_agent(
    model="openai:gpt-4o",
    tools=[get_weather, query_database],
    system_prompt="你是一个专业的客服助手,帮助用户查询天气和订单信息。"
)
result = agent.invoke({
    "messages": [{"role": "user", "content": "上海今天天气怎么样?"}]
})
在此基础上,通过内置中间件(Middleware)机制,开发者可以在不破坏核心循环的前提下注入人机协作审批、对话摘要压缩、PII 数据脱敏等生产级能力

2. Middleware 机制:可组合的生产级能力层

Middleware 是 LangChain 1.0 从原型到生产的核心桥梁。它在 Agent 执行循环的战略节点暴露钩子函数,让开发者无需重写核心循环即可注入自定义逻辑 —— 这种设计类似于 Web 服务器中间件的对称处理模式。

中间件的执行流程:

Agent 的核心循环遵循“模型→工具→终止”的三步决策模式

以下是几个典型的生产级中间件示例:

(1)PII Detection:敏感信息检测与处理

from langchain.agents import create_agent
from langchain.agents.middleware import PIIMiddleware
agent = create_agent(
    model="openai:gpt-4o",
    tools=[...],
    middleware=[
        # 脱敏邮箱地址
        PIIMiddleware("email", strategy="redact", apply_to_input=True),
        # 掩码信用卡号(显示后4位)
        PIIMiddleware("credit_card", strategy="mask", apply_to_input=True),
        # 自定义正则检测API密钥,发现后阻断
        PIIMiddleware(
            "api_key",
            detector=r"sk-[a-zA-Z0-9]{32}",
            strategy="block",  # 检测到后抛出错误
        ),
    ],
)

(2)Summarization:自动管理上下文长度

from langchain.agents import create_agent
from langchain.agents.middleware import SummarizationMiddleware
agent = create_agent(
    model="openai:gpt-4o",
    tools=[...],
    middleware=[
        SummarizationMiddleware(
            model="openai:gpt-4o-mini",  # 使用更便宜的模型总结
            max_tokens_before_summary=4000,  # 触发阈值
            messages_to_keep=20  # 保留最近20条消息不总结
        )
    ],
)

(3)Tool Retry:工具调用失败自动重试

from langchain.agents import create_agent
from langchain.agents.middleware import ToolRetryMiddleware
agent = create_agent(
    model="openai:gpt-4o",
    tools=[search_tool, database_tool],
    middleware=[
        ToolRetryMiddleware(
            max_retries=3,           # 最多重试3次
            backoff_factor=2.0,      # 指数退避倍数
            initial_delay=1.0,       # 初始延迟1秒
            max_delay=60.0,          # 最大延迟60秒
            jitter=True,             # 添加随机抖动(±25%)
        ),
    ],
)

(4)自定义中间件:

除了官方提供的预构建中间件,开发者可以通过装饰器或类继承的方式创建自定义中间件。例如,记录模型调用日志:

from langchain.agents.middleware import before_model
from langchain.agents.middleware import AgentState
from langgraph.runtime import Runtime
@before_model
def log_before_model(state: AgentState, runtime: Runtime) -> dict | None:
    print(f"即将调用模型,当前消息数: {len(state['messages'])}")
    return None  # 返回None表示继续正常流程
agent = create_agent(
    model="openai:gpt-4o",
    tools=[...],
    middleware=[log_before_model],
)

中间件机制将生产级能力(安全合规、错误处理、性能优化)从业务逻辑中解耦,让开发者可以像搭积木一样组合这些能力。

3. Structured Output:标准化的结构化输出机制

LangChain 1.0 引入了统一的结构化输出机制,解决了模型供应商之间输出格式不一致的问题。

核心问题:传统 Agent 开发中,不同模型供应商对结构化数据的支持方式各不相同。OpenAI 有 Native Structured Output API,而其他模型只能通过 Tool Calling 模拟,开发者需要针对不同供应商编写适配代码。

LangChain 的解决方案:通过create_agentresponse_format参数,开发者只需定义一次数据 Schema,框架自动选择最优策略:

from langchain.agents import create_agent
from pydantic import BaseModel, Field
class WeatherReport(BaseModel):
    location: str = Field(description="城市名称")
    temperature: float = Field(description="温度(摄氏度)")
    condition: str = Field(description="天气状况")
agent = create_agent(
    model="openai:gpt-4o",
    tools=[get_weather],
    response_format=WeatherReport  # 直接传入Pydantic模型
)
result = agent.invoke({"role": "user", "content": "上海今天天气怎么样?"})
weather_data = result['structured_response']  # 获取结构化数据
print(f"{weather_data.location}: {weather_data.temperature}°C, {weather_data.condition}")

两种实现策略:

(1)Provider Strategy:当模型原生支持结构化输出(如 OpenAI、Grok)时,LangChain 自动使用 API 级别的 schema enforcement,可靠性最高

(2)Tool Strategy:对于不支持原生结构化输出的模型,LangChain 将 Schema 转换为 Tool Calling,通过工具调用机制实现相同效果

开发者无需关心底层策略选择,框架根据模型能力自动适配。这种抽象让你可以在不同供应商之间自由切换,而业务代码保持不变。

4.向量数据库与 Agent 记忆系统的集成

生产级 Agent 的能力上限,往往不在推理引擎,而在记忆系统。LangChain 1.0 将向量数据库作为 Agent 的外部海马体,通过语义检索赋予 Agent 长期记忆能力,Milvus是其最重要的生态组成之一。

为什么选择 Milvus?

Milvus 是目前最成熟的开源向量数据库之一,专为 AI 应用的大规模向量检索而设计。它在 LangChain 生态中拥有原生集成,无需手动实现向量化、索引管理和相似度计算——langchain_milvus包已将其封装为标准的VectorStore接口。

Milvus 解决 Agent 的三个关键记忆问题

问题一:海量知识的快速检索

假设 Agent 需要处理成千上万份文档、历史对话、产品手册时,关键词搜索已经不够用。Milvus 通过向量相似度搜索,在毫秒级找到语义最相关的内容——即使用户换了说法。

from langchain.agents import create_agent
from langchain_milvus import Milvus
from langchain_openai import OpenAIEmbeddings
# 初始化向量数据库作为知识库
vectorstore = Milvus(
    embedding=OpenAIEmbeddings(),  
    collection_name="company_knowledge",
    connection_args={"uri": "http://localhost:19530"}  #
)
# 将检索器转为Tool供Agent使用
agent = create_agent(
    model="openai:gpt-4o",
    tools=[vectorstore.as_retriever().as_tool(
        name="knowledge_search",
        description="搜索公司知识库以回答专业问题"
    )],
    system_prompt="你可以从知识库中检索信息来回答问题。"
)

问题二:长期记忆的持久化

Middleware 的SummarizationMiddleware可以压缩对话历史,但那些被总结掉的细节去哪了? Milvus 将每一轮对话、每一次工具调用的结果向量化存储,构建 Agent 的长期记忆。需要时,通过语义检索快速唤醒相关记忆。

记忆持久化模式

from langchain_milvus import Milvus
from langchain.agents import create_agent
from langchain.agents.middleware import SummarizationMiddleware
from langgraph.checkpoint.memory import InMemorySaver
# 长期记忆存储(Milvus)
long_term_memory = Milvus.from_documents(
    documents=[],  # 初始为空,运行时动态写入
    embedding=OpenAIEmbeddings(),
    connection_args={"uri": "./agent_memory.db"}
)
# 短期记忆管理(LangGraph Checkpointer + Summarization)
agent = create_agent(
    model="openai:gpt-4o",
    tools=[long_term_memory.as_retriever().as_tool(
        name="recall_memory",
        description="检索Agent的历史记忆和过往经验"
    )],
    checkpointer=InMemorySaver(),  # 短期记忆
    middleware=[
        SummarizationMiddleware(
            model="openai:gpt-4o-mini",
            max_tokens_before_summary=4000  # 超过阈值时总结并存入Milvus
        )
    ]
)

问题三:多模态内容的统一管理

现代 Agent 要处理文本、图片、音频、视频。Milvus 的多向量支持动态 Schema23,让你在同一个系统中管理不同模态的向量,为多模态 Agent 提供统一的记忆底座。

元数据过滤检索

# 按来源过滤检索(例如:只检索医疗报告)
vectorstore.similarity_search(
    query="患者的血压指标是多少?",
    k=3,
    expr="source == 'medical_reports' AND modality == 'text'"  # Milvus标量过滤
)

有了 Milvus 提供的记忆底座,Agent 才能从健忘的执行器进化为具备经验积累的智能体。

03

LangChain 与 LangGraph 的技术定位与选型策略

LangChain 1.0以上升级,只是其构建生产级 Agent 的一环,但并不意味着LangChain 1.0永远是构建agent的最优解。

选择合适的开发框架,决定了你能多快将这些能力组合成可用的系统。

在实际开发中,LangChain 1.0 和 LangGraph 1.0 的关系经常被误解为二选一的竞争关系。实际上,它们是渐进式的技术栈:LangChain 专注于快速构建标准 Agent,LangGraph 提供底层编排能力用于复杂工作流。

以下是一个小的****技术定位对比

如果你是 Agent 新手或希望快速启动项目,从 LangChain 开始;如果你已经明确需要复杂编排、多 Agent 协作或长期流程,直接使用 LangGraph。两者可以在同一个项目中共存,根据具体场景选择合适的工具。

04

尾声

三年前,LangChain 还只是个调用 LLM 的轻量级包装器,现在,它已经变成了完整的生产级框架 。

在内部, LangChain 的 Middleware 解决安全合规问题,LangGraph 提供持久化执行和状态管理;在外部,是Milvus 等生态集成产品为其补上长期记忆短板。

如今,Agent 开发终于有了一套可靠的工具链。

如何学习AI大模型 ?

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

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

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

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

优快云粉丝独家福利

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

读者福利: 👉👉优快云大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
在这里插入图片描述

在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型实战项目&项目源码👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战项目来学习。(全套教程文末领取哈)
在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
在这里插入图片描述

为什么分享这些资料?

只要你是真心想学AI大模型,我这份资料就可以无偿分享给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!

这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

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

在这里插入图片描述
在这里插入图片描述

优快云粉丝独家福利

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

读者福利: 👉👉优快云大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值