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 → ToolCallBlockAnthropic <thinking> → TextBlock + reasoning=TrueClaude 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.10BaseMessage.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​ 在状态控制、条件边与异常恢复方面的用法。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