MCP (Model Control Plane) 核心概念解析

本文档旨在通过一个生动的比喻和清晰的定义,帮助您理解 MCP (模型控制平面) 是什么,以及它如何扩展 AI 模型的能力。


喻言:为聪明的学生配备专业工具

想象一下,我们有一个非常聪明的学生“小言”,他代表了 LLM (大语言模型)

什么是 MCP?

简单来说,MCP 是一套标准化的协议和框架,就像是为“小言”设计的**“插件系统”或“扩展接口”**。它允许我们为“小言”安全、可靠地接入各种外部能力。

MCP 的核心思想

“小言”虽然博览群书,但他的能力仅限于他大脑中的知识。他无法完成需要与真实世界实时交互的任务,例如:

  • 查询今天的天气。
  • 读取用户的邮件。
  • 在日历上安排会议。

MCP Server (MCP 服务) 就是来解决这个问题的**“专家顾问”或“专业工具箱”**。开发者可以创建一个 weather-server(天气服务),这个服务知道如何调用天气 API。然后,通过 MCP 的配置,我们告诉“小言”:

“现在你有一位‘天气专家’可以咨询了。如果你需要查天气,就使用 get_forecast 这个工具,并告诉他城市和天数。”

当用户向“小言”提出查天气的请求时,他会:

  1. 识别意图:理解到这个任务需要使用 get_forecast 工具。
  2. 调用工具:通过 MCP 协议,将请求(例如 {city: "San Francisco"})发送给 weather-server
  3. 外部执行weather-server 接收请求,调用真正的天气 API,获取实时数据。
  4. 返回结果weather-server 将结果通过 MCP 协议返回给“小言”。
  5. 整合回答:“小言”用他强大的语言能力,将收到的数据整合成通顺的自然语言回复给用户。

MCP 的主要组成部分

  1. MCP Server (MCP 服务)

    • 一个独立的、可执行的程序(如 Node.js, Python 脚本)。
    • 负责实现具体的业务逻辑(调用 API、查询数据库等)。
    • 可以是本地的(通过 Stdio 通信)或远程的(通过 HTTP SSE 通信)。
  2. Tools (工具)

    • MCP Server 向 AI 暴露的**“动词”或“函数”**。
    • 首选且更灵活的方式,可以接受参数。
    • 示例: get_forecast(city: string, days: number)
  3. Resources (资源)

    • MCP Server 向 AI 暴露的**“名词”或“数据实体”**。
    • 代表可被访问的数据,可以是静态的或动态的。
    • 示例: sf_weather (一个固定的资源), weather://{city}/current (一个动态资源模板)。
    • 文档建议优先使用 Tools。
  4. MCP 配置文件

    • 一个 JSON 文件(如 mcp_settings.json),用于注册和配置所有 MCP Server。
    • 它告诉 AI 系统:有哪些可用的服务?如何启动它们?需要传递哪些环境变量(如 API Key)?

总结

概念 类比 作用
MCP AI 的“插件”或“扩展”系统 一套标准化的协议,用于安全、可靠地扩展 AI 的能力。
MCP Server 专业的工具箱或外部专家顾问 实现具体功能的独立服务,负责与真实世界交互。
Tool 工具箱里的一个“电动螺丝刀”(函数) 向 AI 提供一个可执行的、带参数的动作。
Resource 工具箱里的一个“零件”(数据) 向 AI 提供一个可查询的数据实体。

通过 MCP,开发者可以安全地将各种外部服务和私有数据源的能力赋予 AI,而无需修改 AI 模型本身。这使得 AI 能够执行更广泛、更实用的任务,从一个“博学的聊天机器人”转变为一个真正能解决实际问题的“智能助理”。

AI Agent (智能体) 核心概念解析

本文档旨在通过一个生动的比喻和清晰的定义,帮助您理解 AI Agent (智能体) 是什么,以及它与 LLM, RAG 等概念的关系。


喻言:从“聪明的学生”到“能干的实习生”

