LangGraph MCP智能体开发详解(第一章)-LangGraph与MCP技术概述
一、LangGraph与MCP技术概述
1. LangGraph接入外部工具技术实现方法
说到智能体开发,无论使用何种框架,有一项绕不开的核心技术,那就是MCP(Model Context Protocol)技术。
在智能体开发过程中,接入外部函数工具是至关重要的一环,而在LangChain&LangGraph技术生态中,我们可以非常便捷的通过@tool装饰符来自定义一个外部函数:

或者也可以借助LangChain丰富的、数以百计的内置工具,三行代码即可在智能体中进行工具调用。
|
功能类别 |
工具名称 |
简要说明 |
|
🔎 搜索工具 |
TavilySearchResults |
快速搜索实时网络信息 |
|
SerpAPIWrapper |
基于 SerpAPI 的搜索结果工具 | |
|
GoogleSearchAPIWrapper |
调用 Google 可编程搜索引擎 | |
|
🧠 计算工具 |
PythonREPLTool |
执行 Python 表达式并返回结果 |
|
LLMMathTool |
结合 LLM 和数学推理能力 | |
|
WolframAlphaQueryRun |
基于 Wolfram Alpha 的计算引擎 | |
|
🗂 数据工具 |
SQLDatabaseToolkit |
构建 SQL 数据库查询工具集 |
|
PandasDataframeTool |
用于在 Agent 中操作表格数据 | |
|
🌐 网络/API |
RequestsGetTool / RequestsPostTool |
执行 HTTP 请求 |
|
BrowserTool / PlaywrightBrowserToolkit |
自动化网页浏览与抓取 | |
|
💾 文件处理 |
ReadFileTool |
读取本地文件内容 |
|
WriteFileTool |
写入文本到指定文件中 | |
|
📚 检索工具 |
FAISSRetriever |
基于向量的文档检索工具 |
|
ChromaRetriever |
使用 ChromaDB 的检索器 | |
|
ContextualCompressionRetriever |
上下文压缩检索器,适合长文档 | |
|
🧠 LLM 工具 |
ChatOpenAI / OpenAIFunctionsTool |
使用 OpenAI 模型作为工具调用 |
|
ChatAnthropic |
Anthropic Claude 模型封装工具 | |
|
🔧 自定义工具 |
@tool 装饰器 |
任意函数可封装为 Agent 可调用工具 |
|
Tool 类继承 |
自定义更复杂逻辑的工具实现 |
LangChain工具集:https://python.langchain.com/docs/integrations/tools/

而除此之外,伴随着MCP技术爆火,给了开发者第三种选项,那就是借助MCP技术、遵照MCP协议,来调用其他开发者已经开发好的MCP工具,来快速搭建智能体应用。
2. MCP技术概述
2.1 MCP技术定位与技术价值介绍
我们可以将MCP技术简单理解为智能体外部工具开发的一种通用规范(范式)。举个例子,以天气查询工具为例,在MCP技术诞生之前,要给大模型添加查询天气的功能,至少需要经历这么两个开发阶段:
- 阶段一:编写查询天气的外部函数,例如:
|
Python |
- 阶段二:将外部工具进行进一步封装,以适配不同的开发框架。例如
- 接入OpenAI Agents SDK时:
|
Python |
- 接入LangGraph时:
|
Python |
- 接入谷歌ADK时
|
Python |
这就使得实际开发Agent的过程中,外部函数工具的开发会占用大量的开发者的时间精力。
而与此同时,人们发现,很多外部工具的功能其实是通用的,例如查询时间、查询天气、网络搜索、操作本地文件夹等等等等,如果有一种规范,能够减少重复造轮子的时间,一个人开发完成后全体开发者都能共享,那么整体的研发效率都将得到大幅提高。
在这一设想下,MCP技术诞生了。MCP的全称是Model Context Protocol,模型上下文协议,由Claude母公司Anthropic于去年11月正式提出。

该技术核心目标,就是创建一种统一的大模型调用外部工具的通信规范,相当于这种标准的通信规范,一项特定功能的外部函数,只需要开发一次,就能被各种不同类型的Agent开发框架所识别。例如同样是查询天气,如果我们遵循MCP技术协议开发一个查询天气的外部函数,那么接下来全体开发者就都能直接用我开发好的这个天气查询工具,带入任何智能体开发框架,快速搭建智能体应用了。
通过下面这组图能够非常清楚的解释MCP工具在智能体开发过程中实际带来的提效的作用。


