模型上下文协议(MCP)

MCP是什么?

MCP(Model Context Protocol,模型上下文协议)是由Anthropic发起的,可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

所以在AI 编程工具中,MCP 是非常有应用场景的。比如你写了一堆代码,做一个 web 网页的产品,应该经常会遇到:

VSCode里敲完代码,满怀期待地预览,然后打开浏览器——啪!报错了!只能复制报错信息,回到VSCode,粘贴给智效代码,等待它分析原因,然后修改,再打开浏览器检查…整个过程简直就像是在流水线上拧螺丝的工人在IDE和浏览器之间来回”拧”!

但是!有了MCP协议的智效代码,这一切都变了!它就像是雇了一个不用发工资的全能代码修理工,自动预览你的代码,主动查看你的产品,自己抓取报错信息,然后默默地修改,一遍又一遍地调试,直到所有bug都被消灭得干干净净。

MCP和Agent 、Function Call有什么区别?

1. 概念理解

Model Context Protocol (MCP)

MCP 是一个标准协议,如同电子设备的 Type C 协议(可以充电也可以传输数据),使 AI 模型能够与不同的 API 和数据源无缝交互。

MCP 旨在替换碎片化的 Agent 代码集成,从而使 AI 系统更可靠,更有效。通过建立通用标准,服务商可以基于协议来推出它们自己服务的 AI 能力,从而支持开发者更快的构建更强大的 AI 应用。开发者也不需要重复造轮子,通过开源项目可以建立强大的 AI Agent 生态。

MCP 可以在不同的应用/服务之间保持上下文,从而增强整体自主执行任务的能力。

• Function Call

Function Call 指的是 AI 模型根据上下文自动执行函数的机制。

Function Call 充当了 AI 模型与外部系统之间的桥梁,不同的模型有不同的 Function Call 实现,代码集成的方式也不一样。由不同的 AI 模型平台来定义和实现。

• ReAct(Reasoning + Acting)Agent

ReAct是一种结合推理(Reasoning)和行动(Acting)的 AI 智能体范式。其核心理念是让 AI 先进行思考推理,再据此采取行动,如调用外部工具;经过多次这样循环,直到任务完成。

• Workflow Agent

Workflow Agent 本质上是一个智能化的流程执行者,它能够自动化地完成既定的工作流程。可以理解为一个虚拟助手,负责跟踪流程步骤、传递信息、做出决策并执行必要的操作。

Workflow Agent 在流程固定、路径明确的场景下,能够最大限度发挥其自动化执行和决策能力,确保高效准确地完成既定工作流程。

2. MCP 与Agent对比

MCP是底层的标准化连接协议,专注于模型与外部数据源间的数据安全交互和接口规范,而Agent是上层的自主决策的智能体系统,基于推理和决策来执行复杂任务,两者可以结合使用:MCP提供底层统一接口, Agent负责上层智能任务的规划和决策执行。

比如前面例2中介绍的“总结今日修改的代码并提交到远程仓库”中,可以看出,这个任务包含两个操作:总结修改的内容和提交代码。如果使用Agent则需要将这个流程固化(先总结,再提交),让Agent进行去执行;所以与MCP服务相比,Agent方式少了自主思考和决策的过程。

具体细节见下表:

功能ReAct AgentMCPWorkflow Agent
核心功能代理框架:基于推理(Reasoning)与行动(Acting)的循环任务处理机制协议层标准:连接模型与外部资源的工具链任务执行流派:基于预定义的步骤和规则完成目标
主要作用实现多步骤任务分解,工具调用与动态调整提供统一的上下文管理,API调用规范解决任务流程自动化执行问题
技术层级应用层/框架(类似 Spring/React)底层协议(类似 HTTP/数据库驱动)应用层(类似于自动化脚本)
核心技术思维链(Chain-of-Thought)、工具调用循环、自我一致性检查API规范(JSON-RPC 2.0)、上下文管理通过人工准流程编排实现自动化处理任务
依赖关系依赖大模型的推理能力和工具调用响应能力模型需要支持 API调用和上下文感知依赖可视化工具构建固定流程及人工设计流程步骤和规则
扩展能力通过框架插件扩展工具链和任务类型通过 SDK适配多种模型和工具流程固定,难以扩展
应用场景与案例多步骤数据分析(如用户需求数据清洗与可视化)企业数据库实时查询标准化业务流程,如电商订单(下单->支付->发货->评价)
工具调用多工具协作调用单一工具按模块进行流程传递

总结:互补性与结合方案:智效代码 + MCP

  • ReAct Agent 是“控制器”:解决复杂任务的流程分解与动态调整,强调推理能力及灵活性。
  • MCP 是“连接器”:解决模型与外部资源的交互标准化问题,强调其兼容性和安全性。
  • Workflow Agent 是“执行器”:自动化地完成既定任务的工作流程,并在执行过程中进行决策和调整。

所以,对于路径较短、直接基于定义好的任务和工具链增加的编排式工作流(如 Workflow Agent),需求更主观的大知识流程可采用基于推理大模型及高度灵活的自主工作流(如 ReAct Agent + MCP)。

3. MCP 与 Function Call对比

MCP作为一种标准化协议提供了统一接口连接多种数据源和功能,开发复杂度低且复用性高;而Function Call则是模型特定的功能扩展机制,适用于单一数据源或简单任务,开发成本较高但对特定任务执行效率更佳。

比如前面例1中查询某个URL地址内容这个例子,如果用Function Call进行去实现,则需要先定义好这个任务要查询的函数,然后AI模型根据函数再确定调用的参数,执行后,返回给用户。所以和MCP相比,Function Call在扩展性和复用性上相对较差。

具体细节见下表

性质MCPFunction Call
性质协议功能
范围通用(多数据源,多功能)特定场景(单一数据源或功能)
目标统一接口,实现交互操作扩展模型能力
实现基于标准协议依赖于特定模型实现
开发复杂度低:通过统一协议实现多源兼容高:需要为每个任务单独开发函数
复用性高:一次开发,可多场景使用低:函数通常为特定任务设计
灵活性高:支持动态适配和扩展低:功能扩展需要额外开发
模型要求无需特殊微调需针对性微调
常见场景复杂场景,如跨平台数据访问与整合简单任务,如天气查询,翻译等

建议与扩展

- 优先选择支持 Function Call 的模型:若需高效开发复杂应用(如实时数据查询、多工具链协作),Function Call 可显著减少代码量并提升交互流畅度。

- 适配其他模型:对于不支持 Function Call 的模型,可通过 MCP SDK 自定义适配层,将自然语言输出解析为结构化指令。