工作流程技能怎么写?从7个精品项目中提炼的模式与最佳实践

22 阅读14分钟

楔子

今天分享的这篇文章,在阿里巴巴和蚂蚁集团内部的技术分享平台ATA上,热度远超想象。

可见大家在工作中,想把自己的复杂工作流程/SOP(标准操作程序)写成Skill时,会所遇到不知道怎么写,以及写完之后Skill运行不符合预期的情况。

图片

在这篇文章中,青斧大佬分析了7个最顶尖的技能案例,并根据分析结果总结了5种工作流技能的设计模式。

经过作者青斧的授权,在这里把文章分享给大家,希望大家在构建自己的工作流程技能时,也能够收获一些启发~

还有什么? 

大家其实可以让你的通用Agent(如Claude Code)根据本文文章的内容,快速Vibe出一个SOP智能分析工具,根据SOP文档,选择最适合的技能模式生成对应技能。

图片

同时进行沙盘成绩,一步到位~

图片

欢迎大家关注OceanBase社区公众号“老纪的技术唠嗑局”,在这里,我们将持续为大家更新与 #AI 和 #Data 相关的技术内容~

话不多说,正文开始。

本文基于对 7 个来自 OpenAI、Google Labs、obra、Trail of Bits、Dean Peters 等团队生产级技能的逐行分析,提炼出的可复用的五种技能设计模式、写作技巧和反面教训。

一、技能是什么

大家对技能基本都有所了解,这里只言简意赅地提两句。

Skill 是一个文件夹,核心是 SKILL.md 文件,使用 YAML frontmatter + Markdown 正文 的格式。当 LLM 判断需要某个 Skill 时,会调用 skill 工具加载它,SKILL.md 的全部内容会作为工具结果注入到对话上下文中,LLM 读到后自主决定怎么执行。

my-skill/

├── SKILL.md         
# 主文件(必须)

├── scripts/         
# 可执行脚本(可选)

├── references/      
# 详细参考文档(可选,按需加载)

├── resources/       
# 模板、清单等资源(可选)

└── examples/        
# 示例(可选)

关键机制:技能本质是“知识注入”——它不会动态生成新工具,而是把指令文本注入到LLM的上下文中,LLM使用已有的工具(bash、read、edit等)来执行这些指令。

技能文件结构 技能文件结构


二、Frontmatter:决定技能是否被加载的“门面”

2.1 必填字段

| 字段 | 作用 | 效果 | | --- | --- | --- | | name | 唯一标识符,小写连字符 | test-driven-development | | description | 最关键 ——LLM通过决定是否加载 | 见下方对比 |

2.2 写法决定加载率说明

# 好的 description — 包含触发短语和关键词

description:
Deploy
applications
and
websites
to
Vercel.
Use
when
the
user

requests
deployment
actions
like
"deploy my app"
,
"push this live"
,

or
"create a preview deployment"
.


# 好的 description — 定义时序位置

description:
Use
when
implementing
any
feature
or
bugfix,
before
writing

implementation
code


# 差的 description — 太模糊

description:
Helps
with
deployment
stuff

核心原则

  • 引用触发脚本:把用户可能说的话写进去(“部署我的应用程序”、“推送此活动”)

  • 定义尺寸:说明“在什么之前/之后”使用(“编写实现代码之前”)

  • 包含产品关键词:如果覆盖大平台,把所有产品名上市来

2.3 可选扩展字段

从7个技能中观察到的扩展字段:

| 字段 | 来源 | 作用 | | --- | --- | --- | | references | OpenCode Cloudflare | 声明最重要的参考文档 | | allowed-tools | Google Labs缝合环 | 需要声明的工具权限 | | type | 迪恩·彼得斯发现过程 | 声明 技能类型(工作流程/组件) | | best_for | 迪恩·彼得斯发现过程 | 最适合的场景列表 | | scenarios | 迪恩·彼得斯发现过程 | 具体的触发 场景 示例 | | estimated_time | 迪恩·彼得斯发现过程 | 股票支付时间 |


三、5种核心设计模式