2.2 MCP技术架构
不过呢,要做到这种“车同轨、书同文”的标准化工作,不仅需要制定一套让所有人都信服的标准,而且还需要经过时间的检验,同时还需要有足够多的用户,这个标准才能真正被市场所认同。因此MCP技术也历经了一段时间的沉淀和打磨,自去年11月发布开始,到今年3月技术大爆发,再到第二季度开始越来越多的Agent框架和热门应用宣布支持MCP技术,MCP才算是逐渐成为一项智能体开发的通用协议。
截止目前,MCP的技术生态可以划分为三层,最底层是协议层,也就是“文字版”的规定、或者说规范,而为了普及这一规范,让更多的人更加快速的完成自己的MCP工具开发,Anthropic进一步的提供了MCP开发工具,借助这些SDK,我们能够非常快速完成MCP工具开发。而既然是一种标准化的协议,其核心价值就在于用的人足够多、同时分享的人也足够多,才能真正减少“重复造轮子”的时间,因此Anthropic官方和很多第三方平台,也在积极的推进MCP技术生态的构建,尤其是MCP工具平台的建设,通过鼓励开发者更多的分享自己开发的MCP工具,只有形成了更大的(分享和引用的)协作规模,MCP的技术才能更有价值。

2.3 MCP SDK与MCP技术生态
而在这些MCP完整的技术架构中,开发者尤其需要关注MCP的SDK(开发工具)和MCP技术生态。所谓MCP的SDK,指的是官方提供的用于开发MCP工具的第三方库,截至目前,MCP SDK已支持Python、TypeScript、Java、Kotlin和C#等编程语言进行客户端和服务器创建。
MCP项目官网:https://github.com/modelcontextprotocol

而借助这些库,仅需几行代码,即可快速构建一个MCP工具。

反之,如果没有这些MCP开发工具,想要开发MCP工具,就必须从MCP技术协议出发,借助其他库来完成开发,其实现难度非常大。
而如果我们并不需要开发MCP工具,而只想要借助现成的MCP工具快速完成智能体开发,那么就需要重点关注现在的MCP集成平台,也就是集成了各类目前非常流行的MCP工具的平台,借助这些平台,我们能够快速找到想要的MCP服务,然后根据指示说明快速进行接入,甚至伴随着MCP流式HTTP功能的上线,很多平台还提供了这些MCP工具后端运行服务,我们只需要输入指定的后端地址,就能调用运行在云端的MCP工具。
主流的MCP集成平台如下:
- MCP官方服务器合集:https://github.com/modelcontextprotocol/servers

- MCP Github热门导航:https://github.com/punkpeye/awesome-mcp-servers

- Smithery:https://smithery.ai/

- MCP导航:https://mcp.so/

- 阿里云百炼:https://bailian.console.aliyun.com/?tab=mcp

- 魔搭社区MCP广场:https://www.modelscope.cn/mcp

- mcp.run:https://www.mcp.run/

3.MCP核心技术概念
而在正式开始MCP智能体开发之前,我们还需要补充两个MCP技术体系中至关重要的技术概念,分别是MCP客户端与服务器、以及两大类MCP工具运行模式。
3.1 MCP客户端与服务器
由于MCP是一种围绕大模型外部函数工具创建的统一范式,因此MCP工具从诞生之初就是客户端(client)与服务器(server)分离的架构。服务器与客户端的技术概念可以借助MySQL这个通用的数据库软件进行理解,在MySQL中,服务器指的是数据库实际运行环境,例如公司内部的某个统一用于数据存储的物理机,而客户端,则指的是SQL编写和运行的环境,可以是比如数据分析师用的笔记本。每次要进行查数时,数据分析师就可以在自己的笔记本上运行MySQL WorkBench(一个SQL编程的IDE),然后借助MySQL客户端,给公司的MySQL服务器发送查数的请求。
类似的,所谓MCP Server(服务器),指的是MCP工具运行的环境,而MCP Client(客户端),则指的是能够调用MCP工具、或者说给MCP工具发送请求并接受结果的环境。二者关系如图所示:


