Skip to Content

06a - 工具到 Skills 的概念层次

本文是《AI Agent 实战手册》第 6 章第 1 节。 上一节:高级 CLI 技巧 | 下一节:Claude Code Skills 创建教程

概述

AI Agent 的能力并非铁板一块,而是由多个层次的组件叠加而成。从最底层的原子工具调用,到 MCP 协议连接外部系统,再到 Skills 封装可复用工作流,最终由 Subagent 实现并行编排——这四层构成了 2025-2026 年 Agentic 开发的核心能力栈。理解这个层次关系,是高效使用 Claude Code、Kiro 等 AI 编码助手的前提。


1. 四层能力模型总览

分层架构图

┌─────────────────────────────────────────────────────────┐ │ 第 4 层:Subagents │ │ 独立上下文 · 并行执行 · 任务编排 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 调试专家 │ │ 重构专家 │ │ 安全审查 │ ... │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ ├────────┼─────────────┼─────────────┼─────────────────────┤ │ 第 3 层:Skills │ │ 可复用工作流 · 渐进式加载 · 领域专业知识 │ │ ┌──────────────────────────────────────────┐ │ │ │ SKILL.md + 脚本 + 模板 + 资源文件 │ │ │ └──────────────────┬───────────────────────┘ │ │ │ │ ├──────────────────────┼───────────────────────────────────┤ │ 第 2 层:MCP │ │ 标准化协议 · 外部系统连接 · 按需数据获取 │ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ GitHub │ │ 数据库 │ │ Slack │ │ 浏览器 │ ... │ │ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ │ │ │ │ │ │ ├───────┼───────────┼───────────┼───────────┼──────────────┤ │ 第 1 层:Tools │ │ 原子操作 · 始终可用 · 单一职责 │ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │ │ Read │ │ Edit │ │ Bash │ │ Grep │ │ Glob │ ... │ │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ └─────────────────────────────────────────────────────────┘

类比理解:餐厅模型

层次餐厅类比AI Agent 对应核心特征
Tools厨房设备(刀、锅、烤箱)read_file()edit_file()bash()原子操作,单一职责
MCP供应链(从农场、供应商获取食材)GitHub Server、数据库 Server、Slack Server连接外部系统,按需获取数据
Skills菜谱(组合食材和设备的步骤说明)SKILL.md + 脚本 + 模板可复用工作流,一致性输出
Subagents专业厨师(甜点师、烧烤师、冷菜师)调试 Agent、重构 Agent、安全审查 Agent独立上下文,并行处理

工具推荐

工具用途价格适用场景
Claude Code终端 Agentic 编码助手,原生支持四层能力Pro $20/月,Max $100-200/月日常开发、项目构建
KiroSpec-Driven Agentic IDE,支持 Skills 和 Steering免费预览(2025.7 起)规范驱动开发
CursorAI IDE,支持 MCP 和自定义规则Hobby 免费,Pro $20/月IDE 内 AI 辅助
WindsurfAI IDE,支持 MCP 集成免费基础版,Pro $15/月轻量 AI 辅助
VS Code + CopilotGitHub Copilot Agent 模式$10/月起代码补全 + Agent

2. 第 1 层:Tools(原子工具)

什么是 Tools

Tools 是 AI Agent 能力栈的最底层——每个 Tool 执行一个原子操作,职责单一、接口明确。它们始终驻留在 Agent 的上下文窗口中,随时可被调用。

Claude Code 内置工具清单

工具功能示例
Read读取文件内容读取 src/index.ts
Edit编辑文件内容修改函数实现
Write创建或覆写文件创建新组件
Bash执行 shell 命令npm testgit status
Grep正则搜索文件内容搜索所有 TODO 注释
Glob按模式匹配文件路径查找所有 .test.ts 文件
WebSearch搜索网络信息查找 API 文档
WebFetch获取网页内容读取在线文档

关键特征

  1. 始终可用:Tools 在 Agent 启动时就加载到上下文窗口,不需要额外触发
  2. 原子性:每个 Tool 只做一件事,通过组合实现复杂操作
  3. 占用上下文:所有 Tool 的定义始终占据上下文窗口空间
  4. 无状态:每次调用独立,不保留跨调用状态

提示词模板

请使用以下工具完成任务: 1. 用 Grep 搜索所有包含 [关键词] 的文件 2. 用 Read 读取找到的文件 3. 用 Edit 修改 [具体修改内容] 4. 用 Bash 运行 [验证命令] 确认修改正确

