Skills
پیکربندی Skills
بیشتر پیکربندی بارگذار/نصب Skills زیر skills در
~/.openclaw/openclaw.json قرار دارد. قابلیت مشاهده Skills مخصوص عامل زیر
agents.defaults.skills و agents.list[].skills قرار دارد.
{
skills: {
allowBundled: ["gemini", "peekaboo"],
load: {
extraDirs: ["~/Projects/agent-scripts/skills", "~/Projects/oss/some-skill-pack/skills"],
watch: true,
watchDebounceMs: 250,
},
install: {
preferBrew: true,
nodeManager: "npm", // npm | pnpm | yarn | bun (Gateway runtime still Node; bun not recommended)
},
entries: {
"image-lab": {
enabled: true,
apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // or plaintext string
env: {
GEMINI_API_KEY: "GEMINI_KEY_HERE",
},
},
peekaboo: { enabled: true },
sag: { enabled: false },
},
},
}
برای تولید/ویرایش تصویر داخلی، agents.defaults.imageGenerationModel
بههمراه ابزار اصلی image_generate را ترجیح دهید. skills.entries.* فقط برای گردشکارهای سفارشی یا
Skills شخص ثالث است.
اگر یک ارائهدهنده/مدل تصویر مشخص انتخاب میکنید، کلید احراز هویت/API همان ارائهدهنده را نیز پیکربندی کنید. نمونههای رایج: GEMINI_API_KEY یا GOOGLE_API_KEY برای
google/*، OPENAI_API_KEY برای openai/*، و FAL_KEY برای fal/*.
نمونهها:
- راهاندازی بومی به سبک Nano Banana Pro:
agents.defaults.imageGenerationModel.primary: "google/gemini-3-pro-image-preview" - راهاندازی بومی fal:
agents.defaults.imageGenerationModel.primary: "fal/fal-ai/flux/dev"
فهرستهای مجاز Skills عامل
زمانی از پیکربندی عامل استفاده کنید که ریشههای Skills یکسانی در همان ماشین/فضای کاری میخواهید، اما مجموعه Skills قابل مشاهده برای هر عامل متفاوت باشد.
{
agents: {
defaults: {
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // inherits defaults -> github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
],
},
}
قواعد:
agents.defaults.skills: فهرست مجاز پایه مشترک برای عاملهایی کهagents.list[].skillsرا حذف میکنند.- برای اینکه Skills بهصورت پیشفرض محدود نباشد،
agents.defaults.skillsرا حذف کنید. agents.list[].skills: مجموعه نهایی و صریح Skills برای آن عامل؛ با پیشفرضها ادغام نمیشود.agents.list[].skills: []: هیچ Skills برای آن عامل در معرض دسترس قرار ندهید.
فیلدها
- ریشههای داخلی Skills همیشه شامل
~/.openclaw/skills،~/.agents/skills،<workspace>/.agents/skills، و<workspace>/skillsهستند. allowBundled: فهرست مجاز اختیاری فقط برای Skills بستهبندیشده. وقتی تنظیم شود، فقط Skills بستهبندیشده موجود در فهرست واجد شرایط هستند (Skills مدیریتشده، عامل، و فضای کاری تحت تأثیر قرار نمیگیرند).load.extraDirs: پوشههای اضافی Skills برای اسکن (کمترین اولویت).load.watch: پوشههای Skills را پایش میکند و عکسبرداشت Skills را تازهسازی میکند (پیشفرض: true).load.watchDebounceMs: زمان debounce رویدادهای پایشگر Skills بر حسب میلیثانیه (پیشفرض: 250).install.preferBrew: در صورت موجود بودن، نصبکنندههای brew را ترجیح میدهد (پیشفرض: true).install.nodeManager: ترجیح نصبکننده node (npm|pnpm|yarn|bun، پیشفرض: npm). این فقط روی نصبهای Skills اثر میگذارد؛ زمان اجرای Gateway همچنان باید Node باشد (Bun برای WhatsApp/Telegram توصیه نمیشود).openclaw setup --node-managerمحدودتر است و در حال حاضرnpm،pnpm، یاbunرا میپذیرد. اگر نصبهای Skills مبتنی بر Yarn میخواهید،skills.install.nodeManager: "yarn"را بهصورت دستی تنظیم کنید.
entries.<skillKey>: بازنویسیهای مخصوص هر Skill.agents.defaults.skills: فهرست مجاز پیشفرض اختیاری Skills که توسط عاملهایی به ارث میرسد کهagents.list[].skillsرا حذف میکنند.agents.list[].skills: فهرست مجاز نهایی اختیاری Skills برای هر عامل؛ فهرستهای صریح بهجای ادغام، پیشفرضهای بهارثرسیده را جایگزین میکنند.
فیلدهای مخصوص هر Skill:
enabled: برای غیرفعال کردن یک Skill، حتی اگر بستهبندی/نصب شده باشد، مقدارfalseرا تنظیم کنید.env: متغیرهای محیطی تزریقشده برای اجرای عامل (فقط اگر از قبل تنظیم نشده باشند).apiKey: میانبر اختیاری برای Skills که یک متغیر محیطی اصلی اعلام میکنند. از رشته متن ساده یا شیء SecretRef ({ source, provider, id }) پشتیبانی میکند.
نکات
- کلیدهای زیر
entriesبهصورت پیشفرض به نام Skill نگاشت میشوند. اگر یک Skillmetadata.openclaw.skillKeyرا تعریف میکند، بهجای آن از همان کلید استفاده کنید. - اولویت بارگذاری این است:
<workspace>/skills→<workspace>/.agents/skills→~/.agents/skills→~/.openclaw/skills→ Skills بستهبندیشده →skills.load.extraDirs. - وقتی پایشگر فعال باشد، تغییرات Skills در نوبت بعدی عامل اعمال میشوند.
Skills سندباکسشده و متغیرهای env
وقتی یک نشست سندباکسشده است، فرایندهای Skill داخل backend سندباکس پیکربندیشده اجرا میشوند. سندباکس process.env میزبان را به ارث نمیبرد.
از یکی از اینها استفاده کنید:
agents.defaults.sandbox.docker.envبرای backend Docker (یاagents.list[].sandbox.docker.envمخصوص هر عامل).- env را داخل تصویر سندباکس سفارشی یا محیط سندباکس راهدور خود بگنجانید.