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 when 和 NOT 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 Skill | MCP 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 的核心价值:
- 极低门槛:不需要写代码,Markdown 就够了
- 自动触发:AI 自己识别场景,不需要用户手动调用
- 可复用:安装一次,对所有相关场景永久生效
- 可发布:写好的 Skill 可以分享给整个社区
最适合用 Skill 的场景:任何你希望 AI 在某类任务中固定遵循某种思维框架或输出格式的需求。