Plugin guides
مهار Codex
Plugin رسمی codex نوبتهای عامل تعبیهشده OpenAI را بهجای مهارکننده داخلی OpenClaw از طریق app-server مربوط به Codex اجرا میکند. Codex مالک نشست سطحپایین عامل است: ازسرگیری بومی رشته، ادامه بومی ابزار، Compaction بومی و اجرای app-server. OpenClaw همچنان مالک کانالهای گفتوگو، فایلهای نشست، انتخاب مدل، ابزارهای پویای OpenClaw، تأییدها، تحویل رسانه و آینه رونوشت قابلمشاهده است.
از ارجاعهای متعارف مدل OpenAI مانند openai/gpt-5.6-sol استفاده کنید. ارجاعهای قدیمی Codex GPT را پیکربندی نکنید؛ ترتیب احراز هویت عامل OpenAI را زیر auth.order.openai قرار دهید. شناسههای قدیمی نمایه احراز هویت Codex و ورودیهای قدیمی ترتیب احراز هویت Codex توسط openclaw doctor --fix ترمیم میشوند.
وقتی خطمشی زمان اجرای ارائهدهنده/مدل تنظیم نشده یا auto باشد، پیشوند openai/* بهتنهایی هرگز این مهارکننده را انتخاب نمیکند. OpenAI فقط برای یک مسیر دقیق و رسمی HTTPS مربوط به Platform Responses یا ChatGPT Responses، بدون بازنویسی درخواست تعریفشده، میتواند Codex را بهطور ضمنی انتخاب کند. به
زمان اجرای ضمنی عامل OpenAI مراجعه کنید.
اگر پیش از مشخصشدن مسیریابی Platform در برابر ChatGPT، مالکیت احراز هویت با Codex باشد، OpenClaw همچنان از هر مسیر نامزد میخواهد سازگاری با Codex را اعلام کند. مالکیت بومی احراز هویت بهتنهایی هرگز آن بررسی مسیر را دور نمیزند.
وقتی هیچ محیط ایزوله OpenClaw فعالی وجود ندارد، OpenClaw رشتههای app-server مربوط به Codex را با حالت کد بومی Codex فعال راهاندازی میکند (حالت فقطکد بهطور پیشفرض غیرفعال میماند)، بنابراین قابلیتهای بومی فضای کاری/کد در کنار ابزارهای پویای OpenClaw که از طریق پل item/tool/call در app-server مسیریابی میشوند، در دسترس میمانند. یک محیط ایزوله فعال OpenClaw یا خطمشی محدود ابزار، حالت کد بومی را بهطور کامل غیرفعال میکند، مگر اینکه مسیر آزمایشی exec-server محیط ایزوله را فعال کنید.
با tools.exec.host: "auto" پیشفرض و بدون محیط ایزوله فعال OpenClaw، Codex ابزارهای node_exec و node_process را نیز برای فرمانهای روی Nodeهای جفتشده دریافت میکند. پوسته بومی روی میزبان و فضای کاری app-server مربوط به Codex باقی میماند (برای استقرار پیشفرض stdio، محلیِ Gateway)؛ node_exec یک Node را با نام یا شناسه انتخاب میکند و خطمشی تأیید Node در OpenClaw را برقرار نگه میدارد. اگر فهرست مجاز محدود زمان اجرا حالت کد بومی را غیرفعال کند و نوبت را بدون محیط اجرا باقی بگذارد، OpenClaw در عوض ابزارهای exec و process پالایششده با خطمشی خود را برای اجرای مستقیم و بدون محیط ایزوله در دسترس نگه میدارد.
این قابلیت بومی Codex از
حالت کد OpenClaw، یعنی یک زمان اجرای اختیاری QuickJS-WASI برای اجراهای عمومی OpenClaw با شکل ورودی متفاوت exec، جدا است. برای درک تفکیک گستردهتر مدل/ارائهدهنده/زمان اجرا، از
زمانهای اجرای عامل شروع کنید: openai/gpt-5.6-sol ارجاع مدل، codex زمان اجرا و Telegram، Discord، Slack یا کانالی دیگر سطح ارتباطی است.
الزامات
- Plugin رسمی
@openclaw/codexنصبشده باشد. اگر پیکربندی شما از فهرست مجاز استفاده میکند،codexرا درplugins.allowقرار دهید. - نسخه
0.143.0یا جدیدتر app-server مربوط به Codex. Plugin بهطور پیشفرض یک فایل اجرایی سازگار را مدیریت میکند، بنابراین وجود فرمانcodexدرPATHبر راهاندازی عادی تأثیری ندارد. - احراز هویت Codex از طریق
openclaw models auth login --provider openai، یک حساب app-server که از قبل در خانه Codex عامل وجود دارد، یا یک نمایه صریح احراز هویت کلید API مربوط به Codex.
برای اولویت احراز هویت، جداسازی محیط، فرمانهای سفارشی app-server، کشف مدل و فهرست کامل فیلدهای پیکربندی، به مرجع مهارکننده Codex مراجعه کنید.
شروع سریع
Plugin رسمی را نصب کنید، سپس با OAuth مربوط به Codex وارد شوید:
openclaw plugins install @openclaw/codexopenclaw models auth login --provider openaiPlugin codex را فعال و یک مدل عامل OpenAI را انتخاب کنید:
{ plugins: { entries: { codex: { enabled: true, }, }, }, agents: { defaults: { model: "openai/gpt-5.6-sol", }, },}اگر پیکربندی شما از plugins.allow استفاده میکند، codex را نیز به آن اضافه کنید:
{ plugins: { allow: ["codex"], entries: { codex: { enabled: true, }, }, },}پس از تغییر پیکربندی Plugin، Gateway را مجدداً راهاندازی کنید. اگر گفتوگویی از قبل نشست دارد، ابتدا /new یا /reset را اجرا کنید تا نوبت بعدی مهارکننده را از پیکربندی فعلی تعیین کند.
اشتراکگذاری رشتهها با Codex Desktop و CLI
گزینه پیشفرض appServer.homeScope: "agent" هر عامل OpenClaw را از وضعیت بومی Codex اپراتور جدا میکند. برای اینکه مالک بتواند همان رشتههای بومی نمایشدادهشده در Codex Desktop و Codex CLI را بررسی و مدیریت کند، استفاده از خانه Codex کاربر را فعال کنید:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { homeScope: "user", }, }, }, }, },}حالت خانه کاربر از یک فرایند محلی مدیریتشده stdio یا انتقال سوکت مشترک Unix پشتیبانی میکند. در صورت تنظیم، از $CODEX_HOME و در غیر این صورت از ~/.codex استفاده میکند؛ احراز هویت، پیکربندی، Pluginها و مخزن رشته بومی Codex در آن خانه نیز شامل میشوند. OpenClaw یک نمایه احراز هویت OpenClaw را به این app-server تزریق نمیکند.
نوبتهای مالک به ابزار codex_threads دسترسی پیدا میکنند: فهرستکردن، جستوجو، خواندن، انشعاب، تغییر نام، بایگانی و بازیابی رشتههای بومی. برای ادامهدادن یک رشته در OpenClaw، از آن انشعاب بگیرید؛ انشعاب به نشست فعلی OpenClaw متصل میشود و برای دیگر کارخواههای بومی Codex قابلمشاهده میماند. بایگانی به تأیید صریح بستهبودن رشته در جاهای دیگر نیاز دارد. وقتی نظارت نیز فعال باشد، فیلدهای رونوشت و تغییرات به فعالسازی متناظر supervision.allowRawTranscripts یا supervision.allowWriteControls نیاز دارند.
یک رشته را همزمان از طریق App Serverهای مستقل و مدیریتشده stdio از سر نگیرید یا در آن ننویسید. Codex نویسندگان زنده را درون یک App Server هماهنگ میکند، نه میان فرایندهای جداگانه. برای نشستهای معمول stdio در خانه کاربر، انشعابگرفتن مسیر همزیستی امن است.
appServer.homeScope: "user" بهتنهایی فهرست ناوگان را کنترل نمیکند. کشف نشست بومی تا زمانی که Plugin فعال است، فعال میماند؛ برای حذف آن از نوار کناری OpenClaw بدون غیرفعالکردن Codex، sessionCatalog.enabled: false را تنظیم کنید. فهرست از یک اتصال نظارتی جداگانه استفاده میکند؛ بدون تنظیمات صریح اتصال appServer، آن اتصال بهطور پیشفرض از stdio مدیریتشده خانه کاربر استفاده میکند، درحالیکه مهارکننده معمولی در محدوده عامل باقی میماند. تنظیمات صریح appServer در هر دو مسیر رعایت میشوند. همانطور که در بالا آمده است، وقتی مهارکننده معمولی نیز باید وضعیت بومی را به اشتراک بگذارد، homeScope: "user" را صریحاً تنظیم کنید.
نظارت بر نشستهای Codex
همان Plugin codex میتواند نشستهای بایگانینشده Codex را از رایانه Gateway و Nodeهای جفتشدهای که این قابلیت را فعال کردهاند، فهرست کند. یک نشست ذخیرهشده یا بیکار محلیِ Gateway میتواند گفتوگویی قفلشده به مدل ایجاد کند که تاریخچه محدود و ماندگار کاربر و دستیار آن را منعکس میکند. اتصال خصوصی آن برای عکس فوری بومی، شاخه متعارف و نوبتهای بعدی از اتصال نظارتی استفاده میکند، درحالیکه نشستهای معمولی Codex در محدوده عامل باقی میمانند. نخستین شروع متعارف دقیقاً از مدل و ارائهدهندهای استفاده میکند که Codex برای انشعاب عکس فوری برمیگرداند. در ازسرگیریهای بعدی، انتخاب به پیکربندی بومی Codex واگذار میشود؛ مدل بیرونی OpenClaw و زنجیره جایگزین هرگز آن را جایگزین نمیکنند. ردیفهای ذخیرهشده و بیکار پس از تأیید صریح نبود اجراکننده دیگر قابلبایگانی هستند. منابع فعال نمیتوانند شاخه ایجاد کنند یا بایگانی شوند؛ یک گفتوگوی نظارتشده موجود همچنان قابلبازکردن است. نشستهای Nodeهای جفتشده صرفاً فراداده باقی میمانند.
برای راهاندازی، قواعد انشعاب، محدودیتهای Node جفتشده، نمایش فراداده و عیبیابی، به نظارت بر نشستهای Codex مراجعه کنید.
پیکربندی
| نیاز | تنظیم | محل |
|---|---|---|
| فعالکردن مهارکننده | plugins.entries.codex.enabled: true |
پیکربندی OpenClaw |
| پنهانکردن کشف نشست بومی Codex | plugins.entries.codex.config.sessionCatalog.enabled: false |
پیکربندی Plugin Codex |
| نگهداشتن نصب Plugin در فهرست مجاز | قراردادن codex در plugins.allow |
پیکربندی OpenClaw |
| اجازه به نوبتهای واجد شرایط OpenAI برای استفاده ضمنی از Codex | مسیر دقیق و رسمی HTTPS مربوط به Responses/ChatGPT، بدون بازنویسی درخواست تعریفشده، زمان اجرا تنظیمنشده/auto |
پیکربندی ارائهدهنده/مدل OpenAI |
| ورود با OAuth مربوط به ChatGPT/Codex | openclaw models auth login --provider openai |
نمایه احراز هویت CLI |
| افزودن پشتیبان کلید API برای اجراهای Codex | نمایه کلید API openai:* که پس از احراز هویت اشتراکی در auth.order.openai فهرست شده است |
نمایه احراز هویت CLI + پیکربندی OpenClaw |
| شکست بسته در صورت در دسترس نبودن Codex | agentRuntime.id: "codex" ارائهدهنده یا مدل |
پیکربندی مدل/ارائهدهنده OpenClaw |
| استفاده از ترافیک مستقیم API OpenAI | agentRuntime.id: "openclaw" ارائهدهنده یا مدل با احراز هویت معمول OpenAI |
پیکربندی مدل/ارائهدهنده OpenClaw |
| تنظیم رفتار app-server | plugins.entries.codex.config.appServer.* |
پیکربندی Plugin Codex |
| فعالکردن برنامههای Plugin بومی Codex | plugins.entries.codex.config.codexPlugins.* |
پیکربندی Plugin Codex |
| فعالکردن استفاده رایانهای Codex | plugins.entries.codex.config.computerUse.* |
پیکربندی Plugin Codex |
برای ترتیب ابتدا اشتراک/پشتیبان کلید API، auth.order.openai را ترجیح دهید. شناسههای موجود نمایه احراز هویت قدیمی Codex و ترتیب قدیمی احراز هویت Codex، وضعیت قدیمی مختص doctor هستند؛ ارجاعهای جدید و قدیمی Codex GPT ننویسید.
{ auth: { order: { openai: ["openai:[email protected]", "openai:api-key-backup"], }, },}برای یک مسیر مؤثر سازگار با Codex، هر دو نمایه بالا نامزدهای همان اجرای Codex باقی میمانند. ترتیب نمایه، اعتبارنامهها را انتخاب میکند، نه زمان اجرا را. تغییر ترتیب احراز هویت، یک مسیر سفارشی، Completions، HTTP یا بازنویسیشده در درخواست را با Codex سازگار نمیکند.
Compaction
روی عاملهای متکی بر Codex، compaction.model یا compaction.provider را تنظیم نکنید. Codex از طریق وضعیت رشته بومی app-server خود فشردهسازی میکند، بنابراین OpenClaw آن بازنویسیهای خلاصهساز محلی را در زمان اجرا نادیده میگیرد و openclaw doctor --fix هنگامی که عامل از Codex استفاده میکند، آنها را حذف میکند.
Lossless همچنان بهعنوان موتور زمینه برای مونتاژ، ورود داده و نگهداری پیرامون نوبتهای Codex پشتیبانی میشود و از طریق
plugins.slots.contextEngine: "lossless-claw" و
plugins.entries.lossless-claw.config.summaryModel پیکربندی میشود، نه از طریق
agents.defaults.compaction.provider. هنگامی که Codex زمان اجرای فعال باشد، openclaw doctor --fix شکل قدیمی compaction.provider: "lossless-claw" را به جایگاه موتور زمینه Lossless مهاجرت میدهد، اما Codex بومی همچنان مالک Compaction است. مهارکننده بومی app-server از موتورهای زمینهای که به مونتاژ پیش از اعلان نیاز دارند پشتیبانی میکند؛ پشتیبانهای عمومی CLI، از جمله codex-cli، آن قابلیت میزبان را ارائه نمیکنند.
برای عاملهای متکی بر Codex، /compact فرایند Compaction بومی app-server مربوط به Codex را روی رشته متصل آغاز میکند. OpenClaw منتظر تکمیل نمیماند، مهلت زمانی OpenClaw اعمال نمیکند، app-server مشترک را مجدداً راهاندازی نمیکند و به موتور زمینه یا خلاصهساز عمومی OpenAI بازنمیگردد. اگر اتصال رشته بومی Codex وجود نداشته یا منقضی شده باشد، فرمان بهصورت بسته شکست میخورد، بهجای آنکه بیسروصدا پشتیبان Compaction را تغییر دهد.
ادامه این صفحه شکل استقرار، مسیریابی شکستبسته، خطمشی تأیید نگهبان، Pluginهای بومی Codex و استفاده رایانهای را پوشش میدهد. برای فهرست کامل گزینهها، مقادیر پیشفرض، enumها، کشف، جداسازی محیط، مهلتهای زمانی و فیلدهای انتقال app-server، به مرجع مهارکننده Codex مراجعه کنید.
تأیید زماناجرای Codex
در گفتوگویی که انتظار دارید Codex در آن باشد، از /status استفاده کنید. یک نوبت عامل OpenAI با پشتوانه Codex این مورد را نشان میدهد:
زماناجرا: OpenAI Codexسپس وضعیت app-server در Codex را بررسی کنید:
/codex status/codex models/codex status اتصال app-server، حساب، محدودیتهای نرخ، سرورهای MCP و مهارتها را گزارش میکند. /codex models فهرست زنده app-server در Codex را برای چارچوب اجرایی و حساب نمایش میدهد. اگر /status غیرمنتظره است، به عیبیابی مراجعه کنید.
مسیریابی و انتخاب مدل
ارجاعهای ارائهدهنده را از سیاست زماناجرا جدا نگه دارید:
- برای انتخاب استاندارد مدل OpenAI از
openai/gpt-*استفاده کنید. پیشوند بهتنهایی هرگز Codex را انتخاب نمیکند. - اگر زماناجرا تنظیم نشده باشد یا
autoباشد، فقط یک مسیر دقیق و رسمی HTTPS از نوع Platform Responses یا ChatGPT Responses که هیچ بازنویسی تألیفی در درخواست ندارد، میتواند Codex را بهطور ضمنی انتخاب کند. - از ارجاعهای قدیمی Codex GPT در پیکربندی استفاده نکنید؛ برای ترمیم ارجاعهای قدیمی و پینهای منسوخ مسیر نشست،
openclaw doctor --fixرا اجرا کنید. agentRuntime.id: "codex"، Codex را به الزامی با شکست بسته برای یک مسیر سازگار تبدیل میکند. این گزینه یک مسیر مؤثر ناسازگار را سازگار نمیکند.agentRuntime.id: "openclaw"یک ارائهدهنده یا مدل را، هنگامی که عمدی باشد، برای استفاده از زماناجرای تعبیهشده OpenClaw فعال میکند./codex ...گفتوگوهای بومی app-server در Codex را از درون گفتوگو کنترل میکند.- ACP/acpx یک مسیر جداگانه برای چارچوب اجرایی خارجی است. فقط هنگامی از آن استفاده کنید که کاربر ACP/acpx یا یک آداپتور چارچوب اجرایی خارجی را درخواست کرده باشد.
| قصد کاربر | استفاده |
|---|---|
| پیوستکردن گفتوگوی فعلی | /codex bind [thread-id] [--cwd <path>] [--model <model>] [--provider <provider>] |
| ازسرگیری یک رشته موجود Codex | /codex resume <thread-id> |
| فهرستکردن یا پالایش رشتههای Codex | /codex threads [filter] |
| فهرستکردن Pluginهای بومی Codex | /codex plugins list |
| فعال یا غیرفعالکردن یک Plugin بومی پیکربندیشده Codex | /codex plugins enable <name>، /codex plugins disable <name> |
| ازسرگیری نشست ذخیرهشده Codex CLI بهعنوان یک نوبت Node جفتشده | /codex sessions --host <node> [filter]، سپس /codex resume <session-id> --host <node> --bind here |
| مشاهده نشستهای بایگانینشده Codex در چند رایانه | نظارت Codex را فعال و نشستهای Codex را باز کنید |
| تغییر مدل، حالت سریع یا مجوزهای رشته مقیدشده | /codex model <model>، /codex fast [on|off|status]، /codex permissions [default|yolo|status] |
| توقف یا هدایت نوبت فعال | /codex stop، /codex steer <text> |
| جداکردن اتصال فعلی | /codex detach (نام مستعار /codex unbind) |
| فقط ارسال بازخورد Codex | /codex diagnostics [note] |
| شروع یک وظیفه ACP/acpx | فرمانهای نشست ACP/acpx، نه /codex |
| مورد استفاده | پیکربندی | تأیید | یادداشتها |
|---|---|---|---|
| مسیر واجد شرایط OpenAI با زماناجرای بومی Codex | مسیر دقیق و رسمی HTTPS از نوع Responses/ChatGPT بدون بازنویسی تألیفی درخواست، بههمراه Plugin فعال codex |
/status، Runtime: OpenAI Codex را نشان میدهد |
مسیر ضمنی هنگامی که زماناجرا تنظیم نشده است/auto |
| شکست بسته در صورت در دسترس نبودن Codex | agentRuntime.id: "codex" ارائهدهنده یا مدل |
نوبت بهجای بازگشت به زماناجرای تعبیهشده شکست میخورد | برای استقرارهای صرفاً Codex استفاده کنید |
| ترافیک مستقیم کلید API در OpenAI از طریق OpenClaw | agentRuntime.id: "openclaw" ارائهدهنده یا مدل و احراز هویت عادی OpenAI |
/status زماناجرای OpenClaw را نشان میدهد |
فقط هنگامی استفاده کنید که OpenClaw عمدی باشد |
| پیکربندی قدیمی | ارجاعهای قدیمی Codex GPT | openclaw doctor --fix آن را بازنویسی میکند |
پیکربندی جدید را به این شیوه ننویسید |
| آداپتور Codex برای ACP/acpx | sessions_spawn({ runtime: "acp" }) در ACP |
وضعیت وظیفه/نشست ACP | جدا از چارچوب اجرایی بومی Codex |
agents.defaults.imageModel از همان تفکیک پیشوند پیروی میکند. برای مسیر عادی OpenAI از openai/gpt-* استفاده کنید و فقط زمانی از codex/gpt-* استفاده کنید که درک تصویر باید از طریق یک نوبت محدود app-server در Codex اجرا شود. Doctor ارجاعهای قدیمی Codex GPT را به openai/gpt-* بازنویسی میکند.
الگوهای استقرار
استقرار پایه Codex
از پیکربندی شروع سریع برای یک مدل OpenAI استفاده کنید که مسیر مؤثر و رسمی HTTPS آن واجد شرایط انتخاب ضمنی Codex است:
{ plugins: { entries: { codex: { enabled: true, }, }, }, agents: { defaults: { model: "openai/gpt-5.6-sol", }, },}استقرار با ارائهدهندگان ترکیبی
Claude را بهعنوان عامل پیشفرض نگه دارید و یک عامل نامگذاریشده Codex اضافه کنید:
{ plugins: { entries: { codex: { enabled: true, }, }, }, agents: { defaults: { model: "anthropic/claude-opus-4-6", }, list: [ { id: "main", default: true, model: "anthropic/claude-opus-4-6", }, { id: "codex", name: "Codex", model: "openai/gpt-5.6-sol", }, ], },}عامل main از مسیر عادی ارائهدهنده خود استفاده میکند. عامل codex هنگامی از app-server در Codex استفاده میکند که مسیر مؤثر OpenAI آن سازگار باقی بماند؛ هنگامی که این رفتار باید یک الزام با شکست بسته باشد، agentRuntime.id: "codex" صریح و مختص مدل را اضافه کنید.
استقرار Codex با شکست بسته
یک مسیر دقیق، رسمی و واجد شرایط HTTPS در OpenAI میتواند هنگامی که Plugin همراه در دسترس است، به Codex منتهی شود. برای یک قاعده مکتوب با شکست بسته، سیاست صریح زماناجرا را اضافه کنید:
{ models: { providers: { openai: { agentRuntime: { id: "codex", }, }, }, }, agents: { defaults: { model: "openai/gpt-5.6-sol", }, }, plugins: { entries: { codex: { enabled: true, }, }, },}هنگامی که Codex اجباری است، اگر مسیر مؤثر بهعنوان سازگار با Codex اعلام نشده باشد، Plugin غیرفعال باشد، app-server بیشازحد قدیمی باشد یا app-server نتواند آغاز شود، OpenClaw زودهنگام شکست میخورد.
سیاست app-server
بهطور پیشفرض، Plugin فایل اجرایی مدیریتشده Codex توسط OpenClaw را بهصورت محلی با انتقال stdio آغاز میکند. appServer.command را فقط برای اجرای عمدی یک فایل اجرایی متفاوت تنظیم کنید. فقط هنگامی از انتقال WebSocket استفاده کنید که یک app-server از قبل در جای دیگری در حال اجرا باشد:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { transport: "websocket", url: "ws://gateway-host:39175", authToken: "${CODEX_APP_SERVER_TOKEN}", }, }, }, }, },}نشستهای محلی app-server مبتنی بر stdio بهطور پیشفرض وضعیت اپراتور محلی مورد اعتماد را دارند: approvalPolicy: "never"، approvalsReviewer: "user" و sandbox: "danger-full-access". اگر الزامات محلی Codex آن وضعیت ضمنی YOLO را مجاز ندانند، OpenClaw بهجای آن مجوزهای مجاز Guardian را انتخاب میکند. هنگامی که یک محیط ایزوله OpenClaw برای نشست فعال باشد، OpenClaw بهجای اتکا به محیط ایزوله سمت میزبان Codex، Code Mode بومی Codex، سرورهای MCP کاربر و اجرای Plugin متکی بر برنامه را برای آن نوبت غیرفعال میکند. در عوض، وقتی ابزارهای عادی exec/process در دسترس باشند، دسترسی پوسته از طریق ابزارهای پویای متکی بر محیط ایزوله OpenClaw مانند sandbox_exec و sandbox_process انجام میشود.
پیش از گریز از محیط ایزوله یا اعطای مجوزهای اضافی، از حالت نرمالشده exec در OpenClaw برای بازبینی خودکار بومی Codex استفاده کنید:
{ tools: { exec: { mode: "auto", }, }, plugins: { entries: { codex: { enabled: true, }, }, },}برای نشستهای app-server در Codex، tools.exec.mode: "auto" به تأییدهای بازبینیشده توسط Guardian در Codex نگاشت میشود: معمولاً approvalPolicy: "on-request"، approvalsReviewer: "auto_review" و sandbox: "workspace-write"، هنگامی که الزامات محلی آن مقادیر را مجاز بدانند. در tools.exec.mode: "auto"، OpenClaw بازنویسیهای قدیمی و ناامن approvalPolicy: "never" یا sandbox: "danger-full-access" در Codex را حفظ نمیکند؛ برای یک وضعیت عمدی Codex بدون تأیید، از tools.exec.mode: "full" استفاده کنید. پیشتنظیم قدیمی plugins.entries.codex.config.appServer.mode: "guardian" همچنان کار میکند، اما tools.exec.mode: "auto" سطح نرمالشده OpenClaw است.
برای مقایسه در سطح حالت با تأییدهای exec میزبان و مجوزهای ACPX، به حالتهای مجوز مراجعه کنید. برای همه فیلدهای app-server، ترتیب احراز هویت، جداسازی محیط و رفتار مهلت زمانی، به مرجع چارچوب اجرایی Codex مراجعه کنید.
فرمانها و عیبیابی
Plugin codex، /codex را بهعنوان فرمان اسلش در هر کانالی که از فرمانهای متنی OpenClaw پشتیبانی میکند، ثبت میکند.
اجرا و کنترل بومی به یک مالک یا کلاینت Gateway با operator.admin نیاز دارد: اتصال یا ازسرگیری رشتهها، ارسال یا توقف نوبتها، تغییر مدل، حالت سریع یا وضعیت مجوز، فشردهسازی یا بازبینی و جداکردن یک اتصال. سایر فرستندگان مجاز، فرمانهای فقطخواندنی وضعیت، راهنما، حساب، مدل، رشته، سرور MCP، مهارت و بازرسی اتصال را حفظ میکنند.
شکلهای رایج:
/codex statusاتصال app-server، مدلها، حساب، محدودیتهای نرخ، سرورهای MCP و مهارتها را بررسی میکند./codex modelsمدلهای زنده app-server در Codex را فهرست میکند./codex threads [filter]رشتههای اخیر app-server در Codex را فهرست میکند./codex resume <thread-id>نشست فعلی OpenClaw را به یک رشته موجود Codex متصل میکند./codex bind [thread-id] [--cwd <path>] [--model <model>] [--provider <provider>]گفتوگوی فعلی را متصل میکند./codex detach(یا/codex unbind) اتصال فعلی را جدا میکند./codex bindingاتصال فعلی را توصیف میکند./codex stopنوبت فعال را متوقف میکند؛/codex steer <text>آن را هدایت میکند./codex model <model>،/codex fast [on|off|status]و/codex permissions [default|yolo|status]وضعیت هر گفتوگو را تغییر میدهند./codex compactاز app-server در Codex میخواهد رشته متصل را فشردهسازی کند./codex reviewبازبینی بومی Codex را برای رشته متصل آغاز میکند./codex diagnostics [note]پیش از ارسال بازخورد Codex برای رشته متصل، تأیید میخواهد./codex accountوضعیت حساب و محدودیت نرخ را نشان میدهد./codex mcpوضعیت سرورهای MCP در app-server در Codex را فهرست میکند./codex skillsمهارتهای app-server در Codex را فهرست میکند./codex plugins list،/codex plugins enable <name>و/codex plugins disable <name>، Pluginهای بومی پیکربندیشده Codex را مدیریت میکنند./codex computer-use [status|install]قابلیت استفاده از رایانه در Codex را مدیریت میکند./codex helpدرخت کامل فرمانها را فهرست میکند.
برای بیشتر گزارشهای پشتیبانی، در همان گفتوگویی که اشکال در آن رخ داده است با /diagnostics [note] شروع کنید. این کار یک گزارش عیبیابی Gateway ایجاد میکند و برای نشستهای محیط Codex، جهت ارسال بسته بازخورد مرتبط Codex درخواست تأیید میکند. برای آگاهی از مدل حریم خصوصی و رفتار گفتوگوی گروهی، به
صدور اطلاعات عیبیابی مراجعه کنید. تنها زمانی از /codex diagnostics [note] استفاده کنید که مشخصاً بخواهید بازخورد Codex مربوط به رشته متصل فعلی را بدون بسته کامل عیبیابی Gateway بارگذاری کنید.
بازرسی محلی رشتههای Codex
اغلب سریعترین راه برای بررسی اجرای معیوب Codex، باز کردن مستقیم رشته بومی Codex است:
codex resume <thread-id>شناسه رشته را از پاسخ تکمیلشده /diagnostics، /codex binding،
یا /codex threads [filter] دریافت کنید.
برای سازوکار بارگذاری و مرزهای عیبیابی در سطح زمان اجرا، به زمان اجرای محیط Codex مراجعه کنید.
ترتیب احراز هویت
در پوشه خانگی پیشفرض هر عامل، احراز هویت بهترتیب زیر انتخاب میشود:
- پروفایلهای احراز هویت OpenAI مرتبشده برای عامل، ترجیحاً در
auth.order.openai. برای مهاجرت شناسههای قدیمی پروفایل احراز هویت Codex و ترتیب قدیمی احراز هویت Codex،openclaw doctor --fixرا اجرا کنید. - حساب موجود app-server در پوشه خانگی Codex آن عامل.
- فقط برای راهاندازیهای محلی app-server از طریق stdio، ابتدا
CODEX_API_KEYو سپسOPENAI_API_KEY، هنگامیکه هیچ حساب app-server موجود نیست و احراز هویت OpenAI همچنان لازم است.
هنگامیکه OpenClaw یک پروفایل احراز هویت Codex از نوع اشتراک ChatGPT را تشخیص میدهد،
CODEX_API_KEY و OPENAI_API_KEY را از فرایند فرزند Codex حذف میکند.
این کار کلیدهای API در سطح Gateway را برای تعبیهها یا مدلهای مستقیم OpenAI در دسترس نگه میدارد، بدون آنکه نوبتهای app-server بومی Codex بهطور ناخواسته از طریق API صورتحساب شوند. پروفایلهای صریح کلید API مربوط به Codex و بازگشت محلی به کلید محیطی stdio، بهجای محیط بهارثرسیده فرایند فرزند از ورود app-server استفاده میکنند. اتصالهای WebSocket به app-server کلید API محیطی جایگزین Gateway را دریافت نمیکنند؛ از یک پروفایل احراز هویت صریح یا حساب خود app-server راهدور استفاده کنید.
اگر یک پروفایل اشتراکی به محدودیت استفاده Codex برسد، OpenClaw زمان بازنشانی را، در صورت گزارش آن توسط Codex، ثبت میکند و برای همان اجرای Codex پروفایل احراز هویت مرتبشده بعدی را امتحان میکند. پس از سپریشدن زمان بازنشانی، پروفایل اشتراکی بدون تغییر مدل انتخابشده openai/gpt-* یا زمان اجرای Codex دوباره واجد شرایط میشود.
هنگامیکه Pluginهای بومی Codex پیکربندی شده باشند، OpenClaw پیش از در دسترس قرار دادن برنامههای متعلق به Plugin برای رشته Codex، آن Pluginها را از طریق app-server متصل نصب یا تازهسازی میکند. app/list همچنان مرجع اصلی شناسههای برنامه، دسترسپذیری و فراداده است، اما تصمیم فعالسازی هر رشته بر عهده OpenClaw است: اگر خطمشی اجازه استفاده از برنامه دسترسپذیر فهرستشدهای را بدهد، OpenClaw حتی زمانیکه app/list
در حال حاضر غیرفعالبودن آن برنامه را گزارش میکند، thread/start.config.apps[appId].enabled = true را ارسال میکند. این مسیر برای شناسههای ناشناخته نصب برنامه ایجاد نمیکند؛ OpenClaw فقط Pluginهای بازار را با plugin/install فعال میکند و سپس موجودی را تازهسازی میکند.
جداسازی محیط
برای راهاندازیهای محلی app-server از طریق stdio، OpenClaw مقدار CODEX_HOME را روی یک پوشه مخصوص هر عامل تنظیم میکند تا پیکربندی Codex، فایلهای احراز هویت/حساب، حافظه نهان/دادههای Plugin و وضعیت بومی رشته، بهطور پیشفرض ~/.codex شخصی گرداننده را نخوانند یا در آن ننویسند. OpenClaw مقدار عادی HOME فرایند را حفظ میکند؛ زیرفرایندهای اجرای Codex همچنان میتوانند پیکربندی و توکنهای پوشه خانگی کاربر را پیدا کنند و Codex ممکن است ورودیهای مشترک $HOME/.agents/skills و
$HOME/.agents/plugins/marketplace.json را شناسایی کند. با
appServer.homeScope: "user"، OpenClaw بهجای آن از پوشه خانگی بومی Codex کاربر و حساب موجود آن، بدون تزریق پروفایل احراز هویت OpenClaw، استفاده میکند.
اگر یک استقرار به جداسازی محیطی بیشتری نیاز دارد، آن متغیرها را به appServer.clearEnv اضافه کنید:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"], }, }, }, }, },}appServer.clearEnv فقط بر فرایند فرزند app-server مربوط به Codex که ایجاد میشود اثر میگذارد. OpenClaw هنگام عادیسازی راهاندازی محلی، CODEX_HOME و HOME را از این فهرست حذف میکند: CODEX_HOME همچنان به محدوده عامل یا کاربر انتخابشده اشاره میکند و HOME به ارث میرسد تا زیرفرایندها بتوانند از وضعیت عادی پوشه خانگی کاربر استفاده کنند.
ابزارهای پویا و جستوجوی وب
بارگذاری ابزارهای پویای Codex بهطور پیشفرض searchable است. OpenClaw معمولاً ابزارهای پویایی را که عملیات بومی فضای کاری Codex را تکرار میکنند در دسترس قرار نمیدهد:
read، write، edit، apply_patch، exec، process، update_plan،
tool_call، tool_describe، tool_search و tool_search_code. بیشتر ابزارهای یکپارچهسازی باقیمانده OpenClaw، مانند پیامرسانی، رسانه، cron،
مرورگر، گرهها، gateway و heartbeat_respond، از طریق جستوجوی ابزار Codex در فضای نام openclaw در دسترساند و زمینه اولیه مدل را کوچکتر نگه میدارند. بازگشت به پوسته برای نوبت محدودشده، در مورد exec و process هنگامی استثناست که یک فهرست مجاز محدود، حالت بومی Code Mode را غیرفعال کند؛ فهرستهای مجاز زمان اجرا و codexDynamicToolsExclude همچنان اعمال میشوند.
ابزارهایی که با catalogMode: "direct-only" علامتگذاری شدهاند، از جمله ابزار computer متعلق به OpenClaw، بهجای آن از فضای نام openclaw_direct استفاده میکنند. Codex آن فضای نام را بهصورت DirectModelOnly در نظر میگیرد، بنابراین این ابزارها در رشتههای عادی و رشتههای مختص Code Mode مستقیماً برای مدل قابل مشاهده میمانند و از فراخوانیهای تودرتوی Code Mode tools.* عبور نمیکنند.
هنگامیکه جستوجو فعال است و هیچ ارائهدهنده مدیریتشدهای انتخاب نشده است، جستوجوی وب بهطور پیشفرض از ابزار میزبانیشده web_search مربوط به Codex استفاده میکند. جستوجوی میزبانیشده بومی و ابزار پویای مدیریتشده web_search متعلق به OpenClaw ناسازگار با یکدیگرند تا جستوجوی مدیریتشده نتواند محدودیتهای دامنه بومی را دور بزند. OpenClaw زمانی از ابزار مدیریتشده استفاده میکند که جستوجوی میزبانیشده در دسترس نباشد، صریحاً غیرفعال شده باشد یا یک ارائهدهنده مدیریتشده انتخابی جایگزین آن شده باشد. OpenClaw افزونه مستقل web.run مربوط به Codex را غیرفعال نگه میدارد، زیرا ترافیک app-server محیط عملیاتی فضای نام تعریفشده توسط کاربر web آن را رد میکند. tools.web.search.enabled: false
هر دو مسیر را غیرفعال میکند و اجراهای فقط-LLM با ابزارهای غیرفعال نیز همین کار را میکنند. Codex مقدار "cached" را یک ترجیح در نظر میگیرد و آن را برای نوبتهای بدون محدودیت app-server به دسترسی خارجی زنده تبدیل میکند. هنگامیکه allowedDomains بومی تنظیم شده باشند، بازگشت خودکار مدیریتشده بهصورت بسته شکست میخورد تا فهرست مجاز دور زده نشود.
تغییرات پایدار خطمشی مؤثر جستوجو، پیش از نوبت بعدی رشته Codex مقیدشده را تعویض میکنند؛ محدودیتهای موقت هر نوبت از یک رشته محدودشده موقت استفاده میکنند و اتصال موجود را برای ازسرگیری بعدی حفظ میکنند.
sessions_yield و پاسخهای مبدأ فقط با ابزار پیامرسانی، مستقیم باقی میمانند زیرا اینها قراردادهای کنترل نوبت هستند. sessions_spawn قابل جستوجو باقی میماند تا spawn_agent بومی Codex همچنان سطح اصلی زیرعامل Codex باشد، درحالیکه واگذاری صریح OpenClaw یا ACP همچنان از طریق فضای نام ابزار پویای openclaw در دسترس است. دستورالعملهای همکاری Heartbeat به Codex میگویند که اگر ابزار از قبل بارگذاری نشده است، پیش از پایان یک نوبت Heartbeat برای heartbeat_respond جستوجو کند.
codexDynamicToolsLoading: "direct" را فقط هنگام اتصال به یک app-server سفارشی Codex که نمیتواند ابزارهای پویای بهتعویقافتاده را جستوجو کند، یا هنگام اشکالزدایی محموله کامل ابزار تنظیم کنید.
فیلدهای پیکربندی
فیلدهای سطحبالای پشتیبانیشده Plugin Codex:
| فیلد | پیشفرض | مفهوم |
|---|---|---|
codexDynamicToolsLoading |
"searchable" |
برای قرار دادن مستقیم ابزارهای پویای OpenClaw در زمینه اولیه ابزار Codex از "direct" استفاده کنید. |
codexDynamicToolsExclude |
[] |
نامهای اضافی ابزارهای پویای OpenClaw که باید از نوبتهای app-server مربوط به Codex حذف شوند. |
codexPlugins |
غیرفعال | پشتیبانی بومی Plugin/برنامه Codex برای Pluginهای منتخبِ مهاجرتدادهشدهای که از منبع نصب شدهاند. |
sessionCatalog |
فعال | شناسایی در نوار کناری برای نشستهای بومی Codex در این Gateway و گرههای جفتشده واجد شرایط. |
supervision |
غیرفعال | رونوشت نشست بومی و خطمشی کنترل نوشتن برای عامل. |
فیلدهای پشتیبانیشده appServer:
| فیلد | پیشفرض | مفهوم |
|---|---|---|
transport |
"stdio" |
"stdio"، Codex را راهاندازی میکند؛ مقدار صریح "unix" به سوکت کنترل محلی متصل میشود؛ "websocket" به url متصل میشود. |
homeScope |
"agent" |
"agent"، وضعیت عادی مهار آزمون را برای هر عامل OpenClaw ایزوله میکند. "user" یک انتخاب صریح است که $CODEX_HOME یا ~/.codex بومی را بهاشتراک میگذارد، از احراز هویت بومی استفاده میکند و مدیریت رشته را فقط برای مالک فعال میکند. دامنه کاربر از stdio محلی یا انتقال Unix پشتیبانی میکند. برای اتصال نظارتی جداگانه، مقدار تنظیمنشده برای stdio یا Unix به "user" و برای WebSocket به "agent" تبدیل میشود. |
command |
فایل اجرایی مدیریتشده Codex | فایل اجرایی برای انتقال stdio. برای استفاده از فایل اجرایی مدیریتشده، آن را تنظیمنشده باقی بگذارید؛ فقط برای بازنویسی صریح تنظیمش کنید. |
args |
["app-server", "--listen", "stdio://"] |
آرگومانهای انتقال stdio. |
url |
تنظیمنشده | نشانی URL سرور برنامه WebSocket یا نشانی URL مربوط به unix://. یک مسیر صریح و خالی Unix، سوکت کنترل متعارف پوشه خانگی کاربر را انتخاب میکند. |
authToken |
تنظیمنشده | توکن Bearer برای انتقال WebSocket. یک رشته تحتاللفظی یا SecretInput مانند ${CODEX_APP_SERVER_TOKEN} را میپذیرد. |
headers |
{} |
سرآیندهای اضافی WebSocket. مقادیر سرآیند رشتههای تحتاللفظی یا مقادیر SecretInput را میپذیرند؛ برای مثال، x-codex-client-session-token: "${CODEX_CLIENT_SESSION_TOKEN}". |
clearEnv |
[] |
نام متغیرهای محیطی اضافی که پس از ساخت محیط موروثی توسط OpenClaw، از فرایند راهاندازیشده سرور برنامه stdio حذف میشوند. OpenClaw برای اجراهای محلی، CODEX_HOME انتخابشده و HOME موروثی را نگه میدارد. |
codeModeOnly |
false |
انتخاب سطح ابزار مختص حالت کد Codex. ابزارهای پویای عادی OpenClaw از طریق فراخوانیهای تودرتوی tools.* همچنان در دسترس میمانند؛ ابزارهای openclaw_direct مستقیماً برای مدل قابلمشاهده میمانند. |
remoteWorkspaceRoot |
تنظیمنشده | ریشه فضای کاری سرور برنامه راهدور Codex. در صورت تنظیم، OpenClaw ریشه فضای کاری محلی را از فضای کاری حلشده OpenClaw استنتاج میکند، پسوند cwd فعلی را زیر این ریشه راهدور حفظ میکند و فقط cwd نهایی سرور برنامه را به Codex میفرستد. اگر cwd خارج از ریشه فضای کاری حلشده OpenClaw باشد، OpenClaw بهجای ارسال یک مسیر محلی Gateway به سرور برنامه راهدور، بهصورت بسته شکست میخورد. |
requestTimeoutMs |
60000 |
مهلت زمانی فراخوانیهای صفحه کنترل سرور برنامه. |
turnCompletionIdleTimeoutMs |
60000 |
بازه سکوت پس از پذیرش یک نوبت توسط Codex یا پس از درخواست سرور برنامه محدود به یک نوبت، هنگامی که OpenClaw منتظر turn/completed است. |
postToolRawAssistantCompletionIdleTimeoutMs |
300000 |
محافظ بیکاری تکمیل و پیشرفت که پس از واگذاری ابزار، تکمیل ابزار بومی، پیشرفت خام دستیار پس از ابزار، تکمیل استدلال خام یا پیشرفت استدلال، هنگامی که OpenClaw منتظر turn/completed است، استفاده میشود. از این گزینه برای بارهای کاری مورداعتماد یا سنگین استفاده کنید که در آنها ترکیب پس از ابزار میتواند بهطور موجه بیشتر از بودجه انتشار نهایی دستیار ساکت بماند. |
mode |
"yolo"، مگر اینکه الزامات محلی Codex حالت YOLO را مجاز ندانند |
پیشتنظیم اجرای YOLO یا اجرای بازبینیشده توسط نگهبان. الزامات stdio محلی که danger-full-access، تأیید never یا بازبین user را حذف کنند، پیشفرض ضمنی را به نگهبان تبدیل میکنند. |
approvalPolicy |
"never" یا یک خطمشی تأیید مجاز نگهبان |
خطمشی تأیید بومی Codex که هنگام شروع/ازسرگیری رشته/نوبت ارسال میشود. پیشفرضهای نگهبان، در صورت مجاز بودن، "on-request" را ترجیح میدهند. |
sandbox |
"danger-full-access" یا یک سندباکس مجاز نگهبان |
حالت سندباکس بومی Codex که هنگام شروع/ازسرگیری رشته ارسال میشود. پیشفرضهای نگهبان، در صورت مجاز بودن، "workspace-write" و در غیر این صورت "read-only" را ترجیح میدهند. وقتی سندباکس OpenClaw فعال است، نوبتهای danger-full-access از workspace-write در Codex استفاده میکنند و دسترسی شبکه از تنظیم خروجی سندباکس OpenClaw مشتق میشود. |
approvalsReviewer |
"user" یا یک بازبین مجاز نگهبان |
برای اینکه Codex در صورت مجاز بودن اعلانهای تأیید بومی را بازبینی کند، از "auto_review" استفاده کنید؛ در غیر این صورت، guardian_subagent یا user. guardian_subagent همچنان یک نام مستعار قدیمی است. |
serviceTier |
تنظیمنشده | سطح سرویس اختیاری سرور برنامه Codex. "priority" مسیریابی حالت سریع را فعال میکند، "flex" پردازش انعطافپذیر را درخواست میکند، null بازنویسی را پاک میکند و "fast" قدیمی بهعنوان "priority" پذیرفته میشود. |
networkProxy |
غیرفعال | انتخاب شبکه نمایه مجوزهای Codex برای فرمانهای سرور برنامه. OpenClaw پیکربندی permissions.<profile>.network انتخابشده را تعریف و بهجای ارسال sandbox، آن را با default_permissions انتخاب میکند. |
experimental.sandboxExecServer |
false |
انتخاب آزمایشی که یک محیط Codex مبتنی بر سندباکس OpenClaw را در سرور برنامه پشتیبانیشده Codex ثبت میکند تا اجرای بومی Codex بتواند درون سندباکس فعال OpenClaw انجام شود. |
appServer.networkProxy صریح است، زیرا قرارداد سندباکس Codex را
تغییر میدهد. وقتی فعال باشد، OpenClaw همچنین features.network_proxy.enabled
و default_permissions را در پیکربندی رشته Codex تنظیم میکند تا نمایه
مجوز تولیدشده بتواند شبکه مدیریتشده Codex را راهاندازی کند. بهطور پیشفرض، OpenClaw
یک نام نمایه مقاوم در برابر تداخل از نوع openclaw-network-<fingerprint>
را از بدنه نمایه تولید میکند؛ فقط هنگامی از profileName استفاده کنید که یک نام محلی پایدار
لازم باشد.
{ plugins: { entries: { codex: { config: { appServer: { sandbox: "workspace-write", networkProxy: { enabled: true, domains: { "api.openai.com": "allow", "blocked.example.com": "deny", }, unixSockets: { "/tmp/proxy.sock": "allow", "/tmp/blocked.sock": "none", }, allowUpstreamProxy: true, proxyUrl: "http://127.0.0.1:3128", }, }, }, }, }, },}اگر زمان اجرای عادی app-server برابر با danger-full-access باشد، فعالکردن
networkProxy برای پروفایل مجوز تولیدشده از دسترسی فایلسیستمی بهسبک workspace
استفاده میکند: اعمال محدودیت شبکه مدیریتشده Codex بهصورت شبکهسازی sandboxشده
انجام میشود، بنابراین یک پروفایل با دسترسی کامل از ترافیک خروجی محافظت نمیکند.
ورودیهای دامنه از allow یا deny استفاده میکنند؛ ورودیهای سوکت Unix از مقادیر
allow یا none در Codex استفاده میکنند.
مهلتهای زمانی فراخوانی ابزار پویا
فراخوانیهای ابزار پویای تحت مالکیت OpenClaw مستقل از
appServer.requestTimeoutMs محدود میشوند: درخواستهای item/tool/call در Codex بهطور پیشفرض از یک
نگهبان 90 ثانیهای OpenClaw استفاده میکنند. آرگومان مثبت timeoutMs
برای هر فراخوانی، بودجه همان ابزار را افزایش یا کاهش میدهد و سقف آن 600000 ms است.
ابزار image_generate، وقتی فراخوانی ابزار مهلت زمانی مختص خود را ارائه نکند، از
agents.defaults.imageGenerationModel.timeoutMs استفاده میکند؛ در غیر این صورت، پیشفرض تولید تصویر 120 ثانیه است.
ابزار image برای درک رسانه از tools.media.image.timeoutSeconds یا
پیشفرض رسانهای 60 ثانیهای خود استفاده میکند؛ برای درک تصویر، این مهلت زمانی بر خود
درخواست اعمال میشود و بهدلیل کارهای آمادهسازی قبلی کاهش نمییابد. هنگام پایان مهلت،
OpenClaw در صورت پشتیبانی، سیگنال ابزار را لغو میکند و یک پاسخ ناموفق ابزار پویا به Codex
برمیگرداند تا نوبت بتواند ادامه پیدا کند، بهجای آنکه نشست در processing باقی بماند.
این نگهبان، بودجه بیرونی item/tool/call پویا است؛ مهلتهای زمانی درخواست مختص ارائهدهنده
درون همان فراخوانی اجرا میشوند و معناشناسی مهلت زمانی خود را حفظ میکنند.
پس از آنکه Codex یک نوبت را میپذیرد، و پس از آنکه OpenClaw به یک درخواست app-server
محدود به نوبت پاسخ میدهد، مهار انتظار دارد Codex در نوبت جاری پیشرفت کند
و در نهایت نوبت بومی را با turn/completed به پایان برساند. اگر
app-server بهمدت appServer.turnCompletionIdleTimeoutMs ساکت بماند، OpenClaw
بهصورت بهترین تلاش نوبت Codex را قطع میکند، یک پایان مهلت تشخیصی ثبت میکند و
مسیر نشست OpenClaw را آزاد میکند تا پیامهای بعدی چت پشت یک نوبت بومی
کهنه در صف نمانند. بیشتر اعلانهای غیرنهایی همان نوبت، این نگهبان کوتاه را
غیرفعال میکنند، زیرا Codex ثابت کرده است که نوبت هنوز زنده است.
تحویل ابزارها از بودجه بیکاری طولانیتری پس از ابزار استفاده میکند: پس از آنکه OpenClaw یک
پاسخ item/tool/call برمیگرداند، پس از تکمیل موارد ابزار بومی مانند
commandExecution، پس از تکمیل خام custom_tool_call_output،
و پس از پیشرفت خام دستیار بعد از ابزار، تکمیل خام استدلال، یا پیشرفت استدلال.
نگهبان در صورت پیکربندی از appServer.postToolRawAssistantCompletionIdleTimeoutMs استفاده میکند
و در غیر این صورت پیشفرض آن پنج دقیقه است؛ همین بودجه نگهبان پیشرفت را نیز
برای بازه بیصدای ترکیب، پیش از آنکه Codex رویداد بعدی نوبت جاری را منتشر کند، تمدید میکند.
اعلانهای سراسری app-server، مانند بهروزرسانیهای محدودیت نرخ، پیشرفت بیکاری نوبت را
بازنشانی نمیکنند. تکمیلهای استدلال، تکمیلهای agentMessage در commentary، و
پیشرفت خام استدلال یا دستیار پیش از ابزار میتوانند با یک پاسخ نهایی خودکار دنبال شوند،
بنابراین بهجای آزادکردن فوری مسیر نشست، از نگهبان پاسخ پس از پیشرفت استفاده میکنند.
فقط موارد تکمیلشده نهایی/غیر-commentary با agentMessage و تکمیلهای خام
دستیار پیش از ابزار، آزادسازی خروجی دستیار را فعال میکنند: اگر سپس Codex بدون
turn/completed ساکت بماند، OpenClaw بهصورت بهترین تلاش نوبت بومی را
قطع و مسیر نشست را آزاد میکند. اگر نگهبان نوبت دیگری در رقابت برای این آزادسازی
برنده شود، OpenClaw همچنان مورد تکمیلشده نهایی دستیار را میپذیرد، مشروط بر اینکه دیگر
هیچ درخواست بومی، مورد، یا تکمیل ابزار پویایی فعال نباشد و آزادسازی خروجی دستیار
همچنان متعلق به آخرین مورد تکمیلشده باشد و هیچ تکمیل مورد بعدی وجود نداشته باشد.
این کار میتواند پاسخ نهایی را پس از اتمام کار ابزار، بدون بازپخش نوبت، حفظ کند.
دلتاهای جزئی دستیار، پاسخهای قدیمی پیشین، و تکمیلهای خالی بعدی واجد شرایط نیستند.
خرابیهای app-server مبتنی بر stdio که بازپخش آنها ایمن است، از جمله پایان مهلت بیکاری تکمیل نوبت بدون شواهد دستیار، ابزار، مورد فعال، یا اثر جانبی، یکبار در تلاش تازه app-server دوباره امتحان میشوند. پایان مهلتهای ناایمن همچنان کلاینت app-server گیرکرده را بازنشسته و مسیر نشست OpenClaw را آزاد میکنند؛ همچنین بهجای بازپخش خودکار، اتصال کهنه رشته بومی را پاک میکنند. پایان مهلت نگهبان تکمیل، متن مهلت زمانی مختص Codex را نمایش میدهد: موارد ایمن برای بازپخش میگویند پاسخ ممکن است ناقص باشد، درحالیکه موارد ناایمن از کاربر میخواهند پیش از تلاش دوباره وضعیت فعلی را بررسی کند. تشخیصهای عمومی مهلت زمانی شامل فیلدهای ساختاری مانند آخرین متد اعلان app-server، شناسه/نوع/نقش مورد پاسخ خام دستیار، تعداد درخواستها/موارد فعال، و وضعیت نگهبان فعالشده هستند؛ وقتی آخرین اعلان یک مورد پاسخ خام دستیار باشد، یک پیشنمایش محدود از متن دستیار را نیز شامل میشوند. آنها محتوای خام پرامپت یا ابزار را شامل نمیشوند.
جایگزینهای متغیر محیطی برای آزمایش محلی
OPENCLAW_CODEX_APP_SERVER_BINوقتیappServer.commandتنظیم نشده باشد، باینری مدیریتشده را دور میزند.OPENCLAW_CODEX_APP_SERVER_ARGSOPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardianOPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICYOPENCLAW_CODEX_APP_SERVER_SANDBOX
OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 حذف شده است. بهجای آن از
plugins.entries.codex.config.appServer.mode: "guardian"، یا برای آزمایش محلی یکباره از
OPENCLAW_CODEX_APP_SERVER_MODE=guardian استفاده کنید. برای استقرارهای تکرارپذیر،
پیکربندی ترجیح داده میشود، زیرا رفتار plugin را در همان فایل بازبینیشدهای نگه میدارد
که بقیه راهاندازی مهار Codex در آن قرار دارد.
pluginهای بومی Codex
پشتیبانی از plugin بومی Codex از قابلیتهای app و plugin خود app-server در Codex،
در همان رشته Codex مربوط به نوبت مهار OpenClaw استفاده میکند. OpenClaw
pluginهای Codex را به ابزارهای پویای مصنوعی codex_plugin_* در OpenClaw
تبدیل نمیکند.
codexPlugins فقط بر نشستهایی اثر میگذارد که مهار بومی Codex را انتخاب میکنند.
این گزینه بر اجرای مهار داخلی، اجرای عادی ارائهدهنده OpenAI، اتصالهای مکالمه ACP،
یا مهارهای دیگر اثری ندارد.
حداقل پیکربندی مهاجرتیافته:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, allow_destructive_actions: true, plugins: { "google-calendar": { enabled: true, marketplaceName: "openai-curated", pluginName: "google-calendar", }, }, }, }, }, }, },}پیکربندی app رشته زمانی محاسبه میشود که OpenClaw یک نشست مهار Codex
ایجاد کند یا اتصال کهنه رشته Codex را جایگزین کند؛ این پیکربندی در هر نوبت
دوباره محاسبه نمیشود. پس از تغییر codexPlugins، از /new، /reset استفاده کنید، یا
Gateway را راهاندازی مجدد کنید تا نشستهای آینده مهار Codex با مجموعه app
بهروزشده آغاز شوند.
برای واجد شرایط بودن مهاجرت، موجودی app، سیاست اقدامهای مخرب، درخواستهای تکمیلی، و تشخیصهای plugin بومی، به pluginهای بومی Codex مراجعه کنید.
دسترسی به app و plugin در سمت OpenAI توسط حساب واردشده Codex و برای workspaceهای Business و Enterprise/Edu، توسط کنترلهای app در workspace کنترل میشود. برای مرور کلی کنترلهای حساب و workspace در OpenAI، به استفاده از Codex با طرح ChatGPT خود مراجعه کنید.
استفاده از رایانه
استفاده از رایانه راهنمای راهاندازی مختص خود را دارد: استفاده رایانهای Codex.
نسخه کوتاه: OpenClaw برنامه کنترل دسکتاپ را درون خود بستهبندی نمیکند و
اقدامهای دسکتاپ را نیز خودش اجرا نمیکند. app-server در Codex را آماده میکند،
در دسترس بودن سرور MCP با شناسه computer-use را تأیید میکند، و سپس اجازه میدهد
Codex مالک فراخوانیهای ابزار بومی MCP در نوبتهای حالت Codex باشد.
مرزهای زمان اجرا
مهار Codex فقط اجراکننده سطحپایین عامل تعبیهشده را تغییر میدهد.
- ابزارهای پویای OpenClaw پشتیبانی میشوند. Codex از OpenClaw میخواهد آن ابزارها را اجرا کند، بنابراین OpenClaw در مسیر اجرا باقی میماند.
- ابزارهای shell، patch، MCP و app بومی Codex تحت مالکیت Codex هستند. OpenClaw میتواند رویدادهای بومی منتخب را از طریق رله پشتیبانیشده مشاهده یا مسدود کند، اما آرگومانهای ابزار بومی را بازنویسی نمیکند.
- Codex مالک Compaction بومی است. OpenClaw یک آینه رونوشت برای
تاریخچه کانال، جستوجو،
/new،/reset، و تعویض مدل یا مهار در آینده نگه میدارد، اما Compaction در Codex را با خلاصهساز OpenClaw یا موتور زمینه جایگزین نمیکند. - تولید رسانه، درک رسانه، TTS، تأییدها، و خروجی ابزار پیامرسانی همچنان از تنظیمات متناظر ارائهدهنده/مدل OpenClaw عبور میکنند.
tool_result_persistبر نتایج ابزار رونوشت تحت مالکیت OpenClaw اعمال میشود، نه رکوردهای نتیجه ابزار بومی Codex.
برای لایههای hook، سطوح V1 پشتیبانیشده، مدیریت مجوز بومی، هدایت صف، سازوکار بارگذاری بازخورد Codex، و جزئیات Compaction، به زمان اجرای مهار Codex مراجعه کنید.
عیبیابی
Codex بهعنوان یک ارائهدهنده عادی /model ظاهر نمیشود: برای پیکربندیهای جدید
انتظار میرود. یک مدل openai/gpt-* انتخاب کنید،
plugins.entries.codex.enabled را فعال کنید، و بررسی کنید آیا plugins.allow
مقدار codex را مستثنا میکند.
OpenClaw بهجای Codex از مهار داخلی استفاده میکند: تأیید کنید مسیر مؤثر
دقیقاً یک مسیر رسمی HTTPS برای Platform Responses یا ChatGPT Responses است،
جایگزین درخواست تألیفشدهای ندارد، و plugin مربوط به Codex نصب و فعال است.
پیشوند openai/gpt-* بهتنهایی کافی نیست. برای اثبات سختگیرانه هنگام
آزمایش، مقدار agentRuntime.id: "codex" ارائهدهنده یا مدل را تنظیم کنید؛ در صورت ناسازگاری
مسیر یا مهار، Codex اجباری بهجای بازگشت به گزینه جایگزین با شکست مواجه میشود.
زمان اجرای OpenAI Codex به مسیر کلید API بازمیگردد: یک گزیده ویرایششده از Gateway جمعآوری کنید که مدل، زمان اجرا، ارائهدهنده انتخابشده، و خرابی را نشان دهد. از همکاران تحتتأثیر بخواهید این فرمان فقطخواندنی را روی میزبان OpenClaw خود اجرا کنند:
( pattern='openai/gpt-5\.[45]|openai[-]codex|agentRuntime(\.id)?|harnessRuntime|Runtime: OpenAI Codex|legacy OpenAI Codex prefix|resolveSelectedOpenAIRuntimeProvider|candidateProvider[": ]+openai|status[": ]+401|Incorrect API key|No API key|api-key path|API-key path|OAuth' if ls /tmp/openclaw/openclaw-*.log >/dev/null 2>&1; then grep -E -i -n "$pattern" /tmp/openclaw/openclaw-*.log 2>/dev/null || true else journalctl --user -u openclaw-gateway --since today --no-pager 2>/dev/null \ | grep -E -i "$pattern" || true fi) | sed -E \ -e 's/(Authorization: Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \ -e 's/(Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \ -e 's/(api[_ -]?key[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \ -e 's/(OPENAI_API_KEY[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \ -e 's/sk-[A-Za-z0-9_-]{12,}/sk-[REDACTED]/g' \ -e 's/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/[EMAIL-REDACTED]/g' \ | tail -200گزیدههای مفید معمولاً شامل openai/gpt-5.6-sol یا openai/gpt-5.6-luna،
Runtime: OpenAI Codex، agentRuntime.id یا harnessRuntime،
candidateProvider: "openai"، و نتیجه 401، Incorrect API key، یا
No API key هستند. اجرای اصلاحشده باید بهجای خرابی ساده کلید API در OpenAI،
مسیر OAuth در OpenAI را نشان دهد.
پیکربندی ارجاعهای قدیمی مدل Codex باقی مانده است: دستور openclaw doctor --fix را اجرا کنید.
Doctor ارجاعهای قدیمی مدل را به openai/* بازنویسی میکند، پینهای کهنه
زمان اجرای نشست و کل عامل را حذف میکند، و جایگزینهای موجود پروفایل احراز هویت را
حفظ میکند.
app-server رد میشود: از app-server در Codex با نسخه 0.143.0 یا جدیدتر استفاده کنید.
نسخههای پیشانتشار همنسخه یا نسخههای دارای پسوند ساخت مانند
0.143.0-alpha.2 یا 0.143.0+custom رد میشوند، زیرا OpenClaw
حداقل پایدار پروتکل 0.143.0 را آزمایش میکند.
/codex status نمیتواند متصل شود: بررسی کنید که Plugin codex
فعال باشد، در صورت پیکربندی فهرست مجاز، plugins.allow آن را شامل شود و همهٔ
appServer.command، url، authToken یا سرآیندهای سفارشی
معتبر باشند.
کشف مدل کند است: مقدار
plugins.entries.codex.config.discovery.timeoutMs را کاهش دهید یا کشف را غیرفعال کنید.
به مرجع هارنس Codex مراجعه کنید.
انتقال WebSocket بلافاصله ناموفق میشود: appServer.url،
authToken و سرآیندها را بررسی کنید و مطمئن شوید app-server راهدور از همان
نسخهٔ پروتکل app-server در Codex استفاده میکند.
ابزارهای پوستهٔ بومی یا وصله با Native hook relay unavailable مسدود میشوند: رشتهٔ Codex همچنان در تلاش است از
شناسهٔ رلهٔ هوک بومیای استفاده کند که دیگر در OpenClaw ثبت نشده است. این مشکل
انتقال هوک بومی Codex است، نه خرابی بکاند ACP، ارائهدهنده، GitHub یا فرمان
پوسته. در گفتوگوی تحتتأثیر، با /new یا /reset یک نشست تازه
آغاز کنید، سپس یک فرمان بیضرر را دوباره امتحان کنید. اگر این کار یکبار موفق شد
اما فراخوانی بعدی ابزار بومی دوباره ناموفق بود، /new را فقط یک راهکار موقت
در نظر بگیرید: پس از راهاندازی مجدد app-server در Codex یا Gateway در OpenClaw،
پرامپت را در یک نشست تازه کپی کنید تا رشتههای قدیمی حذف و ثبتهای هوک بومی
دوباره ایجاد شوند.
فراخوانیهای ابزار Codex تعداد بیشازحدی فرایند هوک کوتاهعمر ایجاد میکنند: مقدار
plugins.entries.codex.config.appServer.loopDetectionPreToolUseRelay: false
را تنظیم و Gateway را راهاندازی مجدد کنید. این کار فقط زیرفرایند PreToolUse در Codex
را که برای تشخیص حلقه در OpenClaw و نشانگر بدون خطمشی آن استفاده میشود،
غیرفعال میکند. رلههای الزامی before_tool_call و خطمشی ابزار مورداعتماد
همچنان فعال میمانند.
یک مدل غیر Codex از هارنس داخلی استفاده میکند: این رفتار موردانتظار است، مگر اینکه
خطمشی زماناجرای ارائهدهنده یا مدل، آن را به هارنس دیگری هدایت کند. ارجاعهای سادهٔ
ارائهدهندگان غیر OpenAI در حالت auto در مسیر عادی ارائهدهندهٔ خود باقی میمانند.
Computer Use نصب شده است، اما ابزارها اجرا نمیشوند: مقدار
/codex computer-use status را از یک نشست تازه بررسی کنید. اگر ابزاری
Native hook relay unavailable را گزارش کرد، از روش بازیابی رلهٔ هوک بومی در بالا استفاده کنید.
به Computer Use در Codex مراجعه کنید.