5种核心设计模式 5种核心设计模式

模式1:线性流程

适用:场景部署、安装、迁移等具有明确的步骤操作。

代表:openai/skills — vercel-deploy [1](77行)

结构

# 标题

## Prerequisites(前置条件)

## Quick Start(主流程:Step 1 → 2 → 3)

## Fallback(降级方案)

## Troubleshooting(故障排除)

关键技巧

| 技巧 | 效果 | 为什么有效 | | --- | --- | --- | | 安全默认值 | “始终部署为预览版,而非生产环境” | 防止法学硕士进行危险操作 | | 具体命令 | 每步给出可直接执行的 bash 命令 | LLM 不需要猜测 | | 超时提示 | “使用 10 分钟(600000 毫秒)超时” | 防止LLM因超时中断 | | 降级方案 | CLI 失败有后备脚本 | 提供B计划 | | 负面指令 | 不要使用 curl 命令验证已部署的 URL。 | 明确禁止不该做的事 |

适用判断:如果你的技能可以用“先做A,再做B,最后做C”描述,就用线性模型。

线性流程模式 线性流程模式


模式2:决策树+阶梯加载

适用包括:大型平台选型、产品导航、问题诊断。

代表:openai/skills — cloudflare-deploy [2](224行)

结构

# 标题

## Authentication(认证前置)

## Quick Decision Trees(决策树)

### "I need to run code"(按用户意图分类)

### "I need to store data"

### "I need AI/ML"

## Product Index(产品索引表)

关键技巧

| 技巧 | 效果 | 为什么有效 | | --- | --- | --- | | 用户意图分类 | “我需要运行代码” 而不是 “计算产品” | 使用语言用户技术术语 | | 树形导航 | ├─ 边缘无服务器函数 → workers/ | LLM 快速定位正确产品 | | 渐进式披露 | 主文件 7KB,参考文献/ 展开到几十万字 | 不浪费上下文窗口 | | 产品指数表 | 产品 → 参考的映射表 | 构造的快速查找 |

适用判断:如果你的技能覆盖的知识域有10+个分支,且每个分支都有大量详细文档,就用决策树模式。

决策树模式 决策树模式

进阶:同一个知识域可以拆成两个技能——

  • 导航型(cloudflare):只做选型,不涉及操作

  • 操作型(cloudflare-deploy):包含认证、命令、故障排除


模式3:循环迭代

适用场景:TDD、代码审查、设计评审等需要反复执行的流程。

代表:obra/superpowers — 测试驱动开发[3](371行)

结构

# 标题

## The Iron Law(铁律——不可违反的核心原则)

## Red-Green-Refactor(循环体)

### RED — 写失败的测试

### Verify RED — 验证确实失败

### GREEN — 写最少的代码

### Verify GREEN — 验证确实通过

### REFACTOR — 清理

### Repeat(回到 RED)

## Common Rationalizations(借口反驳表)

## Verification Checklist(退出条件)

关键技巧

| 技巧 | 效果 | 为什么有效 | | --- | --- | --- | | 强硬语气 | 删除它,重新开始。 | LLM倾向“灵活变通”,强硬语气提高服从率 | | 好/坏对比 | 使用 <Good> 和 <Bad> 标签概括代码示例 | 对比教学效果最好 | | 借口反驳表 | 预判LLM可能的12种偷懒借口并逐一反驳 | 堵死所有逃生路径 | | 验证清单 | 8 项清单作为循环退出条件 | 确保质量达标才能结束 | | 人体兜底 | “问问你的人类伙伴” | 空闲时兼职人 |

适用判断:如果你的技能需要LLM反复执行“做→验证→改进”的循环,就用迭代模式。

循环迭代模式 循环迭代模式


模式4:接力棒循环(跨会话持久化)

适用:场景多次迭代的长期项目,需要跨多个会话持续工作。

代表:google-labs-code/stitch-skills —stitch-loop [4](203行)

结构

# 标题

## Overview(接力棒模式概述)

## The Baton System(接力棒文件规范)

