阿里面试官:说说Agent Skills、MCP、Function Call之间的区别吧?

0 阅读8分钟

序幕:乌萨奇的职场新挑战

想象一下,可爱又疯狂的 乌萨奇(Usagi)最近入职了一家高端家政公司,担任“全自动智能管家”。

为了让乌萨奇能完美打理你的家,工程师们面临了三个难题:

  1. 怎么让乌萨奇的手插进各种品牌的电器插座?(比如海尔、小米)
  2. 怎么让乌萨奇看懂不同电器的操作面板?(有的叫“启动”,有的叫“Start”)
  3. 怎么让乌萨奇学会“大扫除”这种复杂的连招,而不是只会在地板上打滚?

这就是最近面试官最爱问的:MCP、Function Call 和 Agent Skills 到底有什么区别?

简要概括:

  • MCP (Model Context Protocol 模型上下文协议):由 Anthropic 提出的开放协议,旨在标准化 AI 如何接入外部数据(如 Google Drive、GitHub、本地文件)。 通俗点就像是家里的三孔插头/USB接口。它规定了形状、电压,让电器和插座能接上。

  • Agent Skills:通常指 AI 智能体(Agent)所具备的具体功能模块,包括调用 API、执行代码、使用工具等。通俗点就像是电器的功能。比如扫地机器人的“扫地”、空调的“制冷”。

举个生活中的例子:装修房子

假设你买了一台全自动管家(AI Agent)

Agent Skills(管家本身会的活儿)

这是管家大脑里自带的本领。

  • 例子:管家会缝衣服、会做饭、会记账。
  • 痛点:如果管家没见过你家的智能洗衣机,他空有一身“洗衣服”的本领,却不知道怎么启动那台机器,因为接口对不上。

MCP(万能转换头/协议)

这是你家装修时统一的一套标准插座

  • 例子:不管你买的是海尔的洗衣机,还是小米的灯泡,只要它们都支持 MCP 标准插头,管家只要把手插上去,就能瞬间“读取”这台机器的所有状态,并控制它。
  • 优点:你不需要教管家“如何控制海尔”,也不用教他“如何控制小米”,只要插头一插,他自动就能沟通了。

Function Call(说明书)

虽然管家的手插进了洗衣机的 MCP 插座(物理连通了),但管家还得知道洗衣机能听懂哪些指令。 洗衣机的“说明书”上写着:

  • 你要是想洗衣服,请喊:start_wash(mode="快速", temperature=40)
  • 你要是想甩干,请喊:spin_dry(speed=1200)

这个“喊出特定格式指令”的过程,就是 Function Call。

三者的关系(一句话顺口溜)

Skills 是我想干活,MCP 是我能摸到活,Function Call 是我告诉活儿该怎么干。

深入理解 MCP

MCP 的出现是为了打破“孤岛”。在没有 MCP 之前,如果你想让 Claude 读你的 Notion,开发者得写一套代码;想让 ChatGPT 读,又要写一套。

  • 标准化:只要你的数据库或工具支持 MCP 协议,任何支持该协议的 AI 客户端(如 Claude Desktop, Cursor 等)都能瞬间拥有读取该数据的能力。
  • 内容包含
    • 资源(Resources) - 应用控制:数据源,为 AI 提供上下文信息,资源由应用控制什么时候去加载。
    • 提示词(Prompts)- 用户控制:用户显示触发这些提示,比如用户想要获取互联网上的信息,用户说:"请使用 XXX MCP 搜索网络数据"
    • 工具(Tools)- 模型控制: 比如可执行的函数,AI 可以调用来执行操作,AI 决定什么时候调用这些工具,比如 AI 需要查询数据库,就会调用数据库查询工具

MCP 与 Function Calling 的关系

Function Calling 是 LLM 的能力,就是把自然语言转化成结构化的函数调用请求。LLM 本身不执行函数,只是告诉你应该调用什么函数,参数是什么

MCP 是运行在函数调用之上的协议层,MCP 标准化了函数在哪里,怎么调用,怎么发现的问题。

两者的关系:

MCP 的传输协议

MCP 支持两种主要的传输方式:

传输方式适用场景说明
「Stdio」本地进程Server 在本地机器运行,适合需要系统级访问的工具
「HTTP/SSE」远程服务Server 在远程运行,适合云服务(GitHub、Sentry、Notion)

