Vuncloud 博客
← 返回机房手记专栏

Agent Skills 完整指南:如何让 AI Agent 掌握可复用的专业知识与工作流程

这篇总指南面向第一次接触 Agent Skills 的开发者,重点解释 Skill 如何封装稳定知识与重复流程,以及它和 Prompt、知识库、MCP、脚本工具之间的边界。文章同时提供目录设计、触发测试、安全验收和团队维护的可执行步骤,帮助你从单个 Skill 建立可治理的能力库。约 21 分钟阅读

Agent Skills 完整指南:如何让 AI Agent 掌握可复用的专业知识与工作流程 — Vuncloud

长期把团队规范、领域知识和操作步骤堆进系统提示词,结果通常是上下文越来越长,AI Agent 却仍然无法稳定判断何时使用哪套流程。

最快的解决方式是:本周先把一个高频、结果可验收的流程拆成独立 Skill,用 SKILL.md 写清“做什么、何时使用、如何完成”,再把动态资料放进知识源,把外部操作交给受控工具。Agent Skill 本质上是包含触发描述、操作指令及可选脚本和参考资料的可复用能力包,适合封装稳定流程,但不等于拥有独立运行权限。

本文适合以下读者:

  • 第一次接触 SKILL.md 和 Agent Skills 的开发者;
  • 希望复用团队标准流程的 Claude Code 用户;
  • 准备建立内部 Skill 仓库,并关心脚本、网络访问和权限治理的技术负责人。

最后更新于 2026 年 8 月 17 日,规范字段、目录结构和客户端行为核实自 Agent Skills 官方规范官方 Skill 示例仓库Claude 技能创建文档

先拆开 4 个问题:为什么提示词越写越长,流程仍然不稳定

把所有知识写进系统提示词,看起来集中,实际会带来至少 4 个限制。

第一,上下文占用不可控。一个团队可能同时维护代码审查、发布、数据清洗和文档生成流程。如果所有规则始终加载,简单任务也会携带大量无关内容;如果为了缩短提示词而删减,又容易遗漏关键边界。

第二,知识更新和流程更新混在一起。例如税率、接口字段、产品版本属于动态事实,应该从可更新知识源中读取;而“先检查输入,再执行转换,最后运行验收”的顺序属于稳定流程,适合放入 Skill。把两者混为一谈,会造成规则过时却仍被模型引用。

第三,触发范围不清晰。一个名为“开发助手”的大 Prompt 可以覆盖很多任务,却无法告诉 AI Agent 什么时候应该使用代码审查流程,什么时候应该切换到部署流程。结果可能是误调用,也可能是该调用时没有调用。

第四,执行权限被误解。Skill 可以附带脚本,也可以指导 Agent 使用工具,但它本身不是沙箱、不是身份系统,也不是自动获得网络、文件或终端权限的后台进程。真正能否执行命令,取决于客户端、运行环境和权限策略。

官方规范将 Skill 定义为一个至少包含 SKILL.md 的目录,并允许增加 scripts/references/assets/ 等目录;这正好对应了“元数据先发现、正文后加载、资源按需读取”的渐进式加载方式。(agentskills.io)

第一步:先确定 Skill 的边界,再决定放哪些文件

一个适合维护的 Skill,不应以“我能做所有开发工作”为目标,而应围绕一个能够重复执行、结果能够验收的工作单元设计,例如:

  • 按团队规则审查 Pull Request;
  • 将接口文档转换成统一格式;
  • 检查发布前的配置、测试和变更记录;
  • 依据公司模板生成技术报告。

推荐的最小目录如下:

release-review/
├── SKILL.md
├── references/
│   ├── release-policy.md
│   └── rollback-guide.md
├── scripts/
│   └── check-release.sh
└── assets/
    └── release-report-template.md
