LangGraph框架中针对MCP协议的变更-20250510
MCP(Model Context Protocol)的出现为AI Agent与外部工具及数据源的集成提供了标准化接口,而LangGraph作为基于LangChain的智能体开发框架,在MCP协议的影响下也进行了适配性调整,主要体现在工具调用、异步交互和多步推理的优化上。以下结合实例详细说明相关变更及关联内容:
一、LangGraph对MCP协议的核心适配
-
工具动态加载与MCP集成
LangGraph新增了对MCP工具的自动加载功能,通过langchain_mcp_adapters
库实现与MCP服务器的无缝对接。开发者只需通过load_mcp_tools
函数加载MCP会话中的工具列表,即可让Agent动态调用远程或本地工具。例如,在数学计算场景中,Agent可调用MCP服务器提供的add
和multiply
工具。
示例代码:async with ClientSession(read, write) as session:tools = await load_mcp_tools(session) # 动态加载MCP工具agent = create_react_agent(model, tools) # 创建支持MCP工具的Agent
-
异步会话管理与MCP通信
MCP协议基于客户端-服务器架构,依赖异步通信(如HTTP/WebSocket)。LangGraph为此优化了异步任务处理机制,通过asyncio
支持与MCP服务器的长时会话。例如,客户端通过stdio_client
建立连接后,利用异步上下文管理器维护会话状态。 -
多步推理与工具链调用
LangGraph的create_react_agent
结合MCP工具,能够自动分解复杂任务为多步操作。例如,在问题“计算(3+5)×12”中,Agent会先调用add
工具得到中间结果8,再调用multiply
工具完成最终计算。
执行流程:- 步骤1:调用
add(a=3, b=5)
→ 返回8。 - 步骤2:调用
multiply(a=8, b=12)
→ 返回96。
- 步骤1:调用
二、LangGraph与MCP结合的典型实例
以下以数学计算场景为例,展示LangGraph如何通过MCP协议调用工具:
-
MCP服务器端定义工具
创建math_server.py
,声明add
和multiply
函数为MCP工具:from mcp.server.fastmcp import FastMCP mcp = FastMCP("Math") @mcp.tool() def add(a: int, b: int) -> int:return a + b @mcp.tool() def multiply(a: int, b: int) -> int:return a * b if __name__ == "__main__":mcp.run(transport="stdio")
-
LangGraph客户端调用流程
客户端通过异步任务连接MCP服务器,并运行Agent:from mcp.client.stdio import stdio_client from langgraph.prebuilt import create_react_agent async def run_agent():async with stdio_client(server_params) as (read, write):async with ClientSession(read, write) as session:tools = await load_mcp_tools(session)agent = create_react_agent(model, tools)response = await agent.ainvoke({"messages": "计算(3+5)×12"})
-
输出结果示例
Agent的响应包含分步工具调用和最终结果:{"messages": [{"content": "计算(3+5)×12"},{"tool_calls": [{"function": "add", "args": {"a":3, "b":5}}]},{"tool_calls": [{"function": "multiply", "args": {"a":8, "b":12}}]},{"content": "结果为96"}] }
三、LangGraph框架的扩展性优化
-
支持多种传输协议
LangGraph的MCP适配器不仅支持stdio
本地通信,还可扩展至HTTP/SSE(Server-Sent Events),满足企业级高并发需求。例如,阿里云Hologres通过SSE模式实现与MCP服务器的解耦部署。 -
与知识管理组件的结合
LangGraph的记忆管理模块(如RAG技术)可与MCP工具联动。例如,在故障诊断场景中,Agent通过MCP调用日志查询工具,并结合向量数据库检索历史案例,生成修复方案。
四、总结
MCP协议的出现推动了LangGraph在以下方向的演进:
- 工具生态扩展:通过标准化接口接入多源工具,减少定制化开发。
- 异步与实时性:优化异步通信机制,支持高并发场景。
- 复杂任务分解:结合ReAct算法,实现多工具协同的自动化流程。
未来,随着MCP生态的成熟,LangGraph或进一步整合服务发现、权限管理等企业级功能,成为智能体开发的核心框架。