常见的 MCP 服务

  • Filesystem (官方实现):允许 AI 在本地受限目录下列出文件、读取内容、写入代码、搜索文本(支持 grep 风格搜索)。它是 Cursor 和 Claude Code 的核心能力。
  • Git:提供对本地仓库的深度访问,包括查看 diff、检索提交日志、列出分支以及执行简单的 Commit 操作。
  • GitHub:支持跨仓库搜索、管理 Issue、审查 Pull Request、读取远程文件内容,常用于自动化处理 GitHub Workflow。

  • Postgres / MySQL / SQLite:允许 AI 查看表结构(Schema)、解释索引,并执行只读查询以分析数据。
  • Neo4j / Redis:针对图形数据库和键值存储的专项连接器。
  • Supabase:管理云端后端资源,操作数据库和存储。

  • Docker:管理本地容器、镜像、网络和数据卷。AI 可以帮你查看日志或诊断容器启动失败的原因。
  • Kubernetes:查看集群状态、Pod 日志及配置,适合进行云原生开发排错。
  • AWS / Azure / GCP:部分第三方服务器支持查询云资源状态(如 S3 存储桶、EC2 实例等)。

  • Puppeteer / Playwright:允许 AI 启动浏览器、导航到页面、截图、点击元素并抓取动态生成的内容。
  • Sentry:读取错误堆栈追踪(Stack Traces),让 AI 针对特定的生产环境报错进行代码修复。

  • Fetch:即时将在线文档(如 React/Next.js 的最新 API 文档)转化为 Markdown 供 AI 学习。
  • Exa / Tavily:AI 优化的搜索引擎,专门用于查找技术博客和最新的库版本信息。
  • arXiv:检索最新的计算机科学论文,适合研究算法和前沿技术。

可以访问这个网站发现更多的 mcp 服务器mcp.so

深入理解 Agent Skills

Skills 是模块化的能力扩展包,让 AI Agent 从"通用助手"变成"领域专家"。

可以把 Skills 理解为:

  • 入职培训手册 — 告诉 Agent 如何完成特定任务
  • 工具箱 — 提供脚本、模板、参考资料
  • 领域知识库 — 存储专业知识和最佳实践

有了 Skills,就可以不用每次在让 AI 写代码的时候都说一遍:“不要给我使用蓝紫色渐变!!!”

一个标准的 Skill 长这样:

my-skill/
├── SKILL.md              # 必需:元数据 + 主要指令
├── reference.md          # 可选:详细参考文档
├── examples.md           # 可选:使用示例
├── scripts/
│   └── helper.py         # 可选:可执行脚本
└── templates/
└── template.txt      # 可选:模板文件

SKILL.md 是核心,必须包含 YAML 格式的元数据:

---
name: code-review
description: >
Review code for bugs, security issues, and style violations.
Use when asked to review code, check for bugs, or audit PRs.
---
# Code Review Skill
## Instructions
When reviewing code, follow these steps:
1. First check for security vulnerabilities...
2. Then check for performance issues...
3. Finally check for code style...

关键字段:

  • name:Skill 的唯一标识,小写字母 + 数字 + 连字符,最多 64 字符
  • description:描述做什么、什么时候用,最多 1024 字符

description 的质量直接决定 Skill 能不能被正确触发。

下面是 Claude Code 的 skills 文件夹

这是最火的前端 UI 设计 Skills- UX-UI-ProMax 的文件夹

总结一下

核心要点概括

  • MCP (接口标准):解决 “怎么连”。它是万能插座,让 AI 能摸到外部的数据和工具。
  • Skills (办事逻辑):解决 “怎么做”。它是 AI 的一套复合绝招,包含思考步骤、参考文档和执行脚本。
  • Function Call (沟通语法):解决 “怎么说”。它是 AI 调用工具时必须遵守的特定代码格式(说明书)。

详细对比

维度MCP (连接器)Agent Skills (技能包)Function Call (指令)
本质通信协议 (Protocol)功能封装 (Package)动作触发 (Action)
层级底层:基础设施层高层:业务逻辑层中层:解析转换层
组成部分Server, Client, ResourcesSKILL.md
, 脚本, 示例
函数名, 参数 (JSON 格式)
装修类比全屋通用插座。不管是哪家的电器,插上就能通电通信。管家的专业技能(如“全屋深度保洁”)。包含一连串复杂的干活流程。电器的使用说明书。必须按照特定的按键顺序才能启动机器。
你的感受换个 AI 客户端(如从 Claude 换到 Cursor),数据依然能通。换个 Agent 框架,技能可能失效,因为每个框架的 SKILL.md
格式不同。
AI 自动把你的话翻译成代码:clean(mode="deep")

三者的“合力”过程(以“帮我订一张去北京的机票”为例)

  1. Skills (大脑发动): Agent 识别到你的需求,启动了它的 “出差助手 Skill”。这个 Skill 里写着:先查票、再比价、最后下单。
  2. MCP (建立连接): Agent 通过 MCP 协议 连接到了你的“携程接口服务”和“个人行程日历”。
  3. Function Call (下达指令): Agent 按照携程要求的格式,喊出一句:search_flight(from="上海", to="北京")

  • 如果你想让 AI 更聪明、会处理复杂流程,你需要给它写 Skills(也就是你刚才展示的那个文件夹结构)。
  • 如果你想让 AI 能访问更多外部软件/数据,你需要给这些软件配上 MCP
  • 如果你在写代码定义 AI 怎么调用你的函数,你就是在处理 Function Call。