目录或字段 应该放什么 不适合放什么
name 稳定、唯一、便于识别的名称 大段宣传语、模糊能力词
description 能做什么,以及何时使用 只有“帮助开发”“提升效率”
SKILL.md 核心步骤、判断条件、验收标准 过期的长篇产品资料
references/ 需要按任务读取的规则、案例和领域资料 每次都必须加载的核心步骤
scripts/ 可重复、确定性较高的检查或转换代码 未审计的联网下载器、破坏性命令
assets/ 模板、样例、固定格式资源 API 密钥、个人数据、隐私文件

官方规范要求 name 使用小写字母、数字和连字符,并且目录名要与之匹配;description 则应同时说明 Skill 的功能和使用时机。正文没有强制章节格式,但官方建议写入步骤、输入输出示例和常见边界情况。(agentskills.io)

SKILL.md 应该写到什么程度

可以采用下面的骨架,但不要机械复制:

---
name: release-review
description: 检查发布分支的测试结果、配置变更和回滚准备。用户要求进行发布前审查、上线检查或回滚评估时使用。
compatibility: 需要 git、项目测试命令和只读仓库访问权限
metadata:
  owner: platform-team
  version: "1.0"
---

# 发布审查

## 目标
确认发布候选版本满足测试、配置和回滚要求。

## 执行步骤
1. 读取变更范围。
2. 检查测试结果和失败项。
3. 对照 references/release-policy.md。
4. 必要时运行 scripts/check-release.sh。
5. 输出阻断项、风险项和通过项。

## 验收标准
- 每个阻断项都包含文件、命令或日志依据。
- 没有把“未检查”写成“已通过”。
- 涉及生产环境的操作必须等待明确确认。

这里最重要的不是章节名称,而是让 AI Agent 知道先做什么、何时停下、什么结果算完成。如果核心流程无法在 SKILL.md 中表达清楚,就不应急着增加更多参考文件。

第二步:把触发描述写成“功能+时机”,减少误调用

Skill 是否被使用,首先取决于描述是否让 Agent 判断出任务相关性。官方创建指南明确把 description 视为主要触发机制,并建议描述同时包含“做什么”和“什么时候使用”。(github.com)

例如,下面两种写法的触发质量不同:

描述写法 可能的问题 改进方向
“帮助进行代码发布。” 范围过宽,和部署、测试、代码审查重叠 增加发布前检查的具体对象
“检查上线前的测试、配置和回滚准备。” 说明了动作,但缺少触发场景 增加“用户要求发布审查或上线检查时使用”
“检查发布候选版本的测试结果、配置变更和回滚准备;当用户要求上线前审查、发布验收或回滚评估时使用,即使用户没有明确提到 Skill 名称也应考虑调用。” 功能、场景和隐含表达都较清楚 可继续用测试任务验证边界

Prompt 和 Agent Skills,边界到底在哪里?

Prompt 更适合一次性任务、临时角色、当前对话中的补充要求;Agent Skills 则适合把稳定的专业流程保存为独立单元,让多个任务在需要时加载同一套规则。Prompt 通常由调用者主动提供,而 Skill 的描述会参与发现和触发判断,因此二者不能简单视为同一种文件格式。

可以用下面的方法测试触发描述:

  1. 写出 3 个应该触发 的真实请求,例如“检查这次上线是否具备回滚条件”;
  2. 写出 3 个不应该触发 的相邻请求,例如“解释蓝绿部署的概念”;
  3. 加入不直接说出 Skill 名称的自然表达;
  4. 检查它是否与代码审查、测试诊断、部署执行等相邻 Skill 发生重叠;
  5. 修改描述后重新运行同一组测试,而不是凭一次成功案例下结论。

需要注意的是,简单的一步任务未必会调用 Skill,即使描述完全匹配;复杂、多步骤或专业性更强的任务更能检验触发效果。官方创建指南也建议为 Skill 建立正例和反例测试集,而不是只用一个示例验证。(github.com)

第三步:区分知识、流程、脚本和 MCP 的责任边界

Agent Skills、知识库、普通 Prompt 和 MCP 经常被放在一起讨论,但它们解决的不是同一个问题。

