Brave
@47c132035ed7a1105a867946b99d67af 人工智能研究 公开
讨论 OpenClaw/Clawdbot Skills 完全指南:让你的 AI 助手学会新技能

OpenClaw/Clawdbot Skills 完全指南:让你的 AI 助手学会新技能

本文面向刚接触 OpenClaw 的新手,试图将用通俗易懂的语言介绍 Skills(技能)功能,帮助你理解、使用和创建自己的技能。本指南基于 OpenClaw 2026.2 版本AgentSkills 开放标准 编写。

⚠️ 名称变更说明:OpenClaw 原名 Clawdbot,后因 Anthropic 的商标请求更名为 Moltbot,最终于 2026 年初正式更名为 OpenClaw。本文中的命令和目录已更新为最新名称。


🤔 什么是 Skills?一个形象的比喻

想象一下,OpenClaw 是一个刚入职的超级聪明的助手。他天生就懂得思考、分析和表达,但他不知道公司的具体业务——比如怎么查邮件、怎么搜网页、怎么操作日历。

Skills(技能)就像是给这个助手的"培训手册"。

每一个 Skill 都是一份说明书,告诉 OpenClaw:

图标说明内容举例
📖这个工具是干什么的"这是搜索网页的工具"
🔧怎么使用这个工具"用这个命令来搜索"
⚠️使用时需要注意什么"需要先配置 API 密钥"
💡什么时候该用这个工具"当用户问'帮我搜一下...'时"

有了这些"培训手册",OpenClaw 就能学会各种技能,变成一个无所不能的超级助手。

这个类比的深层含义是: Skill 本质上是一种提示工程(Prompt Engineering) 的高级应用。它通过结构化的文本指令,让大语言模型(LLM)理解如何在特定场景下调用外部工具完成任务。与传统的硬编码 API 调用不同,Skills 是"软性"的——Agent 会阅读、理解并灵活执行这些指令,而不是机械地按固定流程运行。


🌐 Skills 的技术背景与开放标准

这是理解 Skills 架构的重要背景知识。

什么是 Agent Skills 开放标准?

2025 年底,Anthropic 将 Agent Skills 技术作为开放标准发布,规范定义在 agentskills.io。这一标准的核心理念是:"写一次,处处可用"(Write Once, Use Everywhere)

Agent Skills 的设计原则:

原则说明
📄 纯文本驱动Skills 是简单的 Markdown 文件,无需编译或复杂配置
🔄 按需加载只有在需要时才会被 Agent 读取,保持 AI 快速响应
🔓 跨平台兼容同一个 Skill 可在多个支持该标准的 AI 工具中使用
🛠️ 易于创建任何人都可以用自然语言编写 Skill,无需编程背景

哪些工具支持 Agent Skills 标准?

截至 2026 年 2 月,已有 15+ 款 AI 编程助手支持 Agent Skills 标准:

工具开发者支持状态
OpenClawOpenClaw 社区(原 Clawdbot)✅ 完整支持
Claude CodeAnthropic✅ 完整支持
GitHub CopilotGitHub/Microsoft✅ 稳定版已支持
Codex CLI / ChatGPTOpenAI✅ 完整支持
CursorCursor Inc.✅ 完整支持
OpenCode开源社区✅ 内置支持
Gemini CLIGoogle✅ 完整支持
WindsurfCodeium✅ 支持中
Amp、Letta、Goose各开源项目✅ 支持中

这意味着什么? 你为 OpenClaw 创建的 Skill,可以直接在 Claude Code、GitHub Copilot、ChatGPT 等工具中使用,无需任何修改!

企业级生态

Anthropic 还发布了来自知名企业的官方技能包,包括:Atlassian、Figma、Canva、Stripe、Notion、Zapier 等。这些官方技能可通过 SkillsMP 市场ClawHub 获取,目前市场上已有超过 71,000+ 个可用技能。


🎯 Skills 能做什么?

通过不同的 Skills,OpenClaw 可以:

🔍 信息搜索类