3. 第 2 层:MCP(模型上下文协议)

什么是 MCP

MCP(Model Context Protocol)是 Anthropic 于 2024 年底发布的开放协议,为 AI Agent 连接外部系统提供了标准化接口。可以把 MCP 理解为”AI Agent 的 USB-C 接口”——一个协议连接所有外部工具和数据源。

截至 2026 年初,MCP 已成为增长最快的开源 AI 项目之一,月 SDK 下载量超过 9700 万次,活跃 Server 超过 10,000 个。

MCP 与 Tools 的区别

维度Tools(内置工具)MCP(外部连接)
数据来源本地文件系统外部系统(GitHub、数据库、API)
加载方式始终在上下文中按需连接,动态加载
配置方式无需配置需要配置 Server 地址和认证
扩展性固定集合无限扩展(任何人可开发 Server)
协议工具内部实现标准化 JSON-RPC + 传输层

常见 MCP Server 分类

类别代表 Server用途价格
代码托管GitHub MCPPR 管理、Issue 追踪、代码搜索免费(GitHub 账户)
数据库PostgreSQL MCP、SQLite MCP查询数据、管理 schema免费(开源)
项目管理Linear MCP、Jira MCP任务管理、Sprint 追踪免费(开源 Server)
通信Slack MCP、Discord MCP发送消息、读取频道免费(开源 Server)
浏览器Playwright MCP、Puppeteer MCP网页自动化、截图、测试免费(开源)
文档Notion MCP、Google Drive MCP文档读写、知识库访问免费(开源 Server)
监控Sentry MCP、Datadog MCP错误追踪、性能监控免费(开源 Server)

操作步骤:添加 MCP Server

步骤 1:在 Claude Code 中添加远程 Server

# 添加远程 HTTP Server(如 Notion) claude mcp add --transport http notion https://mcp.notion.com/mcp # 添加本地 stdio Server(如 PostgreSQL) claude mcp add --transport stdio postgres \ --env DATABASE_URL=$DB_URL \ -- npx -y @bytebase/dbhub

步骤 2:在 Kiro 中配置 MCP

.kiro/settings.json 或通过 Kiro Powers 面板添加 MCP Server 配置。

步骤 3:验证连接

# 在 Claude Code 中查看已连接的 MCP Server /mcp

提示词模板

请通过 MCP 连接 [服务名称],完成以下操作: 1. 从 [数据源] 获取 [具体数据] 2. 分析数据并 [处理要求] 3. 将结果 [输出方式]

详见 MCP 概念入门


4. 第 3 层:Skills(技能包)

什么是 Skills

Skills 是可复用的能力扩展包,将指令、脚本、模板和资源文件打包成一个文件夹,AI Agent 在遇到相关任务时自动发现并加载。Skills 的核心价值是一致性——同样的任务,每次都以相同的质量标准完成。

Anthropic 于 2025 年 10 月正式发布 Claude Skills,随后 Kiro 也引入了兼容的 Agent Skills 标准。Skills 遵循开放的 Agent Skills 标准,可跨平台使用。

Skills 与 Prompts 的区别

维度Prompts(提示词)Skills(技能包)
生命周期单次对话,用完即弃持久化存储,跨会话复用
加载方式用户手动输入Agent 自动发现并加载
结构自由文本SKILL.md + 脚本 + 资源
一致性每次可能不同每次输出一致
共享复制粘贴Git 提交,团队共享
上下文管理始终占用渐进式加载,按需占用

渐进式加载机制

Skills 采用三级加载策略,高效管理上下文窗口:

第 1 级:元数据加载(~100 tokens) ├── name: "code-reviewer" └── description: "Review code for best practices..." ↓ Agent 判断是否相关 第 2 级:完整指令加载(<5K tokens) └── SKILL.md 中的详细指令 ↓ 需要时才加载 第 3 级:资源文件加载(按需) ├── 脚本文件 ├── 模板文件 └── 参考文档

这种设计的关键优势:不相关的 Skills 只占用约 100 tokens 的元数据空间,不会像 Tools 那样始终占满上下文窗口。

Skills 的存放位置

Claude Code:

位置路径作用域
项目级.claude/skills/当前项目,提交到 Git 共享
全局级~/.claude/skills/所有项目,个人使用

Kiro:

位置路径作用域
项目级.kiro/skills/当前工作区
全局级~/.kiro/skills/所有工作区

