0
· AGENT-OS-7-LAYERS · 2026.05.09 · 10 MIN ·

Skills · 技能层 · 你重复做的事,写成可复用指令

Agent OS 7 层的第三层。每个知识工作者轻松能列出 20-30 个固定模式 — pre-read / daily brief / voice match / commitment tracker。三段式 SKILL.md 模板 + 7 天起步节奏 + 工具落点对照(Claude Code / Cursor / Copilot / Codex / Hermes)+ Vercel 实证质疑。 · by 思扬
AI · HERO seed:2420260509 Agent OS 7 层的第三层。每个知识工作者轻松能列出 20-30 个固定模式 — pre-read / daily brief / voice match / commitment tracker。三段式 SKILL.md 模板 + 7 天起步节奏 + 工具落点对照(Claude Code / Cursor / Copilot / Codex / Hermes)+ Vercel 实证质疑。
FIG.00 — cover · ai-generated · placeholder

它回答的问题: 你在重复做哪些工作流? 它在哪: .claude/skills/<name>/SKILL.md(Claude Code)/ Cursor Agent Skills / Copilot Custom Agents / Codex Slash Commands 它读取的时机: 按需触发(由用户触发词或 agent 判断), 不是每次都读。

原文金句

「Skills is how you work. A skill is a reusable instruction set for the AI or workflow that you do repeatedly.」 「Skills 是你怎么工作。 一个 Skill 就是一套可复用的、面向 AI 的指令集——是你重复在做的工作流。」 (#202-203,00:13:55,831 → 00:14:05,675)

「I believe that every knowledge worker easily has 20 or 30 of these patterns.」 「我相信每个知识工作者都轻松能列出 20 到 30 种这样的固定模式。」 (#206)

Skill 的标准三段式

按视频 (#207-208):

当我说出 [触发词] 时,
基于 [以下来源] 执行 [某种流程],
以 [这种格式] 产出输出。

例子:

当我说「pre-read for X meeting」时,
基于:
  - 我的日历(找到这次会议的标题、参会人、上次同议题会议)
  - 我的 stakeholders.md(知道每个参会人在乎什么)
  - 我最近 7 天跟参会人的往来邮件
执行:
  1. 提取上次同议题会议的 3 个未决项
  2. 对每个参会人列 1 句话「他们最可能问什么」
  3. 对你识别到的争议点, 标我可以提前给的立场
以一页 markdown 产出, 按以下结构:
  - 会议目标(1 行)
  - 上次未决项(3 行)
  - 每位参会人画像(每人 1 行)
  - 我应该提前定的立场(1-3 行)

这个 Skill 一旦写好, 你以后说 「pre-read for tomorrow’s product review」 就能直接拿到一份 1 页简报。

不写 Skill 时, 你在重复做什么?

按视频 (#209-212):

  • 每次重新解释格式
  • 每次粘贴一样的来源
  • 每次抱怨它的腔调不对, 但你从来没花心思教它你的语气

「You complain that the agent writes in a weird voice and you never bother to teach it your voice.」 「你抱怨 AI 写出来的腔调怪怪的, 但你又从来没花心思教它你的语气。」

MVP-first(再次强调)

「我建议先做一个 MVP 版的 Skill, 而不是一开始就追求完美。 第一版总是不完美、有些地方甚至是错的, 但你用一周, 就会发现它哪里跑偏、哪里需要改。 打补丁, 几周之后, 这个 Skill 写出的初稿,会比你每次重新开始能写的更好。」 (#214-218)

实操节奏:

  • 第 1 天: 起草 v1, 长得像 「if-then-else, 大致对了 70%」
  • 第 2-7 天: 每天用它跑 1-3 次, 把 「应该这样但它没做到」的项记在文件末尾
  • 第 8 天: 把 7 天积累的修正合进 SKILL.md
  • 第 30 天: Skill 写出的初稿已经超过你重新写的质量

Chief of Staff 的初始 Skill 套件(按视频 #220-224 整理)

Skill触发词输出
Pre-read「pre-read for [meeting]」一页会前简报
Daily Brief「today’s brief」扫描收件箱 / Slack / 日历, 给「今天要处理什么」
Voice Match「draft in my voice」用你的语气起草任何内容
Commitment Tracker「what did I commit to」跟踪你在每次通话中做的承诺

四份的完整可粘贴版本见 08 Chief of Staff 完整模板第 6-9 节。

工具对照(各家 Skill 落点)

工具Skill 文件位置触发方式
Claude Code.claude/skills/<name>/SKILL.md/skills 列表 + 按需调用
CursorAgent Skills(2026 GA)UI 选择
OpenCodeAgent Skills(opencode.json 配置)@mention 或 Task tool
GitHub CopilotCustom Agents(github/awesome-copilot)命令/聊天触发
CodexSlash commands(自定义)/<name>
Hermesagentskills.io 开放标准复杂任务后自动生成

⚠️ Skill 标准目前仍在分裂。 Claude Code 用自己的 .claude/skills/<name>/SKILL.md, Hermes 推 agentskills.io 开放标准, 其他工具各自命名。 建议先按你主用工具的格式写, 然后用纯文本(不依赖工具特性)的方式写, 这样换工具时只要改文件位置就能复用。

一个不该被忽略的争议:Skills 真的有用吗?

社区 Stage 1 调研发现一条重要反对声音, 译者诚实展示给你:

⚠️ Hacker News 讨论 AGENTS.md outperforms skills in our agent evals (thread #46809708) — Vercel 团队基于自家 agent 评测数据指出: 在他们的设置下, Skills 在 56% 的时间根本没被 agent 调用, 而把同样的内容直接写进 AGENTS.md 反而获得更稳定的输出。

这条数据点指向一个值得每个人都验证的现实问题:

Skill 的「按需调用」机制依赖 agent 自己判断「这个任务需要哪个 Skill」。 如果 agent 判断不准, Skill 就 silently 没被用上。

我作为译者的看法:

🟢 不要因为 Vercel 的数据放弃 Skills, 但要把它当成一个待优化的设计点。 实操建议:

  1. 每个 Skill 在 description: 字段里写极强的触发信号(「ALWAYS use this skill when…」这种 Karpathy 式 caps lock 信号)
  2. 周度审计:把过去一周用过的高频任务列出来, 看哪些「应该被某个 Skill 接住但没被接住」, 修正 description
  3. 高频核心的 3-5 个 Skill, 在 Identity 文件里直接 reference 它们, 强制召回

🟢 这条争议本身比争议结果更重要 — 它说明 Agent OS 7 层不是完成态, 是一个有缺陷但被持续打磨的工程实践。 跟着用、跟着补, 别盲信、别盲弃。

落地步骤(给你下周的 7 天)

Day 1 · 列你的 Skill 候选清单(20 分钟)

回答 5 个问题:

  1. 我每周必做但每次重新解释的工作流是什么?(目标: 列出 ≥ 5 个)
  2. 我希望 AI 用我的语气写的内容是什么?(目标: 列 1-2 个写作场景)
  3. 我跟 AI 对话时哪些是「拉数据 + 整合 + 输出」型任务?(目标: 列 ≥ 3 个)
  4. 哪些任务我做完后 AI 的初稿质量低于 60%?(目标: 找 1-2 个可优化的)
  5. 哪些是我只做过一次的任务?(目标: 别给这些写 Skill, 它们不算 pattern)

Day 2 · 起草第一个 Skill(30 分钟)

挑清单里第 1 名(最高频), 用三段式格式起草。 不要追求完美。

Day 3-7 · 每天用一次, 在末尾打补丁

每天用一次, 把它给的初稿和你修改后的版本对比, 把「它没做到的」记在 SKILL.md 末尾的 # notes 段。

Day 8 · 合并补丁, 起草第二个 Skill

把 7 天的 notes 合到正文。 然后起草下一个 Skill。

30 天后 · 你应该有 5-8 个 Skill

每天 30 分钟投入 → 30 天 → 5-8 个 Skill 已经稳定在 80%+ 输出质量。

常见坑

现象怎么避
太通用Skill description = 「help me write」越具体越好。 「draft a Friday update for engineering team」
没有触发词你忘了它存在description 字段开头写 「USE WHEN: …」
没有来源清单它去网上瞎编写明 「USE THESE FILES: context/stakeholders.md, …」
一次写到完美写了 800 行 markdownMVP-first, 70% 发版
不复盘每次抱怨它没做对, 但从不改 SKILL.md每天用完写 1 行 notes, 周末合并
复用别人的 Skill 不改直接 clone awesome-copilot 不调别人的 Skill 不知道你的 Identity / Context, 必须按你的实际情况改写

🟢 译者点评

🟢 「20-30 个固定模式」 这个数字很真实。 我做了一个简单测试: 翻自己最近 4 周的 Claude Code 历史, 用「我又一次解释这个东西」 作为标准, 数到的 patterns 是 23 个。 Nufar 的估计很准。

🟢 Skill 这一层的真正价值在于「让你工作的隐性结构变显性」。 写 Skill 的过程本身比 Skill 跑出来的结果更重要 — 你被迫定义 「我要的输出格式是什么」 「我会用哪几个来源」, 这个过程让你对自己的工作流有了之前没有的清晰度。

🟢 承接上一节的争议: 我倾向于「先把 Skill 写当 AGENTS.md / CLAUDE.md 的 import target」, 把核心 3-5 个 Skill 直接 reference, 而不是依赖按需召回。 这把「Skills 56% 没被调用」 的风险降到最低。

🟢 Hermes / agentskills.io 是值得关注的开放标准方向。 如果你想做长期可移植的 Skill 库, 现在就把文件结构按 agentskills.io 的格式写, 比绑死在某个工具的私有 SKILL.md 上更安全。

🔗 立刻去做

→ 列你的 Skill 候选清单(Day 1 的 5 个问题), 然后读 04 Memory · 记忆层 — 让你的 Skill 跨会话记住学到的东西。

🔗 延伸阅读