用了几个月 Claude Code,许多人还停留在「聊天框里写 prompt,让它改改代码」的阶段。
但实则 Claude Code 真正厉害的地方,是它的 Skill 系统。
Skill 不是什么高大上的概念——它就是一组预设的指令、流程和工具,打包成一个模块。当 Claude Code 判断当前任务匹配某个 Skill 时,它会自动加载对应的 SKILL.md 文件,然后按照里面写的流程、规范和示例去干活。
打个比方:没有 Skill 的 Claude Code 像一个万能实习生——什么事都能干,但每次都要你从头说明。有 Skill 的 Claude Code 像一个受过训练的专业员工——你说「做个代码审查」,它就知道看哪些方面、用什么标准、输出什么格式。
这篇文章挑 3 个我个人使用频率最高、价值最大的 Skill,从能力介绍 → 使用方法 → 高手进阶 → 避坑指南四个维度逐一拆解。
三大 Skill 全景:它们分别解决什么问题?
在深入每个 Skill 之前,先建立全局认知:
- TaskFlow
- —— 当你的任务需要多个步骤、等待外部信号、持久化状态追踪时,用它。适合定时任务、持续集成、多步骤编排。
- Skill Creator ️
- —— 当你想扩展 Claude Code 的能力边界、或者把重复工作「固化」成可复用的模块时,用它。适合创建自定义 Skill、编写 SKILL.md、打包分发。
- Browser Automation
- —— 当 Claude Code 需要操控网页时,用它。适合自动化测试、数据采集、登录操作、页面状态验证。
这三个 Skill 就像工具箱里的三个核心工具——各司其职,又相互配合。