为了理解 Agent,我们先回顾一下已经熟悉的角色:

  • LLM (大语言模型):一个知识渊博的、聪明的学生“小言”。
  • RAG (检索增强生成):给“小言”配备的“开卷考试工具”,让他能查阅外部资料。
  • Tools/MCP (工具/模型控制平面):给“小言”配备的“专业工具箱”(如计算器、API 调用器)。

现在,我们给“小言”布置一个更复杂的任务

“小言,请帮我调研一下‘北京和上海下周的天气’,对比它们的最高温度,然后帮我预订一张去更暖和的那个城市的、下周一的机票,并将行程添加到我的日历中。”

这是一个需要规划、执行多个步骤、并使用多种工具才能完成的项目。

1. 没有 Agent 的 LLM + Tools

如果你把这个任务直接交给一个只有 LLM 和工具集的系统,它会感到困惑。它知道自己有哪些工具,但不知道应该按什么顺序调用它们,以及如何处理每一步的结果。你需要像指挥官一样,一步步下达指令。

2. 拥有 Agent 能力的 LLM

AI Agent 就像是给 LLM 注入了自主思考和规划的能力,让他从一个“聪明的学生”升级成了一个“能干的实习生”。

现在,你把同样复杂的任务交给他,他的工作流程会是这样的:

  1. 【思考与规划 (Thought/Planning)】

    • Agent 拿到任务后,不会立刻执行。他会先在脑子里进行内在的、自我对话式的思考和规划:

      “好的,目标是预订机票并安排行程。我需要分解任务:
      1. 步骤一:调用 get_forecast 工具获取北京的天气。
      2. 步骤二:调用 get_forecast 工具获取上海的天气。
      3. 步骤三:用我的语言能力比较两个结果,找出更暖和的城市。
      4. 步骤四:调用 search_flight 工具搜索去那个城市的机票。
      5. 步骤五:调用 book_flight 工具预订机票。
      6. 步骤六:调用 add_to_calendar 工具将行程添加到日历。
      计划制定完毕,开始执行。”

  2. 【工具使用 (Tool Use)】

    • Agent 开始按照计划,自主地、一步一步地调用他所拥有的工具。
  3. 【观察与反思 (Observation/Reflection)】

    • 每执行一步,Agent 都会“观察”工具返回的结果。
    • 如果某一步出错了(例如,没有找到航班),他会反思并调整计划:

      “嗯,周一的机票没有了。我应该调整计划,尝试搜索周二的机票,或者向用户报告问题,请求下一步指示。”

这个**“思考 -> 执行 -> 观察 -> 再思考”**的循环,就是 Agent 的核心工作模式,通常被称为 ReAct (Reasoning and Acting) 框架。

一句话总结 Agent:一个具备自主规划、工具使用和反思调整能力的系统,它能将一个复杂的目标分解成一系列可执行的步骤,并调用各种工具来最终完成这个目标。


正式定义与对比

Agent 与其他概念的关系
  • Agent 是一个更高级的系统,它以 LLM 为核心大脑
  • Agent 使用 Tools (通过 MCP 等方式提供) 作为它的“手和脚”,来与外部世界交互。
  • Agent 常常会利用 RAG 作为其中一个重要的工具,来获取完成任务所需的背景知识。
核心区别
概念 核心能力 解决的问题 角色类比
LLM 语言理解与生成 通用问答、文本创作 聪明的学生
RAG 检索 + 生成 知识幻觉、私有数据问答 开卷考试的学生
Tools/MCP 调用外部 API 与外部世界交互的能力 学生的专业工具箱
Agent 自主规划、决策、反思 复杂的、多步骤的、需要自主决策的任务 能独立完成项目的实习生

Agent 的出现,标志着我们与 AI 的交互方式从简单的“一问一答”模式,向着更高级的“目标驱动”模式演进。你不再需要告诉 AI 每一步该怎么做,而只需要告诉它**“你想要什么”**,剩下的规划和执行过程,都由 Agent 自主完成。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