LangChain 中的 MCP:无状态协议、elicitation 等更新
LangChain 把 MCP 支持搬进了主包,现在放在 langchain.mcp 里,不再需要单独安装 langchain-mcp-adapters。MCP 是一种让 AI 智能体调用外部工具的通用协议,过去每次调用都要先开一个会话、记住会话编号,服务器一重新部署,正在进行的会话就断了,运维起来很麻烦。新版 MCP 规范改成了“无状态”,所以 LangChain 顺势支持了工具列表缓存,以及 elicitation(工具执行中途反过来问用户问题,比如确认删除或补充缺失参数),并用 LangGraph 的 interrupt 来实现这种暂停和恢复。底层用的是 FastMCP,新旧两版协议的服务器都能连,旧的 MultiServerMCPClient 收敛成单个 MCPAdapter 类。对开发者来说,装个 langchain[mcp] 就能用,不过迁移细节和 elicitation 后续示例在文中被截断了,这部分信息未完整给出。
文中可用工具
- langchain.mcpLangChain 主包里的 MCP 支持模块,用来连接智能体和 MCP 工具服务器
- FastMCP提供连接、认证、缓存和协议协商的底层客户端,兼容新旧两版 MCP 规范
- MCPAdapter替代旧的 MultiServerMCPClient,用来接入一个或多个 MCP 服务器
- ClientGroup给每个 MCP 服务器单独配置连接、认证和协议版本
- LangGraph用其中的 interrupt 机制实现 elicitation 的暂停与恢复
- create_deep_agent创建可直接使用 MCP 工具的智能体
- langchain-mcp-adapters旧的独立安装包,现已并入 langchain 主包
评论 · 分享第一个看法