Skills
ایجاد Skills
Skills به عامل میآموزند چگونه و چه زمانی از ابزارها استفاده کند. هر Skill یک پوشه است
که شامل فایل SKILL.md با فرانتمتر YAML و دستورالعملهای Markdown میشود.
OpenClaw، Skills را از چندین ریشه و طبق یک ترتیب تقدم مشخص بارگیری میکند.
نخستین 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` به عامل و در بخش کشف فرمانهای اسلش نمایش داده میشود — آن را در یک خط و کمتر از ۱۶۰ نویسه نگه دارید. OPENCLAW_DOCS_MARKER:stepClose: OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSLYqNin2LHar9uM2LHbjCBTa2lsbCDYsdinINio2LHYsdiz24wg2qnZhtuM2K8i ```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
در openclaw.json یک کلید API را به ورودی Skill متصل کنید:
{ 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 را در کنار ابزارهایی که مستند میکنند ارائه دهند.