Skill 文件结构示例

code-reviewer/ ├── SKILL.md # 核心文件:元数据 + 指令 ├── checklist.md # 附属资源:审查清单 └── report-template.md # 附属资源:报告模板

SKILL.md 内容示例:

--- name: code-reviewer description: Review code for best practices, security issues, and performance. Use when reviewing PRs or analyzing code quality. --- # Code Review Instructions ## Process 1. Scan all changed files 2. Check for security vulnerabilities (SQL injection, XSS, auth bypass) 3. Evaluate performance implications 4. Verify error handling completeness 5. Check test coverage ## Output Format Provide a structured report with: - 🔴 Critical issues (must fix) - 🟡 Warnings (should fix) - 🟢 Suggestions (nice to have) - ✅ What's done well

提示词模板

请创建一个 Skill,用于 [任务描述]: 1. 在 [.claude/skills/ 或 .kiro/skills/] 下创建文件夹 [skill-name]/ 2. 编写 SKILL.md,包含: - name 和 description 元数据 - 详细的执行步骤 - 输出格式要求 3. 添加必要的辅助文件(模板、脚本等)

5. 第 4 层:Subagents(子代理)

什么是 Subagents

Subagents 是由主 Agent 生成的独立 AI 实例,每个 Subagent 拥有自己的上下文窗口、权限范围和专业能力。它们是能力栈的最高层——通过编排多个专业化的 Subagent,实现复杂任务的并行处理。

为什么需要 Subagents

问题没有 Subagent有 Subagent
长任务污染上下文调试信息占满主对话调试在独立上下文中进行
串行执行慢逐个处理子任务多个 Subagent 并行工作
权限过宽主 Agent 拥有所有权限每个 Subagent 只有必要权限
专业度不足一个 Agent 处理所有领域每个 Subagent 专注一个领域

Subagent 工作模式

主 Agent(编排者) ├── 分析任务 → 拆分为子任务 ├── 生成 Subagent 1(调试专家) │ ├── 独立上下文窗口 │ ├── 使用 Read + Bash + Grep 工具 │ ├── 加载 "debugger" Skill │ └── 返回:根因分析 + 修复方案 ├── 生成 Subagent 2(安全审查) │ ├── 独立上下文窗口 │ ├── 使用 Read + Grep 工具(只读) │ ├── 加载 "security-review" Skill │ └── 返回:安全漏洞报告 └── 综合所有 Subagent 结果 → 输出最终方案

Claude Code 中的 Subagent 定义

--- name: debugger description: Use immediately when errors occur. Find root cause, implement minimal fix, and verify. tools: Read, Edit, Bash, Grep, Glob model: sonnet --- You are a debugging specialist. ## Process 1. Capture exact error and reproduction steps 2. Locate the failing code area 3. Implement minimal, safe fix 4. Verify with tests

Kiro 中的自定义 Agent

Kiro 支持在 .kiro/agents/ 目录下定义自定义 Agent,包含系统提示词、模型选择、工具访问权限和 MCP Server 集成。Kiro 会根据 Agent 的描述自动选择合适的 Agent,也可以手动指定。

适用场景

场景推荐 Subagent 配置
代码调试只读 + Bash 权限,加载 debugger Skill
安全审查只读权限,加载 security-review Skill
大规模重构读写权限,加载 refactoring Skill
依赖分析只读 + Bash 权限,分析 package.json / Cargo.toml
文档生成读写权限,加载 documentation Skill
并行测试多个 Subagent 分别测试不同模块

6. 四层协作:端到端工作流

实战场景:AI 辅助代码审查

以下展示四层能力如何协同工作:

用户:"审查这个 PR 的代码质量和安全性" 主 Agent 分析任务,决定使用 Subagent 并行处理 ├── Subagent 1:代码质量审查 [第 4 层:Subagents] │ ├── 加载 "code-reviewer" Skill [第 3 层:Skills] │ ├── 通过 GitHub MCP 获取 PR diff [第 2 层:MCP] │ └── 用 Read + Grep 分析代码 [第 1 层:Tools] ├── Subagent 2:安全审查 │ ├── 加载 "security-review" Skill [第 3 层:Skills] │ ├── 通过 GitHub MCP 获取文件 [第 2 层:MCP] │ └── 用 Grep 搜索危险模式 [第 1 层:Tools] └── 主 Agent 综合两个 Subagent 的报告 └── 通过 GitHub MCP 发布 Review 评论