这种服务器和客户端分离的架构的好处,就在于可以更加便捷的进行模块化开发和维护,而此前我们所说的MCP工具,其实就指的是MCP服务器,而那些MCP工具集合,其实就是MCP服务器集合网站。
同时,基于这种技术划分,当我们在开发一个智能体,并希望这个智能体能够接入MCP工具时,其实从MCP技术角度来说,我们本质上是开发一个MCP的客户端(Client)。例如当我们基于LangGrpah开发一个接入MCP工具的智能体,其实我们就开发了一个基于LangGraph的MCP客户端。而现在也有很多大模型聊天工具允许接入MCP工具,例如Claude Desktop、Cherry Studio等,这些也都是MCP客户端。
3.2 标准MCP工具接入客户端流程
这里以Cherry Studio为例,为大家展示一个标准的MCP客户端接入MCP服务器的基本流程,从中我们能够看出,填写对应的配置文件,是运行MCP工具的关键。
3.3 MCP离线运行与在线运行模式
既然是服务器和客户端分离的架构,那么MCP肯定支持两种调用方法,其一是本地运行,也被成为离线运行,指的是MCP服务器和MCP客户端在同一台电脑上进行运行,其二则是在线运行,或者异地部署运行,指的是MCP服务器在远程服务器或者云端运行,然后借助HTTP网络通信来进行响应。
而这也就对应着MCP工具调用的两种核心模式,分别是stdio(本地)模式调用和SSE&streamable HTTP(在线)模式调用,各调用方法效果对比如下所示:
|
特性 |
Stdio |
SSE |
Streamable HTTP |
|
通信方向 |
双向(但仅限本地) |
单向(服务器到客户端) |
双向(适用于复杂交互) |
|
使用场景 |
本地进程间通信 |
实时数据推送,浏览器支持 |
跨服务、分布式系统、大规模并发支持 |
|
支持并发连接数 |
低 |
中等 |
高(适合大规模并发) |
|
适应性 |
局限于本地环境 |
支持浏览器,但单向通信 |
高灵活性,支持流式数据与请求批处理 |
|
实现难度 |
简单,适合本地调试 |
简单,但浏览器兼容性和长连接限制 |
复杂,需处理长连接和流管理 |
|
适合的业务类型 |
本地命令行工具,调试环境 |
实时推送,新闻、股票等实时更新 |
高并发、分布式系统,实时交互系统 |
三种传输方式总结如下:
- Stdio 传输:适合本地进程之间的简单通信,适合命令行工具或调试阶段,但不支持分布式。
- SSE 传输:适合实时推送和客户端/浏览器的单向通知,但无法满足双向复杂交互需求。
- Streamable HTTP 传输:最灵活、最强大的选项,适用于大规模并发、高度交互的分布式应用系统,虽然实现较复杂,但能够处理更复杂的场景。
而伴随着5月MCP更新了Streamable HTTP的SDK,目前越来越多的MCP工具都选择采用Streamable HTTP形式进行部署和运行。
3.4 离线MCP工具托管平台
当然,如果是调用在线MCP服务,开发者只能了解其功能,而如果是离线的MCP服务,则对应的MCP工具是完全开源的,在每次调用之前,开发者都需要将其源码先下载到本地,然后再运行。例如上述演示视频中,我们使用npx命令,其本质就是先将指定的MCP工具下载到本地,然后在有需要的时候对其进行调用。例如高德MCP配置文件如下:
|
JSON |
代表的含义就是我们需要先使用如下命令:
|
Bash |
对这个库@amap/amap-maps-mcp-server进行下载,然后在本地运行,当有必要的时候调用这个库里面的函数执行相关功能。
而这个@amap/amap-maps-mcp-server库是一个托管在https://www.npmjs.com/上的库,

可以使用npx命令进行下载。搜索库名即可看到这个库的完整代码,https://www.npmjs.com/package/@amap/amap-maps-mcp-server:

除此此外,一些由Python编写的MCP开源工具,则托管在pypi平台上,https://pypi.org/ ,每次运行的时候我们需要填写uvx命令,其本质就是将工具源码从pypi平台上下载到本地再来进行运行。

3.5 MCP在线托管服务
伴随着MCP快速调用的请求不断增加,也有很多平台提供了在线托管服务模式,例如魔搭社区的MCP广场中,就有很多是运行在魔搭社区服务器上的MCP工具,开发者可以直接使用SSE或者流式HTTP方式请求调用在线的MCP工具,从而快速完成开发工作。

