人工智能的基本概念(AI Agent 核心概念详解:Function Calling、MCP、Skills 与 Sub Agent)

人工智能的基本概念(AI Agent 核心概念详解:Function Calling、MCP、Skills 与 Sub Agent)
AI Agent 核心概念详解:Function Calling、MCP、Skills 与 Sub Agent

本文综合整理自 Prompt Engineering Guide、Model Context Protocol 官方文档、Agent Skills 规范、Google ADK 文档及 IBM 技术文章,旨在帮助读者快速理解 AI Agent 领域的核心概念。

什么是 AI Agent

AI Agent(人工智能代理)是一种能够 自主执行任务 的系统或程序。与传统 LLM 的被动文本生成不同,AI Agent 具备以下核心能力:

  • 规划能力 :能够将复杂任务分解为多个步骤

  • 工具调用 :可以调用外部 API、数据库、搜索引擎等

  • 自适应学习 :能够根据新信息更新自身记忆和行为

  • 自主决策 :能够判断何时需要调用工具、何时直接回答

"Function calling transforms LLMs from passive text generators into active agents capable of real-world interactions." — Fireworks AI

Function Calling(函数调用)

定义

Function Calling 是让 LLM 能够与外部工具、API 和知识库交互的核心能力。当 LLM 收到需要超出其训练数据范围的信息或操作请求时,它可以决定调用外部函数来获取信息或执行操作。

工作流程

用户请求 → 上下文组装 → LLM 决策 → 工具执行 → 观察结果 → 生成响应

详细步骤:

  1. 用户查询 :用户发送请求(如"巴黎的天气如何?")

  2. 上下文组装 :系统消息、工具定义和用户消息组合成完整上下文

  3. 工具决策 :LLM 分析上下文,决定是否需要调用工具

  4. 工具执行 :开发者代码接收工具调用请求并执行实际函数

  5. 观察 :工具返回结果,成为 Agent 的"观察"

  6. 响应生成 :观察结果传回模型,生成最终响应

工具定义示例

{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "获取指定位置的当前天气。当用户询问特定城市或地区的天气状况时使用。",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和州,例如:San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "温度单位"
}
},
"required": ["location"]
}
}
}

最佳实践

  • 清晰的描述 :工具描述应明确说明功能和使用场景

  • 精简工具数量 :建议不超过 20 个工具以保证准确性

  • 参数验证 :明确必需参数和可选参数

  • Token 优化 :工具定义会消耗 Token,需简洁但完整

MCP(Model Context Protocol)

定义

MCP(Model Context Protocol)是一个 开源标准协议 ,用于连接 AI 应用与外部系统。它为 AI 应用提供了一种标准化的方式来访问数据源、工具和工作流。

"Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect electronic devices, MCP provides a standardized way to connect AI applications to external systems." — MCP 官方文档

核心架构

┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MCP Host │────▶│ MCP Client │────▶│ MCP Server │
│ (AI 应用) │ │ (连接器) │ │ (服务提供) │
└─────────────┘ └─────────────┘ └─────────────┘

三大角色:

角色

说明

Host

AI 应用程序(如 Claude、ChatGPT)

Client

连接器,负责与 Server 通信

Server

提供工具、资源和提示模板的服务端

MCP Server 核心功能

  1. Tools(工具) :可执行的函数,如搜索、计算、API 调用

  2. Resources(资源) :静态数据源,如文件、数据库内容

  3. Prompts(提示) :预定义的提示模板

MCP 的价值

受益方

价值

开发者

减少构建和集成 AI 应用的开发时间和复杂度

AI 应用

获得丰富的数据源、工具和应用生态系统

终端用户

获得更强大的 AI 应用,能够访问数据并代为执行操作

生态系统支持

MCP 已被广泛支持:

  • AI 助手 :Claude、ChatGPT

  • 开发工具 :VS Code、Cursor、Windsurf

  • 其他 :MCPJam 等众多客户端

Skills(技能)

定义

Agent Skills 是一种 轻量级、开放格式 ,用于扩展 AI Agent 的能力,为其提供专业知识和工作流程。Skills 本质上是包含指令、脚本和资源的文件夹。

目录结构

my-skill/
├── SKILL.md # 必需:指令 + 元数据
├── scripts/ # 可选:可执行代码
├── references/ # 可选:参考文档
└── assets/ # 可选:模板、资源

工作机制

发现 → 激活 → 执行
  1. 发现(Discovery) :启动时,Agent 仅加载每个可用 Skill 的名称和描述

  2. 激活(Activation) :当任务匹配 Skill 描述时,Agent 读取完整的 SKILL.md 指令

  3. 执行(Execution) :Agent 按照指令执行,按需加载引用文件或执行捆绑代码

SKILL.md 示例

---
name:pdf-processing
description:ExtractPDFtext,fillforms,mergefiles.UsewhenhandlingPDFs.
---

# PDF Processing

## When to use this skill
UsethisskillwhentheuserneedstoworkwithPDFfiles...

## How to extract text
1 .Usepdfplumberfortextextraction...

## How to fill forms
...

Skills 的特点

特点

说明

自文档化

任何人都可以阅读 SKILL.md 理解其功能

可扩展

从纯文本指令到可执行代码,复杂度可变

可移植

只是文件,易于编辑、版本控制和共享

支持平台

  • GitHub Copilot(VS Code、CLI、Coding Agent)

  • 其他兼容 Agent Skills 标准的 AI 工具

Sub Agent(子代理)与多代理系统