组件 主要职责 是否适合保存动态事实 是否直接提供外部操作能力
普通 Prompt 当前任务的临时要求和表达约束 可以,但不适合长期维护
Agent Skill 稳定流程、判断规则、输出标准 不适合保存频繁变化的事实 取决于客户端和工具权限
Knowledge Base 文档、制度、产品资料和可检索事实 适合
MCP 连接外部服务、数据源和受控工具 可读取外部实时数据 是,但必须有授权和审计
scripts/ 确定性较强的本地检查、转换和计算 只应使用明确输入 可以执行,但权限由环境决定

Agent Skills 与 MCP 如何协同?

一种稳妥的组合是:Skill 负责告诉 AI Agent“先读取哪些资料、采用什么判断顺序、输出什么格式”,MCP 负责提供项目管理、数据库、工单或其他外部系统的受控接口。Skill 不应把访问令牌写死,也不应假设任何客户端都支持相同的 MCP 工具名称。

例如,发布审查 Skill 可以要求:

  • 先通过知识源读取当前发布政策;
  • 再通过 MCP 查询工单状态;
  • 最后调用只读脚本检查配置差异;
  • 发现生产写入动作时,停止并请求人工确认。

这种拆分能够减少三类错误:把过期资料当成事实、把模型生成的命令当成已执行结果,以及把“有操作步骤”误认为“已有操作权限”。

第四步:脚本可以调用,但不能绕过安全边界

Agent Skill 能不能调用脚本?

可以,scripts/ 就是官方规范建议的可选目录之一;脚本通常用于重复性、确定性较高的检查或转换任务,常见语言包括 Python、Bash 和 JavaScript。不过,是否能真正运行,取决于 Agent 产品是否支持脚本、环境是否安装依赖,以及当前会话是否允许相应工具。(agentskills.io)

安装第三方 Skill 或启用脚本型 Skill 前,至少要检查:

  • 脚本是否读取环境变量、密钥、SSH 配置或浏览器数据;
  • 是否包含 curlwget、动态下载和未经说明的网络访问;
  • 是否会写入项目目录之外的文件;
  • 是否包含删除、覆盖、上传或执行远程内容的命令;
  • 依赖包、许可证和版本是否有明确记录;
  • 输入文件是否可能包含客户数据、源代码或凭证;
  • 失败时是否返回清晰错误,而不是静默修改文件。

官方帮助文档特别提醒,Skill 可能包含第三方软件和可执行脚本,主要风险包括提示注入、恶意包代码和数据外泄,因此应只安装可信来源的 Skill,并在启用前检查文件、依赖、资源和网络指令。(support.claude.com)

用这份清单完成一次最小 Skill 验收

下面的清单适合在本地仓库、团队仓库或远程开发环境中逐项执行:

  • [ ] Skill 只解决一个高频、结果可验收的流程,而不是包揽整个开发生命周期。
  • [ ] 目录至少包含 SKILL.md,且目录名与 name 字段一致。
  • [ ] description 同时写明功能和触发场景,没有只堆叠“智能、专业、自动化”等泛化词。
  • [ ] SKILL.md 写出了输入、步骤、停止条件、异常处理和输出格式。
  • [ ] 动态价格、版本、接口字段和政策没有被硬编码成永久事实。
  • [ ] 大型参考资料已拆到 references/,并在正文中写明何时读取。
  • [ ] 脚本依赖、网络访问、写入路径和失败行为已逐项检查。
  • [ ] 破坏性操作、生产写入和外部发送动作需要人工确认。
  • [ ] 至少准备了正向触发、相邻误触发和不应触发的测试请求。
  • [ ] 已使用规范提供的校验工具或等价检查,确认 frontmatter 和命名没有错误。
  • [ ] 已记录版本、负责人、变更原因和回滚方式。
  • [ ] 已在隔离环境中运行第三方脚本,而不是直接放进生产工作区。

如果 Skill 需要在远程 Mac 环境中安装,建议先阅读 Vuncloud 关于服务与团队协作的说明,确认团队使用时的责任边界、沟通方式和基础服务信息;需要核对远程环境的使用规则、文件处理边界和责任范围时,也可以参考 Vuncloud 服务条款。这样做的重点不是把 Skill 当成云端服务,而是为测试、隔离和复现提供一个边界清晰的运行位置。