层次选择决策树

你需要 AI Agent 做什么? ├── 执行单个原子操作(读文件、运行命令) │ └── → 使用 Tools(第 1 层) ├── 访问外部系统数据(GitHub、数据库、Slack) │ └── → 使用 MCP(第 2 层) ├── 重复执行某个标准化工作流 │ └── → 创建 Skill(第 3 层) └── 复杂任务需要并行处理或隔离上下文 └── → 使用 Subagent(第 4 层)

7. 上下文窗口管理视角

理解四层能力的另一个关键维度是上下文窗口占用

层次上下文占用策略影响
Tools始终占用(工具定义常驻)基础开销,不可避免
MCP按需加载(连接时才占用)数据量可控,用完释放
Skills渐进式加载(元数据 → 指令 → 资源)最高效,不相关 Skill 仅占 ~100 tokens
Subagents独立上下文窗口不占用主 Agent 上下文

这就是为什么 Skills 比直接在 CLAUDE.md 中写所有指令更好——Skills 只在需要时加载,而 CLAUDE.md 的内容始终占用上下文空间。

提示词模板

我的项目需要优化上下文窗口使用。请帮我: 1. 将 CLAUDE.md 中的 [重复工作流描述] 提取为独立 Skill 2. 将常用的外部系统访问配置为 MCP Server 3. 为 [复杂任务] 设计 Subagent 编排方案 目标:主上下文只保留核心项目信息,专业能力按需加载。

8. 跨平台对比:Claude Code vs Kiro vs Cursor