## Execution Protocol(6 步执行协议)

### Step 1: Read the Baton(读接力棒)

### Step 2: Consult Context Files(查阅上下文)

### Step 3: Generate(执行任务)

### Step 4: Integrate(集成结果)

### Step 5: Update Documentation(更新文档)

### Step 6: Prepare the Next Baton ⚠️(写下一个接力棒——关键!)

## File Structure Reference(文件协议)

## Orchestration Options(编排方式)

关键技巧

| 技巧 | 效果 | 为什么有效 | | --- | --- | --- | | 文件即状态 | next-prompt.md  作为接力棒 | LLM不必记得“模仿哪了” | | 续命机制 | 步骤 6 标记为 Critical + MUST | 忘记写接力棒循环就断了 | | 文件协议 | 每份文件都有明确的职责 | LLM按协议读写文件 | | 编排关联 | CI/CD、人在回路、Agent链驱动驱动 | 相同的技能配备多种自动化环境 |

适用判断:如果你的技能需要跨多个会话持续工作,或者需要多个代理协作,就用接力棒模式。

接力棒循环模式 接力棒循环模式

与模式3的区别

| 维度 | 循环迭代(TDD) | 接力棒循环(Stitch Loop) | | --- | --- | --- | | 状态存储 | LLM对话上下文 | 外部文件系统 | | 跨会话 | ❌ | ✅ | | 循环退出 | 清单全部打勾 | 路线图清空 | | 适用时长 | 单次会话(分钟小时) | 长期项目(天周) |


模式5:多阶段+检查点+技能编排

适用场景:复杂的多周流程,需要在关键节点做Go/No-Go决策。

代表:deanpeters/Product-Manager-Skills — discovery-process [5](502行)

结构

# 标题

## Key Concepts(核心概念 + 反模式)

## Phase 1: Frame the Problem(阶段 1)

### Activities(调用哪些子 Skill)

### Outputs(阶段产出)

### Decision Point 1(检查点:YES/NO + 时间影响)

## Phase 2-6...(重复相同结构)

## Complete Workflow(端到端时间线)

## Common Pitfalls(常见陷阱)

## References(引用的子 Skill 列表)

关键技巧

| 技巧 | 效果 | 为什么有效 | | --- | --- | --- | | 统一阶段模板 | 每个阶段都有活动 → 输出 → 决策点 | LLM 理解快速结构 | | 决策检查点 | "达到灌溉了吗?YES → 下一阶段,NO → +1 周" | 防止盲目推进 | | 技能编排 | 调度10+个子技能完成各个阶段 | 编排器模式,大技能调度小技能 | | 时间影响 | 每个NO路径标注“+2-3天”、“+1周” | 让我们了解用户延迟成本 | | 相互协议分离 | 引用 workshop-facilitation 定义 交互方式 | 关注点分离 |

适用判断:如果你的技能跨越多天/多周,有明确的阶段划分和Go/No-Go决策点,就用多阶段模式。

多级检查点模式 多级检查点模式


特殊模式:思维框架(控制LLM“怎么想”)

适用:安全审计、代码审查、架构分析等需要深度思考的场景。

代表:Trailofbits/skills —audit-context-building [6](302行)

结构

# 标题

## Purpose(定位:控制思维方式,不是控制行为)

## When to Use / When NOT to Use

## Rationalizations(借口反驳表)

## Phase 1: Initial Orientation(定向扫描)

## Phase 2: Ultra-Granular Function Analysis(逐行分析——核心)

### Per-Function Checklist(函数微分析清单)

### Cross-Function Flow Analysis(跨函数追踪)

### Output Requirements(输出格式 + 量化阈值)

### Completeness Checklist(完整性检查)

## Phase 3: Global System Understanding(全局理解)

## Stability Rules(反幻觉规则)

## Non-Goals(明确禁止做的事)

关键技巧