技能功能API/服务提供商
web-search使用 Brave 搜索网页Brave Search API
exa使用 Exa AI 进行神经语义搜索Exa AI
kagi-search使用 Kagi 搜索引擎Kagi API
perplexity使用 Perplexity AI 进行深度搜索Perplexity API
zeno通过递归阅读实现无界上下文本地代码分析

📧 邮件和日历类

技能功能适用场景
gogGoogle Workspace(Gmail、日历、云盘)个人/企业 Google 账户
clippyMicrosoft 365(Outlook、日历)Microsoft 365 用户
caldav-calendar通用日历同步(iCloud、Nextcloud 等)需要跨平台日历同步

🌐 浏览器和自动化类

技能功能技术特点
browser打开网页、填写表单、提取数据轻量级,适合简单任务
playwright高级浏览器自动化支持复杂交互和截图

🎨 AI 生成类

技能功能模型说明
nano-banana-pro使用 Gemini 生成/编辑图片Google Gemini 图像模型
dall-e使用 DALL-E 生成图片OpenAI DALL-E 3
midjourney通过 API 调用 Midjourney 生成图片需要 Midjourney 订阅
stable-diffusion本地或云端 Stable Diffusion 图像生成支持 ComfyUI / A1111

🛠️ 开发工具类

技能功能使用场景
gemini调用 Gemini CLI 辅助编程代码生成与分析
github操作 GitHub 仓库PR、Issue、Actions 管理
docker管理 Docker 容器和镜像DevOps 自动化
k8sKubernetes 集群操作云原生运维

📱 通讯与协作类

OpenClaw 2026 版本支持多渠道消息收发:

技能功能
telegram通过 Telegram Bot 发送/接收消息
slackSlack 工作区消息与通知
discordDiscord 服务器交互
teamsMicrosoft Teams 集成
whatsappWhatsApp Business API 消息

这只是冰山一角!通过 ClawHub,你可以发现更多社区创建的技能。截至 2026 年 2 月,ClawHub 已收录 3,000+ 个经过审核的技能,涵盖开发、办公、创意、数据分析等多个领域。


🚀 如何使用 Skills

使用 Skills 有两种方式:

方式一:直接命令(推荐新手)⌨️

在聊天中输入斜杠命令:

/web-search 今天的科技新闻
/gmail 查看我的未读邮件
/calendar 明天有什么安排

就像在微信中发送指令一样简单!

💡 技巧提示:

  • 输入 / 后,OpenClaw 会自动显示可用技能列表
  • Tab 键可以自动补全技能名称
  • 技能名称不区分大小写

方式二:自然语言(更智能)🗣️

你也可以用自然的方式说话,OpenClaw 会自动判断是否需要使用某个技能:

用户:帮我搜一下最近有什么好看的电影

OpenClaw:(内部思考:用户想搜索信息,我应该使用 web-search 技能)
         (自动调用搜索)
         根据搜索结果,最近热门的电影有...

OpenClaw 会"读懂"你的意图,自动选择合适的技能。

⚙️ 工作原理解析:

当你发送消息时,OpenClaw 的处理流程如下:

用户输入 → 意图识别 → 技能匹配 → 执行任务 → 返回结果
           ↓
    系统提示中包含所有
    可用技能的简要描述
           ↓
    Agent 判断是否需要
    调用某个技能
           ↓
    如果需要,读取完整的
    SKILL.md 内容并执行

这种"按需加载"的设计确保了:

  • 低延迟:只有需要时才读取完整技能说明
  • 低成本:减少了 API Token 消耗
  • 高准确:Agent 获得完整上下文后再执行

📦 Skills 从哪里来?

Skills 可以从四个地方获得:

1️⃣ 内置技能(开箱即用)

OpenClaw 自带一些常用技能,安装后直接可用(可能需要配置 API 密钥)。

内置技能包括但不限于:

  • 基础搜索:web-search、context7
  • 文件操作:summarize、pdf-reader
  • 开发辅助:github、git

2️⃣ ClawHub 社区(一键安装)🌟

