智能代理工具包:MCP vs. Agent Skills vs. AGENTS.md
了解这些AI代理连接和行为的新标准如何工作以及何时使用它们

工具/MCP与Agent Skills与AGENTS.md。作者提供的图片
AI代理正在快速发展。由于Anthropic和OpenAI的努力,三个开放标准已经出现,现在被大多数智能代理AI应用和框架广泛采用。
基础是模型上下文协议(MCP)。将MCP视为AI代理的通用"USB-C端口";它建立了模型如何连接到外部系统和数据的标准。
Agent Skills位于其上。这些技能打包了代理执行特定任务所需的专业知识。
AGENTS.md为开发者和_Vibe Coders_完善了工具包。AGENTS.md作为AI编码代理的README,指导Claude Code等工具如何在特定代码库中表现。
本文解释了MCP、Agent Skills和AGENTS.md如何工作,并帮助你确定何时以及为何使用每一个。
目录
· 工具
∘ MCP安全风险
· MCP vs. Agent Skills vs. AGENTS.md:何时使用每个
∘ 何时使用工具
· 结论
· 参考资料
工具
LLM功能强大,但它们的知识仅限于训练数据中包含的信息。工具通过使它们能够与外部世界交互来扩展LLM的能力。
例如,工具允许代理通过网络搜索获取信息、执行代码、查询数据库、读写文件和调用API。
LLM不能自己调用这些工具,因为它们只能输出文本。相反,我们告知LLM所有可用的工具,并让它生成工具调用请求。
每个工具由描述其名称、目的和参数的模式定义。当LLM确定需要工具时,它生成结构化请求。AI代理的软件环境然后执行工具并返回结果。LLM使用此结果作为其上下文窗口中的附加信息来继续对话。
这给AI代理自主性,因为它可以根据任务选择何时使用工具。
例如,当用户问数学问题时,LLM可能决定使用计算器工具而不是直接预测答案。

基本工具使用示例:基于查询,AI代理决定使用计算器工具执行数学计算。工具结果在上下文窗口中,LLM可以更准确地回答查询。图片由[1]提供
为AI代理选择LLM模型时,确保它已经接受了工具调用的训练[2]。否则,你的LLM将不会一致遵循必要的工具调用语法,并且可能会幻觉不正确的参数。
例如,Berkeley Function-Calling Leaderboard是一个评估LLM工具调用能力的基准。虽然所有主要的旗舰LLM现在都相当有能力使用工具,但如果你想使用开源LLM或旧模型,请确保检查它是否原生支持工具。
模型上下文协议(MCP)
模型上下文协议(MCP)是一个开放标准,定义了LLM如何连接到外部系统和数据。它提供了一种一致的方式来使工具对AI代理可用。
MCP使用客户端-主机-服务器架构,其中主机可以创建多个客户端。具体来说,MCP设置包括MCP主机 (如Claude Code等AI应用)、提供工具和数据的MCP服务器 ,以及处理通信的MCP客户端[3]。