TaskFlow、Skill Creator、Browser Automation 三大 Skill 的定位与协作关系
▲ 三种 Skill 的定位与协作关系
Skill 1:TaskFlow —— 多步骤任务的「总导演」
作用与能力
TaskFlow 是 Claude Code 生态中最被低估的 Skill 之一。简单来说,它让你能编排一个需要多步执行、跨 session、甚至需要等待人工反馈的复杂工作流。
它的核心能力有 5 个:
1.持久化状态管理
—— 每一步执行后的状态通过 stateJson 保存,即使 session 重启也能恢复。
2.子任务并行调度
—— 通过 runTask() 创建子 Agent 并行执行独立任务。
3.等待/恢复机制
—— setWaiting() 等人回复,resume() 继续推进,适合审批流、人工审核场景。
4.Revision 安全锁
—— 每次状态变更都需要传入 expectedRevision,防止并发冲突。
5.完整的生命周期管理
—— createManaged → runTask → setWaiting/resume → finish/fail,闭环可控。
怎么用
使用 TaskFlow 超级简单,三步走:
第一步:从 context 中拿到 TaskFlow 实例
const taskFlow = api.runtime.tasks.flow.fromToolContext(ctx);
第二步:创建一个 Flow
const created = taskFlow.createManaged({ controllerId: "my-plugin/flow-name", goal: "inbox triage", currentStep: "classify", stateJson: { items: [], results: [] }, });
第三步:执行步骤并管理生命周期
// 运行子任务 const run = taskFlow.runTask({ flowId: created.flowId, runtime: "subagent", childSessionKey: "agent:main:subagent", runId: "classify-1", task: "执行分类任务" }); // 等待人工回复 taskFlow.setWaiting({ flowId: created.flowId, expectedRevision: created.revision, currentStep: "await_approval", waitJson: { kind: "reply", channel: "slack" } }); // 收到回复后恢复 taskFlow.resume({ flowId, expectedRevision: waiting.flow.revision }); // 完成后关闭 taskFlow.finish({ flowId, expectedRevision: resumed.flow.revision });
高手进阶
- 最小化 stateJson
- —— 只保存恢复执行所必需的状态,不要往 stateJson 里塞大段数据。TaskFlow 不是数据库。
- 用 getTaskSummary 做健康检查
- —— 当编排复杂多步骤任务时,getTaskSummary(flowId) 能快速看到各个子任务的状态。
- 利用 waitJson 做「带上下文阻塞」
- —— 在 waitJson 里记录等待的缘由、渠道、期望的回复格式,resume 的时候直接读 waitJson 就知道接下来做什么。
- requestCancel 和 cancel 的区别
- —— requestCancel 只是标记「不要再调度新任务了」;cancel 会连当前活跃的子任务一并终止。按需选择。
避坑指南
- 不要忘记 revision 机制
- —— 每次 mutate 后必须保存返回的 flow.revision,否则下一次 mutate 会失败。
- 不要把业务逻辑放在 Flow 里
- —— TaskFlow 只负责编排和状态追踪,判断「是走 Slack 还是邮件」这种逻辑应该在调用层处理,不要写在 flow 的生命周期回调里。
- 小心 session 过期
- —— 如果等待时间很长(列如等人工回复超过 24 小时),确认你的 TaskFlow 实现能处理 session 重建后的状态恢复。
️ Skill 2:Skill Creator —— 扩展 Claude Code 能力的「元技能」
作用与能力
Skill Creator 是专门用来创建、编辑、优化、审计和打包 Skill 的「元技能」。如果说普通 Skill 是武器,Skill Creator 就是兵工厂。
它的核心理念可以用一句话概括:把你的领域知识和工作流程「固化」成 Claude Code 可读的指令集。
一个完整的 Skill 包含三个层级:
- SKILL.md
- —— 核心指令文件,YAML 头部包含 name 和 description(这是触发关键),正文是使用指南。
- scripts/
- —— 可执行的脚本(Python / Bash / Node.js),用于需要确定性的重复工作。
- references/
- —— 参考资料,按需加载,保持 SKILL.md 精炼。
- assets/
- —— 模板、图标等输出资源。
怎么用
创建 Skill 遵循六步流程,每一步都有相应的脚本支持:
步骤 1:理解需求 —— 弄清楚你要创建的 Skill 解决什么问题。
步骤 2:规划内容 —— 想清楚需要什么脚本、参考文档和资源。
步骤 3:初始化 —— 运行 scripts/init_skill.py my-skill –path skills/public,自动生成目录和模板。
步骤 4:编辑 —— 编写 SKILL.md 和各个资源文件,参考内置的设计模式指南。
步骤 5:打包 —— 运行 scripts/package_skill.py,自动校验并生成 .skill 文件。
步骤 6:迭代 —— 在实际使用中发现问题,不断优化更新。
高手进阶
- description 是第一触发机制
- —— Claude Code 根据 SKILL.md 头部的 description 判断是否使用这个 Skill。要把「何时触发」「什么场景用」写清楚,不能模棱两可。
- 渐进式加载设计
- —— 善用三层加载(metadata → SKILL.md → references/),SKILL.md 保持 500 行以内,详情放到 references/。口诀:SKILL.md 只管「怎么干」,references/ 管「干的时候看什么」。
- 自由度要匹配任务的脆弱度
- —— 高自由度的文本指令(适合多种方案的任务)、中自由度的脚本参数(适合有偏好的模式)、低自由度的准确脚本(适合易出错的操作)。
- 参考文件中加入目录
- —— 超过 100 行的 reference 文件,顶部放目录,Claude Code 预览时快速看全貌。
避坑指南
- 不要在 SKILL.md 写「使用场景」章节
- —— description 字段才是做触发判断的地方,SKILL.md 正文只有在触发后才加载。把触发条件写在正文里毫无意义。
- 避免深度嵌套 reference
- —— reference 文件最多一层深度,都从 SKILL.md 直接引用,不要「reference 再引用 reference」。
- 不要包含多余文档
- —— 不用放 README、CHANGELOG、INSTALLATION_GUIDE 之类。Skill 是为了 AI 使用的,不是给人读的。
- SyMLinks 会被打包拒绝
- —— package_skill.py 遇到 symlink 直接失败。确保所有资源都是真实文件。
- 谨慎包体积
- —— 不要往 skill 里塞大文件,尤其是二进制文件。Skill 的加载成本由它的使用者承担。
Skill 3:Browser Automation —— 让 Claude Code 自己上网干活
作用与能力
如果说 TaskFlow 是「多步骤编排」,Skill Creator 是「能力扩展」,那 Browser Automation 就是 Claude Code 的「手」——让它能动浏览器。
这个 Skill 的核心价值在于:许多开发任务最终要落到网页上——提交表单、检查部署状态、登录第三方平台、截图验收、读取网页数据。没有浏览器能力,Claude Code 就只能在你的项目文件里打转。
它提供了完整的操作基元:
- 打开 / 关闭标签页
- —— 支持 label 命名,方便多 Tab 管理
- Snapshots(快照)
- —— 获取当前页面结构和内容,支持 ARIA 引用
- Actions(操作)
- —— 点击、输入、滚动、悬停、拖拽、选择
- 状态检查
- —— 通过 action=”status” 检测浏览器可用性
- Profiles
- —— 支持使用已有用户配置(user profile),保持登录状态
怎么用
使用核心遵循一个「状态检查 → 打开标签 → 快照 → 操作 → 再快照」的操作循环:
第一步:检查浏览器状态
# 快速诊断 openclaw browser doctor # 或通过工具 { "action": "status" } { "action": "profiles" } # 查看可用的配置
第二步:打开目标页面(打好标签)
{ "action": "open", "url": "https://example.com", "label": "task" }
第三步:快照 → 操作 → 循环
// 1. 快照当前页面 { "action": "snapshot", "targetId": "task", "refs": "aria" } // 2. 用快照中的 ref 执行操作 { "action": "act", "targetId": "task", "ref": "ax42", "text": "搜索内容" } // 3. 操作后重新快照,确认状态 { "action": "snapshot", "targetId": "task", "urls": true }
第四步:用完清理标签页
{ "action": "close", "targetId": "t3" }
高手进阶
- 用 label 管理多 Tab
- —— 每次 `open` 时指定一个有意义的 label,列如 label=”meet”,复用已有的标签可以减少打开的窗口数。
- ARIA ref 优先
- —— snapshot 加上 refs=”aria” 可以获得更准确的元素引用,但注意 `axN` 引用只对同一次 snapshot 有效,变了就需要重新 snapshot。
- stale ref 恢复
- —— 操作失败时不要盲目重试:先 snapshot 再操作。如果页面进入了一个阻挡状态(列如弹窗),先处理阻挡状态。
- profile=”user” 保持登录
- —— 需要操作已登录的页面时,用 profile=”user” 附加到已有浏览器的 session,复用 cookie。
- 使用 urls 参数定位导航
- —— 当链接文本模糊时,加 urls=true 看具体目标 URL,比盲目点击更可靠。
避坑指南
- 不要传裸数字作为 targetId
- —— “2” 不是合法的 targetId,那是 CLI 位置选择器的语法。要用 suggestedTargetId、label、tabId 或 raw target。
- 不要把登录失败和弹窗混淆
- —— 权限对话框、摄像头授权、入门引导 ≠ 未登录。先 snapshot 看清当前 UI 状态再判断。
- profile=”user” 下不要传 timeoutMs
- —— 对 act:type、evaluate、fill 等操作传 timeout 会直接报错。
- 标签页泄漏
- —— 失败重试可能产生多个同标签页面。每次打开页面前先 action=”tabs” 列表一下,关闭多余的。
- 需要人介入的操作不要强撑
- —— 遇到 2FA、验证码、人脸识别这些,果断停下来告知用户。强行自动化只会浪费 token。
三个 Skill 如何搭配使用?
单独看每个 Skill 都很强,但它们真正的威力在组合使用:
- Skill Creator + TaskFlow
- —— 用 Skill Creator 编写一个「自动化代码审查」的 Skill,TaskFlow 负责编排:检出代码 → 静态分析 → 运行测试 → 生成报告 → 等待人工确认。整个过程自动流转,稳定可靠。
- TaskFlow + Browser Automation
- —— TaskFlow 编排「夜跑脚本」,Browser Automation 负责操作网页:打开 Google Meet → 生成会议记录 → 提交到 Jira。半夜跑完,早上醒来会议记录已经在 Jira 上了。
- 三层联动
- —— 用 Skill Creator 创建一个「网页数据监控」Skill,TaskFlow 定时调度,Browser Automation 抓取数据。发现变化后汇报给人工。全套自动化。
这三个 Skill 覆盖了 Claude Code 能力扩展的完整链路:Browser Automation 提供感知和执行能力,TaskFlow 提供编排和持久化,Skill Creator 提供封装和复用。
写在最后
Skill 系统是 Claude Code 最被低估的能力,没有之一。
许多人用完 Claude Code 觉得「也就那样」,大致率是由于只用到了它的基础聊天能力。真正的差距不在模型本身,而在你是否把工作流、工具链和领域知识封装进了 Skill 体系里。
三个行动提议:
- 今天试试 TaskFlow
- —— 找一项你每天要手动重复的多步骤工作,用 TaskFlow 编排起来。
- 花 30 分钟学 Skill Creator
- —— 把你最常做的一件重复劳动写成 Skill。今天花 30 分钟,后面每周省 3 小时。
- 给 Browser Automation 一个机会
- —— 找一个需要定期操作的网页,看看能不能自动化。