Agent / 工程
无状态协议、Elicitation 中断与工具缓存
Model Context Protocol(MCP)已成为智能体连接工具的主流方式,其官方 SDK 每月下载量接近五亿次,2026 年全年 ChatGPT 用户的 MCP 工具调用量更增长了 98 倍。今年 7 月,MCP 协议迎来上线以来最大规模的重写,LangChain 随即对 MCP 支持进行了全面翻新。此次更新涵盖三项核心变化:MCP 支持从独立扩展包迁移至 langchain 主包,统一通过 langchain.mcp 访问;底层改用 FastMCP 构建,自动处理传输层、认证、连接管理与协议协商,同时兼容新旧两版协议;新增基于 LangGraph interrupt 原语的 Elicitation 支持,以及客户端工具列表缓存机制,大幅减少每次运行时的重复请求开销。新的无状态协议彻底取消了会话绑定,使服务端可以自由扩缩容,也让工具调用流程更加可靠。
MCP 协议在 2026 年 7 月完成了自发布以来最大规模的规范重写,核心变化是引入无状态架构。旧版协议要求客户端与服务端先建立会话、交换会话 ID,后续每次请求都必须携带该 ID,这意味着客户端被绑定在发出会话的特定服务实例上。一旦服务重新部署,所有进行中的会话即告失效,规模化部署还需要额外的粘性路由和共享会话存储。新规范彻底移除了这一机制,服务端重新部署不再影响任何进行中的调用,为可靠性和可扩展性带来了根本性提升。
LangChain 将 MCP 支持正式并入主包,通过 pip install langchain[mcp] 即可安装,无需再单独维护 langchain-mcp-adapters 依赖。原有的 MultiServerMCPClient 被简化为统一的 MCPAdapter 类,使用方式更加简洁。获取到的工具是标准的 LangChain 工具对象,可直接传入 create_deep_agent、create_agent 或任意自定义图结构,与现有工作流完全兼容,迁移成本极低。
底层传输层由 FastMCP 统一管理,涵盖连接、认证、缓存与协议协商。FastMCP 能够在每次连接时自动检测服务端支持的协议版本,优先尝试新版无状态协议,若服务端尚未升级则自动回退至旧版握手流程,开发者无需修改任何代码。对于需要同时连接多个服务端的场景,ClientGroup 允许为每个服务单独配置协议模式和认证方式,工具名称会自动添加服务名前缀以避免冲突,例如 billing_search 和 docs_search。
Elicitation 是 MCP 新规范引入的人机协作机制,允许工具在执行过程中向调用方提问,例如确认删除操作或补充模型遗漏的参数。LangChain 将其映射为 LangGraph 的 interrupt 原语:当工具需要额外信息时,运行自动暂停并将问题暴露在 __interrupt__ 字段中,审核方提供答案后调用 Command(resume=...) 即可恢复执行。整个流程只需配置一个 checkpointer 作为暂停状态的存储,无需额外搭建任何基础设施。
客户端缓存机制解决了每次 Agent 运行都需要重新拉取工具列表的性能问题。服务端可在响应中声明工具列表的有效时长(TTL),客户端在 TTL 内直接从内存缓存中读取,避免重复的网络往返。只需在初始化 Client 时传入 cache=True,即可启用遵循服务端 TTL 提示的内存缓存。对于工具目录庞大或调用频繁的场景,这一优化能够显著降低延迟并减少服务端压力,是生产环境部署的重要改进。
此次 LangChain MCP 支持的全面升级,标志着 MCP 生态在工程化成熟度上迈出了重要一步。无状态协议降低了服务端运维复杂度,Elicitation 中断机制为人机协作提供了标准化接口,工具缓存则优化了高频调用场景下的性能表现。随着 MCP 工具调用量持续高速增长,这些改进将直接惠及在生产环境中大规模部署智能体的开发团队,也为 MCP 成为智能体工具连接的行业标准奠定了更坚实的基础。
要点
- MCP 支持已并入 langchain 主包,通过 langchain[mcp] 安装,MCPAdapter 取代旧版 MultiServerMCPClient,迁移路径清晰
- 新版无状态协议取消会话绑定,服务端可自由扩缩容,FastMCP 自动处理新旧协议协商,开发者代码无需改动
- Elicitation 通过 LangGraph interrupt 原语实现,工具执行中途可向用户提问并等待答复,仅需配置 checkpointer 即可启用
- 客户端工具列表缓存遵循服务端 TTL 声明,避免每次 Agent 运行重复拉取工具目录,显著降低高频场景下的延迟
- ClientGroup 支持多服务端混合连接,每个服务可独立配置协议版本和认证方式,工具名自动添加服务前缀避免冲突
原始标题:MCP in LangChain: Stateless Protocol, Elicitation, and More!
本文由 DataHub 基于公开来源整理,用于信息发现与摘要阅读;具体事实、数据和后续更新以原始来源为准。