3294 字
16 分钟
AI Agent 核心概念原理详解:MCP、Skill 与 Agent 架构

AI Agent 核心概念原理详解#

深度解析 MCP、Skill、Agent 等核心概念的原理与逻辑,理解 Agent 区别于 LLM 的技术本质


目录#

  1. 从 LLM 到 Agent:范式转变
  2. Tool Calling:Agent 的能力扩展机制
  3. ReAct:推理与行动的协同
  4. MCP:标准化协议的原理
  5. Skill:能力封装与复用
  6. Multi-Agent:协作与分工
  7. Agent 架构设计原理
  8. 总结与展望

从 LLM 到 Agent:范式转变#

LLM 的本质局限#

大语言模型(LLM)的核心能力是文本生成,其本质是一个概率模型:

P(wtw1,w2,...,wt1)P(w_t | w_1, w_2, ..., w_{t-1})

这种架构决定了 LLM 存在三个根本局限:

  1. 知识静态性:训练数据有截止时间,无法获取实时信息
  2. 计算局限性:不能执行数学运算、代码运行等确定性操作
  3. 环境隔离性:无法感知或操作外部环境(文件、数据库、API)

Agent 的范式突破#

Agent 通过引入**工具调用(Tool Calling)**机制,突破了 LLM 的局限:

传统 LLM:输入文本 → 生成文本
Agent:输入文本 → 决策 → 调用工具 → 观察结果 → 生成最终输出

这种转变不是简单的功能叠加,而是认知架构的升级——从”纯文本推理”到”感知-行动循环”。

Agent = LLM + 工具 + 规划 + 记忆#

Agent 的核心组件:

组件功能技术实现
LLM Core推理与决策Transformer 架构
Tool Use扩展能力边界Function Calling
Planning任务分解与执行ReAct、CoT
Memory上下文与知识管理RAG、向量数据库

Tool Calling:Agent 的能力扩展机制#

为什么需要 Tool Calling?#

LLM 的知识和能力是静态且封闭的。Tool Calling 提供了一种动态扩展机制,让 LLM 能够在运行时获取外部能力。

核心洞察:Tool Calling 的本质是将 LLM 的文本生成能力转化为对外部系统的调用指令

Tool Calling 的工作原理#

1. 工具定义(Tool Schema)#

工具必须被显式定义,LLM 才能理解和使用:

{
"name": "get_weather",
"description": "获取指定城市的当前天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称"
}
},
"required": ["city"]
}
}

关键设计原理

  • description 是 LLM 理解工具用途的唯一途径
  • parameters 使用 JSON Schema 定义,LLM 生成符合 schema 的参数
  • required 标明必填字段,确保调用完整性

2. 调用流程#

Tool Calling 采用请求-响应模式

用户输入 → LLM 分析 → 生成工具调用指令 → 外部执行 → 返回结果 → LLM 整合 → 最终输出

关键特性

  • 多轮交互:复杂任务需要多次工具调用
  • 上下文传递:每次调用的结果需要反馈给 LLM
  • 错误处理:工具执行失败需要被 LLM 感知和处理

3. 消息格式设计#

Tool Calling 的消息格式体现了状态分离的设计思想:

  • assistant 消息:包含 tool_calls 字段,表示需要调用的工具
  • tool 消息:包含工具执行的结果
  • user 消息:用户输入或工具执行后的观察

这种设计使得 LLM 能够在对话历史中追踪工具调用的完整生命周期

Tool Calling 的局限#

Tool Calling 虽然扩展了 LLM 的能力,但存在局限:

  1. 单步规划:每次只能决定一个工具调用
  2. 无状态:LLM 本身不维护跨会话的状态
  3. 平台依赖:不同平台的工具定义格式不兼容

这些局限催生了更高级的 Agent 架构。


ReAct:推理与行动的协同#

为什么需要 ReAct?#

复杂任务需要多步规划动态调整。ReAct(Reasoning + Acting)通过交替进行推理和行动,实现了复杂任务的分解和执行。

ReAct 的核心循环#

ReAct 采用感知-推理-行动-观察的循环:

┌─────────────────────────────────────────────┐
│ ReAct 循环 │
├─────────────────────────────────────────────┤
│ │
│ Thought(思考) → Action(行动) → Observation(观察)│
│ ↑ │
│ └────────────────────────────────────┘
│ │
└─────────────────────────────────────────────┘

关键洞察:ReAct 将显式推理(Thought)和工具执行(Action)结合,让 LLM 能够”边想边做”。

ReAct 的工作原理#

1. Thought:推理步骤#

Thought 是 LLM 对当前情况的内部推理,包括:

  • 任务分析:理解用户意图
  • 状态评估:评估当前进展
  • 决策制定:决定下一步行动