5. LangGraph技术概述
5.1 从LangChain到LangGraph
说到现阶段目前最流行、最通用的Agent开发框架,毫无疑问,肯定是LangChain。LangChain作为2022年就已经开源的元老级开发框架,历经数年的发展,其功能和生态都已非常完善,并且拥有数量众多的开发者。在我们团队统计的今年第一季度大模型岗位JD中,有90%以上的Agent开发岗位要求掌握LangChain,可以说LangChain就是目前最通用、最流行的Agent开发框架没有之一。不过,由于LangChain诞生时间较早,在2022年末,GPT-3.5刚诞生之时,开发者对大模型的想象主要是希望用其搭建一个又一个工作流,而这也成为LangChain的核心技术目标,LangChain中“Chain”就是指链、也就是搭建工作流的意思。


但是,大模型基座模型能力在飞速进化,例如目前最新一代的大模型,不仅拥有非常强悍的外部工具识别和调用能力,还原生就支持多工具并联和串联调用,而开发者对于大模型应用开发的需求也在快速变化,单纯的构建这种线性的工作流,可拓展性并不强。当前开发者更偏好的是“用AI开发AI”的思路,也就是我们不用定死工作流,而可以让大模型自主判断每一步该怎么做,然后实时创建一些链路,并根据运行情况随时调整。这也就是目前Agent智能体开发的核心思路。
LangGraph和LangChain同宗同源,底层架构完全相同、接口完全相通。从开发者角度来说,LangGraph也是使用LangChain底层API来接入各类大模型、LangGraph也完全兼容LangChain内置的一系列工具。换而言之,LangGraph的核心功能都是依托LangChain来完成。但是和LangChain的链式工作流哲学完全不同的是,LangGraph的基础哲学是构建图结构的工作流,并引入“状态”这一核心概念来描绘任务执行情况,从而拓展了LangChain LCEL链式语法的功能灵活程度。

不过需要注意的是,LangGraph是基于LangChain进行的构建,无论图结构多复杂,单独每个任务执行链路仍然是现行的,其背后仍然是靠着LangChain的Chain来实现的。因此我们可以这么来描述LangChain和LangGraph之间的关系,LangGraph是LangChain工作流的高级编排工具,其中“高级”之处就是LangGraph能按照图结构来编排工作流。
5.2 LangGraph三层API架构
尽管图结构看起来比链式结构灵活很多,但在实际开发过程中,要创建一个图结构却绝非易事。大家可以试想一下,要在代码环境中描述清楚一个图,至少需要清晰的说明图中有哪些节点,不同节点之间是什么关系(边如何连接),同时还需要设置各节点功能,然后才能测试上线,这个流程其实是非常复杂的,哪怕是简单的一个图也需要用很多代码才能描述清楚:

不过这对于LangChain来说并不难解决。LangChain生态各框架的核心思路都是“既要有底层API来定义基础功能,同时也要有高层API来加快开发效率”,就好比LangChain中既有LCEL语法、同时也有Agent API一样,LangGraph也提供了基于图结构基础语法的高层API。LangGraph的高层API主要分为两层,其一是Agent API,用于将大模型、提示词模板、外部工具等关键元素快速封装为图中的一些节点,而更高一层的封装,则是进一步创建一些预构建的Agent、也就是预构建好的图,开发者只需要带入设置好要带入的工具和模型,三行代码就能借助这些预构建好的图,创建一个完整的Agent:

依托LangChain完善的生态、拥有丰富稳定的API架构、以及便捷上手等特性,使得LangGraph成为目前超越LangChain的新一代Agent开发框架。

5.3 LangGraph开发生态
- 丰富的模型接口
- 为了让各类模型接入更加统一和稳定,LangChain不惜为不同的模型单独开发一个库,例如要接入Claude模型,我们就需要提前安装langchain-anthropic,而如果要接入DeepSeek模型,则需要安装langchain-deepseek。这么做虽然过程麻烦,但却能很好的保障开发过程的稳定性。

- 各类模型接入列表:https://python.langchain.com/docs/integrations/chat/
此外需要注意的是,LangGraph也需要使用和LangChain一样的模型接入流程。
- LangGraph运行监控框架:LangSmith
- LangSmith 是一款用于构建、调试、可视化和评估 LLM 工作流的全生命周期开发平台。它聚焦的不是模型训练,而是我们在构建 AI 应用(尤其是多工具 Agent、LangChain/Graph)时的「可视化调试」、「性能评估」与「运维监控」。核心功能如下:
|
功能类别 |
描述 |
场景 |
|
🧪 调试追踪(Trace Debugging) |
可视化展示每个 LLM 调用、工具调用、Prompt、输入输出 |
Agent 调试、Graph 调用链分析 |
|
📊 评估(Evaluation) |
支持自动评估多个输入样本的回答质量,可自定义评分维度 |
批量测试 LLM 表现、A/B 对比 |
|
🧵 会话记录(Sessions / Runs) |
每次 chain 或 agent 的运行都会被记录为一个 Run,可溯源 |
Agent 问题诊断、用户问题分析 |
|
🔧 Prompt 管理器(Prompt Registry) |
保存、版本控制、调用历史 prompt |
多版本 prompt 迭代测试 |
|
📈 流量监控(Telemetry) |
实时查看运行次数、错误率、响应时间等 |
在生产环境中监控 Agent 质量 |
|
📁 Dataset 管理 |
管理自定义测试集样本,支持自动化评估 |
微调前评估、数据对比实验 |
|
📜 LangGraph 可视化 |
对 LangGraph 中每个节点运行情况进行实时可视化展示 |
Graph 执行追踪 |

