目录

一、MCP 之后,我们还需要什么?

二、什么是 Agent Skills?

三、Agent Skills 对比MCP

四、实战总结


一、MCP 之后,我们还需要什么?

简单来说,过去我们用提示词(prompt)教 AI 做事,现在用 Agent Skills 可以把提示词 + 资源打包成可复用、可共享的技能包,更高效、更可靠。


MCP(Model Context Protocol)由 Anthropic 团队提出,其核心设计理念是标准化智能体与外部工具/资源的通信方式。想象一下,你的智能体需要访问文件系统、数据库、GitHub、Slack 等各种服务。传统做法是为每个服务编写专门的适配器,这不仅工作量大,而且难以维护。MCP 通过定义统一的协议规范,让所有服务都能以相同的方式被访问。

MCP 的设计哲学是"上下文共享"。它不仅仅是一个远程过程调用协议,更重要的是它允许智能体和工具之间共享丰富的上下文信息。让我们回顾一个典型的 MCP 使用场景:

from hello_agents import ReActAgent, HelloAgentsLLM
from hello_agents.tools import MCPTool
 
llm = HelloAgentsLLM()
agent = ReActAgent(name="数据分析助手", llm=llm)
 
# 连接到数据库 MCP 服务器
db_mcp = MCPTool(server_command=["python", "database_mcp_server.py"])
agent.add_tool(db_mcp)
 
# 智能体现在可以访问数据库了
response = agent.run("查询员工表中薪资最高的前10名员工")
 

这段代码工作得很好,智能体成功连接到了数据库。但当你尝试处理更复杂的任务时,会发现一些微妙的问题:

