Skills
ایجاد Skills
Skills به عامل یاد میدهند چگونه و چه زمانی از ابزارها استفاده کند. هر مهارت یک دایرکتوری است
که شامل یک فایل SKILL.md با frontmatter از نوع YAML و دستورالعملهای markdown است.
OpenClaw مهارتها را از چندین ریشه، طبق یک ترتیب تقدم مشخص بارگذاری میکند.
نخستین مهارت خود را بسازید
دایرکتوری مهارت را بسازید
Skills در پوشه skills/ فضای کاری شما قرار میگیرند. برای
مهارت جدید خود یک دایرکتوری بسازید:
mkdir -p ~/.openclaw/workspace/skills/hello-worldمیتوانید برای سازماندهی، مهارتها را در زیرپوشهها گروهبندی کنید — مهارت همچنان
با frontmatter فایل SKILL.md نامگذاری میشود، نه با مسیر پوشه:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-worldنوشتن SKILL.md
فایل SKILL.md را داخل دایرکتوری بسازید. frontmatter فراداده را تعریف میکند؛
بدنه، دستورالعملها را به عامل میدهد.
---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!" قواعد نامگذاری:- برای `name` از حروف کوچک، رقمها و خط تیره استفاده کنید.- نام دایرکتوری و `name` در frontmatter را همراستا نگه دارید.- `description` به عامل و در کشف دستورهای اسلش نمایش داده میشود — آن را یکخطی و کمتر از 160 نویسه نگه دارید. OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSLYqtij24zbjNivINio2KfYsdqv2LDYp9ix24wg2YXZh9in2LHYqiI ```bashopenclaw skills listOpenClaw بهطور پیشفرض فایلهای SKILL.md زیر ریشههای مهارتها را پایش میکند. اگر
پایشگر غیرفعال است یا در حال ادامه دادن یک نشست موجود هستید، یک نشست جدید
شروع کنید تا عامل فهرست بهروزشده را دریافت کند:
# From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restartآزمایش آن
پیامی بفرستید که باید مهارت را فعال کند:
openclaw agent --message "give me a greeting"یا یک گفتوگو باز کنید و مستقیم از عامل بپرسید. برای
فراخوانی صریح آن با نام، از /skill hello-world استفاده کنید.
مرجع SKILL.md
فیلدهای الزامی
| فیلد | توضیح |
|---|---|
name |
نامک یکتا با حروف کوچک، رقمها و خط تیره |
description |
توضیح یکخطی که به عامل و در خروجی کشف نمایش داده میشود |
کلیدهای اختیاری frontmatter
| فیلد | پیشفرض | توضیح |
|---|---|---|
user-invocable |
true |
مهارت را بهعنوان دستور اسلش کاربر عرضه میکند |
disable-model-invocation |
false |
مهارت را از اعلان سیستم عامل بیرون نگه میدارد؛ همچنان از طریق /skill اجرا میشود |
command-dispatch |
— | برای مسیریابی مستقیم دستور اسلش به یک ابزار و دور زدن مدل، روی tool تنظیم کنید |
command-tool |
— | نام ابزاری که وقتی command-dispatch: tool تنظیم شده است فراخوانی میشود |
command-arg-mode |
raw |
برای dispatch ابزار، رشته خام args را به ابزار ارسال میکند |
homepage |
— | URL که در رابط کاربری macOS Skills بهعنوان "Website" نمایش داده میشود |
برای فیلدهای دروازهگذاری (requires.bins، requires.env و غیره) به
Skills — دروازهگذاری مراجعه کنید.
استفاده از {baseDir}
برای ارجاع به فایلهای داخل دایرکتوری مهارت بدون hardcode کردن مسیرها،
از {baseDir} در بدنه مهارت استفاده کنید:
Run the helper script at `{baseDir}/scripts/run.sh`.افزودن فعالسازی شرطی
مهارت خود را دروازهگذاری کنید تا فقط وقتی وابستگیهایش در دسترس هستند بارگذاری شود:
---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---گزینههای دروازهگذاری
| کلید | توضیح |
|---|---|
requires.bins |
همه باینریها باید روی PATH وجود داشته باشند |
requires.anyBins |
حداقل یک باینری باید روی PATH وجود داشته باشد |
requires.env |
هر متغیر env باید در فرایند یا پیکربندی وجود داشته باشد |
requires.config |
هر مسیر openclaw.json باید truthy باشد |
os |
فیلتر پلتفرم: ["darwin"]، ["linux"]، ["win32"] |
always |
برای رد کردن همه دروازهها و همیشه شامل کردن مهارت، true تنظیم کنید |
مرجع کامل: Skills — دروازهگذاری.
محیط و کلیدهای API
یک کلید API را به ورودی مهارت در openclaw.json وصل کنید:
{ skills: { entries: { "gemini-search": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, }, }, },}کلید فقط برای همان نوبت عامل به فرایند میزبان تزریق میشود. به sandbox نمیرسد — به متغیرهای env در sandbox مراجعه کنید.
پیشنهاد از طریق Skill Workshop
برای مهارتهایی که عامل پیشنویس کرده است، یا وقتی میخواهید پیش از زنده شدن یک مهارت
بازبینی اپراتور انجام شود، بهجای نوشتن مستقیم
SKILL.md از پیشنهادهای Skill Workshop استفاده کنید.
# Propose a brand-new skillopenclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \ --proposal ./PROPOSAL.md \ --description "Updated greeting skill"وقتی پیشنهاد شامل فایلهای پشتیبان است، از --proposal-dir استفاده کنید:
openclaw skills workshop propose-create \ --name "hello-world" \ --description "A simple skill that prints a greeting." \ --proposal-dir ./hello-world-proposal/دایرکتوری باید شامل PROPOSAL.md باشد. فایلهای پشتیبان میتوانند در assets/،
examples/، references/، scripts/ یا templates/ قرار بگیرند.
پس از بازبینی:
openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>برای چرخه کامل عمر پیشنهاد، به Skill Workshop مراجعه کنید.
انتشار در ClawHub
کامل بودن SKILL.md خود را مطمئن کنید
مطمئن شوید name، description و هر فیلد دروازهگذاری metadata.openclaw
تنظیم شدهاند. اگر صفحه پروژه دارید، یک URL برای homepage اضافه کنید.
نصب مهارت ClawHub
مهارت ClawHub شکل فعلی دستور انتشار و فراداده الزامی را مستند میکند:
openclaw skills install @openclaw/clawhub-publishانتشار
clawhub publishبرای جریان کامل، به ClawHub — انتشار مراجعه کنید.
بهترین رویهها
مرتبط
ترتیب بارگذاری، دروازهگذاری، allowlistها و قالب SKILL.md.
صف پیشنهاد برای مهارتهایی که عامل پیشنویس کرده است.
طرحواره کامل پیکربندی skills.*.
مهارتها را در رجیستری عمومی مرور و منتشر کنید.
Pluginها میتوانند Skills را همراه ابزارهایی که مستند میکنند عرضه کنند.