Decentralization? We're still early!

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

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

    發布人 Brave 2026-01-26 01:22

    目录

    本文面向刚接触 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 吧!🚀

    Brave 回复 1 month, 3 weeks ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在