“ Langchain1.x的版本升级,也间接指明了大模型开发未来的方向。”
作为大模型应用中热门的开发框架——Langchain最近迎来了大的升级,从0.x版本升级到1.x版本,官方也强调说这是一次大的版本升级,并且是第一个稳定版本,官方承诺在2.x版本之前,不会再有大的改动。
因为在此之前,由于Langchain为了追求功能的适配性,每次迭代都会有颠覆性的升级,导致很多之前的功能和接口都不能用,这也给很多开发者带来很多困扰。
Langchain1.x版本
从Langchain官网中可以看到,Langchain的这次升级版本跨度很大,而主要功能方向基本上可以说是为了Agent智能体定制化开发,并且去除了很多之前的功能如chain链式调用。
官网地址:https://docs.langchain.com/oss/python/langchain/overview
Langchain的这次升级,也间接说明了大模型应用在未来的主要方向——智能体。
在1.x之前的Langchain版本中,Langchain家族主要分为两块,一块是基于Langchain的普通大模型应用开发,如简单对话,格式化输出,记忆功能等,主要基于其核心设计理念——Chain链式调用实现;可以通过其封装的Chain对象或者LCEL表达式实现,这也是Langchain的由来。
其次就是智能体开发中使用的Langgraph,通过状态图的方式实现智能体的数据流转与协作。
但在Langchain1.x版本中,链式调用被完全弱化,其核心理念全部围绕智能体开发实现,通过Langchain包可以很容易实现一个智能体。
# pip install -qU langchain "langchain[anthropic]"from langchain.agents import create_agentdef get_weather(city: str) -> str:"""Get weather for a given city."""return f"It's always sunny in {city}!"agent = create_agent(model="claude-sonnet-4-5-20250929",tools=[get_weather],system_prompt="You are a helpful assistant",)# Run the agentagent.invoke({"messages": [{"role": "user", "content": "what is the weather in sf"}]})
并且在Langchain中封装了智能体常用组件,如模型,对话,工具,记忆,流式输出,格式化等模块,使得只需要几行代码就可以实现智能体开发。
最重要的是,在Langchain1.x版本中提出了几个重要概念,一是中间件Middleware,二是运行时环境。
在之前的大模型应用中,怎么对模型输入或输出的数据进行处理,需要自己添加节点进行手动处理;但在新版本中,提出了中间件的概念,其优点是只需要进行简单的配置即可实现,并且可以根据不同的业务功能选择不同的中间件。
from langchain.agents import create_agentfrom langchain.agents.middleware import SummarizationMiddleware, HumanInTheLoopMiddlewareagent = create_agent(model="gpt-4o",tools=[...],middleware=[SummarizationMiddleware(...),HumanInTheLoopMiddleware(...)],)
再有就是,在智能体应用中,数据的传递是一个很麻烦的事情;如怎么把用户id或者一些外部参数传入到智能体;在之前只能通过config配置的方式,但在新版本中的运行时环境中很容易就可以实现这个功能,大大降低了开发量。
from dataclasses import dataclassfrom langchain.tools import tool, ToolRuntimeclass Context:user_id: strdef fetch_user_email_preferences(runtime: ToolRuntime[Context]) -> str:"""Fetch the user's email preferences from the store."""user_id = runtime.context.user_idpreferences: str = "The user prefers you to write a brief and polite email."if runtime.store:if memory := runtime.store.get(("users",), user_id):preferences = memory.value["preferences"]return preferences
除了这些之前,在Langchain新版本中还封装了很多其它有用的功能,如人工介入,多智能体,MCP等;我们可以在学习和开发的过程中慢慢深入理解。