能力Claude CodeKiroCursor
Tools(内置工具)✅ 完整(Read/Edit/Bash/Grep/Glob 等)✅ 完整(IDE 集成工具)✅ 完整(IDE 集成工具)
MCP 支持✅ 原生支持,CLI 配置✅ 原生支持,Powers 面板✅ 支持
Skills 格式SKILL.md(YAML 前置 + Markdown)SKILL.md(兼容 Agent Skills 标准).cursorrules(自定义格式)
Skills 存放.claude/skills/ + ~/.claude/skills/.kiro/skills/ + ~/.kiro/skills/项目根目录 .cursorrules
Skills 加载渐进式(元数据 → 指令 → 资源)渐进式(元数据 → 按需加载)启动时全量加载
Subagents✅ 原生支持,可自定义✅ 支持自定义 Agent(.kiro/agents/⚠️ 有限支持
Hooks/自动化✅ Hooks(生命周期事件触发)✅ Hooks(文件事件 + 工具事件)❌ 不支持
Steering 规则CLAUDE.md.kiro/steering/.cursorrules
价格Pro $20/月起免费预览Pro $20/月起

实战案例:从零构建四层能力栈

场景

你是一个全栈开发者,正在用 Claude Code 开发一个 SaaS 项目。项目使用 Next.js + Prisma + PostgreSQL,团队有 3 人。

第 1 步:配置 Tools 层(开箱即用)

Claude Code 的内置 Tools 无需配置,启动即可使用:

cd my-saas-project claude # Claude Code 自动拥有 Read/Edit/Bash/Grep/Glob 等工具 > 分析项目结构,列出所有 API 路由

第 2 步:连接 MCP 层

# 连接 GitHub,让 Claude Code 能直接操作 PR 和 Issue claude mcp add --transport http github https://api.githubcopilot.com/mcp/ # 连接 PostgreSQL,让 Claude Code 能直接查询数据库 claude mcp add --transport stdio postgres \ --env DATABASE_URL=postgresql://localhost:5432/mydb \ -- npx -y @bytebase/dbhub # 连接 Sentry,让 Claude Code 能查看生产错误 claude mcp add --transport http sentry https://mcp.sentry.dev/sse

第 3 步:创建 Skills 层

创建团队共享的代码审查 Skill:

mkdir -p .claude/skills/pr-reviewer

编写 .claude/skills/pr-reviewer/SKILL.md

--- name: pr-reviewer description: Review pull requests for our Next.js + Prisma project. Use when reviewing PRs or before merging code. --- # PR Review Instructions ## Tech Stack Context - Next.js 14 App Router - TypeScript strict mode - Prisma ORM + PostgreSQL - Tailwind CSS ## Review Checklist 1. **类型安全**:检查是否有 `any` 类型、缺少类型注解 2. **API 路由**:验证输入校验、错误处理、认证检查 3. **数据库**:检查 N+1 查询、缺少索引、事务使用 4. **安全**:SQL 注入、XSS、认证绕过、密钥泄露 5. **性能**:不必要的重渲染、大数据量处理、缓存策略 6. **测试**:新功能是否有对应测试 ## Output Format 按严重程度分类输出: - 🔴 **必须修复**:安全漏洞、数据丢失风险 - 🟡 **建议修复**:性能问题、代码规范 - 🟢 **可选优化**:代码风格、可读性

第 4 步:配置 Subagent 层

创建调试专家 Subagent:

mkdir -p .claude/agents

编写 .claude/agents/debugger.md

--- name: debugger description: Debugging specialist for production errors. Use when Sentry reports errors or tests fail. tools: Read, Bash, Grep, Glob model: sonnet --- You are a debugging specialist for our Next.js + Prisma project. ## Process 1. Read the error message and stack trace 2. Use Grep to find related code 3. Identify root cause 4. Propose minimal fix with explanation 5. Suggest a test to prevent regression ## Rules - Never modify production database - Always explain WHY the bug occurred - Prefer minimal changes over refactoring

案例分析

通过这四步,你的 AI 编码助手从一个”聊天机器人”变成了一个完整的开发团队:

  • Tools 提供基础操作能力(读写文件、执行命令)
  • MCP 连接了 GitHub、数据库、Sentry 等外部系统
  • Skills 确保代码审查每次都按团队标准执行
  • Subagents 让调试工作在独立上下文中进行,不污染主对话

关键原则:从简单开始,按需叠加。不要一开始就配置所有层次,而是在遇到具体需求时逐层添加。


避坑指南

❌ 常见错误

  1. 把所有指令塞进 CLAUDE.md / Steering 文件

    • 问题:CLAUDE.md 内容始终占用上下文窗口,指令过多会挤压有效工作空间
    • 正确做法:只在 CLAUDE.md 中保留核心项目信息(技术栈、编码规范),将重复工作流提取为 Skills
  2. 不区分 MCP 和 Tools 的使用场景

    • 问题:试图用内置 Tools 访问外部系统(如手动 curl GitHub API),效率低且不可靠
    • 正确做法:外部系统访问一律通过 MCP Server,享受标准化认证和错误处理
  3. 过早引入 Subagents

    • 问题:简单任务也用 Subagent,增加了编排复杂度和 token 消耗
    • 正确做法:只在需要并行处理、上下文隔离或专业化分工时才使用 Subagent
  4. Skills 写得太宽泛

    • 问题:一个 Skill 试图覆盖太多场景,导致指令模糊、输出不一致
    • 正确做法:每个 Skill 聚焦一个具体工作流,宁可多创建几个专注的 Skill
  5. 忽略 Skills 的渐进式加载设计

    • 问题:在 SKILL.md 的 description 中写得太简略,Agent 无法判断何时加载
    • 正确做法:description 要清晰描述 Skill 的用途和触发条件,这是 Agent 自动发现的关键
  6. 混淆 Claude Code Skills 和 Kiro Steering

    • 问题:在 Kiro 中用 Steering 文件做 Skills 的事,或反过来
    • 正确做法:Steering 用于全局行为规则(“始终使用 TypeScript strict”),Skills 用于具体工作流(“按这个流程审查代码”)

✅ 最佳实践

  1. 遵循”从简单到复杂”的叠加原则:Tools → MCP → Skills → Subagents
  2. 将团队共享的 Skills 提交到 Git,确保一致性
  3. 为每个 MCP Server 配置最小必要权限
  4. Subagent 的 description 要精确,让主 Agent 能正确判断何时调用
  5. 定期审查 Skills 库,删除不再使用的 Skill,保持精简
  6. 把上下文窗口当作”公共资源”管理——Tools 常驻、Skills 按需、Subagents 独立

相关资源与延伸阅读

Skills 发现与安装

官方文档

GitHub 资源

社区

  • r/ClaudeAI  — Claude 用户社区,有 Skills 创建和分享的讨论
  • Book of Kiro  — Kiro 社区知识库,包含 Skills 和 Steering 的实战案例
  • Kiro Directory  — Kiro 资源聚合站,包含教程、指南和社区链接

参考来源


📖 返回 总览与导航 | 上一节:高级 CLI 技巧 | 下一节:Claude Code Skills 创建教程

Last updated on