尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

MCP协议实战:从天气查询Server到LangChain与LangGraph的Agent开发

MCP协议实战:从天气查询Server到LangChain与LangGraph的Agent开发 如果你是从 2025 年一路做到 2026 年的 AI 应用开发者大概率会有同一个感受模型生成文本的能力早就不是瓶颈真正让人头疼的是让 Agent“学会办事”。这里的“办事”不是聊天是查天气、查库存、操作数据库、写文件、调内部接口。过去解决这个问题做法是给模型写一堆函数描述再让模型输出 JSON 去调用某个函数。函数一多prompt 就膨胀换一个模型工具描述格式又要重写一遍。更麻烦的是工具和 Agent 之间是硬编码关系本地调试能跑换一个宿主又得重新接。MCPModel Context Protocol出现之后这个逻辑变了。它把工具定义、发现、调用、结果返回全部标准化。工具方写一次 MCP Server可以被 Claude Code、LangChain 以及其他支持 MCP 的 Host 复用模型方只需要认 MCP 这个接口。这不是某个厂商的私有协议而是一个开放标准。本文的判断很明确MCP 不是 Agent 开发的玩具而是工具层标准化的现实答案。这篇文章会用一条完整链路讲清楚先亲手写一个天气查询 MCP Server再用 LangChain 接入 Deepseek 把它变成 Agent再用 LangGraph 把 Agent 流程改造成可控的状态图最后把同一个 MCP Server 直接接到 Claude Code 里使用。如果你正在做 Agent 开发或者一直没搞懂 MCP、LangChain、LangGraph 三者之间的关系这篇文章值得读完。1. 这篇文章真正要解决的问题1.1 开发 Agent 时常见的四个崩溃瞬间我自己见过很多团队从“模型能聊天”走向“Agent 能干活”时在工具接入这一步反复踩坑。第一个场景让模型调用内部接口开发写了 10 个函数把每个函数的参数、用途、返回值全部塞进 system prompt结果模型还是经常把参数传错。prompt 越写越长模型越容易混乱。第二个场景项目要从 OpenAI 模型切到 Deepseek 模型发现工具调用的消息格式不太一样适配代码至少改一天。换一个模型工具层几乎要重写一遍非常痛苦。第三个场景工具数量从 5 个涨到 50 个。如果全部写进 prompt上下文被工具描述占满模型真正可用的思考空间越来越小。工具越多系统越脆弱。第四个场景本地调试没问题部署到生产环境后工具连不上。因为工具函数和 Agent 运行在同一个进程里环境变量、网络权限、依赖版本之间的耦合导致问题很难排查。这四个问题本质上是同一个问题的不同表现工具接入没有标准。函数是散的描述是手写的调用逻辑是耦合在代码里的。1.2 MCP 到底解决了什么问题MCP 的全称是 Model Context Protocol中文可以理解为“模型上下文协议”。它定义了一套标准让 LLM 应用通过统一的协议去发现工具、调用工具、获取结果。它解决的问题非常具体工具描述标准工具叫什么、参数是什么、功能是什么通过标准 schema 暴露。工具发现标准Agent 运行起来后可以动态查询当前可用的工具列表。工具调用标准模型生成工具调用请求MCP Server 执行然后把结构化结果返回给模型。一次接入多处复用同一个 MCP Server既可以被 LangChain 应用使用也可以被 Claude Code 这类开发助手使用不需要针对每个宿主单独适配。一句话总结MCP 把“工具接入”从每个项目各自实现的胶水代码变成了一套通用协议。工具提供方只需要维护自己的 MCP ServerAgent 方只需要按协议接入。1.3 这篇文章适合谁本文面向三类读者正在做 AI 应用、Agent、RAG 相关开发的工程师想搞懂 MCP 到底怎么用。一直分不清 LangChain 和 LangGraph 区别想从实际代码中理解两者定位的人。想评估 Deepseek 这类高性价比模型如何接入 Agent 工具链以及 Claude Code 这类工具能怎么配合的架构师。读完这篇文章你会真正理解什么时候只需要写函数什么时候应该用 MCP什么时候应该上 LangGraph。2. MCP 协议核心概念与架构2.1 MCP 是什么用 USB-C 理解它先给一个通俗类比。过去每个电子设备都有自己的充电口手机、耳机、键盘各用各的线。后来 USB-C 普及一根线能充所有设备。MCP 在 AI 工具领域的角色就是那个统一接口。在没有 MCP 的时候Agent 要接数据库、接搜索、接通告软件、接内部系统每种都是定制开发。有了 MCP 之后只要工具方实现一个 MCP Server任何支持 MCP 的 Agent 宿主都能直接使用。开发者不用再问“这个工具在 Claude Code 里怎么接、在 LangChain 里怎么接、在自研 Agent 里怎么接”因为协议是统一的。2.2 MCP 的四个核心角色MCP 架构里有四个关键角色理解它们就能看懂一切 MCP 相关文档角色作用类比MCP Host用户使用的程序比如 Claude Code、IDE 插件、自研 Agent笔记本电脑MCP Client运行在 Host 内部负责与 MCP Server 建立连接、收发请求笔记本上的 USB-C 控制器MCP Server提供工具、数据访问能力的独立程序显示器、键盘、鼠标Transport底层通信方式常见有 stdio、HTTP 等USB-C 线缆一个 MCP Server 可以暴露一个或多个工具。每个工具就是一段可被模型调用的函数包含名称、描述、参数 schema、执行逻辑。2.3 MCP 与 Function Calling 的区别这个点非常容易混淆几乎每次分享都会被问到。Function Calling 是模型侧的能力。OpenAI、Deepseek、通义等模型在训练和推理时支持输出一个结构化的“工具调用请求”告诉应用“我希望调用哪个函数、参数是什么”。这是模型理解层的事。MCP 是工具侧的标准。它和模型推理没有直接关系只关注“工具如何被描述、被发现、被调用、被返回结果”。MCP Server 可以服务于任何支持 MCP 的模型和应用。但两者在 Agent 里是配合关系MCP Server 暴露工具LangChain 把 MCP 工具转换成模型能理解的结构Deepseek 这类模型在需要时生成工具调用请求应用根据请求去执行 MCP 工具。所以更精确的说法是Function Calling 解决“模型怎么表达工具调用”MCP 解决“工具怎么接入 Agent”。2.4 MCP 与 Agent Skill 的区别社区里还常看到“Agent Skill”“Skill”的说法。简单理解Agent Skill 更像一个“能力包”它可能包含指令、工作流、示例、知识文档。它告诉模型“在什么场景下应该怎么做事”。它不一定连接外部系统。MCP 更偏向“工具接口”。它连接的是外部系统比如查天气、查数据库、操作文件。一个 MCP 工具通常只负责一件事。在实际项目中Skill 可以描述“如何处理一份客户工单”的步骤MCP 则提供“查订单系统”“查客户信息”的底层工具。两者是互补的不是替代关系。2.5 MCP 对 Agent 开发的真实价值从当前生态来看MCP 已经不只是实验性协议。社区公开信息中已经能看到不少主流工具推出了 MCP Server 方案涉及设计稿、数据分析、逆向工程、开发工具等不同领域。这意味着工具团队只要做一次 MCP 适配就能同时服务多种 AI 宿主长期来看能显著降低接入成本。更进一步MCP Server 还可以把 RAG 能力封装成工具。检索不再是一个固定的流程管道而是变成 Agent 运行时按需调用的“检索工具”。这让 RAG 系统从“链式管道”变成了“按需检索”灵活度完全不同。3. LangChain、LangGraph 与 MCP 的关系3.1 LangChain 到底做什么LangChain 是一个面向 LLM 应用开发的框架。它提供了模型接入、消息封装、提示词工程、工具、记忆、链等组件。简单说LangChain 的目标是让“模型 工具 数据”的组装过程更规范。它本身不训练模型、不部署模型而是把模型当作文本生成引擎在应用层做编排。Deepseek 模型可以通过 OpenAI 兼容接口接入 LangChain因为 LangChain 的 ChatOpenAI 组件允许自定义 base_url。这让 LangChain 可以统一方式使用不同厂商的模型。3.2 LangGraph 和 LangChain 的区别这是搜索量极高的一个问题。我用一个表格把区别说清楚对比维度LangChainLangGraph抽象方式链式调用通常顺序执行有向图支持循环、分支、状态流转状态管理依赖消息、内存组件显式定义 State每个节点可读写状态控制流适合相对固定的流程支持条件边、中断、恢复、人工审核节点适用场景简单问答、RAG、工具链复杂 Agent、多步骤工具调用、动态决策与 MCP 的关系可加载 MCP 工具并执行可把 MCP 工具封装为图中的工具节点理解的关键在于LangGraph 不是 LangChain 的替代品而是 LangChain 生态中专攻 Agent 编排的框架。LangChain 提供组件LangGraph 用图的方式把组件串起来。在复杂 Agent 场景里两者经常一起使用。3.3 三者关系工具箱、工作流引擎与工具插口给一个更直观的比喻LangChain是装满组件的手提箱里面放着连接模型的接线、处理提示词的模板、加工数据的工具。LangGraph是工作流引擎它决定“先做什么、后做什么、出错怎么办、什么时候结束”。MCP是标准化的工具插口任何符合这个插口标准的工具都能插到 LangChain 或 LangGraph 上。它们不在同一层但组成了一条完整的 Agent 开发链路。3.4 澄清误区LangChain、vLLM、PyTorch 是同一类框架吗
返回列表