大数跨境

怎么看待Langchain版本升级为1.x版本?

怎么看待Langchain版本升级为1.x版本? AI探索时代
2026-01-11
1
导读:Langchain1.x的版本升级,也间接指明了大模型开发未来的方向

 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 SummarizationMiddlewareHumanInTheLoopMiddlewareagent = create_agent(    model="gpt-4o",    tools=[...],    middleware=[        SummarizationMiddleware(...),        HumanInTheLoopMiddleware(...)    ],)


再有就是,在智能体应用中,数据的传递是一个很麻烦的事情;如怎么把用户id或者一些外部参数传入到智能体;在之前只能通过config配置的方式,但在新版本中的运行时环境中很容易就可以实现这个功能,大大降低了开发量。

from dataclasses import dataclassfrom langchain.tools import tool, ToolRuntime  @dataclassclass Context:    user_id: str@tooldef fetch_user_email_preferences(runtime: ToolRuntime[Context]) -> str:      """Fetch the user's email preferences from the store."""    user_id = runtime.context.user_id      preferences: 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等;我们可以在学习和开发的过程中慢慢深入理解。







【声明】内容源于网络
0
0
AI探索时代
专注AI工程化落地,让你的技术不再纸上谈兵
内容 367
粉丝 0
AI探索时代 专注AI工程化落地,让你的技术不再纸上谈兵
总阅读133
粉丝0
内容367