MCP架构的可视化。作者基于[3]的图片。
MCP服务器可以使用stdio传输在本地运行,或使用可流式HTTP传输在云中运行。MCP服务器可以公开三种不同的原语:
- 工具:代理可以调用的可执行函数
- 资源:只读结构化数据,如文件、模式或文档
- 提示词:用于一致输入/输出的可重用提示词模板
工具的MCP消息流
MCP规范定义了AI代理如何使用工具。
首先,MCP客户端向MCP服务器发送tools/list请求,服务器响应其可用工具列表。每个工具必须包括其name、其功能的description和其输入参数的inputSchema。
MCP服务器的响应可能如下所示:
json
{
"result": {
"tools": [
{
"name": "get_weather",
"title": "Weather Information Provider",
"description": "Get current weather information for a location",
"inputSchema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name or zip code"
}
},
"required": ["location"]
}
}
]
}
}
这告诉我们有一个名为get_weather的工具,它期望一个类型为字符串的location参数。此信息作为可用工具整体列表的一部分从客户端传递给LLM。
例如,当用户询问纽约的当前天气时,LLM可能确定应该调用此工具。要执行工具,MCP客户端向MCP服务器发送tools/call请求。此请求可能如下所示:
json
{
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": {
"location": "New York"
}
}
}
然后,MCP服务器将通过使用给定的位置参数执行API请求来执行工具调用。MCP服务器的响应将如下所示:
json
{
"result": {
"content": [
{
"type": "text",
"text": "Current weather in New York:\nTemperature: 72°F\nConditions: Partly cloudy"
}
]
}
}
工具结果中的text变量被传递到LLM的上下文窗口,以便AI代理可以提供有关纽约当前天气的知情答案。
MCP的伟大之处在于我们不必自己创建天气工具。相反,我们可以从那里的广阔生态系统中搜索并安装天气MCP服务器。
MCP安全风险
授予AI代理访问外部系统会带来安全风险[4]。
虽然有数千个可用的MCP服务器,但你在选择它们时应谨慎。只使用来自可信来源的MCP服务器,以避免恶意代码或未检测到的漏洞。
另一个风险是提示注入。例如,使用网络搜索工具时,LLM可能会从不可靠的网站注入恶意文本。运行代码或授予你的代理访问文件系统时要谨慎。一些工具最好在沙箱、容器或虚拟机中运行。
Agent Skills
Anthropic在2025年末开发了Agent Skills格式并将其作为开放标准发布[5]。从那时起,大多数智能代理AI工具都采用了它,包括Codex、Antigravity、Gemini CLI、Cursor、opencode、GitHub Copilot等。
技能用于教导AI代理如何执行特定任务或工作流程。像工具一样,技能扩展了AI代理的能力。虽然技能与工具相似,但它们不是工具。它们不执行操作。相反,它们通过提示来塑造代理的行为。
Agent Skills如何工作
技能是一个包含存储在SKILL.md文件中的结构化指令集的文件夹[6]。它必须定义以下内容:
- 技能的名称
- 技能的简短描述以及何时使用它
- 技能的内容,包括代理应遵循的指令、规则、模板和示例
作为最小工作示例,SKILL.md文件包含YAML前置内容 中的元数据,主要内容使用Markdown语法:
markdown
---
name: skill-name
description: A description of what this skill does and when to use it.
---
# Content of the Skill
Main instructions in Markdown that describe what you want the agent to do.
技能文件夹可以包含三个可选的子文件夹,称为scripts、references和assets,它们可以包含额外的代码、文档、模板、文件等,这些可以在SKILL.md文件中引用。
skill-name/
└── SKILL.md # Required
└── scripts/ # Optional (contains executable code)
└── references/ # Optional (contains additional documentation)
└── assets/ # Optional (contains static resources)
启动时,SKILL.md文件被解析,技能的名称和YAML前置内容中的描述始终加载到代理的上下文窗口中。例如,Claude的系统提示包含以下XML语法,以告知LLM所有可用的技能:
xml
<available_skills>
<skill>
<name>skill-name</name>
<description>A description of what this skill does and when to use it.</description>
</skill>
</available_skills>
基于其名称和描述,代理可以决定是否使用技能。如果是,技能的主体被读取并注入到LLM的上下文窗口中。技能内容中引用的任何可选文件仅在需要时加载。
Anthropic将这种仅将技能的必要信息加载到LLM上下文窗口的三级系统称为"渐进式披露",它尝试使用尽可能少的token(元数据 > 内容 > 可选文件)[7]。
有两种主要方法将技能集成到AI代理中:
基于文件系统的代理 可以访问计算机的文件系统。它们通过发出终端命令来读取技能,例如cat skill-name/SKILL.md。
基于工具的代理 调用专门设计用于读取技能的技能工具。例如,代理可能这样调用skill工具:skill({ name: "skill-name"})
技能非常适合纳入特定领域或公司的知识。例如,Anthropic在GitHub上发布了他们的brand-guidelines技能。此技能解释如何使用他们的官方品牌颜色和排版。
为了说明,以下是Anthropic的brand-guidelines/SKILL.md的摘录,根据Apache 2.0许可:
markdown
---
name: brand-guidelines
description: Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
license: Complete terms in LICENSE.txt
---
# Anthropic Brand Styling
## Overview
To access Anthropic's official brand identity and style resources, use this skill.
**Keywords**: branding, corporate identity, visual identity, post-processing, styling, brand colors, typography, Anthropic brand, visual formatting, visual design
## Brand Guidelines
### Colors
**Main Colors:**
- Dark: `#141413` - Primary text and dark backgrounds
- Light: `#faf9f5` - Light backgrounds and text on dark
- Mid Gray: `#b0aea5` - Secondary elements
- Light Gray: `#e8e6dc` - Subtle backgrounds
**Accent Colors:**
- Orange: `#d97757` - Primary accent
- Blue: `#6a9bcc` - Secondary accent
- Green: `#788c5d` - Tertiary accent
### Typography
- **Headings**: Poppins (with Arial fallback)
- **Body Text**: Lora (with Georgia fallback)
- **Note**: Fonts should be pre-installed in your environment for best results
...
这是创建专业图像、PowerPoint演示文稿、产品模型、应用程序和网页的可重用技能的完美示例。
虽然我们自己创建项目和公司特定的技能是有意义的,但我们也可以从可用技能的广阔生态系统中安装预制技能。这允许我们纳入来自开源社区的特定领域专业知识!
AGENTS.md
AGENTS.md文件,在Anthropics世界中也称为CLAUDE.md,是一个Markdown文件,用于通过向LLM的上下文窗口添加信息来修改AI代理的行为[8]。OpenAI于2025年末首次引入它,此后它已成为一种开放格式。
这个简单的文件用于指导编码代理。它专门用于编程任务,相当于AI代理的README.md文件。大多数AI编码代理都支持它,包括Codex、Cursor、Gemini CLI、opencode、GitHub Copilot、Windsurf等。
AGENTS.md文件位于存储库的根目录中。它告诉AI如何处理项目的代码库,并在每个会话中加载一次。
下面是这个文件可能的样子:
markdown
# Sample AGENTS.md file
## Dev environment tips
- Use `pnpm dlx turbo run where <project_name>` to jump to a package instead of scanning with `ls`.
- Run `pnpm install --filter <project_name>` to add the package to your workspace so Vite, ESLint, and TypeScript can see it.
- Use `pnpm create vite@latest <project_name> -- --template react-ts` to spin up a new React + Vite package with TypeScript checks ready.
- Check the name field inside each package's package.json to confirm the right name---skip the top-level one.
## Testing instructions
- Find the CI plan in the .github/workflows folder.
- Run `pnpm turbo run test --filter <project_name>` to run every check defined for that package.
- From the package root you can just call `pnpm test`. The commit should pass all tests before you merge.
- To focus on one step, add the Vitest pattern: `pnpm vitest run -t "<test name>"`.
- Fix any test or type errors until the whole suite is green.
- After moving files or changing imports, run `pnpm lint --filter <project_name>` to be sure ESLint and TypeScript rules still pass.
- Add or update tests for the code you change, even if nobody asked.
## PR instructions
- Title format: [<project_name>] <Title>
- Always run `pnpm lint` and `pnpm test` before committing.
以下是AGENTS.md文件可以包含的内容示例:
- 项目概述
- 构建和测试命令
- 代码风格指南和命名约定
- 代码审查标准
- 安全考虑
在Claude Code中,你可以使用/init命令基于当前项目结构创建启动CLAUDE.md文件。
MCP vs. Agent Skills vs. AGENTS.md:何时使用每个
以下是总结和一些关于何时使用每个的建议。
何时使用工具
工具将LLM连接到外部系统。MCP是一种开放格式,使工具互操作。你可以在网上找到许多MCP服务器。
当代理需要:
- 通过网络搜索访问现实世界信息
- 执行精确计算
- 运行代码,如Python或JavaScript
- 查询数据库,如SQL数据库
- 与文件或第三方API交互
何时使用Agent Skills
当你不想重复创建相同的提示词时使用技能。当你不想自己创建详细的提示词,而是想使用别人的专业知识时,你也可以使用技能。SKILLS.md文件及其文件夹结构是一种开放格式,使技能互操作。你可以在网上找到许多技能。
例如,当代理需要:
- 遵循特定领域的专业知识
- 采用公司特定的风格或遵循公司政策
- 遵循特定模板进行可重复的工作流程(例如,每周销售数据分析或季度财务报告)
- 学习模型训练数据中未包含的新能力
何时使用AGENTS.md
在你的编码项目中使用此文件,类似于README.md,但用于AI编码代理。此文件是项目特定的,专用于编程任务。
当代理需要:
- 拥有关于项目的额外知识,这些知识尚未包含在文件中
- 你希望指导AI编码代理遵循特定指南(如代码风格、构建和测试步骤、命名约定等)
结合MCP和Agent Skills
技能和MCP并不相互排斥。通常,它们被结合使用。例如,你可能安装"Supabase MCP服务器"来访问你的数据库。为了充分利用这些数据,你可以安装"Supabase Postgres最佳实践"技能,该技能教导AI代理使用Postgres的规则和指南。
结论
使用工具增强LLM的能力。MCP是使工具、提示词和资源对智能代理AI普遍可访问的协议。添加MCP服务器时要小心潜在的安全风险。
Agent Skills是在触发时加载的可重用提示词。具体来说,技能是必须包含SKILL.md Markdown文件的文件夹。它们用于添加特定领域的专家知识或公司特定的指南。
AGENTS.md文件,在Anthropic的世界中称为CLAUDE.md,是AI的README文件的等效物。它是一个静态Markdown文件,位于项目存储库的根目录,并在会话开始时加载一次。它用于指导AI编码工具。
最后,下表总结了三个开放标准的关键点。

MCP vs. Agent Skills vs. AGENTS.md摘要。作者提供的图片
参考资料
1\] L. Eversberg (2026), [*Understanding Large Language Models and Generative AI: Inside the Technology Behind the Hype*](https://www.amazon.com/dp/B0GJ6RRJD3), *2nd Edition*
\[2\] S. G. Patil, H. Mao, F. Yan, and others (2025), [The Berkeley Function Calling Leaderboard (BFCL): From Tool Use to Agentic Evaluation of Large Language Models](https://openreview.net/pdf?id=2GmDdhBdDk), *ICML*
\[3\] Model Context Protocol Specification: