Skills

کارگاه Skills

Status: proposal

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 همگی همان سرویس را فراخوانی می‌کنند.

چرخهٔ حیات

text
ایجاد/به‌روزرسانی -> در انتظاربازبینی           -> در انتظاراعمال              -> اعمال‌شدهرد                 -> ردشدهقرنطینه            -> قرنطینه‌شدهتغییر هدف          -> منقضی

فقط یک پیشنهاد pending را می‌توان بازبینی، اعمال، رد یا قرنطینه کرد.

سامان‌دهی چرخهٔ حیات

Gateway میزان استفادهٔ تجمیعی از Skills را در پایگاه‌دادهٔ وضعیت مشترک پیگیری می‌کند. روزی یک‌بار، Skills ایجادشده و اعمال‌شده توسط Skill Workshop را بررسی می‌کند. Skillsی که بیش از 30 روز استفاده نشده باشند، stale می‌شوند؛ پس از 90 روز به archived تبدیل می‌شوند و در اسنپ‌شات‌های جدید Skills عامل قرار نمی‌گیرند. فایل‌های Skills بایگانی‌شده روی دیسک بدون تغییر باقی می‌مانند. Skillsی که دستی نوشته شده‌اند هرگز سامان‌دهی نمی‌شوند؛ فقط Skills ایجادشده توسط پیشنهادهای Skill Workshop وارد سامان‌دهی چرخهٔ حیات می‌شوند.

Skills سنجاق‌شده از گذارهای چرخهٔ حیات عبور نمی‌کنند. یک Skill منقضی پس از استفاده و اجرای جاروب بعدی به active بازمی‌گردد. Skills بایگانی‌شده فقط از طریق بازیابی صریح بازمی‌گردند:

گذارها و بازیابی‌های چرخهٔ حیات برای نشست‌های جدید اعمال می‌شوند؛ نشست‌های در حال اجرا اسنپ‌شات فعلی Skills خود را حفظ می‌کنند.

bash
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 استفاده کنید:

text
/learn/learn docs/runbook.md و https://example.com/guide؛ تمرکز بر بازیابی

بدون درخواست، /learn از عامل می‌خواهد گردش‌کار قابل‌استفادهٔ مجدد را از گفت‌وگوی فعلی استخراج کند. با ارائهٔ درخواست، عامل مسیرها، URLها، یادداشت‌های جای‌گذاری‌شده و ارجاع‌های گفت‌وگو را منبع در نظر می‌گیرد و هم‌زمان الزامات تمرکز، دامنه و نام‌گذاری را رعایت می‌کند. عامل منابع را با ابزارهای موجود خود گردآوری می‌کند و سپس skill_workshop را با action: "create" فراخوانی می‌کند.

پیشنهاد حاصل pending باقی می‌ماند؛ /learn هرگز آن را اعمال نمی‌کند. آن را از طریق جریان عادی تأیید یا با openclaw skills workshop بازبینی و اعمال کنید.

ایجاد:

text
یک Skill با نام morning-catchup بساز که روال صندوق ورودی دوشنبهٔ من را اجرا کند.

به‌روزرسانی یک Skill موجود فضای کاری:

text
trip-planning را به‌روزرسانی کن تا پیش از رزرو، نقشهٔ صندلی‌ها را نیز بررسی کند.

تکرار و اصلاح یک پیشنهاد در انتظار:

text
پیشنهاد morning-catchup را به من نشان بده.آن را بازبینی کن تا هر مورد علامت‌گذاری‌شده به‌عنوان فوری را نیز مشخص کند.پیشنهاد morning-catchup را اعمال کن.

apply، reject و quarantine که عامل آغاز می‌کند، به‌طور پیش‌فرض بدون درخواست تأیید اضافی اجرا می‌شوند. برای الزام تأیید اپراتور پیش از این اقدامات، skills.workshop.approvalPolicy را روی "pending" تنظیم کنید.

وقتی تأیید لازم باشد، درخواست تأیید شناسهٔ پیشنهاد و Skill هدف را مشخص می‌کند و توضیح پیشنهاد، تعداد فایل‌های پشتیبان و اندازهٔ بدنه را نشان می‌دهد. درخواست‌های تأیید محدود شده‌اند تا پیش از ناظر زمانی ابزار عامل پایان یابند. اگر پیش از انقضای درخواست تصمیمی نرسد، اقدام چرخهٔ حیات اجرا نمی‌شود: پیشنهاد در انتظار و بدون تغییر باقی می‌ماند. بعداً در رابط کاربری Skill Workshop تصمیم بگیرید یا openclaw skills workshop apply|reject|quarantine <proposal-id> را اجرا کنید. عامل‌ها نباید یک اقدام منقضی‌شدهٔ چرخهٔ حیات را در حلقه دوباره امتحان کنند.

CLI

bash
# ایجاد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 ویژهٔ پیشنهاد ذخیره می‌شود:

markdown
---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 استفاده کنید:

bash
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" است، نمی‌تواند یک مهارت فعال را به‌روزرسانی کند یا پیشنهادی را اعمال، رد یا قرنطینه کند.

برای جزئیات فعال‌سازی، واجد شرایط بودن، حریم خصوصی و هزینه، آستانهٔ پیشنهاد و عیب‌یابی، به خودآموزی مراجعه کنید.

تأیید و خودمختاری

json5
{  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" را می‌پذیرد؛ نتایج را همیشه به‌صورت پیشنهادهای در انتظار باقی می‌گذارد.

ذخیره‌سازی

text
&lt;OPENCLAW_STATE_DIR&gt;/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 به‌صورت داخلی ارائه شده است و در صورت کاربرد، همان راهنمای خط‌مشی را چاپ می‌کند.

مرتبط

Was this useful?
On this page

On this page