本文要点
- Agent Skills 是按需加载的能力包,不是模型训练:流程重复、步骤稳定、结果可验证才值得封装。
- 先看 SKILL.md 的结构、发现与激活机制,再决定脚本与权限怎么开放。
- Prompt、Rules、Workflow 与 Skills 职责不同,不要用长 Prompt 替代可审查的 Skill。
- 一次性任务或未经审查的脚本不要急着封装;先划清适用场景与安全边界。
不是模型训练,而是按需加载的能力包:如果你的流程重复、步骤稳定、结果可验证,就应该把它整理成 Agent Skill;如果只是一次性 Prompt 或未经审查的脚本,不要急着封装。
这篇文章适合第一次接触 Agent Skills 的开发者、希望把团队 SOP 交给 AI Agent 执行的负责人,以及正在比较 Prompt、Rules、Skills 与 Workflow 的产品经理。
最后更新于 2026 年 8 月 12 日,内容核实自 Agent Skills 公开规范、Agent Skills 官方概览、客户端实现指南及 Anthropic 官方文档。
值得封装的流程先从判断开始
不要从“我能不能写一个很长的 Prompt”开始,而要从流程本身是否稳定开始。一个值得封装的 Skill,通常同时满足以下条件:
- ✅ 重复频率高:同类任务会反复出现,而不是只执行一次。
- ✅ 步骤相对固定:输入检查、处理顺序和输出格式可以被明确描述。
- ✅ 输入输出清楚:例如输入一个代码变更,输出审查报告、风险列表和验收结论。
- ✅ 结果可以验证:能通过测试、静态检查、文件差异、格式校验或人工标准判断是否合格。
- ✅ 团队需要共享:不希望流程只存在某个人的聊天记录里。
例如,“帮我把这段代码写得更好”不适合直接做成 Skill,因为目标和验收方式都不够明确;但“读取 Git 差异,检查错误处理、日志、测试覆盖和敏感信息,最后按固定模板输出审查报告”就具备较好的封装条件。
一次性需求、未经确认的内部知识,以及依赖临时判断的复杂项目,也不应强行包装。Skill 不是把模糊要求换一个文件名保存,而是把可以复用的程序性知识变成 Agent 能够重复调用的工作入口。
一个真实的团队案例
假设研发团队每次发布前都要完成 4 类检查:读取变更、运行测试、检查依赖风险、生成发布说明。过去这些步骤可能散落在项目 Wiki、聊天记录和个人习惯中,换人之后就容易漏项。
你可以创建一个“发布前检查” Skill,把执行顺序、失败处理、报告模板和必要脚本放进同一个目录。这样做的价值不在于 Agent 每次都能自动完成所有工作,而在于团队终于有了一套可审查、可更新、可复用的流程定义。
SKILL.md 的结构与职责
按照公开规范,一个 Skill 至少是一个包含 SKILL.md 的目录,其他内容则按需要添加:
release-review/
├── SKILL.md
├── scripts/
├── references/
├── assets/
└── LICENSE.txt
其中,SKILL.md 是入口,不是所有资料的仓库。
- YAML 元数据:用于描述 Skill 的名称、用途和触发场景。
- Markdown 正文:写激活后需要遵循的步骤、边界条件、示例和验收方式。
- scripts/:放可执行脚本,例如测试、格式检查、数据转换或报告生成。
- references/:放较长的技术文档、接口说明、领域规则和异常处理手册。
- assets/:放模板、配置样例、图片、数据文件等静态资源。
公开规范要求 name 和 description 必填。name 最长为 64 个字符,只能使用小写字母、数字和连字符,并且要与父目录名称匹配;description 最长为 1024 个字符,需要说明 Skill 能做什么,以及什么情况下应该使用它。具体字段限制可参考 Agent Skills 的 SKILL.md 规范。
一个最小入口可以这样写:
---
name: release-review
description: 检查代码变更、运行项目测试并生成发布前审查报告。用户准备合并代码、发布版本或请求变更风险检查时使用。
---
## 执行步骤
1. 读取当前分支与目标分支的差异。
2. 检查测试、依赖和敏感信息。
3. 运行项目规定的验证命令。
4. 按发布审查模板输出结果。
这里有一个容易被忽略的边界:规范定义了核心字段和目录职责,但不同客户端可以增加自己的扩展字段或权限机制。例如,allowed-tools 在公开规范中属于实验性字段,支持情况可能不同,因此不能把某个客户端的额外字段当成所有 AI 工具都必须识别的标准。
Agent Skills 2026 的发现与激活机制
Agent Skills 2026 的核心机制可以理解为 3 层加载,而不是把所有技能内容一次性塞进上下文:
- 发现:启动时读取每个 Skill 的
name和description。 - 激活:当前任务与描述匹配后,加载完整的
SKILL.md。 - 执行:只有在指令需要时,才读取脚本、参考资料或资源文件。
官方实现指南将第一层描述为约 50—100 个 Token 的目录信息;完整 SKILL.md 建议控制在 5000 Token 以下,正文最好不超过 500 行。这些数字不是模型训练参数,而是用于控制上下文成本和可维护性的工程建议,详情可查看 Agent Skills 客户端实现指南。
description 为什么会影响触发
Agent 通常先看到名称和描述,再决定某个 Skill 是否与任务相关。因此,“帮助处理文档”这种描述太宽泛,可能导致该 Skill 不被选中,也可能在无关任务中被误触发。
更好的写法要同时包含:
- 处理对象:PDF、代码差异、表格、发布版本等;
- 具体动作:提取、检查、转换、生成、验证;
- 使用时机:用户提到什么任务,或者出现什么文件、命令和工作状态。
这不是把 description 当作模型训练材料,而是给 Agent 提供低成本的能力目录。你可以参考 官方的 Skill 描述优化方法,用未参与编写过程的新任务测试触发效果。该指南建议准备 5—10 条“应该触发”和“不应该触发”的测试查询,观察描述是否能泛化。
激活后的上下文、脚本与权限
当 Agent 判断任务匹配后,它才会读取完整指令。此时,SKILL.md 应该告诉 Agent:
- 先检查什么输入;
- 哪些步骤必须按顺序执行;
- 哪些情况需要停止并询问你;
- 何时读取
references/; - 何时调用
scripts/; - 输出结果必须满足哪些验收标准。
大型资料不要全部塞进 SKILL.md。例如,代码发布 Skill 可以在入口文件中写明“遇到数据库迁移时读取 references/database-migration.md”,而不是把数据库、前端、部署和回滚规则全部预加载。
脚本也不等于自动拥有权限。一个 Skill 可能包含运行测试、读取文件或执行命令的能力,但客户端仍可能要求你确认权限;不同客户端对工具白名单、沙箱、网络访问和文件系统的处理方式也不一样。以 Claude Code 为例,官方 CLI 提供了 --allowedTools、--disallowedTools 和权限模式等控制项,具体边界应以 Claude Code CLI 官方参考 为准。
⚠️ 安全上最容易踩坑的地方是把外部下载的 Skill 当成普通 Markdown 阅读。脚本可能访问文件、调用网络或修改项目,因此你至少要检查脚本内容、依赖、目标路径、网络请求和失败处理;对于含有凭证、生产数据库或内部文档的环境,还要先做权限隔离。
Prompt、Rules、Workflow 与 Agent Skills 的分工
这几个概念经常被放在一起比较,但它们解决的问题不同。
- Prompt:一次性告诉模型当前要做什么,适合临时任务和快速试验。
- Rules:规定长期适用的行为约束,例如代码风格、目录规范、提交格式和安全要求。
- Workflow:描述完整业务流程,通常包含触发器、分支、人工审批、系统调用和失败回滚。
- Agent Skills:把某一类可复用、可发现、可按需加载的程序性能力打包给 Agent。
可以把它们组合起来使用:Rules 负责“始终遵守什么”,Workflow 负责“流程如何编排”,Skill 负责“某一步具体怎么完成”,Prompt 则负责“这一次任务的目标是什么”。
如果你的团队只是想让 Agent 遵循一条固定命名规则,Rules 就够了;如果要跨多个系统自动审批和通知,Workflow 更合适;如果要让 Agent 在多个项目中重复执行代码审查、数据清洗或文档生成,Agent Skills 才更有价值。
适用场景与边界
开发团队可以先从范围较窄的能力开始,而不是一上来创建“全能开发 Skill”。
适合的场景包括:
- 代码审查:读取差异、识别风险、运行检查并生成固定格式报告;
- 测试执行:根据项目类型选择命令,记录失败原因并区分环境问题与代码问题;
- 文档生成:从接口定义、变更记录和代码注释生成版本说明;
- 数据分析:读取表格、执行清洗、生成统计结果,并保留异常记录;
- 企业 SOP:把客服升级、销售资料整理、合规初审等重复步骤交给 Agent 辅助执行。
不适合的场景包括:
- ❌ 目标仍然模糊,只能依靠临场猜测;
- ❌ 输出没有验收方法,团队无法判断结果是否合格;
- ❌ Skill 绑定某个客户端的私有字段,却宣称可以跨工具直接运行;
- ❌ 脚本来源不明,或者默认拥有生产环境写入权限;
- ❌
SKILL.md越写越长,已经同时承担产品手册、 API 文档和运维手册。
官方最佳实践建议让入口文件保持精简,将详细资料拆到引用文件中,并在需要时再加载。你可以进一步阅读 Agent Skills 作者最佳实践,理解如何组织示例、异常分支和模板。
FAQ:首次使用时的几个关键问题
Agent Skills 是否等于给模型增加了新能力?
不等于。Skill 不会永久修改模型参数,也不会自动让模型掌握未经提供的知识;它更像一个可被 Agent 发现并在任务需要时读取的流程包。执行效果仍取决于模型能力、工具权限、输入质量、脚本可靠性和验收机制。
SKILL.md 是否可以写成一份完整内部手册?
可以放必要指令,但不建议这样做。SKILL.md 的职责是说明任务入口、执行步骤、判断条件和资源索引;详细 API、历史背景和大型模板应拆分到 references/ 或 assets/,否则激活后会占用过多上下文并降低执行聚焦度。
不同 AI 工具之间能否直接共享 Claude Skills?
能否共享要分两层看:符合公开规范的目录和核心 SKILL.md 通常具备可移植性,但客户端的发现路径、激活方式、脚本权限和扩展字段可能不同。所谓“跨工具兼容”,应当通过目标客户端的实际测试确认,而不是只看文件能否被打开。
从创建到维护的落地步骤
你可以按下面的顺序建立第一个 Skill:
- 记录真实任务:收集几次团队实际执行记录,不要凭想象写流程。
- 提取稳定步骤:区分必做动作、可选动作、异常分支和人工审批点。
- 定义输入输出:明确需要哪些文件、参数和环境,最后交付什么格式的结果。
- 创建目录与入口:先只写合规的
SKILL.md,确认name、description和父目录一致。 - 拆分辅助资源:把脚本、参考文档和模板分别放进
scripts/、references/和assets/。 - 加入安全边界:写明禁止访问的路径、需要确认的命令、网络要求和失败后的停止条件。
- 准备测试样例:至少覆盖正常输入、缺失输入、异常输出和不应触发的相似任务。
- 做执行验收:不要只看 Agent 的文字回答,同时检查代码差异、命令结果、生成文件和人工标准。
- 记录失败案例:把真实错误补充到排错部分,而不是只在聊天里临时提醒。
- 纳入版本控制:通过提交记录审查 Skill 的变更,必要时为规则、脚本和模板分别标注版本。
Agent Skills 的输出仍然需要可执行检查或人工验收。即使 Agent 说“测试已通过”,你也应该确认命令是否真的运行、测试范围是否完整、输出是否来自当前代码,而不是把自然语言结论当成证据。
选型对比表:你现在应该用哪一种机制?
| 你的实际需求 | 更适合的机制 | 主要原因 | 需要警惕的边界 |
|---|---|---|---|
| 临时让 Agent 完成一次任务 | Prompt | 修改最快,不需要维护文件 | 难以复用,结果依赖当次上下文 |
| 所有项目都必须遵守命名和格式 | Rules | 约束稳定,适合长期生效 | 不适合承载复杂执行步骤 |
| 涉及审批、通知、回滚和多个系统 | Workflow | 能表达分支和系统编排 | 建设成本更高,需要明确责任边界 |
| 反复执行代码审查、测试或数据处理 | Agent Skills | 能按需加载流程和资源,便于共享 | 仍需客户端支持、权限控制和结果验收 |
| 只想保存一份长文档供参考 | Reference 文档 | 适合知识查询 | 没有明确触发与执行步骤时,不一定会被 Agent 使用 |
如果你准备把 Claude Code 作为执行入口,可以先从一个低风险、可回滚的开发流程开始,再逐步接入团队 SOP。环境权限、远程文件访问和网络配置没有统一答案,遇到具体部署问题时,应先确认文件持久化、权限隔离、网络访问和客户端兼容性;有关远程开发环境的服务背景与支持范围,也可以参考 kvmboot 官方介绍。在正式接入团队前,还应核对运行环境的系统版本、访问方式与权限策略,避免把客户端问题误判成 Skill 逻辑问题。
当前方案与 Mac 方案的适用边界
如果你现在把 Agent Skills 放在个人电脑上运行,常见问题并不是 Skill 格式本身,而是环境不稳定:本地依赖版本不一致、终端权限经常变化、项目文件散落在不同目录,团队成员也很难复现同一套执行条件。
相较之下,临时租用一台隔离的 Mac 环境,更适合做短期验证、跨设备测试和团队演示,尤其是在你不想立刻购买实体设备、又需要一个相对独立的开发空间时。它并不适合所有人:长期高负载、必须连接本地物理设备,或已经拥有稳定 Mac 运维体系的团队,自购设备可能更划算;但如果你的目标是先验证 Agent Skills 的触发、脚本执行和项目兼容性,kvmboot 的远程 Mac 方案通常比在混乱的个人环境里反复排错更直接。