| 技巧 | 效果 | 为什么有效 | | --- | --- | --- | | 思维工具 | 第一性原理、5个为什么、5个如何 | 给 LLM 分析框架具体命令 | | 确定阈值 | "每个函数最少 3 个不变量、5 个假设" | 强制LLM达到足够的分析深度 | | 非目标约束 | “不要识别漏洞、不要提出修复” | 克制LLM最尝试的事,先理解再判断 | | 反幻觉规则 | “永远不要为了迎合先前的假设而篡改证据” | 防止LLM自我欺骗 | | 子代理指导 | 当以及如何使用函数分析器代理 | 分而治之 |

适用判断:如果你的技能需要LLM进行深度分析而不是快速执行,需要控制的是“思维质量”而不是“操作步骤”,就用思维框架模式。


四、通用写作技巧

4.1 防止LLM偷懒的4种武器

防止LLM偷懒的4种武器 防止LLM偷懒的4种武器

| 武器 | 原理 | 示例来源 | | --- | --- | --- | | 强硬语气 | LLM对命令式语气的服从率更高 | TDD:“删除它,重新开始。” | | 借口反驳表 | 预判LLM的自我合理化路径并堵死 | TDD:12种借口+反驳;审核:6种借口 | | 确定阈值 | 硬性给出的最低标准 | 审计:“最少3个不变量、5个假设” | | 负面指令 | 明确表示“不要做X” | vercel-deploy:“不要使用 curl 命令访问 URL” |

4.2 教学的三种有效方式

| 方式 | 原理 | 示例来源 | | --- | --- | --- | | 好/坏对比 | 对比学习效果最好 | TDD:<Good> vs <Bad> 代码示例 | | 具体命令 | LLM擅长执行具体指令 | vercel-deploy:每步都有 bash 命令 | | 完整示例 | 展示期望的输出格式 | 审计:引用 FUNCTION_MICRO_ANALYSIS_EXAMPLE.md |

4.3 安全与边界的3条原则

| 原则 | 做法 | 示例来源 | | --- | --- | --- | | 安全默认值 | 默认选择最安全的选项 | vercel-deploy:“始终以预览方式部署” | | 权限最小化 | 仅在必要时提升权限 | vercel-deploy:“不要升级安装检查” | | 人体兜底 | 空闲时兼职人 | TDD:“询问你的人类伙伴” |

4.4 知识组织的3层架构

知识组织 3 层架构 知识组织 3 层架构

  • 第1层:Frontmatter(~100 tokens)→ LLM 扫描所有技能的描述,决定是否加载

  • 第2层:SKILL.md正文(<5K tokens)→核心指令、决策树、流程步骤

  • 第 3 层:references/ 和 resources/  (每秒加载)→ 详细文档、示例、清单,LLM 使用读取工具读取

代币预算参考

| 体系 | 代币预算 | 内容 | | --- | --- | --- | | 前言 | 约100个代币 | name + description | | 主文件 | 2K-5K tokens | 核心指令 | | 参考文档(单个) | 1K-3K tokens | 按需加载 | | 总上下文占用 | <10K tokens | 主文件 + 1-2 个参考文档 |


五、模式选择决策树

模式选择决策树 模式选择决策树

你的 Skill 需要做什么?

│

├─ 执行一个有明确步骤的操作

│  └─ → 模式 1:线性流程

│

├─ 在大量选项中帮用户选择正确的方向

│  └─ → 模式 2:决策树 + 按需加载

│

├─ 在单次会话中反复执行
"做→验证→改进"

│  └─ → 模式 3:循环迭代

│

├─ 跨多个 session 持续推进一个长期项目

│  └─ → 模式 4:接力棒循环

│

├─ 跨越多天/多周,有阶段划分和 Go/No-Go 决策

│  └─ → 模式 5:多阶段 + 检查点

│

└─ 需要 LLM 进行深度分析而非快速执行

   └─ → 特殊模式:思维框架

六、快速上手模板

最小可用 Skill(线性模式)

---

name:
my-skill

description:
[一句话描述做什么
+
什么时候触发]

---


# Skill 名称


[一句话核心原则
+
安全默认值]


## Prerequisites


-
[前置条件
1
]

-
[前置条件
2
]


## Steps


