Plugin guides
Pluginهای بومی Codex
پشتیبانی بومی Pluginهای Codex به یک عامل OpenClaw در حالت Codex اجازه میدهد از قابلیتهای app و Plugin خودِ
app-server متعلق به Codex در همان رشته Codex استفاده کند که
نوبت OpenClaw را پردازش میکند. فراخوانیهای Plugin در رونوشت بومی Codex باقی میمانند؛
app-server متعلق به Codex مالک اجرای MCP مبتنی بر app است. OpenClaw
Pluginهای Codex را به ابزارهای پویای مصنوعی codex_plugin_* متعلق به OpenClaw تبدیل نمیکند.
پس از راهاندازی هارنس Codex پایه، از این صفحه استفاده کنید.
الزامات
- زمان اجرای عامل باید هارنس بومی Codex باشد.
plugins.entries.codex.enabledبرابر باtrueاست.plugins.entries.codex.config.codexPlugins.enabledبرابر باtrueاست.- app-server مقصد Codex میتواند بازار، Pluginها و فهرست appهای مورد انتظار را ببیند.
- مهاجرت فقط از Pluginهای
openai-curatedپشتیبانی میکند که نصب آنها از منبع را در خانه مبدأ Codex مشاهده کرده باشد. - Pluginهای
workspace-directoryکه بهصورت دستی پیکربندی شدهاند، به یک app-server متعلق به Codex نیاز دارند کهplugin/listآن،marketplaceKindsرا بپذیرد و خلاصههای فضای کاری بدون مسیر آن شاملremotePluginIdباشد. Plugin باید از قبل نصب و فعال شده باشد و appهای تحت مالکیت آن باید درapp/listقابل دسترسی باشند.
codexPlugins بر اجراهای ارائهدهنده OpenClaw، اتصالهای مکالمه
ACP یا سایر هارنسها اثری ندارد، زیرا این مسیرها هرگز رشتههای
app-server متعلق به Codex را با پیکربندی بومی apps ایجاد نمیکنند.
حساب Codex در سمت OpenAI، دسترسپذیری app و کنترلهای app/Plugin فضای کاری از حساب واردشده Codex میآیند. برای مدل حساب و مدیریت OpenAI به استفاده از Codex با طرح ChatGPT شما مراجعه کنید.
شروع سریع
مهاجرت از خانه مبدأ Codex را پیشنمایش کنید:
openclaw migrate codex --dry-run--verify-plugin-apps را اضافه کنید تا مهاجرت، app/list مبدأ را فراخوانی کند و
پیش از برنامهریزی فعالسازی بومی، حضور، فعالبودن و دسترسپذیری همه appهای
تحت مالکیت را الزامی کند:
openclaw migrate codex --dry-run --verify-plugin-appsوقتی برنامه درست به نظر میرسد، مهاجرت را اعمال کنید:
openclaw migrate apply codex --yesمهاجرت، ورودیهای صریح codexPlugins را برای Pluginهای واجد شرایط مینویسد و
plugin/install متعلق به app-server متعلق به Codex را برای Pluginهای انتخابشده فراخوانی میکند. یک
پیکربندی مهاجرتیافته به این شکل است:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, allow_destructive_actions: true, plugins: { "google-calendar": { enabled: true, marketplaceName: "openai-curated", pluginName: "google-calendar", }, }, }, }, }, }, },}مهاجرت همچنان به openai-curated محدود است. برای استفاده از یک
Plugin موجود workspace-directory، آن را بهصورت دستی با summary.id دقیق و
دارای شناسه بازار که plugin/list برمیگرداند، اضافه کنید. برای مثال، اگر
Codex مقدار example-plugin@workspace-directory را برمیگرداند، بهجای نام نمایشی آن، همان
مقدار کامل را پیکربندی کنید:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, plugins: { "example-plugin": { enabled: true, marketplaceName: "workspace-directory", pluginName: "example-plugin@workspace-directory", }, }, }, }, }, }, },}OpenClaw برای یک Plugin workspace-directory، plugin/install را فراخوانی نمیکند و
احراز هویت را آغاز نمیکند. پیش از افزودن یا فعالکردن سیاست OpenClaw، آن را در Codex
نصب، فعال و احراز هویت کنید. هنگامی که پاسخ، شواهد دقیق بازار، شناسه Plugin،
شناسه جزئیات یا آمادگی app را حذف کند، OpenClaw appها را پنهان نگه میدارد.
اگر Codex درخواست صریح plugin/list فضای کاری را رد کند،
OpenClaw برای هر Plugin فعال فضای کاری، marketplace_missing را گزارش میکند و
Pluginهای گزینششدهای را که بهطور مستقل کشف شدهاند، در دسترس نگه میدارد.
پس از تغییر codexPlugins، مکالمههای جدید Codex مجموعه بهروزشده
appها را بهطور خودکار دریافت میکنند. برای نوسازی مکالمه فعلی،
/new یا /reset را اجرا کنید. برای تغییرات فعال/غیرفعالسازی
Plugin نیازی به راهاندازی مجدد Gateway نیست.
مدیریت Pluginها از چت
/codex plugins، Pluginهای بومی پیکربندیشده Codex را از همان چتی که
هارنس Codex را در آن اداره میکنید، بررسی یا تغییر میدهد:
/codex plugins/codex plugins list/codex plugins disable google-calendar/codex plugins enable google-calendar/codex plugins نام مستعار /codex plugins list است. فهرست، کلید،
وضعیت روشن/خاموش، نام Plugin در Codex و بازار هر Plugin پیکربندیشده را
از plugins.entries.codex.config.codexPlugins.plugins نشان میدهد.
enable/disable فقط در ~/.openclaw/openclaw.json مینویسند؛ آنها هرگز
~/.codex/config.toml را ویرایش نمیکنند یا Pluginهای جدید Codex را نصب نمیکنند. فقط مالک یا یک
کلاینت Gateway با دامنه operator.admin میتواند آنها را اجرا کند.
فعالکردن یک Plugin پیکربندیشده، کلید سراسری codexPlugins.enabled را نیز
روشن میکند. اگر یک Plugin گزینششده بهدلیل بازگرداندن
auth_required توسط مهاجرت بهصورت غیرفعال نوشته شده است، پیش از فعالکردن آن در OpenClaw،
دوباره به app در Codex مجوز دهید.
برای یک ورودی workspace-directory، فعالکردن آن در اینجا فقط سیاست OpenClaw را
تغییر میدهد؛ Plugin و app باید از قبل در Codex فعال باشند.
نحوه کار راهاندازی بومی Plugin
یکپارچهسازی سه وضعیت را ردیابی میکند:
| وضعیت | معنا |
|---|---|
| نصبشده | Codex بسته Plugin را در زمان اجرای app-server مقصد دارد. |
| فعال | Codex فعالبودن Plugin را گزارش میکند و پیکربندی OpenClaw آن را برای نوبتهای هارنس Codex مجاز میداند. |
| قابل دسترسی | app-server متعلق به Codex تأیید میکند که ورودیهای app متعلق به Plugin برای حساب فعال در دسترساند و به هویت پیکربندیشده Plugin نگاشت میشوند. |
برای Pluginهای openai-curated، مهاجرت گام پایدار نصب/احراز صلاحیت
است:
- هنگام برنامهریزی، OpenClaw جزئیات
plugin/readمبدأ Codex را میخواند و بررسی میکند که حساب app-server مبدأ Codex یک حساب اشتراک ChatGPT باشد. پاسخ مربوط به حساب غیر ChatGPT یا حساب مفقود، Pluginهای مبتنی بر app را باcodex_subscription_requiredنادیده میگیرد. - بهطور پیشفرض، مهاجرت فراخوانی
app/listمبدأ را نادیده میگیرد: Pluginهای مبدأ مبتنی بر app که از دروازه حساب عبور میکنند، بدون تأیید دسترسپذیری app مبدأ برنامهریزی میشوند و خطاهای انتقال جستوجوی حساب باcodex_account_unavailableنادیده گرفته میشوند. - با
--verify-plugin-apps، مهاجرت یک تصویر لحظهای تازه ازapp/listمبدأ میگیرد و پیش از برنامهریزی فعالسازی بومی، حضور، فعالبودن و دسترسپذیری همه appهای تحت مالکیت را الزامی میکند. در این حالت، خطاهای انتقال جستوجوی حساب بهجای نادیدهگرفتهشدن کامل، به دروازه فهرست app مبدأ منتقل میشوند.
برای Pluginهای workspace-directory، راهاندازی خارج از OpenClaw انجام میشود. OpenClaw
فقط هنگامی از آن بازار پرسوجو میکند که دستکم یک ورودی فعال فضای کاری
پیکربندی شده باشد، هر Plugin را با summary.id دقیق تفکیک میکند و از بررسیهای موجود
مالکیت plugin/read و آمادگی app/list دوباره استفاده میکند. یک Plugin نصبنشده،
غیرفعال، غیرقابلدسترسی یا احراز هویتنشده هیچ appی را آشکار نمیکند؛ OpenClaw
برای نصب یا احراز هویت تلاش نمیکند.
فهرست app زمان اجرا، بررسی دسترسپذیری نشست مقصد برای هر دو گروه
Pluginهای گزینششده مهاجرتیافته و Pluginهای فضای کاری پیکربندیشده بهصورت دستی است. راهاندازی نشست
هارنس Codex یک پیکربندی محدودکننده app رشته را از appهای فعال و
قابلدسترسی Plugin محاسبه میکند؛ این پیکربندی در هر نوبت دوباره محاسبه نمیشود، بنابراین
/codex plugins enable/disable فقط بر
مکالمههای جدید Codex اثر میگذارند. برای دریافت تغییر در
مکالمه فعلی از /new یا /reset استفاده کنید.
مرز پشتیبانی V1
- فقط Pluginهای
openai-curatedکه از قبل در فهرست app-server مبدأ Codex نصب شدهاند، واجد شرایط مهاجرت هستند. - زمان اجرا همچنین از ورودیهای صریح
workspace-directoryدر ساختهای app-server پشتیبانی میکند کهplugin/listآنها،marketplaceKindsرا پیادهسازی کند و برای خلاصههای فضای کاری بدون مسیر،remotePluginIdرا برگرداند. این ورودیها باید ازsummary.idدقیق و دارای شناسه بازار خود استفاده کنند و باید از قبل نصب، فعال و از نظر app قابل دسترسی باشند. درخواست ردشده فهرست فضای کاری، عیبیابی موجودmarketplace_missingرا برای هر Plugin تولید میکند؛ نبود شواهد بازار، Plugin، جزئیات یا app هیچ app فضای کاری را آشکار نمیکند. فهرست گزینششده حاصل از درخواست فهرست پیشفرض همچنان قابل استفاده است. - Pluginهای مبدأ مبتنی بر app باید از دروازه اشتراک هنگام مهاجرت عبور کنند.
--verify-plugin-appsدروازه فهرست app مبدأ را اضافه میکند. حسابهای محدودشده با اشتراک، و در حالت تأیید، appهای مبدأ غیرقابلدسترسی/غیرفعال/مفقود یا خطاهای نوسازی فهرست app، بهجای ورودیهای پیکربندی فعال، بهصورت موارد دستی نادیدهگرفتهشده گزارش میشوند. جزئیات خواندهنشدنی Plugin پیش از دروازه فهرست app نادیده گرفته میشوند. - مهاجرت هویتهای صریح Plugin (
marketplaceNameوpluginName) را مینویسد؛ مسیرهای محلی حافظه نهانmarketplacePathرا نمینویسد. codexPlugins.enabledتنها کلید سراسری فعالسازی است؛ هیچ نویسه عامplugins["*"]یا کلید پیکربندیای وجود ندارد که اختیار نصب دلخواه اعطا کند.- بازارهای غیرگزینششده، بستههای ذخیرهشده Plugin، هوکها و فایلهای پیکربندی Codex
برای بازبینی دستی در گزارش مهاجرت حفظ میشوند و بهطور خودکار
فعال نمیشوند. زمان اجرا ورودیهای
workspace-directoryپیکربندیشده بهصورت دستی را میپذیرد؛ سایر بازارها همچنان پشتیبانی نمیشوند.
فهرست app و مالکیت
OpenClaw فهرست app متعلق به Codex را از طریق app/list متعلق به app-server میخواند، آن را
بهمدت یک ساعت در حافظه نهان نگه میدارد و ورودیهای قدیمی یا مفقود را
بهصورت ناهمگام نوسازی میکند. حافظه نهان مختص فرایند است؛ راهاندازی مجدد CLI یا Gateway
آن را حذف میکند و OpenClaw آن را از خواندن بعدی app/list بازسازی میکند.
مهاجرت و زمان اجرا از کلیدهای حافظه نهان جداگانه استفاده میکنند:
- تأیید مهاجرت مبدأ از خانه Codex مبدأ و گزینههای شروع
استفاده میکند. این فرایند فقط با
--verify-plugin-appsاجرا میشود و برای آن اجرای برنامهریزی، پیمایش تازهapp/listمبدأ را اجباری میکند. - راهاندازی زمان اجرای مقصد هنگام ساخت پیکربندی app رشته، از هویت app-server
متعلق به Codex عامل مقصد استفاده میکند. فعالسازی Plugin گزینششده آن
کلید حافظه نهان مقصد را نامعتبر میکند و سپس پس از
plugin/installآن را بهاجبار نوسازی میکند. راهاندازیworkspace-directoryهرگز این مسیر فعالسازی را اجرا نمیکند.
یک app متعلق به Plugin فقط زمانی آشکار میشود که OpenClaw بتواند آن را از طریق مالکیت پایدار به Plugin پیکربندیشده نگاشت کند: یک شناسه دقیق app از جزئیات Plugin، یک نام شناختهشده سرور MCP، یا فراداده پایدار و یکتا. مالکیت صرفاً مبتنی بر نام نمایشی یا مبهم تا زمانی که نوسازی بعدی فهرست، مالکیت را اثبات کند، کنار گذاشته میشود.
appهای حساب متصل
عاملهایی که مالک آنها را اداره میکند میتوانند بدون نیاز به یک بسته Plugin منطبق، استفاده از همه appهای از قبل متصل به حساب Codex خود را فعال کنند:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, allow_all_plugins: true, allow_destructive_actions: "auto", }, }, }, }, },}allow_all_plugins: true هنگام ایجاد یک رشته بومی جدید Codex، یک تصویر لحظهای کامل
app/list میگیرد و فقط appهایی را میپذیرد که برای آن
حساب قابل دسترسی علامتگذاری شدهاند. این گزینه appها را بهصورت سراسری نصب، احراز هویت یا
فعال نمیکند. رشتههای موجود مجموعه app پایدارشده خود را حفظ میکنند؛ برای دریافت appهای
تازه متصل یا لغوشده از /new، /reset یا راهاندازی مجدد
Gateway استفاده کنید.
برنامههای حساب مقدار سراسری codexPlugins.allow_destructive_actions را به ارث میبرند
که true، false، "auto" یا "ask" را میپذیرد. سیاست صریح هر Plugin
برای شناسههای همپوشان برنامه، سیاست سراسری را لغو میکند. خطاهای موجودی بهجای بازگشت
به پیشفرضی بدون محدودیت، بهصورت بسته عمل میکنند.
پیکربندی برنامه رشته
OpenClaw یک وصله محدودکننده config.apps برای رشته Codex تزریق میکند:
_default غیرفعال است و فقط برنامههای متعلق به Pluginهای پیکربندیشده فعال یا
برنامههای حسابِ دردسترس که allow_all_plugins آنها را میپذیرد، فعال میشوند.
destructive_enabled در هر برنامه از سیاست مؤثر سراسری یا
سیاست allow_destructive_actions هر Plugin میآید؛ true، "auto" و "ask"
همگی destructive_enabled: true را تنظیم میکنند و false آن را روی false تنظیم میکند. Codex همچنان
فراداده ابزار مخرب را از حاشیهنویسیهای بومی ابزار برنامه خود اعمال میکند.
_default با open_world_enabled: false غیرفعال میشود؛ برنامههای Plugin فعال
open_world_enabled: true را دریافت میکنند. OpenClaw یک کنترل سیاست جهانباز جداگانه
در سطح Plugin ارائه نمیکند و فهرستهای منع نام ابزارهای مخرب را برای هر Plugin
نگه نمیدارد.
حالت تأیید ابزار برای برنامههای پذیرفتهشده بهطور پیشفرض خودکار است، بنابراین ابزارهای
خواندن غیرمخرب بدون درخواست تأیید در همان رشته اجرا میشوند. ابزارهای مخرب همچنان
تحت کنترل سیاست destructive_enabled هر برنامه باقی میمانند.
سیاست اقدام مخرب
درخواستهای مخرب Plugin بهطور پیشفرض برای Pluginهای پیکربندیشده Codex مجازند، درحالیکه طرحوارههای ناامن و مالکیت مبهم بهصورت بسته عمل میکنند:
allow_destructive_actionsسراسری بهطور پیشفرضtrueاست.allow_destructive_actionsهر Plugin، سیاست سراسری را برای همان Plugin لغو میکند.false: OpenClaw یک رد قطعی برمیگرداند.true: OpenClaw فقط طرحوارههای امنی را خودکار میپذیرد که بتواند آنها را به پاسخ تأیید نگاشت کند، مانند یک فیلد تأیید بولی."auto": OpenClaw اقدامات مخرب Plugin را در معرض Codex قرار میدهد، سپس درخواستهای تأیید MCP با مالکیت اثباتشده را پیش از بازگرداندن پاسخ تأیید Codex به تأییدهای Plugin در OpenClaw تبدیل میکند."ask": OpenClaw از همان دروازهبندی نوشتن/مخرب Codex مانند"auto"استفاده میکند، لغوهای پایدار تأیید هر ابزار Codex را برای برنامه پیش از شروع رشته پاک میکند و فقط تأیید یا رد یکباره ارائه میدهد تا تأییدهای پایدار نتوانند درخواستهای بعدی اقدام نوشتن را سرکوب کنند. برای هر برنامه پذیرفتهشدهای که از"ask"استفاده میکند، OpenClaw بازبین تأییدهای انسانی Codex را برای آن برنامه انتخاب میکند تا Codex درخواستهای تأیید خود را به OpenClaw بفرستد؛ برنامههای دیگر و تأییدهای رشتهای غیرمرتبط با برنامه، بازبین و سیاست پیکربندیشده خود را حفظ میکنند.- نبود هویت Plugin، مالکیت مبهم، شناسه نوبت مفقود یا نامنطبق، یا طرحواره درخواست ناامن، بهجای نمایش درخواست باعث رد میشود.
عیبیابی
| کد | معنا | راهحل |
|---|---|---|
auth_required |
مهاجرت Plugin را نصب کرده است، اما یکی از برنامههای آن هنوز به احراز هویت نیاز دارد. ورودی تا زمان مجوزدهی دوباره بهصورت غیرفعال نوشته میشود. | برنامه را دوباره در Codex مجاز کنید، سپس Plugin را در OpenClaw فعال کنید. |
app_inaccessible، app_disabled، app_missing |
با --verify-plugin-apps، موجودی برنامه مبدأ Codex همه برنامههای متعلق را بهصورت موجود، فعال و دردسترس نشان نداد. |
برنامه را در Codex دوباره مجاز یا فعال کنید، سپس مهاجرت را با --verify-plugin-apps دوباره اجرا کنید. |
app_inventory_unavailable |
راستیآزمایی سختگیرانه برنامه مبدأ درخواست شد، اما تازهسازی موجودی برنامه مبدأ Codex شکست خورد. | دسترسی app-server مبدأ Codex را اصلاح کنید یا بدون --verify-plugin-apps دوباره تلاش کنید تا طرح سریعتر مبتنی بر حساب پذیرفته شود. |
codex_subscription_required |
حساب app-server مبدأ Codex یک حساب اشتراک ChatGPT نبود. | با احراز هویت اشتراک وارد برنامه Codex شوید، سپس مهاجرت را دوباره اجرا کنید. |
codex_account_unavailable |
حساب app-server مبدأ Codex قابل خواندن نبود. | احراز هویت app-server مبدأ Codex را اصلاح کنید یا با --verify-plugin-apps دوباره اجرا کنید تا موجودی برنامه مبدأ واجدشرایطبودن را تعیین کند. |
marketplace_missing، plugin_missing |
بازار یا Plugin دقیق دردسترس نیست؛ ممکن است درخواست صریح کاتالوگ فضای کاری رد شده باشد؛ برنامههای فضای کاری بهصورت بسته عمل میکنند. | قرارداد سازگار app-server و شناسه دقیق شرحدادهشده در ادامه را بررسی کنید. |
plugin_detail_unavailable |
OpenClaw نتوانست جزئیات مالکیت Plugin را بخواند. | پاسخهای plugin/list و plugin/read مربوط به app-server مقصد را بررسی کنید. |
plugin_disabled |
Codex گزارش میدهد Plugin نصب شده اما غیرفعال است. | فعالسازی گزینششده ممکن است آن را اصلاح کند؛ پیش از تلاش دوباره، یک Plugin فضای کاری را در Codex فعال کنید. |
plugin_activation_failed |
فعالسازی Plugin کامل نشد. | از اطلاعات تشخیصی پیوستشده برای تفکیک خطاهای بازار، احراز هویت، تازهسازی یا آمادگی فضای کاری استفاده کنید. |
app_inventory_missing، app_inventory_stale |
آمادگی برنامه از یک حافظه نهان خالی یا کهنه بهدست آمد. | OpenClaw بهطور خودکار تازهسازی ناهمگام را زمانبندی میکند؛ برنامههای Plugin تا مشخصشدن مالکیت و آمادگی کنار گذاشته میشوند. |
app_ownership_ambiguous |
موجودی برنامه فقط بر اساس نام نمایشی تطبیق یافت. | برنامه تا زمانی که تازهسازی بعدی مالکیت را اثبات کند، از رشته Codex پنهان میماند. |
Plugin فضای کاری نصب شده اما قابل مشاهده نیست: تأیید کنید نتیجه
plugin/list فضای کاری، شناسه دقیق پیکربندیشده را نصبشده و فعال گزارش میکند،
سپس تأیید کنید app/list همه برنامههای متعلق را برای همان حساب Codex
دردسترس گزارش میکند. OpenClaw میتواند یک برنامه دردسترس را برای رشته فعال کند، حتی زمانی که
موجودی حساب درحالحاضر آن برنامه را غیرفعال گزارش میکند. اگر پس از ذخیرهشدن موجودی برنامه در حافظه نهان Gateway
آن وضعیت را تغییر دادهاید، منتظر تازهسازی یکساعته حافظه نهان بمانید یا Gateway را راهاندازی مجدد کنید، سپس از
/new یا /reset استفاده کنید. OpenClaw Pluginهای فضای کاری را اصلاح یا احراز هویت نمیکند.
اگر درخواست صریح فهرست فضای کاری رد شود، هر ورودی فعال فضای کاری
marketplace_missing را گزارش میکند؛ ورودیهای گزینششده نامرتبط همچنان
بر اساس پاسخ فهرست پیشفرض ادامه مییابند.
برای plugin_detail_unavailable، خلاصه فضای کاری بدون مسیر باید شامل
remotePluginId باشد؛ وقتی آن انتخابگر یا نتیجه بعدی
plugin/read دردسترس نباشد، OpenClaw برنامههای متعلق را پنهان نگه میدارد. برای
plugin_activation_failed، Pluginهای گزینششده ممکن است خطای بازار، احراز هویت یا
تازهسازی پس از نصب را گزارش کنند. یک Plugin فضای کاری زمانی این کد را گزارش میکند که
از قبل فعال نباشد؛ آن را خارج از OpenClaw نصب، فعال و احراز هویت کنید.
پیکربندی تغییر کرده اما عامل نمیتواند Plugin را ببیند: برای تأیید وضعیت پیکربندیشده، /codex plugins list را اجرا کنید، سپس /new یا /reset را اجرا کنید. پیوندهای موجود
رشته Codex، پیکربندی برنامهای را که با آن آغاز شدهاند حفظ میکنند تا OpenClaw
یک نشست جدید مهار برقرار کند یا پیوند کهنه را جایگزین کند.
اقدام مخرب رد میشود: مقادیر سراسری و مختص هر Plugin
در allow_destructive_actions را بررسی کنید. حتی با true، "auto" یا "ask"،
طرحوارههای درخواست ناامن و هویت مبهم Plugin همچنان بهصورت بسته عمل میکنند.