Skills
کارگاه Skills
Skill Workshop مسیر تحت حاکمیت OpenClaw برای ایجاد و بهروزرسانی Skills فضای کاری
است. عاملها و اپراتورها هرگز از طریق این مسیر مستقیماً SKILL.md را
نمینویسند — آنها یک پیشنهاد ایجاد میکنند (پیشنویسی در انتظار شامل محتوا،
اتصال هدف، وضعیت اسکنر، هشها و فرادادهٔ بازگردانی) که فقط پس از اعمالشدن به
یک Skill فعال تبدیل میشود.
Skill Workshop فقط Skills فضای کاری را مینویسد. این ابزار هرگز به Skills همراه، Plugin، ClawHub، ریشهٔ اضافی، مدیریتشده، عامل شخصی یا سیستمی دست نمیزند.
نحوهٔ کار
- ابتدا پیشنهاد: محتوای تولیدشده بهصورت
PROPOSAL.mdذخیره میشود، نهSKILL.md. - اعمال، تنها نوشتن فعال است: ایجاد، بهروزرسانی و بازبینی هرگز Skills فعال را تغییر نمیدهند.
- محدود به فضای کاری: ایجادها ریشهٔ
skills/فضای کاری را هدف میگیرند؛ بهروزرسانیها فقط برای Skills قابلنوشتن فضای کاری مجازند. - بدون بازنویسی: اگر Skill هدف از قبل وجود داشته باشد، ایجاد ناموفق میشود.
- مقید به هش: پیشنهادهای بهروزرسانی به هش فعلی هدف مقید میشوند و اگر
Skill فعال پیش از اعمال تغییر کند، به حالت
staleمیروند. - تحت کنترل اسکنر: اعمال، پیش از نوشتن اسکنر امنیتی را دوباره اجرا میکند.
- قابلبازیابی: اعمال، پیش از دستزدن به فایلهای فعال فرادادهٔ بازگردانی را مینویسد.
- سطوح سازگار: گفتوگو، CLI و Gateway همگی همان سرویس را فراخوانی میکنند.
چرخهٔ حیات
ایجاد/بهروزرسانی -> در انتظاربازبینی -> در انتظاراعمال -> اعمالشدهرد -> ردشدهقرنطینه -> قرنطینهشدهتغییر هدف -> منقضیفقط یک پیشنهاد pending را میتوان بازبینی، اعمال، رد یا قرنطینه کرد.
ساماندهی چرخهٔ حیات
Gateway میزان استفادهٔ تجمیعی از Skills را در پایگاهدادهٔ وضعیت مشترک پیگیری میکند. روزی یکبار،
Skills ایجادشده و اعمالشده توسط Skill Workshop را بررسی میکند. Skillsی که بیش از
30 روز استفاده نشده باشند، stale میشوند؛ پس از 90 روز به archived تبدیل میشوند و
در اسنپشاتهای جدید Skills عامل قرار نمیگیرند. فایلهای Skills بایگانیشده روی
دیسک بدون تغییر باقی میمانند. Skillsی که دستی نوشته شدهاند هرگز ساماندهی نمیشوند؛ فقط Skills
ایجادشده توسط پیشنهادهای Skill Workshop وارد ساماندهی چرخهٔ حیات میشوند.
Skills سنجاقشده از گذارهای چرخهٔ حیات عبور نمیکنند. یک Skill منقضی پس از استفاده و
اجرای جاروب بعدی به active بازمیگردد. Skills بایگانیشده فقط از طریق
بازیابی صریح بازمیگردند:
گذارها و بازیابیهای چرخهٔ حیات برای نشستهای جدید اعمال میشوند؛ نشستهای در حال اجرا اسنپشات فعلی Skills خود را حفظ میکنند.
openclaw skills curator statusopenclaw skills curator pin <skill>openclaw skills curator unpin <skill>openclaw skills curator restore <skill>همهٔ فرمانهای ساماندهنده --json را میپذیرند. وضعیت همچنین نامزدهای همپوشانی قطعی را
فقط بهصورت پیشنهاد گزارش میکند؛ هرگز Skills را ادغام نمیکند یا مدلی را فرا نمیخواند.
گفتوگو
Skill موردنظر را از عامل بخواهید؛ عامل skill_workshop را فراخوانی میکند و
شناسهٔ پیشنهاد را برمیگرداند.
یادگیری از کارهای اخیر
برای تبدیل گفتوگوی فعلی یا منابع نامبرده به یک پیشنهاد Skill مبتنی بر
استانداردها، از /learn استفاده کنید:
/learn/learn docs/runbook.md و https://example.com/guide؛ تمرکز بر بازیابیبدون درخواست، /learn از عامل میخواهد گردشکار قابلاستفادهٔ مجدد را از
گفتوگوی فعلی استخراج کند. با ارائهٔ درخواست، عامل مسیرها، URLها، یادداشتهای
جایگذاریشده و ارجاعهای گفتوگو را منبع در نظر میگیرد و همزمان الزامات تمرکز،
دامنه و نامگذاری را رعایت میکند. عامل منابع را با ابزارهای موجود خود گردآوری میکند و سپس
skill_workshop را با action: "create" فراخوانی میکند.
پیشنهاد حاصل pending باقی میماند؛ /learn هرگز آن را اعمال نمیکند. آن را
از طریق جریان عادی تأیید یا با openclaw skills workshop بازبینی و اعمال کنید.
ایجاد:
یک Skill با نام morning-catchup بساز که روال صندوق ورودی دوشنبهٔ من را اجرا کند.بهروزرسانی یک Skill موجود فضای کاری:
trip-planning را بهروزرسانی کن تا پیش از رزرو، نقشهٔ صندلیها را نیز بررسی کند.تکرار و اصلاح یک پیشنهاد در انتظار:
پیشنهاد morning-catchup را به من نشان بده.آن را بازبینی کن تا هر مورد علامتگذاریشده بهعنوان فوری را نیز مشخص کند.پیشنهاد morning-catchup را اعمال کن.apply، reject و quarantine که عامل آغاز میکند، بهطور پیشفرض بدون
درخواست تأیید اضافی اجرا میشوند. برای الزام تأیید اپراتور پیش از این اقدامات،
skills.workshop.approvalPolicy را روی "pending" تنظیم کنید.
وقتی تأیید لازم باشد، درخواست تأیید شناسهٔ پیشنهاد و Skill هدف را مشخص میکند
و توضیح پیشنهاد، تعداد فایلهای پشتیبان و اندازهٔ بدنه را نشان میدهد.
درخواستهای تأیید محدود شدهاند تا پیش از ناظر زمانی ابزار عامل پایان یابند. اگر
پیش از انقضای درخواست تصمیمی نرسد، اقدام چرخهٔ حیات اجرا نمیشود:
پیشنهاد در انتظار و بدون تغییر باقی میماند. بعداً در رابط کاربری Skill Workshop تصمیم بگیرید یا
openclaw skills workshop apply|reject|quarantine <proposal-id> را اجرا کنید. عاملها نباید
یک اقدام منقضیشدهٔ چرخهٔ حیات را در حلقه دوباره امتحان کنند.
CLI
# ایجادopenclaw skills workshop propose-create \ --name morning-catchup \ --description "رسیدگی روزانه به صندوق ورودی: اولویتبندی، بایگانی، برجستهسازی، پیشنویس، برنامهریزی" \ --proposal ./PROPOSAL.md # بهروزرسانی یک Skill موجود فضای کاریopenclaw skills workshop propose-update trip-planning --proposal ./PROPOSAL.md # فهرست و بازرسیopenclaw skills workshop listopenclaw skills workshop inspect <proposal-id> # بازبینی پیش از تأییدopenclaw skills workshop revise <proposal-id> --proposal ./PROPOSAL.md # خاتمهopenclaw skills workshop apply <proposal-id>openclaw skills workshop reject <proposal-id> --reason "تکراری"openclaw skills workshop quarantine <proposal-id> --reason "نیازمند بازبینی امنیتی"هر زیرفرمان --agent <id> (فضای کاری هدف؛ پیشفرض ابتدا فضای استنباطشده از
cwd و سپس عامل پیشفرض است) و --json (خروجی ساختیافته) را میپذیرد.
propose-create، propose-update و revise همچنین --goal <text> و
--evidence <text> را میپذیرند تا زمینهٔ پیشنهاد را در کنار --proposal ثبت کنند.
محتوای پیشنهاد
تا زمانی که در انتظار است، پیشنهاد بهصورت PROPOSAL.md با frontmatter ویژهٔ
پیشنهاد ذخیره میشود:
---name: "morning-catchup"description: "رسیدگی روزانه به صندوق ورودی: اولویتبندی، بایگانی، برجستهسازی، پیشنویس، برنامهریزی"status: proposalversion: "v1"date: "2026-05-30T00:00:00.000Z"---هنگام اعمال، Skill Workshop فایل فعال SKILL.md را مینویسد و
فیلدهای ویژهٔ پیشنهاد را حذف میکند: status، version پیشنهاد و date پیشنهاد.
فایلهای پشتیبان
وقتی Skill پیشنهادی به فایلهایی در کنار
PROPOSAL.md نیاز دارد، از --proposal-dir استفاده کنید:
openclaw skills workshop propose-create \ --name weekly-update \ --description "جمعبندی جمعه: آمار، نکات برجسته، سه اولویت اصلی هفتهٔ آینده" \ --proposal-dir ./weekly-update-proposalدایرکتوری باید حاوی PROPOSAL.md باشد. فایلهای پشتیبان باید زیر
assets/، examples/، references/، scripts/ یا templates/ قرار داشته باشند. Skill
Workshop آنها را اسکن و هش میکند و همراه پیشنهاد ذخیره میکند، سپس فقط هنگام اعمال
آنها را در کنار SKILL.md فعال مینویسد.
مسیرهای ردشدهٔ فایل پشتیبان: مسیرهای مطلق، بخشهای مخفی مسیر، پیمایش مسیر، مسیرهای همپوشان، فایلهای اجرایی، متن غیر UTF-8، بایتهای null و مسیرهای خارج از پوشههای استاندارد پشتیبان.
ابزار عامل
مدل از skill_workshop با یک action الزامی استفاده میکند:
create | update | revise | list | inspect | apply | reject | quarantine.
پارامترهای دیگر بسته به اقدام اعمال میشوند:
| پارامتر | استفادهشده توسط | توضیحات |
|---|---|---|
name |
create، inspect، revise |
برای create الزامی است؛ در غیر این صورت یک پیشنهاد در انتظار را بر اساس نام پیدا میکند |
description |
create، update، revise |
حداکثر 160 بایت |
skill_name |
update |
نام یا کلید Skill موجود |
proposal_content |
create، update، revise |
بهصورت PROPOSAL.md ذخیره میشود؛ محدود به skills.workshop.maxSkillBytes |
support_files |
create، update، revise |
آرایهای از { path, content } |
goal، evidence |
create، update، revise |
زمینهٔ متنی آزاد |
proposal_id |
inspect، revise، apply، reject، quarantine |
پیشنهاد هدف |
reason |
apply، reject، quarantine |
اختیاری |
query، status، limit |
list |
فیلتر/صفحهبندی؛ حداکثر limit برابر 50، پیشفرض 20 |
عاملها باید برای کار تولیدشدهٔ Skill از skill_workshop استفاده کنند. آنها نباید
فایلهای پیشنهاد را از طریق write، edit، exec، فرمانهای shell
یا عملیات مستقیم سیستم فایل ایجاد یا تغییر دهند.
Skills پیشنهادی
OpenClaw دستورالعملهای ماندگاری مانند «دفعهٔ بعد»، «به خاطر بسپار که» و اصلاحات واکنشی
را هنگام پایان یک نوبت تعاملی، از جمله نوبتهای ناموفق، شناسایی میکند. در نوبت بعدی، عامل پیشنهاد میدهد
جدیدترین گردشکار شناساییشده از طریق skill_workshop ذخیره شود؛ کاربر تصمیم میگیرد که آیا
پیشنهادی ایجاد شود یا نه. این پیشنهاد داخلی بهخودیخود هیچ Skillی را ایجاد یا تغییر نمیدهد. برای
ایجاد مستقیم پیشنهادهای در انتظار، skills.workshop.autonomous.enabled را فعال کنید. در رابط کاربری Control،
زبانهٔ Workshop همان تنظیم را بهصورت کلید یادگیری خودکار در سربرگ صفحه و
دکمهٔ فعالسازی در تابلوی خالی پیشنهاد ارائه میدهد.
اسکن نشستهای گذشته
رابط کاربری Control میتواند بدون فعالکردن یادگیری خودکار مستقل، کارهای قدیمیتر را بازبینی کند. Plugins → Workshop را باز کنید و یافتن ایدههای Skill را انتخاب کنید. اسکن از جدیدترین نشستهای واجد شرایط آغاز میشود و پنجرهای محدود از کارهای قابلتوجه را بررسی میکند. این اسکن نشستهای cron، heartbeat، hook، زیرعامل، ACP، متعلق به Plugin و بازبینی داخلی و نیز گفتوگوهای دارای کمتر از شش نوبت مدل را رد میکند.
بازبین از مدل پیکربندیشدهٔ عامل انتخابی استفاده میکند و یک بستهٔ رونوشت با اسرار حذفشده و اندازهٔ محدود دریافت میکند. همان معیار محافظهکارانهٔ بازبینی تجربه را اعمال میکند: یک الگوی مشخص بازیابی یا رویهای پایدار که حداقل دو فراخوانی آیندهٔ مدل یا ابزار را حذف کند. کارهای معمول و واقعیتهای یکباره نباید پیشنهادی تولید کنند.
هر اسکن میتواند حداکثر سه پیشنهاد در انتظار ایجاد یا بازبینی کند. نمیتواند یک Skill فعال را اعمال، رد، قرنطینه یا ویرایش کند. Workshop پوشش تجمیعی را نشان میدهد، برای مثال 20 نشست بازبینی شد · 18 ژوئن تا امروز · 2 ایده یافت شد. برای ادامه از قدیمیترین مکاننمای نشست ذخیرهشده، اسکن کارهای قدیمیتر را انتخاب کنید. پس از پایان تاریخچهٔ موجود، اقدام به اسکن کارهای جدید تبدیل میشود.
بازبینی تاریخی حتی زمانی که
skills.workshop.autonomous.enabled برابر با false است، دستی انجام میشود. هر کلیک اجرای یک مدل را آغاز میکند،
بنابراین قیمتگذاری ارائهدهنده و شرایط پردازش داده اعمال میشوند. مکاننما و شمارشهای پوشش
در پایگاه دادهٔ وضعیت مشترک OpenClaw ذخیره میشوند؛ محتوای رونوشت
در وضعیت اسکن کپی نمیشود.
با فعالبودن ثبت خودکار، OpenClaw میتواند پس از کار موفق و قابلتوجه
و پس از بیکارشدن کل سامانهٔ عامل نیز بازبینی محافظهکارانهای انجام دهد. آن بازبینی ایزوله میتواند حداکثر یک پیشنهاد در انتظار را ایجاد
یا بازبینی کند. حتی زمانی که approvalPolicy برابر با "auto" است، نمیتواند یک مهارت فعال را بهروزرسانی کند یا پیشنهادی را اعمال، رد یا قرنطینه
کند.
برای جزئیات فعالسازی، واجد شرایط بودن، حریم خصوصی و هزینه، آستانهٔ پیشنهاد و عیبیابی، به خودآموزی مراجعه کنید.
تأیید و خودمختاری
{ skills: { workshop: { autonomous: { enabled: false, }, allowSymlinkTargetWrites: false, approvalPolicy: "auto", maxPending: 50, maxSkillBytes: 40000, }, },}| تنظیم | پیشفرض | اثر |
|---|---|---|
autonomous.enabled |
false |
از اصلاحات صریح و، پس از یک تأخیر بیکاری، از کار تکمیلشدهٔ قابلتوجهی که بازیابی قابلاستفادهٔ مجدد یا صرفهجویی معنادار در رفتوبرگشت دارد، پیشنهادهای در انتظار ایجاد میکند. |
allowSymlinkTargetWrites |
false |
اجازه میدهد اعمال تغییرات از طریق پیوندهای نمادین مهارت فضای کاری بنویسد که مقصد واقعی آنها در skills.load.allowSymlinkTargets فهرست شده است. |
approvalPolicy |
"auto" |
"auto" یک درخواست تأیید اضافی را برای apply، reject یا quarantine آغازشده توسط عامل رد میکند (عامل همچنان باید کنش را فراخوانی کند). "pending" به تأیید نیاز دارد. |
maxPending |
50 |
تعداد پیشنهادهای در انتظار و قرنطینهشده را در هر فضای کاری محدود میکند (1-200). |
maxSkillBytes |
40000 |
اندازهٔ بدنهٔ پیشنهاد را بر حسب بایت محدود میکند (1024-200000). |
ثبت خودکار، قواعد آیندهنگرانه (برای مثال، «از این پس») و اصلاحات واکنشی (برای مثال، «این چیزی نیست که خواستم») را تشخیص میدهد. دستورالعملهای جدید را بر اساس موضوع، در هر نوبت در حداکثر سه پیشنهاد گروهبندی میکند، تطابقهای واژگانی را به مهارتهای موجود و قابلنوشتن فضای کاری هدایت میکند و هنگامی که اصلاح دیگری همان مهارت را هدف میگیرد، پیشنهاد در انتظار خود را بازبینی میکند.
برای کار موفق و قابلتوجه بدون اصلاح صریح، یک اجرای ایزوله از مدل انتخابشده
تصمیم میگیرد که آیا مسیر تکمیلشده از آستانهٔ محافظهکارانهٔ پیشنهاد عبور میکند یا نه. پیش از پاسخدادن، از
مدل پیشزمینه خواسته نمیشود یاد بگیرد. بازبین پسزمینه اجرای
پیشزمینه را بهعنوان منشأ پیشنهاد حفظ میکند، نمیتواند به ابزارهای عمومی عامل دسترسی داشته باشد و نمیتواند دربارهٔ چرخهٔ عمر
تصمیمگیری کند. بازبینی فقط زمانی آغاز میشود که زمان اجرای پیشزمینه هم مدل دقیق و نهاییشدهٔ خود را گزارش کند
و هم گزارش دهد که skill_workshop واقعاً در دسترس بوده است. بنابراین خطمشی محدودکننده یا ناشناختهٔ ابزار
بهصورت بسته شکست میخورد و هیچ پیشنهادی ایجاد نمیکند.
برای رفتار کامل بازبینی خودکار و مدل ایمنی، به خودآموزی مراجعه کنید.
توضیحات پیشنهاد، مستقل از
maxSkillBytes، همیشه به 160 بایت محدود میشوند.
متدهای Gateway
| متد | دامنه |
|---|---|
skills.proposals.list |
operator.read |
skills.proposals.inspect |
operator.read |
skills.proposals.historyStatus |
operator.read |
skills.proposals.historyScan |
operator.admin |
skills.proposals.create |
operator.admin |
skills.proposals.update |
operator.admin |
skills.proposals.revise |
operator.admin |
skills.proposals.requestRevision |
operator.admin |
skills.proposals.apply |
operator.admin |
skills.proposals.reject |
operator.admin |
skills.proposals.quarantine |
operator.admin |
skills.curator.status |
operator.read |
skills.curator.pin |
operator.admin |
skills.curator.unpin |
operator.admin |
skills.curator.restore |
operator.admin |
requestRevision فقط مختص Gateway است (هیچ معادل CLI یا ابزار عامل ندارد): این متد
برای رابطهای کاربریای که از عامل میخواهند بهجای ارسال محتوای جدیدِ لفظبهلفظ،
بازبینی کند، دستورالعملهای بازبینی آزادمتن را به نشست گفتوگوی عامل مالک
ارسال میکند، بهجای آنکه مستقیماً PROPOSAL.md را جایگزین کند.
historyStatus و historyScan متدهای پشتیبانی Control UI هستند. historyScan
مقدار direction: "older" | "newer" را میپذیرد؛ نتایج را همیشه بهصورت پیشنهادهای
در انتظار باقی میگذارد.
ذخیرهسازی
<OPENCLAW_STATE_DIR>/skill-workshop/ proposals.json proposals/<proposal-id>/ proposal.json PROPOSAL.md rollback.json assets/ examples/ references/ scripts/ templates/دایرکتوری پیشفرض وضعیت: ~/.openclaw.
proposal.json: رکورد رسمی پیشنهاد.proposals.json: نمایهٔ فهرستسازی سریع، قابل بازسازی از پوشههای پیشنهاد.PROPOSAL.md: پیشنهاد مهارت در انتظار.rollback.json: فرادادهٔ بازیابی که پیش از اعمال تغییرات روی فایلهای فعال نوشته میشود.
محدودیتها
| محدودیت | مقدار |
|---|---|
| توضیحات | 160 بایت |
| بدنهٔ پیشنهاد | skills.workshop.maxSkillBytes (پیشفرض 40,000؛ سقف سخت 1 MiB) |
| فایلهای پشتیبان | 64 برای هر پیشنهاد |
| اندازهٔ فایل پشتیبان | هرکدام 256 KiB، در مجموع 2 MiB |
| پیشنهادهای در انتظار + قرنطینهشده | skills.workshop.maxPending برای هر فضای کاری (پیشفرض 50) |
عیبیابی
| مشکل | راهحل |
|---|---|
Skill proposal description is too large |
description را به 160 بایت یا کمتر کوتاه کنید. |
Skill proposal content is too large |
بدنهٔ پیشنهاد را کوتاه کنید یا skills.workshop.maxSkillBytes را افزایش دهید. |
Target skill changed after proposal creation |
پیشنهاد را بر مبنای مقصد کنونی بازبینی کنید یا پیشنهاد جدیدی بسازید. |
Proposal scan failed |
یافتههای اسکنر را بررسی کنید، سپس پیشنهاد را بازبینی یا قرنطینه کنید. |
untrusted symlink target |
skills.load.allowSymlinkTargets را پیکربندی کنید و skills.workshop.allowSymlinkTargetWrites را فقط برای ریشههای مهارت مشترک عمدی فعال کنید. |
Support file paths must be under one of... |
فایلهای پشتیبان را به زیر assets/، examples/، references/، scripts/ یا templates/ منتقل کنید. |
| پیشنهاد در فهرست نمایش داده نمیشود | فضای کاری --agent انتخابشده و OPENCLAW_STATE_DIR را بررسی کنید. |
عامل نمیتواند skill_workshop را فراخوانی کند |
خطمشی فعال ابزار و حالت اجرا را بررسی کنید. coding ابزار را شامل میشود؛ خطمشیهای محدودکنندهٔ tools.allow باید آن را صریحاً فهرست کنند و اجراهای جعبهشنی باید از یک نشست عادی عامل در سمت میزبان یا CLI استفاده کنند. |
عیبیابی خطمشی ابزار
هنگامی که ثبت خودکار فعال است، openclaw doctor
بررسی core/doctor/skill-workshop-tool-policy را برای عامل پیشفرض اجرا میکند. اگر خطمشی
skill_workshop را پنهان کند، هشدار نخستین لایهٔ پیکربندی حذفکننده و
تغییر دقیق allow یا alsoAllow موردنیاز را نام میبرد. راهنماهای اجرایی قدیمیتر ممکن است همچنان از
openclaw plugins inspect skill-workshop استفاده کنند؛ آن فرمان اکنون توضیح میدهد که Skill
Workshop بهصورت داخلی ارائه شده است و در صورت کاربرد، همان راهنمای خطمشی را چاپ میکند.
مرتبط
- مهارتها برای ترتیب بارگذاری، تقدم و قابلیت مشاهده
- خودآموزی برای پیشنهادهای محافظهکارانهٔ مهارت پس از اجرا
- ایجاد مهارتها برای مبانی
SKILL.mdدستنویس - پیکربندی مهارتها برای طرحوارهٔ کامل
skills.workshop - CLI مهارتها برای فرمانهای
openclaw skills