智能体技能 (Agent Skills) 是一种模块化、可组合的能力单元,旨在扩展大语言模型(如 Claude)的功能边界。
- 基本定义:每个"Skill"不仅包含指令提示词(Prompt),还封装了元数据、执行逻辑脚本、参考资源及状态存储。
- 触发机制:基于场景匹配(Context Matching),Agent 能够自动识别并调用相应的技能包来完成任务。
- 核心价值主张:
在有限的上下文窗口(Context Window)约束下,Skills 通过按需加载机制,最大程度避免冗余信息干扰,让模型将宝贵的注意力资源(Attention)聚焦于当前问题的关键信息,实现“即时专家化”。
1.1 常见误解 vs. 正确认知
维度
❌ 常见误解
✅ 正确理解
形态
单个 Markdown 文件或一段 Prompt
功能完备的文件夹/模块
内容
仅包含自然语言指令
包含脚本、配置、数据、记忆等多维资产
作用
告诉 AI“怎么做”(理论)
赋予 AI“直接做”的能力(实践 + 理论)
交互
被动阅读
主动调用完整能力链(Toolchain)
1.2 Skills 的标准构成要素
一个成熟的 Skill 通常包含以下五类资产,形成闭环:
- 执行脚本 (Executables)
Python/Shell/JS脚本:处理具体计算、文件操作或 API 请求。- 作用:将模糊的自然语言意图转化为确定的代码执行。
- 参考资料 (References)
- API 文档片段、私有库源码、团队规范手册。
- 作用:提供 RAG(检索增强生成)所需的局部知识库,消除幻觉。
- 配置文件 (Configuration)
config.json/yaml:定义触发条件、参数校验规则、环境变量。- 作用:控制技能的激活阈值和行为模式。
- 数据资产 (Data Assets)
- 输入/输出模板(Templates)、Few-Shot 示例、标准响应格式。
- 作用:确保输出的一致性和结构化。
- 记忆存储 (Memory & State)
- 本地日志、SQLite 数据库、会话状态缓存。
- 作用:维持跨轮次的上下文连贯性,支持长期任务跟踪。
🧠 核心隐喻:Skills 让 Claude 不再是一个只会“读书”的学生,而是一个拥有全套工具箱的老练工程师。它不仅能看懂说明书,还能直接拿起扳手干活。
在构建企业级 Agent 时,纯靠通用模型面临三大结构性难题,Skills 提供了针对性的解法:
2.1 瓶颈一:上下文盲区 (Context Blindness)
- 表现:
- 模型不懂内部私有库、特定 API 接口或团队独有的编码规范。
- 每次对话需重复解释背景,且模型仍可能出现理解偏差或幻觉。
- 💡 Skills 解法 → 【参考技能 (Reference Skills)】
- 机制:将私有知识结构化封装。当任务涉及特定领域时,自动注入相关文档片段。
- 效果:消灭知识盲区,让模型瞬间具备“内部员工”的视野。
2.2 瓶颈二:流程真空 (Process Vacuum)
- 表现:
- 模型擅长单点任务(如“写个函数”),但在复杂工作流(多步骤、多工具、多决策节点)中表现不稳定。
- 缺乏标准化 SOP,导致每次执行路径随机,质量忽高忽低。
- 💡 Skills 解法 → 【工作流技能 + 自动化技能】
- 机制:预定义标准化的执行图谱(DAG),固化**实践路径。
- 效果:填补流程真空,将“即兴发挥”转变为“标准化作业”,确保结果可复现。
2.3 瓶颈三:执行焦虑 (Execution Anxiety)
- 表现:
- 面对高风险操作(数据库变更、生产部署、批量删改),开发者不敢放手让 AI 自主执行。
- 担心模型遗漏关键检查步骤或产生破坏性后果。
- 💡 Skills 解法 → 【验证技能 + 动态钩子 + 维护技能】
- 机制:
- 前置校验:在执行前强制运行检查脚本。
- 动态钩子 (Hooks):在关键节点插入人工确认或二次验证逻辑。
- 回滚机制:内置故障恢复预案。
- 效果:解除执行焦虑,建立可信的执行围栏(Guardrails)。
- 机制:
3.1 从“聊天机器人”到“数字同事”
Skills 的核心使命是将团队中“老司机”的隐性经验(Tacit Knowledge)转化为 AI 可理解的显式结构:
- 隐性知识:老员工脑子里的“遇到报错先查日志 A,再重启服务 B,最后通知 C"。
- 显式化:将其编写为带有判断逻辑和工具调用的 Skill 包。
- 程序化能力:最终变成 AI 可以稳定复现、7x24 小时执行的“程序”。
结论:Skills 让 AI 从通用的“百科全书式聊天机器人”,升级为熟悉你们团队做事方式、遵守团队规范的专属数字同事。
3.2 运作机制:百科全书 + 工具箱
当 Agent 面对专业领域问题时,单纯依赖预训练知识(通用世界知识)和松散的工具注册(MCP/Tools)往往不足以规划出高效方案。Skills 引入了双层检索与执行机制:
- 检索层(百科全书):
- 将专业领域的解决 SOP 整理成结构化的“书”(目录 + 章节)。
- Agent 遇到问题 -> 检索 Skills 目录 -> 定位对应章节(匹配最相关的 Skill)。
- 执行层(工具箱):
- 翻开章节 -> 读取自然语言描述的 SOP 步骤。
- 按图索骥 -> 调用该 Skill 包内绑定的具体工具(脚本/API)。
- 闭环反馈 -> 执行结果回填,修正后续步骤。
#
技能类型
核心用途 (Core Purpose)
典型示例 & 价值锚点 (Example & Value)
1
参考技能
(Reference)
消除认知盲区
教 Claude 正确使用内部工具、私有库及团队规范,防止幻觉。
🔹 示例:
• billing-lib:内置计费库的雷区清单与参数约束。
• frontend-design:团队专属的审美指南与组件库用法。
💡 价值:让模型瞬间具备“内部专家”视角,不再需要反复解释基础规范。
2
验证技能
(Verification)
强制结果闭环
在输出交付前,自动运行断言测试,确保结果的真实性与有效性。
🔹 示例:
• signup-flow-driver:模拟用户注册全流程,断言每一步的状态码与数据落库。
💡 价值:从“生成即结束”转变为“验证后交付”,让 AI 对最终结果负责,大幅降低人工复核成本。
3
数据技能
(Data)
赋能数据决策
连接业务数据源,提供表映射、指标计算与统计显著性分析能力。
🔹 示例:
• funnel-query:自动映射复杂的业务表名,生成优化后的 SQL。
• cohort-compare:自动标记数据差异的统计显著性(P-value)。
💡 价值:将通用 LLM 升级为“懂业务的分析师”,直接基于真实数据而非训练数据回答问题。
4
自动化技能
(Automation)
压缩重复劳动
将多步骤、高频次的日常流程压缩为一条自然语言指令。
🔹 示例:
• standup-post:自动拉取昨日提交/修复记录,只汇报“变化量”。
• weekly-recap:一键聚合周报素材并生成格式化文档。
💡 价值:实现“零成本”替代人工操作,释放人力专注于高价值创造。
5
脚手架技能
(Scaffolding)
统一代码规范
生成带有注释、**实践提醒及标准目录结构的代码框架。
🔹 示例:
• new-migration:生成数据库迁移脚本模板,并自动插入常见坑点(如锁表风险)的警告注释。
💡 价值:加速新人上手,确保全团队代码风格与架构规范的高度一致性。
6
审核技能
(Review)
系统化质量控制
以多维度、对抗性视角执行代码或方案审查,发现潜在隐患。
🔹 示例:
• adversarial-review:模拟黑客/挑剔用户视角,对代码进行多轮批判性审查,寻找边界条件漏洞。
💡 价值:替代低效的“人肉盯审”,提供客观、全面且不知疲倦的第二双眼睛。
7
工作流技能
(Workflow)
端到端交付闭环
编排复杂链路(PR→CI→部署→监控→回滚),实现全自动交付。
🔹 示例:
• babysit-pr:自动监测 CI 失败原因,智能重试或修复非逻辑错误。
• deploy-service:执行金丝雀发布,根据流量灰度指标自动决定推进或回滚。
💡 价值:让原本充满焦虑的发布过程变得“无聊”且可靠,极大提升交付吞吐量。
8
调查技能
(Investigation)
跨工具诊断根因
关联告警、日志、指标等多源数据,快速定位系统故障。
🔹 示例:
• log-correlator:输入报错时间窗,自动追踪请求 ID,串联网关日志、应用日志与数据库慢查询。
💡 价值:On-call 期间的“救命神器”,将平均修复时间(MTTR)从小时级缩短至分钟级。
9
维护技能
(Maintenance)
安全执行高危操作
在严格的安全围栏(确认机制/保护逻辑)下执行运维任务。
🔹 示例:
• resource-orphans:扫描孤立资源,必须在 Slack 发送二次确认卡片后,方可执行清理。
💡 价值:将高风险操作标准化、流程化,既利用了 AI 的效率,又保留了人类的最终控制权(Human-in-the-loop)。
在实际应用中,单一技能往往不足以解决复杂问题。高效的 Agent 通常是多种技能的组合编排:
1. “左脑 + 右脑”模式 (参考 + 自动化)
- 场景:生成符合团队规范的周报。
- 组合:
参考技能(读取团队周报模板与术语规范) +自动化技能(拉取数据并填充)。 - 效果:既保证了内容的准确性,又确保了格式的合规性。
2. “执行 + 监督”模式 (工作流 + 验证)
- 场景:生产环境数据库变更。
- 组合:
工作流技能(执行迁移脚本) +验证技能(变更后立即运行数据一致性校验)。 - 效果:形成自闭环,一旦验证失败自动触发回滚,无需人工干预。
3. “诊断 + 修复”模式 (调查 + 维护)
- 场景:服务器磁盘空间报警。
- 组合:
调查技能(分析大文件来源) +维护技能(在获得确认后清理临时文件)。 - 效果:从发现问题到解决问题的全自动链条,同时保留关键决策的人工确认。
- 从痛点出发,而非技术出发:不要为了写技能而写技能。先问:“团队里哪个环节最耗时?”、“哪个错误最常发生?”,然后针对性地开发对应的技能(如:如果是部署总出错,优先开发
工作流技能和验证技能)。 - 原子化设计,模块化组装:每个技能应尽可能保持单一职责(Single Responsibility)。例如,将“查询数据”和“生成图表”拆分为两个技能,以便在不同场景下灵活复用。
- 建立技能市场 (Skill Marketplace):在团队内部建立共享仓库,鼓励成员贡献自己的技能包。定期举办"Skill Hackathon",评选**实践案例。
- 持续迭代与淘汰:技能不是一成不变的。随着业务逻辑变更或工具升级,旧的
参考技能可能产生误导,需建立定期审查机制,及时更新或废弃过时技能。
这九类技能构成了 Agent 的完整能力光谱:
- 参考、数据、脚手架 赋予了 Agent “知识”;
- 自动化、工作流、维护 赋予了 Agent “手脚”;
- 验证、审核、调查 赋予了 Agent “大脑与良知”。
只有当这三者有机结合,Agent 才能真正从一个“聊天玩具”进化为能够独当一面的超级数字员工。
解决“有限上下文”与“无限能力需求”之间的矛盾。通过渐进式披露(Progressive Disclosure)机制,实现 Token 效率最大化与工具调用的精准化;同时构建五层纵深防御体系,确保智能体在复杂环境下的执行安全。
1.1 痛点分析
传统 Agent 架构常面临两大困境:
- Token 浪费:试图在系统提示词(System Prompt)中一次性注入所有技能的完整文档,迅速耗尽宝贵的上下文窗口。
- 选择困难(Tool Overload):向模型暴露数百个工具定义,导致模型注意力分散,难以精准选择**工具,甚至产生幻觉。
1.2 解决方案:三层加载机制
Skills 架构采用分阶段、按需触发的策略,将知识加载过程拆解为三个层级:
层级
内容构成
加载时机
作用域
核心价值
Level 1: 元数据
(Metadata)
YAML Frontmatter
(名称、描述、触发词、权限等级)
Agent 启动时
(预加载至系统提示)
全局可见
“技能地图”
让模型知道“有什么可用”,但不暴露细节。极低 Token 占用。
Level 2: 指令
(Instructions)
SKILL.md 正文
(SOP 步骤、规则、约束、Few-shot)
任务匹配时
(模型主动调用 read_skill)
会话级可见
“操作手册”
仅当模型判断需要该技能时,才加载具体做法。避免无关信息干扰。
Level 3: 资源
(Resources)
脚本 (*.py)、模板、API 文档、RAG 片段
执行阶段
(按需读取或执行)
运行时可见
“工具箱”
代码本身不进上下文,仅执行结果(如“验证通过”、“数据摘要”)反馈给模型。
🧠 核心隐喻: 就像图书馆检索。
基于主流框架的实现逻辑,技能的生命周期由以下关键组件协同完成:
2.1 阶段一:技能发现 (Skill Discovery)
- 触发机制:每轮 LLM 调用前,
SkillsInterceptor自动介入。 - 动作:
- 扫描注册表 (
SkillRegistry)。 - 提取所有技能的 元数据摘要 (Name + Description + Trigger)。
- 注入到 System Prompt 的特定区域。
- 扫描注册表 (
- 结果:模型知晓能力边界,但看不到内部实现。
- 关键组件:
SkillsInterceptor,SkillPromptConstants.
2.2 阶段二:技能加载 (Skill Loading)
- 触发机制:模型基于元数据判断需要某技能,主动调用专用工具
read_skill("skill-name")。 - 动作:
ReadSkillTool拦截请求。- 调用
SkillRegistry.readSkillContent()。 - 读取
SKILL.md文件,剥离 YAML 头,返回纯 Markdown 正文。
- 结果:详细 SOP 进入上下文,模型获得执行指南。
- 关键组件:
ReadSkillTool,SkillMetadata.loadFullContent().
2.3 阶段三:工具激活 (Tool Activation)
- 触发机制:
SkillsInterceptor扫描历史消息,检测到read_skill已被调用。 - 动作:
- 解析已加载的技能名。
- 查找绑定的
groupedTools(Map)。 - 动态注入专属工具集到
dynamicToolCallbacks。
- 结果:模型立即获得执行该技能所需的特定工具(如
pdfExtractTool),其他无关工具保持隐藏。 - 关键优势:实现“工具随技能激活”,彻底解决工具海问题。
遵循 Anthropic 规范及企业级实践,一个标准的 Skill 包结构如下:
3.1 目录结构示例
my-skill/ ├── skill.json # [必填] 身份证:元数据、触发词、权限、依赖 ├── SKILL.md # [必填] 大脑:角色设定、SOP、约束、Few-shot 示例 ├── scripts/ # [可选] 手脚:确定性代码 (Python/JS),用于数据处理/API 调用 ├── references/ # [可选] 知识库:RAG 源文件 (PDF/MD),按需切片加载 ├── assets/ # [可选] 素材:模板文件、图片资源 └── requirements.txt # [可选] 依赖:沙箱自动安装的环境包
3.2 四大核心组件模块
组件类型
文件名/模块
功能定位
技术亮点
1. 技能清单
skill.json / manifest.yaml
身份证 & 路由器
声明意图识别关键词、输入格式、依赖的 MCP 工具及安全等级。实现轻量级路由决策。
2. 执行编排
workflow.yaml / .py
大脑 & 逻辑核
定义多步 SOP(条件判断、循环、异常捕获)。混合驱动:确定性逻辑保稳定 + LLM 生成保灵活。
3. 动态资源库
references/
外部记忆体
通过 MCP 协议按需加载大文档,避免硬塞 Context。支持海量知识精准注入。
4. 评估反馈
(内置机制)
质检员
调用轻量裁判模型检查输出质量(JSON 格式/逻辑自洽),失败自动重试,形成闭环进化。
3.3 关键类职责映射 (Java/Spring AI 视角)
SkillMetadata: 技能元数据容器,支持fullContent延迟加载(首次调用才读文件)。SkillRegistry: 统一访问接口,维护volatile Map保证线程安全,支持热重载 (reload())。ClasspathSkillRegistry/FileSystemSkillRegistry: 适配器模式,支持从 JAR 包或本地文件系统扫描技能。SkillScanner: 解析器,专门提取frontmatter,忽略无关扩展字段。SkillsAgentHook: Agent 集成入口,无侵入式注入read_skill工具和拦截器。
安全是 Skills 架构的生命线。针对自主 Agent 的不可控风险,建立从静态到动态的五层防御:
层级
防御机制
实施策略
典型示例
L1: 最小权限
作用域隔离 + 沙箱
在 skill.json 中严格限定文件路径正则、API 白名单。
pattern: "^/tmp/.*\.log$"
禁止访问 /etc 或任意删除操作。
L2: 人机协同
HITL (Human-in-the-loop)
对高风险操作强制插入人工确认环节。
"require_human_approval": true
生成可审计的操作计划卡片,用户点击“确认”后才执行。
L3: 输入/输出守卫
前后置清洗审计
Pre-LLM: 拦截提示词注入攻击;Post-LLM: 扫描 PII (个人隐私) 泄露。
拦截 "Ignore all previous instructions";
自动掩码输出中的身份证号/手机号。
L4: 运行时熔断
行为基线监控
实时监控调用频率、死循环检测、资源消耗。
检测到 1 秒内 1000 次 API 请求 → 自动禁用该 Skill 并报警。
L5: 来源可信
数字签名 + 哈希校验
确保技能包未被篡改,来源合法。
加载前验证 Skill 包的数字签名,拒绝未授权修改的脚本。
- 无限扩展性 (Infinite Scalability)
- 得益于渐进式披露,Agent 的能力边界不再受限于 Token 窗口大小,而是取决于磁盘空间。你可以挂载成千上万个技能,而系统提示词始终保持轻盈。
- 维护解耦 (Decoupled Maintenance)
- 业务逻辑变更(如税法更新、API 改版)只需修改对应的
SKILL.md或脚本文件,无需重训模型,也无需重启服务(支持热加载)。实现了业务与模型的完全解耦。
- 业务逻辑变更(如税法更新、API 改版)只需修改对应的
- 安全可控 (Secure & Controllable)
- 通过细粒度的权限控制、人类确认机制和沙箱隔离,将 AI 的“黑盒”执行转化为透明、可审计、可阻断的标准化流程,消除了企业落地 AI 的最大顾虑。
一个高质量的 Skill 应当是模块化、自描述且安全受限的。以下是推荐的标准目录结构与核心配置:
1.1 目录结构示例
my-skill/ ├── skill.json # [必填] 元数据与权限控制 ├── SKILL.md # [必填] 核心指令(≤500 行,超长内容拆分) ├── scripts/ # [可选] 确定性逻辑脚本 (Python/Shell) ├── references/ # [可选] 详细文档/RAG 知识库 ├── assets/ # [可选] 模板/图片/静态资源 └── config.json # [可选] 用户可配置项
1.2 skill.json / YAML Frontmatter 核心字段
在 SKILL.md 头部或独立配置文件中,必须精确定义以下字段:
字段
类型
说明
**实践示例
name
String
唯一标识符。
仅允许小写字母、数字、连字符。
deploy-service, figma-to-code
description
String
触发器的灵魂。
公式:[做什么] + [何时使用] + [关键特征]。
❌ 禁止模糊描述如“帮助处理项目”。
分析 Figma 设计文件并生成交接文档。当用户上传 .fig 文件或请求“设计规范”、“组件文档”时触发。
disable-model-invocation
Boolean
安全熔断开关。
true: 强制人工确认(高危操作)。
false: 允许自动执行。
true (针对 rm -rf, DB Drop 等操作)
allowed-tools
List
最小权限原则。
显式声明该技能允许调用的工具白名单。
["Bash", "Read", "Write"] (禁止 Network 访问)
compatibility
Object
环境依赖说明。
{"node": ">=18", "os": ["linux", "macos"]}
1.3 SKILL.md 内容分层规范
官方建议控制在 5000 词 (约 500 行) 以内。超出部分务必移至 references/。
- Reference (背景知识):内部规范、边缘情况 (Edge Cases)、历史坑点、特有工具怪癖。
- Task (操作指南):清晰的步骤 (SOP)、决策树、验收标准 (Definition of Done)。
- Examples (Few-Shot):输入/输出对照案例,特别是“错误示范 vs 正确示范”。
- Troubleshooting (故障排查):常见报错及自愈方案。
这是从大量实战中提炼的精华法则,直接决定技能的智能程度与稳定性。
#
秘诀
核心要点与实施策略
1
聚焦高信号上下文
只写 Claude 不知道的。
忽略通用知识(如"Python 语法”),专注于内部决策逻辑、私有 API 怪癖、团队历史踩坑记录。
2
捕捉“坑点” (Bug Mining)
失败即资产。
每次任务失败后,立即将原因和解决方案更新到 SKILL.md 的“故障排查”章节。让 Skills 随时间越用越准。
3
用好整个文件系统
拒绝单文件臃肿。
严格分离 scripts/ (逻辑), references/ (知识), assets/ (素材)。保持 SKILL.md 轻盈,便于模型快速索引。
4
指令要灵活 (Framework > Rules)
提供框架而非死规则。
不要规定“第一步必须做 A",而是说“在满足条件 X 时,优先考虑 A,否则尝试 B"。留出 Claude 自主判断的空间。
5
Config 驱动配置化
用户配置存于 config.json。
技能读取配置,若缺失则主动询问用户。实现“一次配置,多次复用”,避免硬编码。
6
赋予记忆能力
状态持久化。
利用日志/JSON/SQLite 存储任务状态。路径使用 ${CLAUDEPLUGINDATA} 变量,防止插件重装导致数据丢失。
7
代码即资产 (Code as Asset)
直接给 Claude 代码。
在 scripts/ 中内置可复用函数。让 Claude 专注“组合调用”而非“从头重写”,大幅降低幻觉率。
8
动态注入运行时上下文
永远获取最新鲜的信息。
使用 ! command (如 ! git status, ! env) 实时获取当前环境状态,而非依赖静态描述。
9
Context Fork (子代理并发)
多视角审查。
对于复杂任务,启动子代理 (Sub-agents) 分别负责架构、安全、性能审查,最后汇总。提速且去偏见。
10
动态钩子控边界
精准防护。
设置特殊钩子:/careful 拦截危险命令 (rm -rf);/freeze 锁定写目录。在不牺牲能力的前提下建立安全围栏。
3.1 必需章节结构
一个标准的 SKILL.md 应包含以下 Markdown 章节:
--- name: skill-name-in-kebab-case description: [做什么] + [何时使用] + [触发关键词] license: MIT allowed-tools: ["Bash", "Read"] --- # [技能标题] 概述 (详细介绍技能的目标、适用范围及核心价值。避免废话。) 工作流程 (Workflow) 1. 前置检查: (检查环境、配置、权限) 2. 执行步骤: (详细的 SOP,包含决策分支) - IF 条件 A -> 执行动作 X - ELSE -> 执行动作 Y 3. 验收标准: (如何判定任务成功完成) 示例 (Examples) 场景 A: 正常流程 User: "部署服务到生产环境" Thought: ... Action: ... 场景 B: 异常处理 User: "部署失败,报错 XXX" Thought: ... Action: ... 故障排查 (Troubleshooting) - 问题: [常见错误现象] - 原因: [根本原因] - 解决: [具体修复步骤]
3.2 Description 编写公式
Description 是智能体路由选择的唯一依据,必须精准。
- ✅ 好描述:
"分析 Figma 设计文件并生成开发者交接文档。当用户上传 .fig 文件、要求'设计规范'、'组件文档'或'设计转代码交接'时使用。"
- 解析:明确了动作、触发文件类型、触发关键词。
- ❌ 差描述:
"帮助处理项目中的设计相关问题。"
- 解析:过于宽泛,模型无法判断何时调用,容易导致误触或不触。
策略一:保持精简 (Keep It Lean)
- 原则:
SKILL.md是索引和指南,不是百科全书。 - 行动:严格控制正文在 5000 词以内。将详细的 API 文档、长篇规范移入
references/目录,通过 RAG 或按需读取加载。
策略二:脚本执行 > 代码生成 (Execution > Generation)
- 原则:确定性优于概率性。
- 行动:对于数据清洗、格式转换、API 调用等逻辑,优先编写 Python/Shell 脚本捆绑在技能中。
- 优势:脚本代码不占用 Context Token,只有执行结果(几行文字)进入上下文。效率更高,零幻觉。
策略三:控制并发数量 (Limit Active Skills)
- 原则:少即是多 (Less is More)。
- 行动:
- 避免同时启用超过 20-50 个 技能。
- 打包策略:将高度相关的细小技能打包成一个“技能包 (Skill Pack)",对外暴露为一个统一入口,内部再进行分发。
- 原因:过多的元数据会干扰模型的注意力机制,降低路由准确率。
构建优秀的 Agent Skills 不仅仅是写 Prompt,而是一项软件工程。
- 用 JSON/YAML 定义边界;
- 用 Markdown 传递智慧;
- 用 Scripts 保证确定性;
- 用 渐进式披露 突破限制。
遵循这套**实践,你将打造出不仅“聪明”,而且“可靠、安全、可维护”的企业级数字员工。
导读:在构建智能体(Agent)系统时,开发者常混淆 Function Calling (FC)、MCP 和 Skills 的概念。本文通过深度对比与类比,厘清三者的本质定位、相互关系及协同机制。核心结论:它们并非竞争关系,而是分层互补的生态基石。FC 是地基,MCP 是标准接口,Skills 是业务逻辑封装。三者共同构成了从“能调用”到“标准化连接”再到“智能化执行”的完整闭环。
概念
全称
本质定位
关键升级/核心价值
FC
Function Calling
基础能力层
LLM 将非结构化意图转化为结构化函数调用的原生能力。
✅ 桥梁:所有工具调用的基石。没有 FC,模型无法与外部世界交互。
MCP
Model Context Protocol
通用接口层
Agent 的"USB-C 接口”。统一大模型与外部数据源/工具连接的开放通信标准。
✅ 解耦:解决"N×M 集成难题”。工具即插即用,无需为每个系统单独写适配器。已成行业事实标准。
Skills
Agent Skills
业务逻辑层
Agent 的“大脑/操作手册”。封装专业任务 SOP、决策逻辑、脚本资源的标准化功能单元。
✅ 智能化:不再是简单 Prompt,而是基于 FC/MCP 构建的混合驱动包(代码+LLM)。支持渐进式加载、动态 RAG 与自评估闭环。
💡 核心类比
如果把 AI Agent 比作一家现代化公司:
- FC (Function Calling) 是员工的语言能力(能听懂指令并开口说话)。
- MCP 是公司的万能插座与网线标准(让电脑、打印机、服务器都能统一接入)。
- Skills 是员工的岗位培训手册 + 经验库(知道在什么场景下,用哪个工具,按什么步骤做,遇到坑怎么躲)。
很多开发者容易混淆这三者,我们可以通过以下维度清晰区分:
类型
比喻
特点
局限性
Prompt
便利贴
“记得带伞”
临时性。用完即走,无状态,难以复用,依赖上下文窗口。
无法处理复杂流程,知识易丢失,难以规模化。
MCP
工具箱
锤子、螺丝刀
能力层。解决了“能做什么”和“怎么连”的问题。
只提供原子能力,不懂业务流程,不知道“先敲钉子还是先刷漆”。
Skills
熟练工程师
带经验的老师傅
方案层。解决了“在什么场景下该怎么做”的问题。包含判断力、SOP 和避坑指南。
需要精心设计与维护,依赖底层工具(MCP/FC)的支持。
一句话概括:
3.1 核心差异矩阵
维度
Function Calling (FC)
MCP (Model Context Protocol)
Skills (Claude Skills)
定位/本质
基础协议
非结构化需求 → 结构化函数调用
接驳标准
统一 LLM 与外部系统的交互协议
Sub-Agent 包装
用文字定义可复用的任务流程
解决的问题
交互桥梁
如何让模型输出机器可执行的代码?
集成成本
如何解决 N 个模型对接 M 个系统的碎片化?
流程定义
如何将复杂的 SOP、规则、经验固化并灵活执行?
实现方式
LLM 生成 JSON (tool_calls),系统解析执行。
基于 JSON-RPC + HTTP。采用 Client/Server 架构,标准化 Tool Description。
基于 FC,通过 load_skill() 加载 SKILL.md。采用渐进式披露机制。
运行环境
模型内部推理过程。
外部远程服务器或本地进程。
Claude 内部沙盒 VM (文件系统)。
网络访问
无 (仅生成调用指令)。
有 (通过远程服务器连接外部 API)。
无 (通常通过调用 MCP 工具间接访问,或执行本地脚本)。
数据状态
瞬时调用,无持久状态。
与持久化外部系统交互 (DB, Git, Slack)。
处理临时文件,状态短暂 (或通过外部存储持久化)。
适用场景
所有需要 LLM 调用功能的场景。
第三方服务集成、实时数据访问。
代码审查、部署流程、合规检查等需文字化流程的场景。
3.2 竞合关系澄清:是竞争还是互补?
虽然有人担心 Skills 会取代 MCP,但实际上它们是强互补关系:
- MCP 的核心价值:解决连接(Connection)问题。它像“修路”,提供了标准化的基础设施,让模型能访问各种数据源。
- 如果没有 MCP:每个新工具都要写定制代码,集成成本极高。
- Skills 的核心价值:解决知识(Knowledge)与流程(Process)问题。它像“交通规则和驾驶手册”,告诉模型如何高效、安全地使用这些路。
- 如果没有 Skills:模型虽然有工具,但不懂业务 SOP,只能靠即兴发挥,质量不稳定。
结论:
将视野扩大到整个 Agent 开发生态,四者的角色如下:
实体
本质
类比
解决的问题
粒度
可复用性
Agent
自主推理实体
全能员工
"谁来做事" (Who)
粗 (整个系统)
低 (定制化高)
Skills
模块化知识包
培训手册
"怎么做事" (How)
细 (单个能力)
高 (跨项目复用)
MCP
工具连接协议
工具箱接口
"用什么做事" (With What)
细 (单个连接)
高 (行业标准)
OpenClaw
Agent 运行框架
办公室环境
"在哪里做事" (Where)
粗 (整个平台)
中 (框架级复用)
终极比喻: 如果 AI Agent 是一个操作系统 (OS):
一个高效的 Agent 系统通常按以下流程协同工作:
- 用户意图:用户提出复杂需求(例:“帮我部署新版本并通知团队”)。
- Skill 匹配 (大脑):
- Agent 检索已加载的 Skills 元数据。
- 命中
deploy-and-notify技能包。 - 加载
SKILL.md,获取详细 SOP(先构建 -> 再测试 -> 后部署 -> 最后通知)。
- 工具发现 (手脚):
- Skill 内部定义需要调用
build_tool,deploy_tool,slack_notify_tool。 - 这些工具通过 MCP 协议 动态暴露给 Agent。
- Skill 内部定义需要调用
- 执行循环 (FC):
- Agent 根据 Skill 的指引,利用 Function Calling 生成具体的 MCP 工具调用请求。
- MCP Server 接收请求,执行实际操作(调用 CI/CD API, 发送 Slack 消息)。
- 执行结果返回给 Agent,Skill 中的逻辑判断下一步动作。
依赖关系总结
- Skills 依赖 MCP:获取实时数据、调用外部原子能力(如
mcp://github/push)。 - MCP 不依赖 Skills:MCP 是纯粹的通道,不包含业务逻辑,专注标准化的 Resources/Tools/Prompts 三原语。
- 二者共同依赖 FC:作为底层的通信语言。
6.1 核心结论
- MCP 是地基,Skills 是高楼。没有 MCP,Skills 难以互通外部世界;没有 Skills,MCP 只是一堆无用的数据线。
- 互补而非竞争:MCP 解决“连接碎片化”,Skills 解决“执行力弱”和“缺乏方法论”。
6.2 落地建议
- 优先建设 MCP 生态:将企业内部的核心系统(Jira, DB, CRM)封装为 MCP Server,实现工具的统一接入。
- 沉淀高价值 Skills:不要把所有逻辑都写在 Prompt 里。将团队的**实践、避坑指南、复杂 SOP 封装为 Skills。
- 分层设计:
- 原子层:用 MCP 定义工具。
- 逻辑层:用 Skills 编排流程。
- 交互层:用自然语言触发。
理解并善用这三者的分层协作关系,是构建高效、可靠、可进化的企业级 AI Agent 系统的关键。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/269334.html