第五步:从单个文件建立可维护的团队能力库

当 Skill 从个人实验进入团队使用,真正的难点会从“能不能触发”转为“谁负责、怎么升级、出了问题如何回退”。

建议为每个 Skill 维护以下记录:

治理项目 最低要求 变更时需要回答的问题
负责人 明确团队或个人 Owner 谁批准规则和权限变化
版本 使用可追踪版本号或提交记录 本次变化影响了哪些流程
测试任务 保留正例、反例和边界案例 触发准确性是否变差
变更记录 记录原因、文件和风险 为什么要改变原有步骤
权限说明 写清读写、网络和工具范围 是否新增了高风险能力
废弃机制 标记停止维护和替代方案 旧 Skill 何时从仓库移除

不要以 Skill 数量作为团队成熟度指标。更值得沉淀的是那些调用频率高、输入相对稳定、输出可以检查、错误代价明确的流程。一个能够稳定完成代码审查并输出依据的 Skill,通常比十个只有几句泛化指令的 Skill 更有维护价值。

同时,Skill 之间不应依赖隐含顺序。一个发布 Skill 不应假设“测试 Skill 一定已经运行”,而应检查测试结果是否存在;一个文档 Skill 不应假设某个知识库始终可访问,而应在资料缺失时明确标记“不足以判断”。

如果团队准备把个人实验逐步整理成共享能力库,还应提前明确维护责任、环境边界和数据处理原则;这些信息可以结合内部仓库的负责人制度、变更记录和访问审批流程一并核对,但不应把外部服务说明替代内部权限制度或代码仓库治理。

最后确认:Agent Skills 不是知识库,也不是万能插件

截至 2026 年 8 月 17 日,Agent Skills 的目录、frontmatter、渐进式加载和可选资源边界,应以官方规范和具体客户端文档为准,不同 AI Agent 对 allowed-tools、脚本执行、插件安装和组织级分发的支持范围不能互相套用。官方示例仓库也明确提醒,示例 Skill 需要在自己的环境中充分测试,不能把示例行为直接当成所有客户端的统一保证。(github.com)

可以把最终判断压缩成一句话:

  • 稳定规则和步骤,放进 Skill;
  • 动态事实和长文资料,放进知识源;
  • 外部系统读写,交给 MCP 或其他受控工具;
  • 确定性转换和检查,放进脚本;
  • 临时要求和当前语境,留在 Prompt;
  • 密钥、生产权限和破坏性动作,永远不要因为 Skill 的存在而自动放开。

如果当前方案是把所有 Prompt、脚本和资料直接堆在个人电脑或共享服务器上,常见缺点是环境依赖难以复现、权限边界不清、第三方 Skill 容易污染主机,而且多人协作时很难确认运行的到底是哪一个版本。对于只需要临时测试、短期部署或隔离验证的团队,租赁 Mac 环境通常比立刻购买并长期维护一台专用设备更灵活;但如果任务是长期稳定重负载、必须连接特定物理设备,或者需要完全掌控硬件和本地网络,仍应优先评估自购 Mac 或自建环境。

在真正导入第三方脚本型 Skill 之前,先完成文件审查、权限隔离和最小测试,再把通过验收的版本纳入团队仓库,这比单纯追求“安装更多 Skills”更能保证 AI Agent 的可控性。

从一个可复用 Skill 开始,逐步建立你的 Agent 能力库

先挑选一个高频且步骤稳定的任务,明确 Skill 的输入、输出、触发条件与处理边界。

接着整理目录和执行流程,用真实案例测试触发效果,并记录误触发、漏触发和执行失败的原因。

查看 Cloud Mac 套餐

机房手记 · AI Agent

Cloud Mac 独享节点

Xcode · Swift · MCP · AI 自动化

查看 Cloud Mac 套餐
限时优惠 点击查看套餐