Skills
ایجاد Skills
Skills به عامل میآموزند چگونه و چه زمانی از ابزارها استفاده کند. هر Skill یک دایرکتوری است
که شامل یک فایل SKILL.md با فرانتمتر YAML و دستورالعملهای Markdown است.
OpenClaw مهارتها را با ترتیب تقدم مشخصی از چندین ریشه بارگذاری میکند.
نخستین Skill خود را بسازید
دایرکتوری Skill را ایجاد کنید
Skills در پوشه skills/ فضای کاری شما قرار میگیرند:
mkdir -p ~/.openclaw/workspace/skills/hello-worldبرای سازماندهی میتوانید Skills را در زیرپوشهها گروهبندی کنید — نام Skill همچنان
با فرانتمتر SKILL.md تعیین میشود، نه مسیر پوشه:
mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# نام Skill همچنان "hello-world" است و با /hello-world فراخوانی میشودSKILL.md را بنویسید
فرانتمتر فراداده را تعریف میکند؛ بدنه دستورالعملها را به عامل ارائه میدهد.
---name: hello-worlddescription: یک Skill ساده که پیام خوشامدگویی چاپ میکند.--- # سلام دنیا وقتی کاربر پیام خوشامدگویی میخواهد، از ابزار `exec` برای اجرای دستور زیر استفاده کنید: ```bashecho "سلام از Skill سفارشی شما!" قواعد نامگذاری:- برای `name` از حروف کوچک، ارقام و خط تیره استفاده کنید.- نام دایرکتوری و `name` فرانتمتر را همخوان نگه دارید.- `description` به عامل و در بخش کشف فرمانهای اسلش نمایش داده میشود — آن را تکخطی و کوتاهتر از 160 نویسه نگه دارید. OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSLYqNin2LHar9iw2KfYsduMIFNraWxsINix2Kcg2KrYo9uM24zYryDaqdmG24zYryI ```bashopenclaw skills listOpenClaw بهطور پیشفرض فایلهای SKILL.md زیر ریشههای Skills را پایش میکند. اگر
پایشگر غیرفعال است یا در حال ادامهدادن یک نشست موجود هستید، نشست جدیدی
آغاز کنید تا عامل فهرست بهروزشده را دریافت کند:
# از چت — نشست فعلی را بایگانی کنید و نشستی تازه آغاز کنید/new # یا Gateway را دوباره راهاندازی کنیدopenclaw gateway restartآن را آزمایش کنید
openclaw agent --message "یک پیام خوشامدگویی به من بده"یا یک چت باز کنید و مستقیماً از عامل بخواهید. برای
فراخوانی صریح آن با نام، از /skill hello-world استفاده کنید.
مرجع SKILL.md
فیلدهای الزامی
| فیلد | توضیحات |
|---|---|
name |
نامک یکتا با حروف کوچک، ارقام و خط تیره |
description |
توضیحی تکخطی که به عامل و در خروجی کشف نمایش داده میشود |
کلیدهای اختیاری فرانتمتر
| فیلد | پیشفرض | توضیحات |
|---|---|---|
user-invocable |
true |
Skill را بهعنوان فرمان اسلش کاربر در دسترس قرار میدهد |
disable-model-invocation |
false |
Skill را از پرامپت سیستمی عامل خارج نگه میدارد (همچنان از طریق /skill اجرا میشود) |
command-dispatch |
— | برای هدایت مستقیم فرمان اسلش به ابزار و دورزدن مدل، روی tool تنظیم کنید |
command-tool |
— | نام ابزاری که هنگام تنظیمبودن command-dispatch: tool فراخوانی میشود |
command-arg-mode |
raw |
برای ارسال به ابزار، رشته آرگومانهای خام را به ابزار میفرستد |
homepage |
— | نشانی اینترنتی که با عنوان «وبسایت» در رابط کاربری Skills در macOS نمایش داده میشود |
برای فیلدهای دروازهبندی (requires.bins، requires.env و غیره)،
Skills — دروازهبندی را ببینید.
استفاده از {baseDir}
بدون کدنویسی ثابت مسیرها، به فایلهای داخل دایرکتوری Skill ارجاع دهید —
عامل {baseDir} را نسبت به دایرکتوری خود Skill تفکیک میکند:
اسکریپت کمکی را در `{baseDir}/scripts/run.sh` اجرا کنید.افزودن فعالسازی شرطی
Skill خود را دروازهبندی کنید تا فقط زمانی بارگذاری شود که وابستگیهایش در دسترس باشند:
---name: gemini-searchdescription: جستوجو با استفاده از Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---گزینههای دروازهبندی
| کلید | توضیحات |
|---|---|
requires.bins |
همه فایلهای اجرایی باید در PATH موجود باشند |
requires.anyBins |
دستکم یک فایل اجرایی باید در PATH موجود باشد |
requires.env |
هر متغیر محیطی باید در فرایند یا پیکربندی موجود باشد |
requires.config |
مقدار هر مسیر openclaw.json باید درستنما باشد |
os |
فیلتر پلتفرم: ["darwin"]، ["linux"]، ["win32"] |
always |
برای نادیدهگرفتن همه دروازهها و گنجاندن همیشگی Skill، true را تنظیم کنید |
مرجع کامل: Skills — دروازهبندی.
محیط و کلیدهای API
یک کلید API را به ورودی Skill در openclaw.json متصل کنید:
{ skills: { entries: { "gemini-search": { enabled: true, apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, }, }, },}کلید فقط برای همان نوبت عامل به فرایند میزبان تزریق میشود. این کلید به سندباکس نمیرسد — به متغیرهای محیطی سندباکسشده مراجعه کنید.
پیشنهاد از طریق کارگاه Skill
برای Skills پیشنویسشده توسط عامل، یا زمانی که میخواهید پیش از عملیاتیشدن یک Skill،
اپراتور آن را بازبینی کند، بهجای نوشتن مستقیم SKILL.md از پیشنهادهای
کارگاه Skill استفاده کنید.
# یک Skill کاملاً جدید پیشنهاد دهیدopenclaw skills workshop propose-create \ --name "hello-world" \ --description "یک Skill ساده که پیام خوشامدگویی چاپ میکند." \ --proposal ./PROPOSAL.md # بهروزرسانی یک Skill موجود را پیشنهاد دهیدopenclaw skills workshop propose-update hello-world \ --proposal ./PROPOSAL.md \ --description "Skill خوشامدگویی بهروزشده"وقتی پیشنهاد شامل فایلهای پشتیبانی است، از --proposal-dir استفاده کنید:
openclaw skills workshop propose-create \ --name "hello-world" \ --description "یک Skill ساده که پیام خوشامدگویی چاپ میکند." \ --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 را ببینید.
انتشار در ClawHub
از کاملبودن SKILL.md خود مطمئن شوید
مطمئن شوید name، description و همه فیلدهای دروازهبندی metadata.openclaw
تنظیم شدهاند. اگر صفحه پروژه دارید، یک نشانی homepage اضافه کنید.
CLI مستقل ClawHub را نصب و وارد حساب شوید
npm i -g clawhubclawhub loginمنتشر کنید
clawhub skill publish ./path/to/hello-worldبرای بازنویسی نسخه استنباطشده یا انتشار تحت مالک مشخص،
--version <version> یا --owner <owner> را اضافه کنید. برای روند کامل، محدودهبندی مالک
و دیگر فرمانهای نگهداری (clawhub sync، clawhub skill rename و غیره)،
ClawHub — انتشار و
CLI ClawHub را ببینید.
روشهای برتر
مرتبط
ترتیب بارگذاری، دروازهبندی، فهرستهای مجاز و قالب SKILL.md.
صف پیشنهاد برای Skills پیشنویسشده توسط عامل.
شِمای کامل پیکربندی skills.*.
Skills را در رجیستری عمومی مرور و منتشر کنید.
Pluginها میتوانند Skills را همراه ابزارهایی که مستند میکنند ارائه دهند.