langchain 1.0 有哪些新的特性?
将文本、工具调用、引用、图像等多类型输出统一为类型化块,屏蔽不同供应商差异(如 。 等的集成保持不变; 等常见模式收敛为单一、稳定的高层接口,底层基于 。 的懒加载,便于程序精确消费与多模态扩展。 在状态控制、条件边与异常恢复方面的用法。:1.0 的 Agent 运行在 。(工具失败转入 error 节点)、(条件边、循环控制、最大步数)、 的结构化输出能力,以及 。(t
LangChain v1.0 于 2025 年 10 月 18 日正式发布(稳定版)。
官网资料是:https://docs.langchain.com/oss/python/langchain/overview
LangChain 1.0 新特性概览
核心亮点
-
统一代理抽象 create_agent:将 ReAct、Plan-and-Execute、React-Retry 等常见模式收敛为单一、稳定的高层接口,底层基于 LangGraph,对外暴露标准化调用:invoke(input: dict) -> dict。输入为 {"messages": List[BaseMessage]},输出为 {"messages": List[BaseMessage], "structured_response": Optional[BaseModel]},显著降低学习与集成成本。旧模式可通过兼容层继续使用并逐步迁移。
-
标准化内容模型 ContentBlocks:为 AIMessage 引入 .content_blocks: List[ContentBlock],将文本、工具调用、引用、图像等多类型输出统一为类型化块,屏蔽不同供应商差异(如 OpenAI function_call → ToolCallBlock、Anthropic <thinking> → TextBlock + reasoning=True、Claude XML 工具 → ToolCallBlock),并支持如 ImageBlock 的懒加载,便于程序精确消费与多模态扩展。
-
LangGraph 成为默认运行时:1.0 的 Agent 运行在 LangGraph 之上,具备状态持久化(GraphState)、流程控制(条件边、循环控制、最大步数)、异常恢复(工具失败转入 error 节点)、可观测性(tracing,支持 LangSmith),并提供人机协同与流式处理等企业级能力,增强复杂流程的稳定性与可调试性。
-
生态与多语言支持:与 LangGraph 1.0 Alpha 同步发布,覆盖 Python 与 JavaScript;上千个与 OpenAI、Anthropic 等的集成保持不变;提供新版统一文档站点;官方路线计划在十月底发布 1.0 稳定版(当时为 Alpha 阶段)。
迁移与兼容性
-
包结构重构:仅保留核心抽象于 langchain.\;索引与社区工具迁移至 langchain-legacy;旧版 AgentExecutor 移入 langchain-legacy*。
-
渐进式迁移:新项目直接使用 create_agent + content_blocks;存量项目可先安装 langchain-legacy 保持兼容,再逐步将 initialize_agent(..., AgentType.REACT...) 替换为 create_react_agent(...),最终迁移至 create_agent(...)。
-
Breaking Changes:要求 Python ≥ 3.10;BaseMessage.text() → .text(属性);默认返回 AIMessage 而非 str。
快速上手示例
-
使用统一代理抽象并获取结构化输出:
from langchain.agents import create_agent from langchain_core.messages import HumanMessage from pydantic import BaseModel class WeatherInfo(BaseModel): city: str temperature_c: float condition: str agent = create_agent( model="openai:gpt-4o-mini", tools=[fake_weather], response_format=WeatherInfo, ) res = agent.invoke({"messages": [HumanMessage("What's the weather like in Singapore?")]}) print(res["structured_response"]) # WeatherInfo(city='Singapore', temperature_c=25.0, condition='Sunny')
-
基于 LangGraph 的可观测与容错控制(示意):
from langgraph.graph import StateGraph def tool_node(state): try: result = tool.invoke(state["input"]) except Exception as e: result = None return {"result": result, "error": str(e) if e else None} def should_retry(state): return "tool_node" if state["error"] and state["retry_count"] < 3 else "end_node" graph = StateGraph(AgentState) graph.add_node("tool_node", tool_node) graph.add_conditional_edges("tool_node", should_retry)
上述示例展示了 create_agent 的结构化输出能力,以及 LangGraph 在状态控制、条件边与异常恢复方面的用法。
更多推荐
所有评论(0)