Agent Skill 从使用到原理:一个 Markdown 文件,如何重新定义 AI 的能力扩展方式

3 阅读6分钟

MCP 需要写代码、起进程、配 JSON。而 Agent Skill 只需要一个 Markdown 文件就能给 AI 增加一项新能力。这不是取舍问题,而是两种不同哲学的产品。


一个需要三步的问题

你想让 AI 每次遇到代码审查请求时,都按照固定的流程来做:先看逻辑,再看安全,再看性能,最后给出改进建议。

方案一:每次手动粘贴 Prompt

"请按照以下流程审查这段代码:1. 检查逻辑错误... 2. 检查安全问题... 3. ..."

每次都要粘,累了就不粘了,效果参差不齐。

方案二:写一个 MCP Server

定义工具、起进程、配 JSON、测试... 30 分钟起步。

方案三:写一个 Agent Skill

创建一个 SKILL.md 文件,20 行 Markdown,安装一次,永久可用。


Skill 的本质:一个有结构的 Markdown 文件

Agent Skill(以 OpenClaw/Claude Code 为代表)的核心文件是 SKILL.md,它有三段固定结构:

---
name: code-reviewer
version: 1.0.0
description: 按规范流程审查代码质量
tags: [code, review, quality]
---

## Use when

用户提交代码并请求审查时:
- "帮我 review 这段代码"
- "这段代码有问题吗"
- "帮我看看代码质量"

## NOT for

- 用户只是让你解释代码的功能(不需要 review)
- 用户让你写新代码(不是审查已有代码)
- 代码很短且逻辑很简单(直接回答即可)

## Workflow

收到代码审查请求后,执行以下步骤:

### 步骤 1:理解代码
- 识别编程语言和框架
- 理解代码的功能和业务逻辑
- 明确审查范围

### 步骤 2:多维度分析
按以下维度逐一检查,每个维度给出结论:
- **逻辑正确性**:算法、边界条件、异常处理
- **安全性**:SQL 注入、XSS、敏感信息暴露
- **性能**:时间/空间复杂度、数据库 N+1、不必要的循环
- **可读性**:命名、注释、代码结构
- **可维护性**:耦合度、重复代码、测试覆盖

### 步骤 3:输出报告
使用以下格式:

**总体评分:X/10**

| 维度 | 状态 | 说明 |
|------|------|------|
| 逻辑 | ✅/⚠️/❌ | ... |
| 安全 | ... | ... |

**主要问题(按优先级):**
1. [严重] ...
2. [中等] ...

**改进建议:**
[修改后的代码片段]

Use when / NOT for:AI 的"情境感知系统"

Use whenNOT for 是 Skill 最核心的两个部分,它们控制 AI 的触发条件

Use when 的写法原则

不要只写意图,要写场景表现

# ❌ 太抽象
## Use when
用户需要代码审查时

# ✅ 具体可识别
## Use when
用户说以下任意一种话时:
- "帮我 review" / "看看这段代码" / "有什么问题"
- 提交了代码,并使用了"审查"、"质量"、"改进"等词
- 明确说"这段代码对吗"或"这样写有问题吗"

为什么要这么具体?

AI 匹配触发条件时,是在"理解语义",不是在做关键词匹配。但语义越具体,误触发率越低,漏触发率也越低。

NOT for 同样重要

## NOT for
- "这段代码是什么意思"→ 解释代码,不是审查
- "帮我加一个功能" → 新增功能,不是审查
- 用户没有提供代码,只是描述了问题

没有 NOT for,AI 可能在"解释代码"的场景下也启动审查流程——产生不必要的开销和奇怪的输出。


Workflow:AI 的"操作手册"

Workflow 是 Skill 的执行逻辑,写好了会直接提升输出质量。

关键原则:步骤要有顺序,每步要有可执行的操作

# ❌ 太模糊
## Workflow
1. 分析代码
2. 给出建议

# ✅ 可执行
## Workflow

### 步骤 1:预处理
- 确认编程语言(如未说明,从代码推断)
- 确认审查重点(用户有没有特别说关注某方面)

### 步骤 2:静态分析
逐行检查以下问题,遇到问题记录到列表:
- 变量命名是否语义清晰
- 函数是否做了超出其名称暗示范围的事情(单一职责)
- 是否有魔法数字(应改为常量)

### 步骤 3:输出
先给总体评分,再给问题清单,每个问题附修复建议

渐进式披露:Skill 最有意思的设计理念

Skill 的 Workflow 支持一种叫**渐进式披露(Progressive Disclosure)**的模式。

简单说:根据任务的复杂程度,动态决定执行深度

## Workflow

### 快速路径(简单代码 < 50 行)
直接输出:主要问题 2-3 条 + 快速建议

### 标准路径(普通代码 50-500 行)
按五维度完整分析,输出详细报告

### 深度路径(复杂系统代码 > 500 行)
1. 先问用户:审查重点是什么?(业务逻辑/性能/安全)
2. 针对重点方向做深度分析
3. 给出可直接执行的改进 PR 说明

这样,一个 Skill 能适配从"快速过一眼"到"深度 Code Review"的不同场景,而不是把所有人都推进"完整五维度分析"的重流程。


Skill vs MCP:怎么选

维度Agent SkillMCP Server
实现成本低(写 Markdown)高(写代码)
触发方式AI 自动识别场景需要 Host 主动调用
能力边界引导 AI 的思维流程执行 AI 无法直接做的操作
适合场景改变 AI 的行为方式接入外部系统/数据
典型例子代码审查、写作风格、分析报告读数据库、调用 API、操作文件

一句话区分

  • Skill 是"告诉 AI 怎么想"
  • MCP 是"给 AI 新的手"

两者不互斥,经常组合使用:先用 MCP 读取数据,再用 Skill 控制分析流程。


安装和使用一个 Skill

# 从 ClawHub 安装
clawhub install code-reviewer-skill

# 安装后直接使用,不需要任何配置
# 在 Claude Code / OpenClaw 中直接说:
# "帮我 review 这段代码:[粘贴代码]"

也可以本地安装自定义 Skill:

# 把你的 SKILL.md 放到 Skills 目录
~/.claude/skills/my-code-reviewer/SKILL.md

发布一个 Skill 到 ClawHub

如果你的 Skill 对别人也有用,可以发布出去:

# 1. 创建 npm 包
mkdir openclaw-skill-code-reviewer
cd openclaw-skill-code-reviewer
npm init

# 2. 创建 SKILL.md(主文件)
# 3. 测试

# 4. 发布到 npm(包名必须以 openclaw-skill- 开头)
npm publish --access public

# 5. 在 clawhub.com/submit 提交

总结

Agent Skill 的核心价值:

  1. 极低门槛:不需要写代码,Markdown 就够了
  2. 自动触发:AI 自己识别场景,不需要用户手动调用
  3. 可复用:安装一次,对所有相关场景永久生效
  4. 可发布:写好的 Skill 可以分享给整个社区

最适合用 Skill 的场景:任何你希望 AI 在某类任务中固定遵循某种思维框架或输出格式的需求。