- LangSmith官网地址:https://docs.smith.langchain.com/
- LangGraph图结构可视化与调试框架:LangGraph Studio
- LangGraph Studio 是一个用于可视化构建、测试、分享和部署智能体流程图的图形化 IDE + 运行平台。核心功能如下:
|
功能模块 |
说明 |
应用场景 |
|
🧩 Graph 编辑器 |
以拖拽方式创建节点(工具、模型、Router)并连接 |
零代码构建 LangGraph |
|
🔍 节点配置器 |
每个节点可配置 LLM、工具、Router 逻辑、Memory |
灵活定制 Agent 控制流 |
|
▶️ 即时测试 |
输入 prompt 可在浏览器中运行整个图 |
实时测试执行结果 |
|
💾 云端保存 / 分享 |
将构建的 Graph 保存为公共 URL / 私人项目 |
团队协作,Demo 分享 |
|
📎 Tool 插件管理 |
可连接自定义工具(MCP)、HTTP API、Python 工具 |
插件式扩展 Agent 功能 |
|
🔁 Router 分支节点 |
创建条件分支,支持 if/else 路由 |
决策型智能体 |
|
📦 上传文档 / 多模态 |
可以上传文件(如 PDF)并嵌入进图中处理流程 |
RAG 结构、OCR、图文问答等 |
|
🧠 Prompt 输入/预览 |
编辑 prompt 并观察其运行效果 |
Prompt 工程调试 |
|
📤 一键部署 |
将 Graph 部署为可被 Agent Chat UI 使用的 Assistant |
快速集成到前端 |

- LangGraph服务部署工具:LangGraph Cli
- LangGraph CLI 是用于本地启动、调试、测试和托管 LangGraph 智能体图的开发者命令行工具。核心功能如下:
|
功能类别 |
命令示例 |
说明 |
|
✅ 启动 Graph 服务 |
langgraph dev |
启动 Graph 的开发服务器,供前端(如 Agent Chat UI)调用 |
|
🧪 测试 Graph 输入 |
langgraph run graph:graph --input '{"input": "你好"}' |
本地 CLI 输入测试,输出结果 |
|
🧭 管理项目结构 |
langgraph init |
初始化一个标准 Graph 项目目录结构 |
|
📦 部署 Graph(未来) |
langgraph deploy(预留) |
发布 graph 至 LangGraph 云端(已对接 Studio) |
|
🧱 显示 Assistant 列表 |
langgraph list |
显示当前 graph 中有哪些 assistant(即 entrypoint) |
|
🔄 重载运行时 |
自动热重载 |
修改 graph.py 时,dev 模式自动重启生效 |

- LangGraph Cli官网地址:https://www.langgraph.dev/ (需要代理环境)
- LangGraph内置工具库与MCP调用组件
- 除了有上述非常多实用的开发工具外,LangGraph还全面兼容LangChain的内置工具集。LangChain自诞生之初就为开发者提供了非常多种类各异的、封装好的实用工具,历经几年发展时间,目前LangChain已经拥有了数以百计的内置实用工具,包括网络搜索工具、浏览器自动化工具、Python代码解释器、SQL代码解释器等。而作为LangChain同系框架,LangGraph也可以无缝调用LangChain各项开发工具,从而大幅提高开发效率。

- 此外,LangChain是最早支持MCP的开发框架之一,借助langchain-mcp-adapters,LangChain和LangGraph便可快速接入各类MCP工具。

- 并且LangGraph也同样支持谷歌的A2A(跨Agents通信协议)。
- LangChain工具集:https://python.langchain.com/docs/integrations/tools/
更多推荐



所有评论(0)