2. Action:行动步骤#

Action 是 LLM 生成的具体指令,可以是:

  • 工具调用:调用外部工具
  • 信息检索:查询知识库
  • 任务完成:结束任务并返回答案

3. Observation:观察步骤#

Observation 是行动的结果,反馈给 LLM 用于下一轮推理。

ReAct 的优势#

  1. 可解释性:显式的推理步骤让决策过程透明
  2. 错误恢复:某一步失败可以通过后续步骤纠正
  3. 动态规划:根据观察结果动态调整计划

ReAct 的局限#

  1. 上下文限制:长任务可能超出 LLM 的上下文窗口
  2. 计算开销:多轮推理增加延迟和成本
  3. 终止条件:需要明确的终止条件防止无限循环

MCP:标准化协议的原理#

MCP 的诞生背景#

Function Calling 的碎片化问题#

早期的 Tool Calling 存在严重问题:

  1. 平台锁定:OpenAI、Anthropic、Google 各自有不同的工具定义格式
  2. 重复开发:同样的工具需要为不同平台重写适配器
  3. 生态割裂:工具开发者需要维护多个版本

标准化的需求#

MCP(Model Context Protocol)的目标是:建立统一的协议,让任何 AI 应用都能无缝连接任何工具和数据源

MCP 的核心设计原理#

1. 分层架构#

MCP 采用分层架构,将协议与实现分离:

应用层(MCP Client)
协议层(MCP Protocol)
实现层(MCP Server / Host)
资源层(文件、数据库、API)

关键洞察:MCP 不是具体的实现,而是通信协议的标准

2. 核心抽象#

MCP 定义了四个核心抽象:

抽象定义类比
Resources可读取的数据HTTP GET
Tools可执行的函数HTTP POST
Prompts预定义的提示模板函数库
Sampling模型生成的能力回调机制

3. 通信模型#

MCP 基于 JSON-RPC 2.0,采用请求-响应模式

请求格式

{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "read_file",
"arguments": {"path": "/doc.txt"}
},
"id": 1
}

响应格式

{
"jsonrpc": "2.0",
"result": {
"content": [{"type": "text", "text": "..."}]
},
"id": 1
}

MCP 的技术优势#

1. 解耦合#

MCP 将工具提供者工具使用者解耦:

  • 工具开发者只需实现 MCP Server
  • AI 应用只需实现 MCP Client
  • 双方通过标准协议通信

2. 可组合性#

多个 MCP Server 可以组合使用

AI 应用
├── MCP Server A(文件系统)
├── MCP Server B(数据库)
└── MCP Server C(Web API)

3. 安全性#

MCP 内置安全机制:

  • 权限控制:Server 可以控制哪些资源/工具暴露
  • 请求验证:参数类型和范围验证
  • 审计日志:所有调用可追溯

MCP vs 传统集成#

维度传统适配器MCP
耦合度高(每个平台单独适配)低(标准协议)
可维护性差(N 个平台 N 个版本)好(一次实现)
生态开放封闭(平台锁定)开放(互联互通)
扩展性好(即插即用)

Skill:能力封装与复用#

Skill 的本质#

Skill 是预定义的能力包,包含:

  • 工具集:完成特定任务所需的工具
  • 提示词:优化 LLM 输出的提示模板
  • 工作流:预定义的任务执行流程
  • 文档:使用说明和最佳实践

Skill 的设计原理#

1. 封装性#

Skill 将领域知识封装成可复用的单元:

Skill: 天气助手
├── 工具:get_weather, get_forecast
├── 提示词:天气查询优化模板
├── 工作流:查询 → 解析 → 格式化
└── 文档:使用指南、限制说明

关键洞察:Skill 是领域专家知识的编码

2. 可组合性#

多个 Skill 可以组合完成复杂任务:

任务:规划一次旅行
├── Skill: 天气查询(获取目的地天气)
├── Skill: 航班搜索(查找航班)
├── Skill: 酒店预订(预订酒店)
└── Skill: 行程规划(整合行程)

3. 版本管理#

Skill 支持版本控制

  • 向后兼容:新版本不破坏旧版本的使用
  • 渐进升级:用户可以选择升级时机
  • 依赖管理:明确声明依赖的其他 Skill

Skill 与 Tool 的区别#

维度ToolSkill
粒度单个功能点完整解决方案
内容代码实现代码 + 提示词 + 文档 + 工作流
使用门槛需要理解 API开箱即用
复用范围单个项目跨项目、跨团队
维护成本高(需要文档和示例)低(内置文档和最佳实践)

Skill 的生命周期#

需求分析 → 设计 → 开发 → 测试 → 发布 → 使用 → 反馈 → 迭代