定义

多代理系统(Multi-Agent System, MAS) 由多个 AI Agent 协同工作,共同完成用户或其他系统的任务。每个 Agent 具有独立属性,但通过协作实现全局目标。

Sub Agent(子代理) 是多代理系统中的组成部分,在父代理的协调下执行特定任务。

单代理 vs 多代理系统

维度

单代理系统

多代理系统

结构

独立运行

多个 Agent 协作

通信

与环境交互

Agent 间直接/间接通信

学习

独立学习

共享经验和策略

性能

受限于单一 Agent

资源池更大,性能更优

多代理系统架构

1. 集中式网络(Centralized)

 ┌─────────────┐
│ 中央单元 │
└──────┬──────┘
┌──────────┼──────────┐
▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐
│Agent A│ │Agent B│ │Agent C│
└───────┘ └───────┘ └───────┘
  • 优点 :通信便捷,知识统一

  • 缺点 :中央单元故障导致系统崩溃

2. 去中心化网络(Decentralized)

┌───────┐ ┌───────┐
│Agent A│◄───►│Agent B│
└───┬───┘ └───┬───┘
│ │
▼ ▼
┌───────┐ ┌───────┐
│Agent C│◄───►│Agent D│
└───────┘ └───────┘
  • 优点 :鲁棒性强,模块化

  • 缺点 :协调复杂度高

多代理系统结构类型

结构

特点

层级结构

树状结构,Agent 具有不同自主级别

Holonic 结构

Agent 分组为 holarchy,子代理协作呈现为单一实体

联盟结构

Agent 临时联合提升性能,目标达成后解散

团队结构

Agent 紧密协作,相互依赖程度高

ADK 中的多代理实现

Google Agent Development Kit (ADK) 提供了构建多代理系统的原语:

Agent 层级

fromgoogle.adk.agentsimportLlmAgent, BaseAgent

# 定义子代理
greeter = LlmAgent(name="Greeter", model="gemini-2.0-flash")
task_doer = BaseAgent(name="TaskExecutor")

# 创建父代理并分配子代理
coordinator = LlmAgent(
name="Coordinator",
model="gemini-2.0-flash",
description="I coordinate greetings and tasks.",
sub_agents=[greeter, task_doer]
)

工作流代理类型

类型

说明

SequentialAgent

顺序执行子代理

ParallelAgent

并行执行子代理

LoopAgent

循环执行子代理直到满足条件

代理间交互模式

  1. LLM Transfer :通过 LLM 决策将任务转移给子代理

  2. Agent as Tool :将代理封装为工具供其他代理调用

  3. State Sharing :通过共享状态传递信息

多代理系统优势

  • 灵活性 :动态调整 Agent 组合

    人工智能的基本概念(AI Agent 核心概念详解:Function Calling、MCP、Skills 与 Sub Agent)

  • 可扩展性 :轻松添加新 Agent

  • 领域专业化 :每个 Agent 专注特定领域

  • 更高性能 :并行处理,资源共享

概念对比与关系

┌─────────────────────────────────────────────────────────────┐
│ AI Agent │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 能力扩展层 │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Skills │ │ MCP │ │ Function │ │ │
│ │ │ (技能) │ │ (协议) │ │ Calling │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 协作层 │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ Sub Agent / Multi-Agent │ │ │
│ │ │ (子代理/多代理系统) │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

概念

层级

核心作用

标准化程度

Function Calling

基础能力

让 LLM 调用外部函数

各厂商有自己的实现

MCP

连接协议

标准化 AI 与外部系统的连接

开放标准

Skills

能力扩展

为 Agent 提供专业知识和工作流

开放格式

Sub Agent

系统架构

多个 Agent 协作完成复杂任务

框架相关

它们如何协同工作

  1. Function Calling 是最底层的能力,让 Agent 能够调用工具

  2. MCP 提供标准化的协议,让不同的工具和数据源能够统一接入

  3. Skills 为 Agent 提供领域专业知识,指导其如何完成特定任务

  4. Sub Agent 将多个专业 Agent 组合,协作完成复杂任务

总结

概念

一句话总结

Function Calling

LLM 调用外部工具的能力,是 Agent 的"手"

MCP

AI 应用的"USB-C 接口",标准化连接外部系统

Skills

Agent 的"专业技能包",提供领域知识和工作流

Sub Agent

Agent 的"团队协作",多个专业 Agent 分工合作

这四个概念共同构成了现代 AI Agent 的核心架构:

  • Function Calling 提供基础的工具调用能力

  • MCP 解决了工具和数据源的标准化接入问题

  • Skills 解决了领域专业知识的封装和复用问题

  • Sub Agent 解决了复杂任务的分解和协作问题

理解这些概念及其关系,是构建强大 AI Agent 应用的基础。

参考资料

  1. Function Calling in AI Agents - Prompt Engineering Guide: https://www.promptingguide.ai/agents/function-calling

  2. Model Context Protocol Official Documentation: https://modelcontextprotocol.io/

  3. Agent Skills Specification: https://agentskills.io/what-are-skills

  4. Multi-Agent Systems in ADK - Google: https://google.github.io/adk-docs/agents/multi-agents/

  5. What is a Multi-Agent System? - IBM: https://www.ibm.com/think/topics/multiagent-system

  6. Function Calling - OpenAI API: https://platform.openai.com/docs/guides/function-calling

有任何问题欢迎在评论区留言,我会尽快回复~

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

相关阅读

最新文章

热门文章

本栏目文章