ClawHub 是 OpenClaw 的"技能商店",你可以:

  • 🔍 浏览各种社区创建的技能
  • ⬇️ 一键安装到本地
  • ⭐ 给技能评分和反馈
  • 🔄 同步和更新已安装的技能
  • 📤 发布自己创建的技能

ClawHub 特性:

功能说明
向量搜索使用语义搜索找到最相关的技能
版本管理每个技能支持多版本,可回滚
自动审核基础安全检查确保技能质量
CLI 友好所有操作都可通过命令行完成

安装方法:

# 方式一:使用 openclaw 命令(推荐)
openclaw skills install <技能名称>

# 方式二:使用 clawhub 命令
clawhub install <技能名称>

# 例如安装 Exa 搜索技能
openclaw skills install exa

# 安装到指定目录
clawhub install exa --dir ~/.openclaw/skills

批量操作命令:

# 更新所有已安装的技能
clawhub update --all

# 同步所有技能(备份 + 更新)
clawhub sync --all

# 列出已安装的技能
openclaw skills list

# 搜索可用技能
openclaw skills search "搜索关键词"

⚠️ 安全提示:ClawHub 上曾发现恶意技能(如 ClawHavoc 系列),请注意查看技能的评分、评论和发布者信息。对于超过 3 个用户举报的技能,ClawHub 会自动隐藏。

3️⃣ Git 仓库克隆(开发者常用)

# 从 GitHub 克隆技能
git clone https://github.com/username/skill-name.git ~/.openclaw/skills/skill-name

# 例如安装 Zeno 技能(递归阅读,无界上下文)
git clone https://github.com/anth0nylawrence/zeno.git ~/.openclaw/skills/zeno

4️⃣ 自己创建(高级玩法)✨

你也可以创建自己的技能!这就是本文重点要讲的内容。


📂 技能存放在哪里?

OpenClaw 会从以下位置加载技能,优先级从高到低:

位置说明优先级用途
<工作区>/skills/当前项目专用的技能⭐⭐⭐ 最高项目特定的技能覆盖
~/.openclaw/skills/你安装的共享技能⭐⭐ 中等个人定制和本地安装
内置技能目录OpenClaw 自带的技能⭐ 最低开箱即用的基础能力
skills.load.extraDirs配置文件中指定的额外目录⭐ 最低团队共享技能库

优先级的实际意义:

场景:你想修改内置的 web-search 技能

做法:在 ~/.openclaw/skills/web-search/ 创建自定义版本
结果:你的版本会覆盖内置版本,而原版保持不变
好处:可以随时删除自定义版本恢复默认行为

⚠️ 重要提示:

  • 工作区技能 是项目级别的,只在该项目目录下生效
  • 用户技能 是全局的,在所有项目中都可用
  • 技能名称冲突时,高优先级的版本会"遮蔽"低优先级版本

📄 SKILL.md 文件详解

每个技能就是一个文件夹,里面有一个 SKILL.md 文件。这个文件分为两部分:

第一部分:YAML 元数据(技能的"身份证")📋

---
name: my-skill
description: 这个技能能做什么的简短描述
metadata: { "openclaw": { "emoji": "⚙️", "requires": { "bins": ["curl"], "env": ["MY_API_KEY"], "config": ["some.setting"] } } }
---

⚠️ 格式注意:metadata 必须是单行 JSON 对象,不能换行!

字段说明:

字段含义示例必填
name技能的名称,用于 /name 命令"web-search"✅ 是
description简短描述(建议不超过 100 字符)"搜索网页内容"✅ 是
homepage技能官网或文档链接"https://example.com"❌ 否
emoji在 UI 中显示的图标"🔍"❌ 否
requires.bins需要的命令行工具(全部必须存在)["curl", "jq"]❌ 否
requires.anyBins需要的命令行工具(至少一个存在即可)["node", "bun"]❌ 否
requires.env需要的环境变量(通常是 API 密钥)["OPENAI_API_KEY"]❌ 否
requires.config需要的配置项(openclaw.json 中的路径)["browser.enabled"]❌ 否
primaryEnv主要的环境变量名,可通过 apiKey 配置"BRAVE_API_KEY"❌ 否
os支持的操作系统列表["darwin", "linux"]❌ 否
install自动安装配置(macOS Skills UI 使用)[{"brew": "curl"}]❌ 否

