ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw Skill安装全攻略:零基础三步跑通自定义技能

OpenClaw Skill安装全攻略:零基础三步跑通自定义技能 直接讲结论OpenClaw的Skill本质上不是“装”进去的而是“放”进目录里的。很多新手被这个术语吓住以为要跑什么复杂的安装脚本其实Skill就是一组脚本加一个描述文件放进指定目录就能被OpenClaw自动识别和调用。我自己从零开始摸索到完全跑通前后花了好几个小时踩了不少坑今天把这套流程拆成最基础的3步保证零基础也能跟着操作完。这篇文章适合三种人刚接触OpenClaw、想给它加自定义能力的开发者用过Claude Code或Codex、正在对比迁移的老手还有纯粹想用OpenClaw做自动化但不懂代码的小白。下面所有操作我都基于Windows 11环境实测PowerShell和CMD都能跑命令我会贴完整的。1. 安装前必须搞懂的3个核心概念1.1 OpenClaw、Skill、脚本三者到底是什么关系先说人话版本。OpenClaw是一个本地运行的AI自动化框架你可以把它理解成一个“管家”它能调用各种工具、读写文件、执行命令甚至对接云端API。Skill就是这个管家的“职业技能包”你教会它一个技能比如“帮我归档下载文件夹”它就能按你定义的规则去执行。Skill的物理形态通常是一个文件夹里面包含两类文件一个是SKILL.md用来描述这个技能是干什么的、什么时候该用、参数怎么传另一个是若干脚本文件可以是Python、JavaScript、Shell甚至是PowerShell脚本用来实际干活。OpenClaw在启动或运行时会扫描指定目录读取这些描述文件把技能注册进自己的能力表里。这么说吧OpenClaw是“身体”Skill是“技能书”脚本是“手脚”。身体本身不会特殊技能但你往它兜里塞一本技能书它就能照着书上的步骤干活。理解了这层关系后面所有操作都顺理成章了。1.2 为什么Skill机制这么重要没有Skill的OpenClaw就像一个只有基础指令的空壳你说“帮我整理一下项目文件”它不知道该按什么规则整理、整理哪些目录、要不要备份原文件。有了Skill你等于给了它一套标准作业程序它照着执行就行了。Skill机制最值钱的地方在于可复用性。你辛苦调好的一个技能比如“自动生成周报”可以把整个文件夹分享给同事或朋友对方放进自己的OpenClaw目录里就能直接用不需要重新配置。GitHub上已经有大量现成Skill可以下载从文本润色、代码审查到数据分析无所不包这也是OpenClaw生态快速壮大的核心原因。另外Skill和OpenClaw的主程序是解耦的。你升级OpenClaw版本不会影响已安装的Skill反过来调整Skill也不会破坏主程序。这种插件化设计让我这种喜欢折腾的人非常安心改坏了顶多删掉那个文件夹完全不影响其他功能。1.3 本教程的适用范围与前提条件这篇文章的流程适用于OpenClaw 2.0及以上版本在Windows 11、Windows 1022H2以上都能跑通。需要提前装好的东西有两样Git以及Python 3.10以上版本。Git用来从远程仓库克隆Skill模板Python用来执行很多Skill依赖的脚本。如果你还没装OpenClaw本体文章第2部分会带你装好如果你已经装好并且跑通过基础对话可以直接跳到第3步看Skill的安装写法。我不建议完全没接触过命令行的纯小白直接上手至少你得会打开PowerShell知道cd是切换目录的意思。不过这也不是什么高门槛照着下面一步步抄就行。2. 核心机制拆解Skill到底被OpenClaw装到了哪里2.1 默认目录结构与文件规范OpenClaw安装完成后会在你的用户目录下创建一个.openclaw文件夹这就是它的大本营。所有配置、日志、工作区以及Skill都存放在这里。以Windows系统为例完整路径通常是C:\Users\你的用户名\.openclaw\。在这个大本营里面有两个子目录需要重点关注skills目录和workspace目录。skills目录专门存放Skill包每个Skill一个独立子文件夹workspace是OpenClaw的工作区你可以理解为给AI的沙盘它读写文件都默认在这个范围内活动。Skill文件夹内部的标准结构是skill-name/目录下包含一个SKILL.md文件和若干脚本文件。SKILL.md用的是Markdown格式里面通过YAML格式的front matter声明名称和描述正文则写详细的指令流程。OpenClaw每次识别Skill时主要就是解析这个文件获取元信息和调用说明。2.2 加载机制与避坑要点很多初学者栽在“为什么我把Skill放进去了但OpenClaw不认识”这个问题上。这是因为OpenClaw并不是实时监控目录变化的它通常在当前会话启动时扫描一次Skill目录。所以每次新增或修改Skill后都需要重启OpenClaw会话或者在对话里发送“刷新技能”之类的指令具体指令视版本而定2.0以上版本会在启动日志里提示。还有一点极易踩坑文件名和文件夹名必须严格对应。比如你创建一个名为my-skill的文件夹里面写了一个SKILL.md那么这个SKILL.md里的name字段最好也是my-skill。不一致的话某些版本会出现识别异常或调用失败。我一开始没注意这个细节创建了code-review文件夹但内部name写的是code_review结果OpenClaw一直报技能不存在排查了好久才发现是这个下划线和连字符的问题。最后注意不要直接在skills目录下放散装脚本OpenClaw不会认。必须遵循“一个技能一个文件夹文件夹内必须有SKILL.md”这个铁律。为了把规则讲透我整理了个小表结构项要求错误示例Skill根目录位于.openclaw/skills/下放在.openclaw/根目录文件夹命名小写字母、数字、连字符包含中文或空格SKILL.md位置在Skill文件夹内部第一层放在嵌套子目录里name字段与文件夹名一致使用下划线或大写脚本文件放在Skill文件夹内散放在skills目录下3. 三步上手从零到第一个Skill跑通的完整流程3.1 第一步安装并初始化OpenClawWindows环境如果你还没装OpenClaw先搞定本体。Windows环境下最简单的安装方式是使用PowerShell执行官方安装脚本。操作方法是按Win X选择“终端(管理员)”或者“Windows PowerShell(管理员)”在弹出的蓝底窗口里执行下面这条命令irm https://raw.githubusercontent.com/openclaw/openclaw/main/install.ps1 | iex这条命令用到了PowerShell的irmInvoke-RestMethod和iexInvoke-Expression意思是从远程拉取安装脚本并在当前终端执行。执行过程中如果弹出用户账户控制UAC提示选择“是”。脚本会自动检测系统环境、下载对应平台的二进制文件、配置环境变量整个过程预计3到10分钟取决于网络状况。安装完成后关掉当前终端再重新打开一个让环境变量生效。输入以下命令验证安装结果openclaw --version如果终端返回类似OpenClaw 2.x.x的信息说明本体安装成功。如果系统提示“无法将‘openclaw’项识别为cmdlet、函数、脚本文件或可运行程序的名称”那就说明安装脚本没有正确写入PATH或者当前终端没有重开。解决方法很简单重新开一个终端就行要是还不行就手动把安装目录一般位于%USERPROFILE%\.openclaw\bin添加到系统PATH里。另外还有一个小细节管理员权限下安装的PATH可能和普通用户权限不一致建议安装过程和管理员终端尽量保持一致。首次运行OpenClaw还需要做初始化配置直接执行openclaw init这个命令会引导你完成基础设置选择默认模型、确认工作区路径默认是上面提到的%USERPROFILE%\.openclaw\workspace、加载官方内置技能等。如果不想交互式操作也可以直接回车使用默认值先把框架跑起来再说。初始化完成后可以在任意目录下输入openclaw看看能否进入对话界面。3.2 第二步找到你的Skill目录并安装一个现成Skill初始化之后Skill目录通常已经自动创建好了。用下面的命令直接定位到它cd $env:USERPROFILE\.openclaw\skills然后输入dirCMD环境或lsPowerShell环境看看里面有没有内容。一般情况下官方会预置几个基础Skill比如starter、workspace-manager这类。如果目录是空的也没关系不影响后续操作。接下来动手装一个现成的Skill练手。我推荐先装archify或者code-review这类通用性比较强的因为它们在各种项目里都能用上而且GitHub仓库结构规范适合当作样板来学。以code-review为例在PowerShell里执行git clone https://github.com/openclaw/skill-code-review.git code-review克隆完成后检查一下目录结构ls .\code-review如果是正常的Skill包你应该能看到SKILL.md文件和对应的脚本文件。某些仓库还包含README.md和requirements.txt前者是作者写的人话说明后者是依赖清单。如果发现requirements.txt说明这个Skill需要额外的Python库执行pip install -r .\code-review\requirements.txt把依赖装上然后重启OpenClaw会话。启动后你可以直接输入“你现在有什么技能”或者给出和该Skill相关的指令比如“帮我检查一下当前项目的代码中有没有明显的安全问题”来测试技能有没有被正确加载。如果能得到符合预期的响应说明你的第一个Skill已经安装成功了。3.3 第三步手工创建自己的第一个Skill会装现成的还不够真正让你变强的技能是写自己的Skill。跟着下面这个示例走一遍你就能掌握全套流程。我先创建一个名为weekly-report的Skill作用是把指定目录里的工作日志汇总成一份周报Markdown文件。第一步创建文件夹并进入mkdir weekly-report cd weekly-report第二步用记事本创建一个SKILL.md文件内容如下--- name: weekly-report description: 汇总指定目录下的工作日志生成Markdown格式周报 args: log_dir: 日志目录路径 output: 生成周报文件并返回路径 --- # Weekly Report Generator 当用户需要生成周报时执行以下步骤 1. 读取 log_dir 目录下所有 .md 文件 2. 提取每个文件的标题和日期 3. 按日期倒序排列 4. 将结果写入 weekly-report-YYYY-MM-DD.md 5. 返回生成文件的路径第三步在同一个目录下创建一个Python脚本generate_report.py在这里写核心逻辑import os import sys import re from datetime import date from pathlib import Path def generate_report(log_dir: str) - str: log_path Path(log_dir) if not log_path.exists(): raise FileNotFoundError(f日志目录不存在: {log_dir}) entries [] for md_file in sorted(log_path.glob(*.md)): content md_file.read_text(encodingutf-8) title_match re.search(r^#\s(.)$, content, re.MULTILINE) date_match re.search(r20\d{2}-\d{2}-\d{2}, content) if title_match: entries.append({ title: title_match.group(1).strip(), date: date_match.group(0) if date_match else 未知日期, file: md_file.name }) entries.sort(keylambda x: x[date], reverseTrue) today date.today().isoformat() report_path Path.cwd() / fweekly-report-{today}.md with open(report_path, w, encodingutf-8) as f: f.write(f# 周报 {today}\n\n) for entry in entries: f.write(f- [{entry[date]}] {entry[title]} ({entry[file]})\n) return str(report_path) if __name__ __main__: log_dir sys.argv[1] if len(sys.argv) 1 else logs print(generate_report(log_dir))第四步回到.openclaw\skills目录重启OpenClaw会话测试这个技能“用weekly-report技能生成一下logs目录的周报”。如果脚本正确执行你会收到生成的Markdown文件路径。到这一步从安装到创建Skill的整套流程你已经全部跑通了。4. 底层原理分析为什么Skill不能装完立刻生效4.1 Skill的识别过程与加载时机前面提到了一个核心痛点装完Skill之后不能马上用得重启会话。这是很多人第一次接触时会觉得“是不是装坏了”的元凶。要理解为什么就得看OpenClaw内部的Skill加载机制。OpenClaw在会话启动时会遍历skills目录逐个读取每个子文件夹里的SKILL.md。它先解析front matter区域的元信息name、description、args等再把正文里的指令段落注入到系统提示词上下文里。这个过程相当于把技能说明书提前“喂”给大模型让它在对话时知道自己有哪些能力可用。这种设计在工程上很好理解每次对话都实时扫描目录、解析文件、注入上下文会带来不必要的IO损耗还会增加API调用的延迟。一次性在启动时加载是最简单高效的方案。代价就是你每次改完Skill都得重启会话让新版本技能生效。习惯之后其实还好我现在的流程是先改文件再重启OpenClaw全程不到十秒。4.2 描述质量直接决定Skill的可用性同目录里有100个SkillAI也不是都能用得明白。真正决定一个Skill能不能被正确调用的不是脚本写得有多复杂而是SKILL.md里面的description写得有多清楚。因为模型在判断“当前用户指令是否该触发这个技能”时主要就是看description和指令的语义匹配度。我自己就吃过这个亏。给一个format-json技能写description时我草草写了一句“JSON格式化工具”结果AI在用户要求“帮我美化这段JSON”时完全想不到调用它。后来改成“当用户需要美化、缩进、排序或校验JSON内容时使用此技能”命中率一下子提升了很多。写description的经验就一条别怕啰嗦把能触发这个技能的场景尽可能列举出来用“当…时使用”的句式。4.3 依赖环境与执行沙箱Skill脚本实际执行时走的是OpenClaw的本地Shell所以它拥有和你当前用户差不多的系统权限。能读到什么文件、能执行什么命令都没有额外的沙箱限制。这类设计对开发者来说很自由但同样意味着你要对自己装的Skill负责。尤其需要注意的是OpenClaw有一个执行审批机制exec-approvals首次运行某些敏感命令时会在终端里弹出确认提示你确认后它才会继续这些审批记录一般会保存在.openclaw/exec-approvals.json文件中。我在配置环境时遇到过一条报错大意是“legacy exec approvals exist at /root/.openclaw/exec-approvals.json”这是旧版本留下的审批记录和当前版本格式不兼容导致的。处理方式很简单先备份一份然后删除或重置该文件重启OpenClaw即可。如果你是Windows环境路径一般是C:\Users\你的用户名\.openclaw\exec-approvals.json处理方法相同。5. 实测现场从报错不断到第一个Skill成功运行5.1 现实场景中的安装遭遇战纸上谈兵没意思我把自己实际安装OpenClaw和Skill时遇到的状况完整复盘一遍。当时我在Windows 11的PowerShell里执行安装命令第一条就翻车了终端红色报错一堆大意是脚本无法从远程URL下载。排查后发现是系统默认的TLS版本太低PowerShell 5.1默认走的是TLS 1.0和1.1而GitHub早已只支持TLS 1.2以上。解决办法是在执行安装命令前先手动设置安全协议[Net.ServicePointManager]::SecurityProtocol [Net.SecurityProtocolType]::Tls12 irm https://raw.githubusercontent.com/openclaw/openclaw/main/install.ps1 | iex设置完再执行安装脚本这次顺畅多了。下载依赖用了大约三分钟安装过程没有其他意外。装好后我犯了另一个典型错误没有重开终端就直接输入openclaw --version结果报错“无法将‘openclaw’项识别为cmdlet、函数、脚本文件或可运行程序的名称”。这里必须再强调一遍任何安装类操作修改了PATH环境变量后都必须重开终端才能生效Windows 11的终端甚至建议彻底关闭重开光开新标签页有时候都不管用。5.2 首次运行OpenClaw和Skill出现的报错排查跑通安装后我进入OpenClaw交互界面试着调用一个官方预置Skill结果又出问题了。当时系统提示找不到该技能我怀疑是版本兼容性问题。网上查了一圈发现官方预置Skill在2.0版本里已经默认开启但如果是跨版本升级上来的配置项可能没同步。解决办法是手动检查配置文件config.yaml里是否有类似skills.enabled的开关skills: enabled: true改完配置重启OpenClaw问题就消失了。如果你没有这个配置项也不用慌初始化命令openclaw init重新走一遍会补全配置结构。然后就是我自己创建那个weekly-reportSkill时报错最多的地方Python脚本里用了sys.argv[1]但我第一次传递参数时走了个神把参数位置放错了结果读取到的是空字符串日志目录不存在脚本直接抛异常。OpenClaw的错误提示还算清楚会把这句FileNotFoundError: 日志目录不存在直接展示在会话窗口里顺着信息排查就好。5.3 我当时是怎么一步步定位问题的排查这类问题有个通用思路先从OpenClaw这一层剥离出去单独测试脚本本身。我直接在PowerShell里运行python generate_report.py D:\work\logs如果这个能正常出文件说明脚本逻辑没问题问题出在参数传递或描述文件上。实测下来脚本没问题于是我检查SKILL.md里的args字段发现我把参数名写成了log_dir但正文里描述的时候用的是“日志目录”模型的解析就可能产生偏差。我在描述里补了一句“参数log_dir值为日志目录的完整路径”重启会话再测试就正常了。这里分享一个独家调试心得Skill脚本的运行路径默认是当前工作目录workspace不是Skill目录本身。如果你在Python脚本里用了相对路径去读日志文件一定要确认日志文件在workspace目录下或者脚本里先切换到日志目录。用Path(log_dir).resolve()把路径转成绝对路径是更稳妥的做法。6. 热门Skill推荐与使用场景速查6.1 这些Skill值得第一时间装上聊完原理和实操来点立刻能用上的干货。我从GitHub和社群中筛选了几个我个人实测过、出活效率很高的Skill分布在文本处理、代码开发、项目管理几个高频场景。archify这个技能主要用于搜索结果和线上信息的归档特别适合在做技术调研时把零散网页内容整理成结构笔记。code-review自动检查代码中的潜在Bug、风格问题和安全隐患相当于临时白嫖一个资深评审员。taste文本润色和风格调整对于经常写方案、邮件、文案的人来说非常实用能按不同语气调整内容。humanizer把明显的AI腔调文本转化成更自然的表达专治那种一眼假的大段套话。drawio根据对话内容自动生成Draw.io的图形建模文件画流程图、架构图可以省下大量手动拖拽时间。obisdian相关Skill如果你用Obsidian做笔记管理这类Skill可以把OpenClaw的对话结果直接写入Obsidian的库目录搭配项目管理流程很丝滑。这些Skill多半在GitHub上能直接搜到安装方式和我前面演示的git clone一致克隆到skills目录即可。装之前建议看一下仓库的更新时间尽量选近期仍在维护的避免和最新版OpenClaw出现兼容问题。6.2 Skill的二次修改与定制经验安装现成的Skill只是入门真正好用的Skill往往需要你按自己的习惯改一遍。拿weekly-report举例子原版可能只读取固定目录我想让它同时读取桌面和下载目录里的日志文件那就得改Python脚本把目录列表作为参数传入并在SKILL.md里更新args字段的说明。改动石头就两点一是脚本要处理参数变化带来的边界情况比如目录不存在、列表为空二是SKILL.md的描述要把新能力说清楚。改完之后重启OpenClaw测试。建议每次只改一个点小步验证别一次性改动过大否则报错了都不知道是哪个环节出的问题。我最初做代码评审类Skill时一次改了脚本、描述、目录结构三处结果报了一个参数读取错误排查浪费时间不说还差点怀疑是OpenClaw本身的Bug。6.3 Skill开发的进阶方向当你掌握了基础的Skill创建之后可以考虑往更难的方向探索。一个是开发跨Skill的编排也就是一个Skill的内部逻辑里调用另一个Skill的能力——官方文档和一些社区项目里已经出现过这类玩法比如在处理数据的Skill内部调用format-json来整理中间结果。另一个是接入外部API让Skill可以调用云端服务比如对接NVIDIA NIM做一些推理任务或对接企业IM软件推送消息本质上就是在脚本里写一个HTTP请求。再有就是结合本地知识库让Skill在回答问题时先检索本地文档再给结论这种模式在做团队内部问答机器人时特别有用。这几个方向需要的技术栈都不深会Python、会看API文档基本就能实现。先把基础的Skill安装和创建流程跑熟后面这些就是自然而然的需求了。7. 安装与使用中的高频问题排查速查表最后把我在实际使用中遇到过的、以及社群中高频出现的问题汇总成一张表按“现象-原因-解法”列出方便你遇到问题时直接对照定位。现象典型原因解决步骤openclaw命令不存在PATH未生效或未写入重开终端检查%USERPROFILE%\.openclaw\bin是否在PATH中Skill放到了目录但对话里识别不到会话启动后才放入加载时机已过重启OpenClaw会话或输入刷新指令技能描述很模糊AI不知道该不该用SKILL.md里description写得过于宽泛重写description列举具体触发场景脚本执行报模块缺失依赖没有安装查看requirements.txt执行pip install -r审批记录文件报错旧版审批记录格式不兼容备份并重置exec-approvals.json脚本找不到日志文件相对路径导致工作目录不对使用绝对路径或在脚本开头切到目标目录文件权限不足管理员终端和普通终端权限不同保持安装与运行为同一权限级别输入中文参数乱码Windows默认代码页问题在Python脚本头部加# -*- coding: utf-8 -*-并全局使用UTF-8这张表是我个人的排障备忘录不一定覆盖所有问题但覆盖了大多数新手会遇到的80%场景。如果照着表格操作还是解决不了最简单的定位方法还是回到那句老话先把Skill脚本剥离出来手动执行确认脚本没问题再回去检查OpenClaw的识别环节。绝大多数所谓“Skill故障”最后都定位在描述文件或参数传递上脚本本身反而没那么多鬼。安装和调试Skill这件事本质上就是“目录结构对不对、描述文件清不清楚、脚本能不能单独跑”三个问题。把这三个问题按顺序排查一遍基本上不存在卡住的情况。我自己从第一次安装到顺手写自己的Skill大概花了一个晚上中间踩过的坑都是上面聊的这些希望这篇文章能帮你把这个过程压缩到半小时以内。
返回列表