关键节点

  • 设计阶段:明确 Skill 的边界和能力范围
  • 测试阶段:验证 Skill 在各种场景下的表现
  • 反馈阶段:收集用户反馈用于改进

Multi-Agent:协作与分工#

为什么需要 Multi-Agent?#

单 Agent 的局限#

  1. 能力瓶颈:单个 Agent 难以精通所有领域
  2. 计算限制:复杂任务需要并行处理
  3. 视角单一:缺乏多样化的观点

群体智能的原理#

Multi-Agent 系统借鉴了群体智能的概念:

  • 分工:不同 Agent 负责不同子任务
  • 协作:通过通信协调行动
  • 涌现:整体能力大于个体之和

Multi-Agent 的架构模式#

1. 分层架构(Hierarchical)#

Manager Agent(任务分配、结果整合)
├── Agent A(子任务 1)
├── Agent B(子任务 2)
└── Agent C(子任务 3)

适用场景:任务可明确分解为子任务

2. 对等架构(Peer-to-Peer)#

Agent A ←→ Agent B ←→ Agent C
(平等协作,无中心节点)

适用场景:需要多方讨论和协商

3. 市场架构(Market-based)#

Agents 通过竞标获得任务:

  • 每个 Agent 提交投标(价格 + 时间)
  • 选择最优投标执行任务
  • 完成后支付报酬

适用场景:资源有限,需要优化分配

Multi-Agent 的通信机制#

1. 通信协议#

  • 自然语言:灵活但歧义多
  • 结构化消息:精确但需要约定格式
  • 混合模式:关键信息结构化,解释性内容自然语言

2. 通信拓扑#

拓扑特点适用场景
星型中心节点协调层级管理
网状全连接平等协作
树型分层传递大规模系统

3. 冲突解决#

  • 投票机制:多数决
  • 权威机制:特定 Agent 有最终决定权
  • 协商机制:多轮讨论达成共识

Agent 架构设计原理#

核心组件的关系#

┌─────────────────────────────────────────────────────────────┐
│ Agent 架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Planning │←→│ Memory │←→│ Tool Use │ │
│ │ (规划) │ │ (记忆) │ │ (工具使用) │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │ │
│ └─────────────────┼─────────────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ LLM Core │ │
│ │ (推理引擎) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

设计原则#

1. 单一职责#

每个组件只负责一个明确的职责:

  • Planning:任务分解和执行策略
  • Memory:信息的存储和检索
  • Tool Use:外部能力的调用
  • LLM Core:推理和决策

2. 松耦合#

组件之间通过标准接口通信,便于:

  • 替换实现:更换 LLM 或记忆实现
  • 独立测试:每个组件可单独测试
  • 灵活组合:根据需求组合不同组件

3. 可观测性#

Agent 的行为需要可追踪和可解释

  • 思考过程:记录每一步的推理
  • 工具调用:记录所有工具调用和结果
  • 决策路径:可追溯的决策历史

关键设计决策#

1. 同步 vs 异步#

  • 同步:简单但阻塞,适合简单任务
  • 异步:复杂但高效,适合长任务和并发

2. 状态管理#

  • 有状态:Agent 维护会话状态,适合长对话
  • 无状态:每次请求独立,适合简单查询

3. 错误处理策略#

  • 重试:工具调用失败时重试
  • 降级:使用备用方案
  • 终止:无法处理时优雅退出

总结与展望#

核心概念的关系#

LLM(基础能力)
Tool Calling(能力扩展)
ReAct(推理+行动)
Agent(完整系统)
MCP(标准化协议)
Skill(能力封装)
Multi-Agent(协作系统)

技术演进趋势#

  1. 从封闭到开放:MCP 等标准推动生态互联互通
  2. 从单一到协作:Multi-Agent 成为复杂任务的标配
  3. 从通用到专业:Skill 让领域知识可复用
  4. 从工具到伙伴:Agent 从工具进化为智能伙伴

关键洞察#

  1. Agent 的本质:LLM 的能力扩展器,通过工具调用突破文本生成的局限
  2. MCP 的价值:标准化协议降低生态碎片化,促进工具共享
  3. Skill 的意义:领域知识的封装和复用,降低 Agent 开发门槛
  4. Multi-Agent 的未来:复杂任务的必然选择,群体智能的工程实现

本文聚焦 AI Agent 核心概念的原理与逻辑,深入解析 MCP、Skill、Agent 架构等技术本质。

AI Agent 核心概念原理详解:MCP、Skill 与 Agent 架构
https://blog.timeeternal.cn/posts/ai-ecosystem-principles/
作者
时光静逸
发布于
2026-03-20
许可协议
CC BY-NC-SA 4.0