完整的元数据示例:

---
name: advanced-search
description: 高级网络搜索与内容提取
homepage: https://github.com/example/advanced-search
metadata: { "openclaw": { "emoji": "🔬", "os": ["darwin", "linux", "win32"], "requires": { "bins": ["curl", "jq"], "anyBins": ["node", "bun"], "env": ["SEARCH_API_KEY"], "config": ["search.enabled"] }, "primaryEnv": "SEARCH_API_KEY", "install": [{ "brew": "jq" }, { "node": "search-cli" }] } }
---

第二部分:Markdown 说明(技能的"使用手册")📖

这部分是普通的 Markdown 文本,告诉 OpenClaw 如何使用这个技能:

# 网页搜索技能

这个技能可以帮你搜索网页信息。

## 什么时候使用

当用户说"搜一下"、"查一查"、"帮我找"等词语时,考虑使用此技能。

## 如何使用

使用以下命令搜索网页:

\`\`\`bash
curl "https://api.search.brave.com/res/v1/web/search?q=${关键词}" \
  -H "X-Subscription-Token: ${BRAVE_API_KEY}"
\`\`\`

## 返回结果处理

API 返回 JSON 格式数据,主要字段包括:
- `web.results[]`: 搜索结果数组
- `title`: 页面标题
- `url`: 页面链接
- `description`: 页面描述

## 注意事项

- 搜索结果可能包含过时信息
- 注意验证信息来源的可靠性
- 每分钟最多 100 次请求

📝 编写技能说明的最佳实践:

原则说明示例
明确触发条件告诉 Agent 什么时候该用这个技能"当用户说'帮我搜...'时"
提供完整命令给出可直接执行的代码示例包含环境变量占位符的 curl 命令
解释返回结果帮助 Agent 理解输出并正确呈现"API 返回的 JSON 包含..."
列出限制和错误说明可能的失败情况和处理方式"如果返回 401,提示用户检查 API 密钥"
保持简洁不要写成百科全书,突出关键信息控制在 500 字以内为佳

关键点: 这部分内容会被 OpenClaw "阅读",所以要写得清晰、具体、有示例。Agent 会将这些文字作为操作指南,因此表述的准确性直接影响执行效果。


🛠️ 创建你的第一个 Skill

让我们动手创建一个简单的技能:天气查询技能

步骤 1:创建技能目录 📁

mkdir -p ~/.openclaw/skills/weather

步骤 2:创建 SKILL.md 文件 📝

# 使用你喜欢的编辑器
nano ~/.openclaw/skills/weather/SKILL.md
# 或 code ~/.openclaw/skills/weather/SKILL.md
# 或 vim ~/.openclaw/skills/weather/SKILL.md

步骤 3:编写技能内容 ✍️

---
name: weather
description: 查询指定城市的天气信息
homepage: https://openweathermap.org/api
metadata: { "openclaw": { "emoji": "🌤️", "requires": { "bins": ["curl"], "env": ["OPENWEATHER_API_KEY"] }, "primaryEnv": "OPENWEATHER_API_KEY" } }
---

# 天气查询技能

查询全球任意城市的实时天气信息,数据来源于 OpenWeatherMap One Call API 3.0。

## 什么时候使用这个技能

当用户询问以下类似问题时,使用此技能:
- "今天天气怎么样?"
- "北京现在多少度?"
- "明天会下雨吗?"
- "上海的天气预报"
- "需要带伞吗?"

## 如何查询天气

使用 OpenWeatherMap One Call API 3.0 查询天气:

> ⚠️ **注意**:API V2.5 已弃用,请使用 V3.0

\`\`\`bash
# 查询当前天气和未来 8 天预报(使用 One Call API 3.0)
# 需要先通过城市名获取经纬度
curl -s "https://api.openweathermap.org/geo/1.0/direct?q=${城市名}&limit=1&appid=${OPENWEATHER_API_KEY}" | jq '.'

# 使用经纬度查询天气
curl -s "https://api.openweathermap.org/data/3.0/onecall?lat=${纬度}&lon=${经度}&appid=${OPENWEATHER_API_KEY}&units=metric&lang=zh_cn" | jq '.'
\`\`\`

## 返回结果说明

API 返回的 JSON 包含:
- `current.temp`: 当前温度(摄氏度)
- `current.feels_like`: 体感温度
- `current.humidity`: 湿度百分比
- `current.weather[0].description`: 天气描述(如"多云"、"小雨")
- `current.wind_speed`: 风速(米/秒)
- `daily[]`: 未来 8 天的每日预报
- `hourly[]`: 未来 48 小时的逐时预报
- `alerts[]`: 天气预警(如有)

## 使用示例

用户说:"北京今天天气怎么样?"

你应该:
1. 先调用地理编码 API 获取北京的经纬度
2. 再调用 One Call API 查询天气
3. 解析返回的 JSON
4. 用自然语言告诉用户:
   - 当前温度和体感温度
   - 天气状况描述
   - 湿度和风速
   - 如果有降水可能,提醒用户带伞
   - 如果有天气预警,优先提醒用户

## 城市名称对照

常用中国城市的英文名:
- 北京: Beijing
- 上海: Shanghai
- 广州: Guangzhou
- 深圳: Shenzhen
- 杭州: Hangzhou
- 成都: Chengdu
- 香港: Hong Kong
- 台北: Taipei

## 错误处理

- **401 错误**:API Key 无效,提示用户检查配置
- **404 错误**:城市不存在,提示用户检查城市名拼写
- **429 错误**:请求过于频繁,稍后重试
- **网络错误**:提示用户检查网络连接

## 注意事项

- 城市名使用英文(如 Beijing, Shanghai, Tokyo)
- 如果查询失败,告诉用户可能是城市名拼写错误
- One Call API 3.0 免费版每天限制 1000 次请求
- 预报数据最多提供未来 8 天

步骤 4:配置 API 密钥 🔑

方式一:编辑 OpenClaw 配置文件

nano ~/.openclaw/openclaw.json

添加:

{
  "skills": {
    "entries": {
      "weather": {
        "enabled": true,
        "apiKey": "你的OpenWeatherMap API密钥"
      }
    }
  }
}

方式二:使用环境变量(推荐用于开发)

# 在 ~/.bashrc 或 ~/.zshrc 中添加
export OPENWEATHER_API_KEY="你的API密钥"

方式三:使用 .env 文件

# 在项目根目录创建 .env 文件
echo "OPENWEATHER_API_KEY=你的API密钥" >> .env

步骤 5:验证技能加载 ✅

# 查看已加载的技能列表
openclaw skills list

# 查看特定技能的详细信息
openclaw skills show weather

步骤 6:开始新会话测试 🧪

/new

⚠️ 重要:技能只在新会话开始时加载。修改 SKILL.md 后必须开始新会话才能生效!

然后尝试:

/weather 北京今天天气怎么样

或者自然语言:

北京现在多少度?

🎉 恭喜!你创建了第一个自定义技能!


⚙️ Skills 配置进阶

在配置文件中管理技能

所有技能配置都在 ~/.openclaw/openclaw.jsonskills 部分:

{
  "skills": {
    "load": {
      "extraDirs": ["/path/to/team/skills", "/path/to/my/skills"],
      "watch": true,
      "watchDebounceMs": 250
    },
    "entries": {
      "web-search": {
        "enabled": true,
        "apiKey": "xxx"
      },
      "some-skill-i-dont-want": {
        "enabled": false
      },
      "custom-skill": {
        "enabled": true,
        "env": {
          "CUSTOM_API_KEY": "xxx",
          "CUSTOM_ENDPOINT": "https://api.example.com"
        }
      }
    }
  }
}

配置项详解

配置路径说明默认值
load.extraDirs额外的技能目录列表[]
load.watch是否监听技能文件变化true
load.watchDebounceMs文件变化防抖时间(毫秒)250
entries.<skill>.enabled启用或禁用技能true
entries.<skill>.apiKey便捷 API 密钥配置(需技能声明 primaryEnv)-
entries.<skill>.env环境变量键值对{}

技能加载的时机

OpenClaw 启动 / 新会话开始
        ↓
扫描所有技能目录
        ↓
读取每个 SKILL.md 的元数据
        ↓
根据 requires 检查依赖
        ↓
过滤不满足条件的技能
        ↓
将合格技能注入系统提示

⚠️ 重要提示:

场景生效方式
修改了 SKILL.md 文件使用 /new 开始新会话,或等待 watch 自动刷新
修改了 openclaw.json重启 OpenClaw Gateway
安装了新技能使用 /new 开始新会话
启用了 watch: true技能变化会在下一个 Agent 回合自动生效

🔧 高级功能

1. 技能的模型调用控制

metadata: { "openclaw": { "disable-model-invocation": true } }

设置为 true 后,技能只能通过 /命令 调用,OpenClaw 不会自动使用它。

适用场景:

  • ⚠️ 敏感操作(如删除文件、发送邮件)需要用户明确触发
  • 💰 高成本 API 调用,避免意外消耗额度
  • 🔐 涉及权限操作的功能

2. 技能的直接工具派发

metadata: { "openclaw": { "command-dispatch": "tool", "command-tool": "bash" } }

这样设置后,/技能名 参数 会直接调用底层工具,跳过模型思考。

适用场景:

  • ⚡ 简单的命令转发,不需要 AI 理解
  • 🚀 追求极致的响应速度
  • 🔄 固定格式的任务执行

3. 平台限制

metadata: { "openclaw": { "os": ["darwin", "linux"] } }

只在指定操作系统上启用技能。

标识操作系统
darwinmacOS
linuxLinux(所有发行版)
win32Windows

4. 自动安装配置

对于 macOS 用户,技能可以声明自动安装方式:

metadata: { "openclaw": { "install": [{ "brew": "jq" }, { "node": "my-cli-tool" }, { "go": "github.com/user/tool@latest" }] } }
类型说明示例
brewHomebrew 包{ "brew": "jq" }
nodenpm 全局包{ "node": "typescript" }
goGo 模块{ "go": "github.com/user/tool@latest" }
uvPython uv 包{ "uv": "requests" }
download直接下载{ "download": { "url": "...", "archive": "tar.gz" } }

5. 技能密钥 (skillKey)

当技能名称与配置键不一致时使用:

metadata: { "openclaw": { "skillKey": "my-special-key" } }

配置文件中使用:

{
  "skills": {
    "entries": {
      "my-special-key": {
        "enabled": true,
        "apiKey": "xxx"
      }
    }
  }
}

❓ 常见问题解答

Q1: 技能没有生效怎么办?

检查清单:

  • ✅ 文件位置正确吗?(~/.openclaw/skills/技能名/SKILL.md
  • ✅ YAML 格式正确吗?(用 YAML Lint 验证)
  • ✅ metadata 是单行 JSON 吗?(不能换行!)
  • ✅ 开始了新会话吗?(运行 /new
  • ✅ 依赖满足了吗?(检查 requires.binsrequires.env
  • ✅ 操作系统匹配吗?(检查 os 字段)

调试命令:

# 查看已加载的技能
openclaw skills list

# 查看技能详情(包括为什么没有加载)
openclaw skills show 技能名

# 验证 SKILL.md 格式
openclaw skills validate ~/.openclaw/skills/技能名/SKILL.md

Q2: 如何查看有哪些可用技能?

# 列出所有已安装的技能
openclaw skills list

# 在 ClawHub 搜索
openclaw skills search 关键词

# 或直接访问 ClawHub 网站
open https://clawhub.ai

Q3: 技能太多会影响性能吗?

不会明显影响。 OpenClaw 的技能加载机制经过优化:

阶段处理方式
系统提示只注入简洁的技能列表(名称 + 简短描述)
技能调用只有需要时才读取完整的 SKILL.md
Token 消耗技能列表的 Token 开销是确定性的,可预测

💡 优化建议:

  • 禁用不常用的技能:"enabled": false
  • 保持技能描述简洁(100 字符以内)
  • 使用 disable-model-invocation 避免不必要的自动调用

Q4: 如何分享我创建的技能?

方式一:发布到 ClawHub(推荐)

  1. 在 ClawHub 注册账号(GitHub 账号需满一周)
  2. 运行 clawhub publish 技能名
  3. 填写技能信息和版本说明
  4. 发布!

方式二:GitHub 仓库

  1. 创建 GitHub 仓库
  2. 将技能目录推送到仓库
  3. 分享仓库链接,用户可以 git clone 安装

方式三:PR 到 awesome-openclaw-skills

将你的技能提交到 VoltAgent/awesome-openclaw-skills 仓库。

Q5: Skills 和 Plugins 有什么区别?

特性SkillsPlugins
复杂度简单(一个 Markdown 文件)复杂(JavaScript/TypeScript 代码)
功能教 Agent 使用现有工具添加全新的功能和工具
创建难度低,无需编程高,需要开发经验
运行方式Agent 根据说明执行命令直接运行代码
调试难度容易,修改文本即可需要调试代码
跨平台性✅ 天然跨平台(遵循 AgentSkills 标准)❌ 可能需要适配

简单理解:

  • Skill = 说明书(告诉 Agent 怎么做)
  • Plugin = 新功能(给 Agent 新的能力)

如何选择?

需求推荐
调用现有 API 或命令行工具✅ Skill
需要复杂的业务逻辑处理✅ Plugin
希望快速实现,不想写代码✅ Skill
需要访问数据库或内部系统✅ Plugin
希望在多个 AI 工具中使用✅ Skill

Q6: 技能的依赖检查是在什么时候进行的?

依赖检查发生在技能加载时(新会话开始或 watch 刷新时):

检查项检查时机检查位置
requires.bins加载时主机 PATH
requires.env加载时环境变量或 openclaw.json
requires.config加载时openclaw.json 配置项
os加载时当前操作系统

注意: 如果使用 sandbox 模式,requires.bins 检查的是主机上的二进制文件,而不是 sandbox 内的。


📚 实战案例:创建一个 TriliumNext 笔记技能

如果你使用 TriliumNext Notes,可以创建一个技能让 OpenClaw 直接搜索和获取笔记。

💡 提示:TriliumNext(原 Trilium Notes)现已提供多个 MCP Server 集成,包括 TriliumNext MCP Server,可以更方便地与 AI 助手集成。

以下是基于 ETAPI 的 Skill 实现:

---
name: trilium
description: 搜索和获取 TriliumNext Notes 笔记
homepage: https://github.com/TriliumNext/Trilium
metadata: { "openclaw": { "emoji": "📚", "requires": { "bins": ["curl", "jq"], "env": ["TRILIUM_URL", "TRILIUM_TOKEN"] }, "primaryEnv": "TRILIUM_TOKEN" } }
---

# TriliumNext Notes 技能

连接到 TriliumNext Notes 知识库,搜索和获取笔记内容。TriliumNext 是一款开源的个人知识管理系统,支持层级化笔记组织和强大的搜索功能。

> 📖 官方 ETAPI 文档已迁移至 [docs.triliumnotes.org](https://docs.triliumnotes.org/)

## 使用场景

- 用户说"查一下我之前记的关于 XXX 的笔记"
- 用户说"从笔记库找一下 XXX"
- 用户提到需要参考之前的笔记
- 用户想要创建或更新笔记

## 前置要求

1. TriliumNext Notes 服务正在运行
2. 已配置 ETAPI Token(在 Trilium 设置 → ETAPI 中获取)
3. 环境变量已设置:
   - `TRILIUM_URL`: Trilium 服务地址(如 http://localhost:8080)
   - `TRILIUM_TOKEN`: ETAPI Token

## 搜索笔记

\`\`\`bash
curl -s -H "Authorization: ${TRILIUM_TOKEN}" \
  "${TRILIUM_URL}/etapi/notes?search=关键词&limit=10" | jq '.results[] | {noteId, title}'
\`\`\`

## 获取笔记内容

\`\`\`bash
# 获取笔记元数据
curl -s -H "Authorization: ${TRILIUM_TOKEN}" \
  "${TRILIUM_URL}/etapi/notes/{noteId}"

# 获取笔记内容
curl -s -H "Authorization: ${TRILIUM_TOKEN}" \
  "${TRILIUM_URL}/etapi/notes/{noteId}/content"
\`\`\`

## 创建新笔记

\`\`\`bash
curl -s -X POST -H "Authorization: ${TRILIUM_TOKEN}" \
  -H "Content-Type: application/json" \
  "${TRILIUM_URL}/etapi/create-note" \
  -d '{"parentNoteId": "root", "title": "笔记标题", "type": "text", "content": "笔记内容"}'
\`\`\`

## 响应处理

1. 搜索结果会返回 noteId 和 title 列表
2. 根据相关性选择最匹配的笔记
3. 获取内容后,用 Markdown 格式展示给用户
4. 如果内容是 HTML,先转换为 Markdown

## 错误处理

| 错误码 | 原因 | 处理方式 |
|--------|------|----------|
| 401 | Token 无效 | 提示用户检查 TRILIUM_TOKEN 配置 |
| 404 | 笔记不存在 | 告知用户笔记已被删除或 ID 错误 |
| 连接失败 | 服务未运行 | 提示用户启动 TriliumNext 服务 |

## 使用示例

用户:"帮我找一下关于 Python 异步编程的笔记"

你应该:
1. 使用搜索 API 查找相关笔记
2. 列出找到的笔记标题供用户选择
3. 用户确认后获取完整内容
4. 以格式化的方式展示笔记内容

🎓 总结

Skills 的核心概念

概念说明
Skills 是"培训手册"教 OpenClaw 如何使用工具,本质是提示工程
SKILL.md 是唯一需要的文件包含元数据(YAML)和使用说明(Markdown)
两种调用方式斜杠命令 /skill 或自然语言
四个来源内置、ClawHub、Git 克隆、自己创建
优先级规则工作区 > 用户目录 > extraDirs > 内置
开放标准遵循 AgentSkills.io 规范,跨 15+ 工具兼容

创建 Skill 的最佳实践

原则做法
✅ 写清楚什么时候用明确的触发场景和关键词
✅ 给出具体命令可复制粘贴的示例代码
✅ 说明返回结果帮助 Agent 理解和格式化输出
✅ 列出注意事项错误处理、限制条件、边界情况
✅ 保持简洁控制在 500 字以内,突出关键信息
✅ 单行 JSON 元数据metadata 字段必须是单行

📖 资源链接

资源链接说明
官方文档docs.openclaw.ai/tools/skills完整技术文档
技能配置docs.openclaw.ai/tools/skills-config配置参考
ClawHubclawhub.ai技能注册表
GitHub 仓库github.com/openclaw/openclaw源代码
社区技能集合github.com/VoltAgent/awesome-openclaw-skills精选技能
AgentSkills 标准agentskills.io开放标准规范
SkillsMP 市场skillsmp.com跨平台技能市场

✨ 写在最后

Skills 是 OpenClaw 最强大的扩展机制之一。通过简单的 Markdown 文件,你就能让 AI 助手学会任何技能——从查天气到管理邮件,从搜索笔记到自动化办公。

最棒的是,你不需要懂编程! 只需要能够清晰地描述一个任务怎么做,OpenClaw 就能学会并帮你执行。

更重要的是,你创建的技能可以在 Claude Code、GitHub Copilot、ChatGPT、Gemini CLI 等 15+ 款 AI 工具中使用——真正实现"写一次,处处可用"!

现在,动手创建你的第一个 Skill 吧!🚀