# 一个更复杂的需求
response = agent.run("""
分析公司内部谁的话语权最高?
需要综合考虑:
1. 管理层级和下属数量
2. 薪资水平和涨薪幅度
3. 任职时长和稳定性
4. 跨部门影响力
"""

此时,你会遇到两个根本性的问题:

第一个问题是上下文爆炸。为了让智能体能够灵活查询数据库,MCP 服务器通常会暴露数十甚至上百个工具(不同的表、不同的查询方法)。这些工具的完整 JSON Schema 在连接建立时就会被加载到系统提示词中,可能占用数万个 token。据社区开发者反馈,仅加载一个 Playwright MCP 服务器就会占用 200k 上下文窗口的 8%,这在多轮对话中会迅速累积,导致成本飙升和推理能力下降。

第二个问题是能力鸿沟。MCP 解决了"能够连接"的问题,但没有解决"知道如何使用"的问题。拥有数据库连接能力,不等于智能体知道如何编写高效且安全的 SQL;能够访问文件系统,不意味着它理解特定项目的代码结构和开发规范。这就像给一个新手程序员开通了所有系统的访问权限,但没有提供操作手册和最佳实践。

二、什么是 Agent Skills?

1. 核心设计理念

Agent Skills 是一种标准化的程序性知识封装格式。如果说 MCP 为智能体提供了"手"来操作工具,那么 Skills 就提供了"操作手册"或"SOP(标准作业程序)",教导智能体如何正确使用这些工具。

Agent Skills 的工作原理

Agent Skills 的关键是渐进式披露,分三层加载:

层级 1:元数据 -- AI 先读取所有技能的元数据(name 和 description),判断任务是否相关,这些元数据始终在系统提示中。

层级 2:加载核心指令 -- 如果相关,AI 自动读取 SKILL.md 的正文内容,获取详细指导。

层级 3:加载资源文件 -- 只在需要时读取额外文件(如脚本、示例),或通过工具执行脚本。

对比:

MCP 的职责:提供标准化的访问接口,让智能体能够"够得着"外部世界的数据和工具"

Skills 的职责:提供领域专业知识,告诉智能体在特定场景下"如何组合使用这些工具"

图  Agent Skills 渐进式披露三层架构

第一层:元数据(Metadata)
在 Skills 的设计中,每个技能都存放在一个独立的文件夹中,核心是一个名为 SKILL.md 的 Markdown 文件。这个文件必须以 YAML 格式的 Frontmatter 开头,定义技能的基本信息。

当智能体启动时,它会扫描所有已安装的技能文件夹,仅读取每个 SKILL.md 的 Frontmatter 部分,将这些元数据加载到系统提示词中。根据实测数据,每个技能的元数据仅消耗约 100 个 token。即使你安装了 50 个技能,初始的上下文消耗也只有约 5,000 个 token。

这与 MCP 的工作方式形成了鲜明对比。在典型的 MCP 实现中,当客户端连接到一个服务器时,通常会通过 tools/list 请求获取所有可用工具的完整 JSON Schema,可能立即消耗数万个 token。

第二层:技能主体(Instructions)
当智能体通过分析用户请求,判断某个技能与当前任务高度相关时,它会进入第二层加载。此时,智能体会读取该技能的完整 SKILL.md 文件内容,将详细的指令、注意事项、示例等加载到上下文中。

此时,智能体获得了完成任务所需的全部上下文:数据库结构、查询模式、注意事项等。这部分内容的 token 消耗取决于指令的复杂度,通常在 1,000 到 5,000 个 token 之间。

第三层:附加资源(Scripts & References)
对于更复杂的技能,SKILL.md 可以引用同一文件夹下的其他文件:脚本、配置文件、参考文档等。智能体仅在需要时才加载这些资源。

举例:一个 PDF 处理技能的文件结构可能是:

skills/pdf-processing/
├── SKILL.md              # 主技能文件
├── parse_pdf.py          # PDF 解析脚本
├── forms.md              # 表单填写指南(仅在填表任务时加载)
└── templates/            # PDF 模板文件
    ├── invoice.pdf
    └── report.pdf

在 SKILL.md 中,可以这样引用附加资源:

  • 当需要执行 PDF 解析时,智能体会运行 parse_pdf.py 脚本

  • 当遇到表单填写任务时,才会加载 forms.md 了解详细步骤

  • 模板文件只在需要生成特定格式文档时访问

三、Agent Skills 对比MCP

实战:假设你要构建一个智能体来帮助团队进行代码审查

MCP的工作:MCP 让智能体"能够"访问 GitHub,能够调用这些 API。但它不知道"应该"做什么。

# MCP 提供对 GitHub 的标准化访问
github_mcp = MCPTool(server_command=["npx", "-y", "@modelcontextprotocol/server-github"])
 
# MCP 暴露的工具(简化示例):
# - list_pull_requests(repo, state)
# - get_pull_request_details(pr_number)
# - list_pr_comments(pr_number)
# - create_pr_comment(pr_number, body)
# - get_file_content(repo, path, ref)
# - list_pr_files(pr_number)

Skill的职责:Skills 告诉智能体"应该"做什么、如何组织审查流程、需要关注哪些公司特定的规范。它是领域知识和最佳实践的容器。

---
name: code-review-workflow
description: 执行标准的代码审查流程,包括检查代码风格、安全问题、测试覆盖率等
---
 
# 代码审查工作流
 
## 审查清单
 
当执行代码审查时,按以下步骤进行:
 
1. **获取 PR 信息**:调用 `get_pull_request_details` 了解变更背景
2. **分析变更文件**:调用 `list_pr_files` 获取文件列表
3. **逐文件审查**:
   - 对于 `.py` 文件:检查是否符合 PEP 8,是否有明显的性能问题
   - 对于 `.js/.ts` 文件:检查是否有未处理的 Promise,是否使用了废弃的 API
   - 对于测试文件:验证是否覆盖了新增的代码路径
4. **安全检查**:
   - 是否硬编码了敏感信息(密钥、密码)
   - 是否有 SQL 注入或 XSS 风险
5. **提供反馈**:
   - 严重问题:使用 `create_pr_comment` 直接评论
   - 建议改进:在总结中提出
 
## 公司特定规范
 
- 所有数据库查询必须使用参数化查询
- API 端点必须有权限验证装饰器
- 新功能必须附带单元测试(覆盖率 > 80%)
 
## 示例评论模板
 
**严重问题**:
 
⚠️ 安全风险:第 45 行直接拼接 SQL 字符串,存在注入风险。
建议改用参数化查询:`cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))`

四、实战总结

1)分层架构是必然趋势:随着智能体系统复杂度增加,"连接层"和"知识层"的分离是不可避免的

2)上下文效率是核心矛盾:Skills 的渐进式披露机制将 token 消耗降低 90% 以上,这是其最大的技术优势

3)领域知识的民主化:Skills 让非开发者也能贡献智能体能力,这将极大拓展 AI 应用的边界

4)混合架构是最佳实践:在企业级应用中,MCP 提供基础设施连接,Skills 提供业务逻辑,两者结合才能构建高效、可维护的智能体系统

5)对于外部服务连接(数据库、API、云服务),优先使用 MCP

6)对于复杂工作流(多步骤任务、领域专业知识),优先使用 Skills

7)在上下文受限的场景(长对话、大量工具),使用 Skills 进行渐进式管理

8)构建企业级智能体时,采用 MCP + Skills 的分层架构
 

Logo

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

更多推荐