Plugins
Pluginها
Pluginها قابلیتهای OpenClaw را با کانالها، ارائهدهندگان مدل، چارچوبهای عامل، ابزارها، Skills، گفتار، رونویسی بلادرنگ، صدا، درک رسانه، تولید، واکشی وب، جستوجوی وب و دیگر قابلیتهای زمان اجرا گسترش میدهند.
از این صفحه برای نصب یک Plugin، راهاندازی مجدد Gateway، تأیید بارگذاری آن در زمان اجرا و رفع خطاهای رایج راهاندازی استفاده کنید. برای نمونههای صرفاً دستوری، به مدیریت Pluginها مراجعه کنید. برای فهرست موجودی تولیدشده از Pluginهای همراه، رسمیِ خارجی و صرفاً منبع، به موجودی Pluginها مراجعه کنید.
الزامات
- یک checkout یا نصب OpenClaw که CLI
openclawدر آن در دسترس باشد - دسترسی شبکه به منبع انتخابشده (ClawHub، npm یا یک میزبان git)
- هرگونه اعتبارنامه، کلید پیکربندی یا ابزار سیستمعامل مختص Plugin که در مستندات راهاندازی آن Plugin ذکر شده است
- مجوز بارگذاری مجدد یا راهاندازی مجدد برای Gateway ارائهدهنده کانالهای شما
شروع سریع
یافتن Plugin
برای یافتن بستههای عمومی Plugin در ClawHub جستوجو کنید:
openclaw plugins search "calendar"ClawHub سطح اصلی کشف Pluginهای جامعه است. در طول گذار
راهاندازی، مشخصههای معمولی و بدون پیشوند بسته همچنان از npm نصب میشوند، مگر اینکه
با شناسه یک Plugin رسمی مطابقت داشته باشند. مشخصههای خام @openclaw/* که با یک
Plugin همراه مطابقت دارند، به همان نسخه همراه ارجاع داده میشوند. هنگامی که مشخصاً
به یک منبع نیاز دارید، از پیشوند صریح منبع استفاده کنید.
نصب Plugin
# از ClawHub.openclaw plugins install clawhub:<package> # از npm.openclaw plugins install npm:<package> # از git.openclaw plugins install git:github.com/<owner>/<repo>@<ref> # از یک checkout توسعه محلی.openclaw plugins install ./my-pluginopenclaw plugins install --link ./my-pluginبا نصب Pluginها مانند اجرای کد برخورد کنید. برای نصبهای قابلبازتولید
در محیط عملیاتی، نسخههای ثابتشده را ترجیح دهید. بستههای ClawHub و کاتالوگ
همراه/رسمی OpenClaw منابع مورداعتماد هستند. منابع جدید و دلخواه npm، git،
مسیر/بایگانی محلی، npm-pack: یا marketplace در نصبهای غیرتعاملی، پس از
بررسی و اعتماد به منبع، به --force نیاز دارند.
پیکربندی و فعالسازی آن
تنظیمات مختص Plugin را در plugins.entries.<id>.config پیکربندی کنید.
اگر Plugin از قبل فعال نیست، آن را فعال کنید:
openclaw plugins enable <plugin-id>اگر plugins.allow تنظیم شده باشد، شناسه Plugin نصبشده باید پیش از بارگذاری
Plugin در آن فهرست باشد. openclaw plugins install شناسه نصبشده را به فهرست موجود
plugins.allow میافزاید و همان شناسه را از plugins.deny حذف میکند
تا نصب صریح پس از راهاندازی مجدد بارگذاری شود.
اجازه بارگذاری مجدد به Gateway
نصب، بهروزرسانی یا حذف کد Plugin به راهاندازی مجدد Gateway نیاز دارد. یک Gateway مدیریتشده که بارگذاری مجدد پیکربندی در آن فعال است، رکورد تغییرکرده نصب Plugin را تشخیص میدهد و بهطور خودکار راهاندازی مجدد میشود. در غیر این صورت، خودتان آن را راهاندازی مجدد کنید:
openclaw gateway restartفعالسازی/غیرفعالسازی، پیکربندی و رجیستری سرد را بهروزرسانی میکند. بررسی زمان اجرا همچنان روشنترین اثبات برای سطوح زنده زمان اجرا است.
تأیید ثبت در زمان اجرا
openclaw plugins inspect <plugin-id> --runtime --jsonبرای اثبات ثبت ابزارها، hookها، سرویسها، متدهای Gateway
یا دستورهای CLI متعلق به Plugin، از --runtime استفاده کنید. inspect ساده فقط
بررسی سرد manifest و رجیستری است.
پیکربندی
انتخاب منبع نصب
| منبع | زمان استفاده | نمونه |
|---|---|---|
| ClawHub | وقتی کشف بومی OpenClaw، اسکنها، فراداده نسخه و راهنمای نصب را میخواهید | openclaw plugins install clawhub:<package> |
| npm | وقتی به جریانهای مستقیم رجیستری npm یا dist-tag نیاز دارید | openclaw plugins install npm:<package> |
| git | وقتی به یک شاخه، برچسب یا commit از یک مخزن نیاز دارید | openclaw plugins install git:github.com/<owner>/<repo>@<ref> |
| مسیر محلی | وقتی یک Plugin را روی همان دستگاه توسعه یا آزمایش میکنید | openclaw plugins install --link ./my-plugin |
| marketplace | وقتی یک Plugin سازگار با Claude را از marketplace نصب میکنید | openclaw plugins install <plugin> --marketplace <source> |
مشخصههای بدون پیشوند بسته رفتار سازگاری ویژهای دارند: نام بدون پیشوندی که
با شناسه یک Plugin همراه مطابقت داشته باشد از همان منبع همراه استفاده میکند؛ نام بدون پیشوندی که با
شناسه یک Plugin رسمی خارجی مطابقت داشته باشد از کاتالوگ بسته رسمی استفاده میکند؛ و هر
مشخصه بدون پیشوند دیگری در طول گذار راهاندازی از طریق npm نصب میشود. مشخصههای خام @openclaw/*
که با Pluginهای همراه مطابقت دارند نیز پیش از fallback به npm به نسخه همراه
ارجاع داده میشوند. برای نصب عمدی بسته خارجی npm بهجای نسخه همراه، از
npm:@openclaw/<plugin>@<version> استفاده کنید. برای انتخاب قطعی منبع، از clawhub:، npm:،
git: یا npm-pack: استفاده کنید. برای قرارداد کامل دستور به
openclaw plugins مراجعه کنید.
برای نصبهای npm، مشخصههای بدون نسخه ثابت و @latest جدیدترین
بسته پایدارِ اعلامکننده سازگاری با این build از OpenClaw را انتخاب میکنند. اگر
نسخه latest فعلی npm مقدار جدیدتری برای openclaw.compat.pluginApi یا
openclaw.install.minHostVersion نسبت به مقدار پشتیبانیشده این build اعلام کند، OpenClaw
نسخههای پایدار قدیمیتر را بررسی میکند و جدیدترین نسخه سازگار را نصب میکند. نسخههای دقیق
و برچسبهای صریح کانال مانند @beta روی بسته انتخابشده ثابت میمانند
و در صورت ناسازگاری ناموفق میشوند.
سیاست نصب اپراتور
security.installPolicy را پیکربندی کنید تا پیش از ادامه نصب یا بهروزرسانی یک Plugin،
یک دستور سیاست محلی مورداعتماد اجرا شود. سیاست، فراداده بههمراه
مسیر منبع stagingشده را دریافت میکند و میتواند نصب را مجاز یا مسدود کند. این سیاست هم مسیرهای نصب/بهروزرسانی CLI
و هم مسیرهای مبتنی بر Gateway را پوشش میدهد. hookهای before_install مربوط به Plugin
بعداً و فقط در فرایندهای OpenClaw که hookهای Plugin در آنها بارگذاری شدهاند اجرا میشوند؛ بنابراین برای
تصمیمهای نصب متعلق به اپراتور، بهجای آن از security.installPolicy استفاده کنید. فلگ منسوخ
--dangerously-force-unsafe-install برای سازگاری پذیرفته میشود،
اما هیچ اثری ندارد: سیاست نصب یا denylist داخلی وابستگیهای Plugin در OpenClaw را دور نمیزند.
برای schema مشترک اجرای security.installPolicy که هم Skills و هم
Pluginها از آن استفاده میکنند، به پیکربندی Skills
مراجعه کنید.
پیکربندی سیاست Plugin
شکل رایج پیکربندی Plugin چنین است:
{ plugins: { enabled: true, allow: ["voice-call"], deny: ["untrusted-plugin"], load: { paths: ["~/Projects/oss/voice-call-plugin"] }, slots: { memory: "memory-core" }, entries: { "voice-call": { enabled: true, config: { provider: "twilio" } }, }, },}قواعد اصلی سیاست:
plugins.enabled: falseهمه Pluginها را غیرفعال میکند و از کار کشف/بارگذاری صرفنظر میکند. ارجاعهای قدیمی Plugin تا زمانی که این گزینه فعال است بیاثر میمانند؛ اگر میخواهید شناسههای قدیمی حذف شوند، پیش از اجرای پاکسازی doctor، Pluginها را دوباره فعال کنید.plugins.denyبر allow و فعالسازی هر Plugin اولویت دارد.plugins.allowیک allowlist انحصاری است. ابزارهای متعلق به Plugin خارج از allowlist حتی وقتیtools.allowشامل"*"باشد، در دسترس نمیمانند.plugins.entries.<id>.enabled: falseیک Plugin را ضمن حفظ پیکربندی آن غیرفعال میکند.plugins.load.pathsفایلها یا دایرکتوریهای صریح Plugin محلی را اضافه میکند. مسیرهای محلی مدیریتشدهplugins installباید دایرکتوری یا بایگانی Plugin باشند؛ برای فایلهای مستقل Plugin ازplugins.load.pathsاستفاده کنید.- Pluginهای منشأگرفته از workspace بهطور پیشفرض غیرفعالاند؛ پیش از استفاده از کد workspace محلی، آنها را صریحاً فعال یا به allowlist اضافه کنید.
- Pluginهای همراه بر اساس فراداده داخلی پیشفرض فعال/غیرفعال خود عمل میکنند، مگر اینکه پیکربندی صریحاً آن را بازنویسی کند.
plugins.slots.<slot>(memoryیاcontextEngine) یک Plugin را برای یک دسته انحصاری انتخاب میکند. انتخاب slot بهعنوان فعالسازی صریح محسوب میشود و Plugin انتخابشده را برای آن slot بهاجبار فعال میکند، حتی اگر در حالت عادی نیازمند فعالسازی اختیاری باشد.plugins.denyوplugins.entries.<id>.enabled: falseهمچنان آن را مسدود میکنند.- Pluginهای همراهِ نیازمند فعالسازی اختیاری میتوانند وقتی پیکربندی یکی از سطوح متعلق به آنها را نام میبرد، مانند ارجاع ارائهدهنده/مدل، پیکربندی کانال، backend CLI یا زمان اجرای چارچوب عامل، بهطور خودکار فعال شوند.
- مسیریابی Codex در خانواده OpenAI مرزهای Plugin ارائهدهنده و زمان اجرا را
جدا نگه میدارد: ارجاعهای قدیمی مدل Codex پیکربندی قدیمیای هستند که doctor آنها را اصلاح میکند،
در حالی که Plugin همراه
codexمالک زمان اجرای app-server مربوط به Codex برای ارجاعهای استاندارد عاملopenai/*، مقدار صریحagentRuntime.id: "codex"و ارجاعهای قدیمیcodex/*است.
وقتی plugins.allow تنظیم نشده باشد و Pluginهای غیرهمراه بهطور خودکار از
workspace یا ریشههای سراسری Plugin کشف شوند، گزارشهای راهاندازی
plugins.allow is empty; discovered non-bundled plugins may auto-load: ...
را همراه با شناسههای Plugin کشفشده و، برای فهرستهای کوتاه، قطعه حداقلی plugins.allow
ثبت میکنند. پیش از کپیکردن Pluginهای مورداعتماد در openclaw.json، روی شناسه Plugin
فهرستشده openclaw plugins list --enabled --verbose
یا openclaw plugins inspect <id> را اجرا کنید. همین
ثابتسازی اعتماد هنگامی اعمال میشود که عیبیابی اعلام کند یک Plugin با
without install/load-path provenance بارگذاری شده است: آن شناسه Plugin را بررسی کنید، سپس آن را در
plugins.allow ثابت کنید یا از یک منبع مورداعتماد دوباره نصب کنید تا OpenClaw منشأ نصب را
ثبت کند.
وقتی اعتبارسنجی پیکربندی شناسههای قدیمی Plugin، عدم تطابق allowlist/ابزار
یا مسیرهای قدیمی Plugin همراه را گزارش میکند، openclaw doctor یا openclaw doctor --fix را اجرا کنید.
آشنایی با قالبهای Plugin
OpenClaw دو قالب Plugin را تشخیص میدهد:
| قالب | نحوه بارگذاری | زمان استفاده |
|---|---|---|
| Plugin بومی OpenClaw | openclaw.plugin.json بههمراه یک ماژول زمان اجرا که درون فرایند بارگذاری میشود |
وقتی قابلیتهای زمان اجرای مختص OpenClaw را نصب یا ایجاد میکنید |
| بسته سازگار | چیدمان Plugin مربوط به Codex، Claude یا Cursor که به موجودی Pluginهای OpenClaw نگاشت میشود | وقتی Skills، دستورها، hookها یا فراداده بسته سازگار را دوباره استفاده میکنید |
هر دو قالب در openclaw plugins list، openclaw plugins inspect،
openclaw plugins enable و openclaw plugins disable ظاهر میشوند. برای مرز سازگاری بسته به
بستههای Plugin و برای ساخت Plugin بومی به
ساخت Pluginها مراجعه کنید.
hookهای Plugin
Pluginها میتوانند در زمان اجرا از طریق دو API متفاوت hook ثبت کنند:
- hookهای نوعدار
api.on(...)برای رویدادهای چرخهعمر زمان اجرا. این سطح ترجیحی برای middleware، سیاست، بازنویسی پیام، شکلدهی prompt و کنترل ابزار است. api.registerHook(...)برای سیستم hook داخلی که در Hookها توضیح داده شده است. این مورد عمدتاً برای اثرات جانبی کلی دستور/چرخهعمر و سازگاری با خودکارسازی موجود به سبک HOOK است.
قاعده سریع: اگر handler به اولویت، معناشناسی ادغام یا
رفتار مسدودسازی/لغو نیاز دارد، از hookهای نوعدار استفاده کنید. اگر فقط به command:new،
command:reset، message:sent یا رویدادهای کلی مشابه واکنش نشان میدهد، api.registerHook
مناسب است.
hookهای داخلی مدیریتشده توسط Plugin در openclaw hooks list با
plugin:<id> نمایش داده میشوند. نمیتوانید آنها را از طریق openclaw hooks
فعال یا غیرفعال کنید؛ در عوض خود Plugin را فعال یا غیرفعال کنید.
تأیید Gateway فعال
openclaw plugins list و openclaw plugins inspect ساده، پیکربندی سرد،
مانیفست و وضعیت رجیستری را میخوانند. آنها اثبات نمیکنند که یک
Gateway از قبل در حال اجرا، همان کد Plugin را وارد کرده است.
وقتی به نظر میرسد یک Plugin نصب شده، اما ترافیک زندهٔ گفتوگو از آن استفاده نمیکند:
openclaw gateway status --deep --require-rpcopenclaw plugins inspect <plugin-id> --runtime --jsonopenclaw gateway restartGatewayهای مدیریتشده پس از تغییرات نصب، بهروزرسانی و حذف Plugin که
منبع Plugin را تغییر میدهند، بهطور خودکار راهاندازی مجدد میشوند. در نصبهای VPS یا کانتینری، مطمئن شوید
هر راهاندازی مجدد دستی، فرزند واقعی openclaw gateway run را که
کانالهای شما را سرویسدهی میکند هدف قرار میدهد، نه فقط یک پوشش یا ناظر را.
عیبیابی
| نشانه | بررسی | راهحل |
|---|---|---|
Plugin در plugins list ظاهر میشود، اما هوکهای زمان اجرا اجرا نمیشوند |
از openclaw plugins inspect <id> --runtime --json استفاده کنید و Gateway فعال را با gateway status --deep --require-rpc تأیید کنید |
پس از تغییرات نصب، بهروزرسانی، پیکربندی یا منبع، Gateway زنده را راهاندازی مجدد کنید |
| عیبیابیهای تکراری مالکیت کانال یا ابزار ظاهر میشوند | openclaw plugins list --enabled --verbose را اجرا کنید، هر Plugin مشکوک را با --runtime --json بررسی کنید و مالکیت کانال/ابزار را مقایسه کنید |
یکی از مالکان را غیرفعال کنید، نصبهای منسوخ را حذف کنید یا برای جایگزینی عمدی از preferOver مانیفست استفاده کنید |
| پیکربندی میگوید یک Plugin وجود ندارد | فهرست موجودی Plugin را بررسی کنید تا مشخص شود همراه، خارجی رسمی یا فقط منبع است | بستهٔ خارجی را نصب کنید، Plugin همراه را فعال کنید یا پیکربندی منسوخ را حذف کنید |
| پیکربندی هنگام نصب نامعتبر است | پیام اعتبارسنجی را بخوانید و اگر به وضعیت منسوخ Plugin اشاره دارد، openclaw doctor --fix را اجرا کنید |
Doctor میتواند با غیرفعالکردن ورودی و حذف محتوای نامعتبر، پیکربندی نامعتبر Plugin را قرنطینه کند |
| مسیر Plugin بهدلیل مالکیت یا مجوزهای مشکوک مسدود شده است | عیبیابی پیش از خطای پیکربندی را بررسی کنید | مالکیت/مجوزهای سیستم فایل را اصلاح کنید، سپس openclaw plugins registry --refresh را اجرا کنید |
OPENCLAW_NIX_MODE=1 فرمانهای چرخهٔ عمر را مسدود میکند |
تأیید کنید که نصب توسط Nix مدیریت میشود | بهجای استفاده از فرمانهای تغییردهندهٔ Plugin، انتخاب Plugin را در منبع Nix تغییر دهید |
| واردکردن وابستگی در زمان اجرا شکست میخورد | بررسی کنید که آیا Plugin از طریق npm/git/ClawHub نصب شده یا از یک مسیر محلی بارگذاری شده است | openclaw plugins update <id> را اجرا کنید، منبع را دوباره نصب کنید یا وابستگیهای Plugin محلی را خودتان نصب کنید |
وقتی پیکربندی منسوخ Plugin همچنان یک Plugin کانال غیرقابلکشف را نام میبرد،
اعتبارسنجی پیکربندی، کلید آن کانال را بهجای شکست سخت به یک هشدار تنزل میدهد،
تا راهاندازی Gateway همچنان بتواند همهٔ کانالهای دیگر را سرویسدهی کند.
برای حذف ورودیهای منسوخ Plugin و کانال، openclaw doctor --fix را اجرا کنید. کلیدهای
ناشناختهٔ کانال بدون شواهد Plugin منسوخ همچنان در اعتبارسنجی شکست میخورند تا خطاهای تایپی
قابلمشاهده باقی بمانند.
برای جایگزینی عمدی کانال، Plugin ترجیحی باید
channelConfigs.<channel-id>.preferOver را با شناسهٔ Plugin قدیمی یا دارای اولویت پایینتر
اعلام کند. اگر هر دو Plugin بهصراحت فعال باشند، OpenClaw آن درخواست را حفظ میکند
و بهجای انتخاب بیسروصدای یک مالک، عیبیابیهای تکراری کانال/ابزار را گزارش میدهد.
اگر یک بستهٔ نصبشده گزارش دهد که requires compiled runtime output for TypeScript entry ...، آن بسته بدون فایلهای JavaScript موردنیاز
OpenClaw در زمان اجرا منتشر شده است. پس از آنکه ناشر JavaScript
کامپایلشده را عرضه کرد، آن را بهروزرسانی یا دوباره نصب کنید؛ یا تا آن زمان Plugin را غیرفعال/حذف کنید.
مالکیت مسدودشدهٔ مسیر Plugin
اگر عیبیابیها میگویند
blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
و اعتبارسنجی با plugin present but blocked ادامه مییابد، OpenClaw
فایلهای Plugin را یافته است که متعلق به یک کاربر Unix متفاوت از فرایند بارگذار آنها هستند.
پیکربندی Plugin را در جای خود نگه دارید؛ مالکیت سیستم فایل را اصلاح کنید یا OpenClaw را
با همان کاربری اجرا کنید که مالک پوشهٔ وضعیت است.
برای نصبهای Docker، تصویر رسمی با node (uid 1000) اجرا میشود، بنابراین
پوشههای پیکربندی و فضای کاری OpenClaw که از میزبان bind mount شدهاند، معمولاً باید
متعلق به uid 1000 باشند:
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspaceاگر عمداً OpenClaw را بهعنوان root اجرا میکنید، در عوض مالکیت ریشهٔ Plugin مدیریتشده را به root اصلاح کنید:
sudo chown -R root:root /path/to/openclaw-config/npmپس از اصلاح مالکیت، openclaw doctor --fix یا
openclaw plugins registry --refresh را دوباره اجرا کنید تا رجیستری پایدار Plugin
با فایلهای اصلاحشده مطابقت داشته باشد.
راهاندازی کند ابزار Plugin
اگر به نظر میرسد نوبتهای عامل هنگام آمادهسازی ابزارها متوقف میشوند، ثبت رخداد سطح trace را فعال کنید و خطوط زمانبندی کارخانهٔ ابزار Plugin را بررسی کنید:
openclaw config set logging.level traceopenclaw logs --followبهدنبال این مورد بگردید:
[trace:plugin-tools] زمانبندیهای کارخانه ...خلاصه، زمان کل کارخانه و کندترین کارخانههای ابزار Plugin را فهرست میکند، از جمله شناسهٔ Plugin، نامهای ابزار اعلامشده، شکل نتیجه و اختیاریبودن یا نبودن ابزار. وقتی یک کارخانه دستکم 1s زمان ببرد یا آمادهسازی کل کارخانهٔ ابزار Plugin دستکم 5s طول بکشد، خطوط کند به هشدار ارتقا مییابند.
OpenClaw نتایج موفق کارخانهٔ ابزار Plugin را برای تفکیکهای تکراری با همان زمینهٔ مؤثر درخواست کش میکند. کلید کش شامل پیکربندی مؤثر زمان اجرا، فضای کاری و شناسهٔ عامل، سیاست sandbox، تنظیمات مرورگر، زمینهٔ تحویل، هویت درخواستکننده و وضعیت مالکیت است؛ بنابراین کارخانههایی که به این فیلدهای مورداعتماد وابستهاند، با تغییر زمینه دوباره اجرا میشوند. اگر زمانبندیها همچنان بالا بمانند، ممکن است Plugin پیش از بازگرداندن تعریفهای ابزار خود، کار پرهزینهای انجام دهد.
اگر یک Plugin بر زمانبندی غالب است، ثبتهای زمان اجرای آن را بررسی کنید:
openclaw plugins inspect <plugin-id> --runtime --jsonسپس آن Plugin را بهروزرسانی، دوباره نصب یا غیرفعال کنید. نویسندگان Plugin باید بارگذاری پرهزینهٔ وابستگی را به پشت مسیر اجرای ابزار منتقل کنند، بهجای آنکه آن را داخل کارخانهٔ ابزار انجام دهند.
برای ریشههای وابستگی، اعتبارسنجی فرادادهٔ بسته، رکوردهای رجیستری، رفتار بارگذاری مجدد هنگام راهاندازی و پاکسازی قدیمی، به تفکیک وابستگی Plugin مراجعه کنید.
مرتبط
- مدیریت Pluginها - نمونهفرمانهای فهرستکردن، نصب، بهروزرسانی، حذف و انتشار
openclaw plugins- مرجع کامل CLI- فهرست موجودی Plugin - فهرست تولیدشدهٔ Pluginهای همراه و خارجی
- مرجع Plugin - صفحات مرجع تولیدشده برای هر Plugin
- Pluginهای جامعه - سیاست کشف ClawHub و PR مستندات
- تفکیک وابستگی Plugin - ریشههای نصب، رکوردهای رجیستری و مرزهای زمان اجرا
- ساخت Pluginها - راهنمای توسعهٔ Plugin بومی
- نمای کلی SDKِ Plugin - ثبت زمان اجرا، هوکها و فیلدهای API
- مانیفست Plugin - مانیفست و فرادادهٔ بسته