### Step 1: [动作]


```bash

[具体命令]

Step 2: [动作]

[具体指令]

Step 3: [动作]

[具体指令]

Troubleshooting

| Issue | Solution | | --- | --- | | [问题 1] | [解决方案] |

### 循环迭代 Skill 模板


```yaml

---

name: my-loop-skill

description: [描述 + 触发时机]

---


# Skill 名称


## Core Principle


[不可违反的铁律]


## The Loop


### Phase A — [动作]


[具体指令]


### Verify A


[验证命令]


### Phase B — [动作]


[具体指令]


### Verify B


[验证命令]


### Repeat


回到 Phase A。


## Rationalizations


| Excuse | Reality |

|--------|---------|

| 
"[借口 1]"
 | [反驳] |


## Completion Checklist


- [ ] [条件 1]

- [ ] [条件 2]

七、参考资源

官方规范

  • Agent Skills 开放标准[7]

  • anthropics/skills — 官方模板[8]

  • anthropics/skills — 规范文档[9]

精选仓库

  • openai/skills[10] — OpenAI Codex 官方 Skill 目录

  • obra/superpowers[11] — 14 个工作流型 Skill

  • google-labs-code/stitch-skills[12] — 设计到代码的 Skill

  • deanpeters/Product-Manager-Skills[13] — 40+ 产品管理 Skill

  • trailofbits/skills[14] — 安全审计 Skill

  • openclaw/clawhub[15] — Skill 注册中心

精选列表

  • VoltAgent/awesome-agent-skills[16] — 500+ Skill 索引

  • travisvn/awesome-claude-skills[17] — 精选列表 + Skill vs MCP 对比


八、本文分析的 7 个 Skill 速查表

|

| Skill | 来源 | 模式 | 行数 | 一句话精髓 | | --- | --- | --- | --- | --- | --- | | 1 | vercel-deploy | OpenAI | 线性 | 77 | 最小但完整的 Skill 模板 | | 2 | cloudflare-deploy | OpenAI | 线性 + 决策树 | 224 | 大平台的渐进式披露 | | 3 | cloudflare | OpenCode | 纯决策树 | 211 | 导航型 vs 操作型的区别 | | 4 | test-driven-development | obra | 循环迭代 | 371 | 堵死 LLM 偷懒的所有退路 | | 5 | stitch-loop | Google Labs | 接力棒循环 | 203 | 文件即状态,跨 session 持久化 | | 6 | discovery-process | Dean Peters | 多阶段 + 检查点 | 502 | 编排器模式,调度 10+ 子 Skill | | 7 | audit-context-building | Trail of Bits | 思维框架 | 302 | 控制 LLM "怎么想"而非"做什么" |

图片

参考资料

[1] 

openai/skills — vercel-deploy: github.com/openai/skil…

[2] 

openai/skills — cloudflare-deploy: github.com/openai/skil…

[3] 

obra/superpowers — test-driven-development: github.com/obra/superp…

[4] 

google-labs-code/stitch-skills — stitch-loop: github.com/google-labs…

[5] 

deanpeters/Product-Manager-Skills — discovery-process: github.com/deanpeters/…

[6] 

trailofbits/skills — audit-context-building: github.com/trailofbits…

[7] 

Agent Skills 开放标准: agentskills.io/

[8] 

anthropics/skills — 官方模板: github.com/anthropics/…

[9] 

anthropics/skills — 规范文档: github.com/anthropics/…

[10] 

openai/skills: github.com/openai/skil…

[11] 

obra/superpowers: github.com/obra/superp…

[12] 

google-labs-code/stitch-skills: github.com/google-labs…

[13] 

deanpeters/Product-Manager-Skills: github.com/deanpeters/…

[14] 

trailofbits/skills: github.com/trailofbits…

[15] 

openclaw/clawhub:  github.com/openclaw/cl…

[16] 

VoltAgent/awesome-agent-skills:  github.com/VoltAgent/a…

[17] 

travisvn/awesome-claude-skills:  github.com/travisvn/aw…

期往内容推荐

图片