Codex harness
زمان اجرای مهار Codex
قرارداد زمان اجرا برای نوبتهای مهار Codex. برای راهاندازی و مسیریابی، به مهار Codex مراجعه کنید. برای فیلدهای پیکربندی، به مرجع مهار Codex مراجعه کنید.
نمای کلی
Codex مالک حلقه بومی مدل، ازسرگیری بومی رشته، ادامه بومی ابزار و Compaction بومی است. OpenClaw مالک مسیریابی کانال، فایلهای نشست، تحویل پیام قابلمشاهده، ابزارهای پویای OpenClaw، تأییدها، تحویل رسانه و یک آینه رونوشت پیرامون این مرز است.
مسیریابی پرامپت از زمان اجرای انتخابشده پیروی میکند، نه صرفاً از رشته ارائهدهنده. یک نوبت بومی Codex دستورالعملهای توسعهدهنده app-server متعلق به Codex را دریافت میکند؛ یک مسیر سازگاری صریح OpenClaw، حتی هنگامی که از احراز هویت یا انتقال OpenAI با سبک Codex استفاده میکند، پرامپت سیستمی عادی OpenClaw را حفظ میکند.
OpenClaw رشتههای بومی Codex را در حالی آغاز و از سر میگیرد که
شخصیت داخلی Codex غیرفعال است (personality: "none") تا فایلهای شخصیت فضای کاری
و هویت عامل OpenClaw مرجع نهایی باقی بمانند. در غیر این صورت، Codex بومی
دستورالعملهای پایه/مدل متعلق به Codex و بارگذاری اسناد پروژه را حفظ میکند. اجراهای سبک
OpenClaw (برای مثال cron) همچنان بارگذاری اسناد پروژه را متوقف میکنند.
دستورالعملهای توسعهدهنده OpenClaw دغدغههای زمان اجرای OpenClaw را پوشش میدهند: تحویل
به کانال مبدأ، ابزارهای پویای OpenClaw، واگذاری ACP، زمینه آداپتور و
فایلهای فعال نمایه فضای کاری عامل. کاتالوگهای Skills و اشارهگرهای
MEMORY.md که از طریق ابزار مسیریابی میشوند، بهصورت دستورالعملهای توسعهدهنده همکاری
با دامنه همان نوبت ارائه میشوند. هنگامی که ابزارهای حافظه در دسترس نیستند، محتوای فعال BOOTSTRAP.md
و کل MEMORY.md بهجای آن به زمینه ورودی متنی ساده همان نوبت برمیگردند.
بیشتر ابزارهای پویای OpenClaw از فضای نام قابلجستوجوی openclaw استفاده میکنند. ابزارهایی
که با catalogMode: "direct-only" علامتگذاری شدهاند از openclaw_direct استفاده میکنند؛ Codex آن را
بهجای در معرض اجرای تودرتوی Code Mode قرار دادن، مستقیماً با عنوان
DirectModelOnly برای مدل قابلمشاهده نگه میدارد.
اتصال رشتهها و تغییرات مدل
هنگامی که یک نشست OpenClaw به یک رشته موجود Codex متصل است، نوبت
بعدی مدل انتخابشده فعلی، سیاست تأیید، sandbox،
بازبین تأییدها و سطح سرویس را دوباره به app-server ارسال میکند. تغییر از
openai/gpt-5.5 به openai/gpt-5.2 اتصال رشته را حفظ میکند، اما از Codex میخواهد
با مدل تازه انتخابشده ادامه دهد.
اتصالهای تحت نظارت استثنا هستند. انتخابگر مدل OpenClaw قفل میماند و ازسرگیریها جایگزینهای مدل و ارائهدهنده را حذف میکنند تا Codex مدل و ارائهدهنده ذخیرهشده رشته مرجع را بازیابی کند. یک کنترل بومی جداگانه Codex میتواند آن جفت ذخیرهشده را تغییر دهد و عکس فوری اولیه ممکن است هشدار عادی Codex درباره تفاوت مدل را ایجاد کند؛ مدل بیرونی OpenClaw و زنجیره جایگزین هرگز جای هیچیک را نمیگیرند.
نظارت و ادامه ایمن
نظارت Codex قابلیتی انتخابی از همان Plugin codex است. این قابلیت
رشتههای بومی را از طریق اتصالی جداگانه کشف میکند و فقط نشستهای بایگانینشده
را در کاتالوگ Gateway نمایش میدهد. بدون تنظیمات صریح اتصال appServer،
آن اتصال از stdio مدیریتشده در پوشه خانه کاربر استفاده میکند، در حالی که مهار عادی
در محدوده عامل باقی میماند. فهرستکردن و خواندن فراداده منفعل هستند: آنها
رشتهای را از سر نمیگیرند، OpenClaw را مشترک رویدادهای زنده آن نمیکنند و به
تأییدهای آن پاسخ نمیدهند.
برای یک نشست ذخیرهشده یا بیکار روی رایانه Gateway، ادامه بهعنوان شاخه
یک Chat عادی و قفلشده روی مدل ایجاد میکند و تاریخچه محدود کاربر و دستیار را
تا آخرین نوبت نهایی و ذخیرهشده مبدأ آینه میکند. نخستین نوبت عادی
Chat کنترلکنندههای واقعی تأیید را نصب میکند و از یک انشعاب بومی موقت برای
ثابتکردن عکس فوری بدون جایگزینی مدل یا ارائهدهنده استفاده میکند. Codex App Server از
پیکربندی بومی فعلی خود استفاده میکند و جفت انتخابشده را بازمیگرداند؛ اگر آن مدل
با آخرین مدل ثبتشده مبدأ تفاوت داشته باشد، هشدار عادی خود را صادر میکند.
در همان اتصال نظارت، OpenClaw رشته مرجع مهار Codex با مبدأ
appServer را تحت cwd و سیاست زمان اجرای آن، دقیقاً با مدل و ارائهدهنده
بازگرداندهشده برای آن شروع اولیه آغاز میکند، تاریخچه قابلمشاهده محدود را تزریق میکند
و انشعاب موقت را بایگانی میکند. مبدأ هرگز از سر گرفته نمیشود. رشته مرجع
سطح کامل ابزارهای مهار OpenClaw را دارد؛ استدلال، فراخوانیهای ابزار و نتایج ابزار
از مبدأ در آن همانندسازی نمیشوند. دامنه اتصال خصوصی در وضعیتهای اتصال در انتظار
و ثبتشده باقی میماند، بنابراین هر نوبت بعدی با احراز هویت بومی و پیکربندی
ارائهدهنده روی همان اتصال میماند. نظارت غیرفعال یا انحراف اتصال/ارتباط بهصورت
بسته شکست میخورد، نه اینکه به مهار عادی پوشه خانه عامل تغییر مسیر دهد.
مبدأ اصلی CLI، VS Code، Atlas یا ChatGPT همچنان واجد شرایط حضور در هر دو
کاتالوگ است. شاخه مرجع یک رشته بومی Codex است، اما نوع مبدأ آن
appServer است؛ کلاینتهای بومی ممکن است این نوع مبدأ را فیلتر کنند، بنابراین نمایش آن در
Codex Desktop تضمینشده نیست.
مبدأهای فعال نمیتوانند شاخه جدیدی آغاز کنند یا بایگانی شوند؛ یک Chat تحت نظارت موجود
همچنان میتواند باز شود. notLoaded یعنی فعالیت ناشناخته است، نه بیکار؛
OpenClaw بایگانی یک ردیف محلی idle یا notLoaded را فقط پس از تأیید صریح
نبود اجراکننده دیگر و خواندن تازه وضعیت محلی فرایند مجاز میکند. Codex
جهشهای رشته را درون یک فرایند App Server بهصورت سریالی انجام میدهد، اما اجاره انحصاری
اجراکننده یا مالک تأیید بینفرایندی ارائه نمیکند، بنابراین آن خواندن نمیتواند
ثابت کند فرایند دیگری از رشته استفاده نمیکند. OpenClaw مالک اتصال فعال شناختهشده
را برای هدف دقیق یا هر نواده ایجادشده و بایگانینشدهای که پرسوجوی صفحهبندیشده
نوادگان Codex بازمیگرداند مسدود میکند. خطاهای شمارش، چرخهها و پایانیافتن
حد ایمنی بهصورت بسته شکست میخورند. بایگانی بومی همچنان ممکن است با نوبتی جدید
در فرایندی دیگر وارد رقابت شود، بنابراین تأیید، کلاینتهای ناشناخته و فاصله زمانی
میان خواندن وضعیت و بایگانی را پوشش میدهد. یک Chat تحت نظارت و قفلشده روی مدل
تا هنگامی که از اتصال بومی محافظت میکند قابل حذف نیست.
کاتالوگهای Node جفتشده در انتشار اولیه فقط حاوی فراداده میمانند. مرز فراخوانی Node فعلی درخواست/پاسخ است و نمیتواند رویدادهای طولانیمدت نوبت، درخواستهای تأیید یا خروجی جریانی موردنیاز برای یک اتصال واقعی مهار Codex را حمل کند. بنابراین ادامه و بایگانی از راه دور، حتی هنگامی که ردیف بیکار است، در دسترس نمیمانند.
برای راهاندازی اپراتور و رفتار قابلمشاهده Control UI، به نظارت Codex مراجعه کنید.
پاسخهای قابلمشاهده و Heartbeatها
نوبتهای گفتوگوی مستقیم/مبدأ از طریق مهار Codex بهطور پیشفرض متن نهایی
دستیار را برای سطوح داخلی WebChat بهصورت خودکار تحویل میدهند و با قرارداد
مهار Pi مطابقت دارند: عامل بهطور عادی پاسخ میدهد و OpenClaw متن نهایی را در
گفتوگوی مبدأ ارسال میکند. messages.visibleReplies: "message_tool" را تنظیم کنید تا متن نهایی
دستیار خصوصی بماند، مگر اینکه عامل message(action="send") را فراخوانی کند.
نوبتهای Heartbeat در Codex بهطور پیشفرض heartbeat_respond را در کاتالوگ ابزار
قابلجستوجوی OpenClaw دریافت میکنند تا عامل بتواند ثبت کند که بیدارباش باید
بیصدا بماند یا اعلان دهد. راهنمای ابتکار Heartbeat بهصورت دستورالعمل توسعهدهنده
حالت همکاری Codex با دامنه نوبت Heartbeat ارسال میشود؛ نوبتهای گفتوگوی عادی
در حالت پیشفرض Codex میمانند. هنگامی که HEARTBEAT.md خالی نیست،
دستورالعملهای Heartbeat بهجای درج درونخطی محتویات فایل، Codex را به آن فایل
ارجاع میدهند.
مرزهای هوک
| لایه | مالک | هدف |
|---|---|---|
| هوکهای Plugin در OpenClaw | OpenClaw | سازگاری محصول/Plugin میان مهارهای OpenClaw و Codex. |
| میانافزار افزونه app-server در Codex | Pluginهای همراه OpenClaw | رفتار آداپتور در هر نوبت پیرامون ابزارهای پویای OpenClaw. |
| هوکهای بومی Codex | Codex | چرخه حیات سطحپایین Codex و سیاست ابزار بومی از پیکربندی Codex. |
OpenClaw از فایلهای پروژهای یا سراسری hooks.json در Codex برای مسیریابی
رفتار Plugin استفاده نمیکند. برای پل ابزار بومی و مجوز، OpenClaw
پیکربندی Codex در سطح هر رشته را برای PreToolUse، PostToolUse، PermissionRequest
و Stop تزریق میکند.
هنگامی که تأییدهای app-server در Codex فعال هستند (approvalPolicy برابر
"never" نیست)، پیکربندی پیشفرض تزریقشده هوک بومی PermissionRequest
را حذف میکند تا بازبین app-server در Codex و پل تأیید OpenClaw پس از بازبینی
افزایش سطح واقعی را مدیریت کنند. برای اجبار رله سازگاری در هر صورت،
permission_request را به nativeHookRelay.events اضافه کنید. سایر هوکهای Codex
مانند SessionStart و UserPromptSubmit همچنان کنترلهایی در سطح Codex
هستند؛ آنها در قرارداد v1 بهعنوان هوکهای Plugin در OpenClaw عرضه نمیشوند.
برای ابزارهای پویای OpenClaw، پس از آنکه Codex فراخوانی را درخواست میکند،
OpenClaw ابزار را اجرا میکند؛ بنابراین رفتار Plugin و میانافزار در آداپتور مهار
اجرا میشود. Code Mode در Codex نتایج پویای عمومی را بهصورت متن دریافت میکند
و فراخوانیهای پویای تودرتو را سریالی میکند؛ فراخوانندگان باید نتایج شبیه JSON
را تجزیه کنند و نمیتوانند برای ارسال همزمان به Promise.all تکیه کنند.
برای ابزارهای بومی Codex، Codex مالک رکورد مرجع ابزار است؛ OpenClaw میتواند
رویدادهای انتخابی را آینه کند، اما نمیتواند رشته بومی را بازنویسی کند، مگر آنکه
Codex این کار را از طریق app-server یا فراخوانهای بازگشتی هوک بومی عرضه کند.
رویدادهای PreToolUse در حالت گزارش app-server در Codex، تأیید Plugin را
تا تأیید متناظر app-server به تعویق میاندازند. اگر یک هوک
before_tool_call در OpenClaw مقدار requireApproval را بازگرداند، در حالی که
بار داده بومی openclaw_approval_mode: "report" را تنظیم کرده است، رله هوک بومی نیازمندی تأیید Plugin را ثبت میکند و
هیچ تصمیم بومی بازنمیگرداند. هنگامی که Codex بعداً درخواست تأیید app-server
را برای همان استفاده از ابزار ارسال میکند، OpenClaw اعلان تأیید Plugin را
باز میکند و تصمیم را به Codex نگاشت میکند. رویدادهای PermissionRequest
در Codex یک مسیر تأیید جداگانه هستند و در صورت پیکربندی برای آن پل، همچنان
میتوانند از طریق تأییدهای OpenClaw مسیریابی شوند.
اعلانهای آیتم app-server در Codex همچنین مشاهدات ناهمگام after_tool_call
را برای تکمیل ابزارهای بومی که از قبل توسط رله بومی PostToolUse
پوشش داده نشدهاند فراهم میکنند. این موارد فقط برای تلهمتری/سازگاری هستند؛
نمیتوانند فراخوانی ابزار بومی را مسدود، به تأخیر انداخته یا تغییر دهند.
نمایشهای Compaction و چرخه حیات LLM از اعلانهای app-server در Codex
و وضعیت آداپتور OpenClaw میآیند، نه فرمانهای هوک بومی Codex.
before_compaction، after_compaction، llm_input و llm_output
مشاهداتی در سطح آداپتور هستند، نه ثبت بایتبهبایت درخواست داخلی یا
بارهای داده Compaction در Codex.
اعلانهای app-server بومی hook/started و hook/completed در Codex
بهصورت رویدادهای عامل codex_app_server.hook برای مسیر حرکت و
اشکالزدایی نمایش داده میشوند. آنها هوکهای Plugin در OpenClaw را فراخوانی نمیکنند.
قرارداد پشتیبانی V1
موارد پشتیبانیشده در زمان اجرای Codex نسخه v1:
| سطح | پشتیبانی | دلیل |
|---|---|---|
| حلقه مدل OpenAI از طریق Codex | پشتیبانی میشود | app-serverِ Codex نوبت OpenAI، ازسرگیری بومی رشته و ادامه بومی ابزار را مدیریت میکند. |
| مسیریابی و تحویل کانال OpenClaw | پشتیبانی میشود | Telegram، Discord، Slack، WhatsApp، iMessage و دیگر کانالها خارج از زماناجرای مدل باقی میمانند. |
| ابزارهای پویای OpenClaw | پشتیبانی میشود | Codex از OpenClaw میخواهد این ابزارها را اجرا کند؛ بنابراین OpenClaw در مسیر اجرا باقی میماند. |
| Pluginهای پرامپت و زمینه | پشتیبانی میشود | OpenClaw پرامپت/زمینه ویژه OpenClaw را به نوبت Codex میافزاید، درحالیکه پرامپتهای پایه، مدل و اسناد پروژه پیکربندیشده تحت مالکیت Codex را در مسیر بومی Codex باقی میگذارد. OpenClaw شخصیت داخلی Codex را برای رشتههای بومی غیرفعال میکند تا فایلهای شخصیت فضای کاری عامل همچنان مرجع نهایی باشند. دستورالعملهای توسعهدهنده بومی Codex فقط راهنمایی فرمانی را میپذیرند که صریحاً به codex_app_server محدود شده باشد؛ راهنماییهای سراسری قدیمی فرمان برای سطوح پرامپت غیر Codex باقی میمانند. |
| چرخه حیات موتور زمینه | پشتیبانی میشود | سرهمبندی، ورود داده و نگهداری پس از نوبت پیرامون نوبتهای Codex اجرا میشوند. موتورهای زمینه جایگزین Compaction بومی Codex نمیشوند. |
| هوکهای ابزار پویا | پشتیبانی میشود | before_tool_call، after_tool_call و میانافزار نتیجه ابزار پیرامون ابزارهای پویای تحت مالکیت OpenClaw اجرا میشوند. |
| هوکهای چرخه حیات | بهعنوان مشاهدات آداپتور پشتیبانی میشود | llm_input، llm_output، agent_end، before_compaction و after_compaction با بارهای داده صادقانه حالت Codex فعال میشوند. |
| دروازه بازبینی پاسخ نهایی | از طریق رله هوک بومی پشتیبانی میشود | Stop در Codex به before_agent_finalize رله میشود؛ revise پیش از نهاییسازی، یک گذر دیگر مدل را از Codex درخواست میکند. |
| مسدودسازی یا مشاهده شل، وصله و MCP بومی | از طریق رله هوک بومی پشتیبانی میشود | PreToolUse و PostToolUse در Codex برای سطوح ابزار بومی ثبتشده، از جمله بارهای داده MCP در app-serverِ Codex با نسخه 0.142.0 یا جدیدتر، رله میشوند. مسدودسازی پشتیبانی میشود؛ بازنویسی آرگومانها پشتیبانی نمیشود. |
| سیاست مجوز بومی | از طریق تأییدهای app-serverِ Codex و رله سازگاری هوک بومی پشتیبانی میشود | درخواستهای تأیید app-serverِ Codex پس از بازبینی Codex از طریق OpenClaw مسیریابی میشوند. رله هوک بومی PermissionRequest برای حالتهای تأیید بومی نیازمند فعالسازی صریح است، زیرا Codex آن را پیش از بازبینی محافظ صادر میکند. |
| ثبت مسیر app-server | پشتیبانی میشود | OpenClaw درخواستی را که به app-server فرستاده و اعلانهایی را که از app-server دریافت میکند ثبت میکند. |
موارد پشتیبانینشده در زماناجرای Codex نسخه v1:
| سطح | مرز V1 | مسیر آینده |
|---|---|---|
| تغییر آرگومان ابزار بومی | هوکهای بومی پیش از ابزار Codex میتوانند مسدود کنند، اما OpenClaw آرگومانهای ابزار بومی Codex را بازنویسی نمیکند. | به پشتیبانی هوک/طرحواره Codex برای ورودی جایگزین ابزار نیاز دارد. |
| تاریخچه قابلویرایش رونوشت بومی Codex | Codex مالک تاریخچه مرجع رشته بومی است. OpenClaw مالک یک نسخه آینهای است و میتواند زمینه آینده را اضافه کند، اما نباید اجزای داخلی پشتیبانینشده را تغییر دهد. | اگر جراحی رشته بومی لازم است، APIهای صریح app-serverِ Codex اضافه شوند. |
tool_result_persist برای رکوردهای ابزار بومی Codex |
آن هوک نوشتههای رونوشت تحت مالکیت OpenClaw را تبدیل میکند، نه رکوردهای ابزار بومی Codex را. | میتوان رکوردهای تبدیلشده را آینه کرد، اما بازنویسی مرجع به پشتیبانی Codex نیاز دارد. |
| فراداده غنی Compaction بومی | OpenClaw میتواند Compaction بومی را درخواست کند، اما فهرست پایدار موارد نگهداشته/حذفشده، تغییر توکن، خلاصه تکمیل یا بار داده خلاصه را دریافت نمیکند. | به رویدادهای غنیتر Compaction در Codex نیاز دارد. |
| مداخله در Compaction | OpenClaw به Pluginها یا موتورهای زمینه اجازه نمیدهد Compaction بومی Codex را وتو، بازنویسی یا جایگزین کنند. | اگر Pluginها نیاز به وتو یا بازنویسی Compaction بومی دارند، هوکهای پیش/پس از Compaction به Codex افزوده شوند. |
| ثبت بایتبهبایت درخواست API مدل | OpenClaw میتواند درخواستها و اعلانهای app-server را ثبت کند، اما هسته Codex درخواست نهایی API مدل OpenAI را بهصورت داخلی میسازد. | به یک رویداد ردیابی درخواست مدل یا API اشکالزدایی در Codex نیاز دارد. |
مجوزهای بومی و درخواستهای اطلاعات MCP
برای PermissionRequest، OpenClaw فقط زمانی تصمیم صریح اجازه یا رد
برمیگرداند که سیاست تصمیمی گرفته باشد. نتیجه بدون تصمیم بهمعنای اجازه نیست: Codex
آن را نبود تصمیم هوک تلقی میکند و به مسیر محافظ یا تأیید کاربر
خود ادامه میدهد.
حالتهای تأیید app-serverِ Codex بهطور پیشفرض این هوک بومی را حذف میکنند. این
قاعده اعمال میشود مگر آنکه permission_request صریحاً در
nativeHookRelay.events گنجانده شده باشد یا یک زماناجرای سازگاری آن را نصب کند.
هنگامی که یک اپراتور allow-always را برای یک درخواست مجوز بومی Codex
انتخاب میکند، OpenClaw اثرانگشت دقیق ورودی ارائهدهنده/نشست/ابزار/cwd
را برای یک بازه محدود نشست به خاطر میسپارد. تصمیم بهخاطرسپردهشده
عمداً فقط با تطابق دقیق معتبر است: فرمان، آرگومانها، بار داده ابزار یا
cwd تغییریافته، تأیید تازهای ایجاد میکند.
درخواستهای تأیید ابزار MCP در Codex هنگامی از طریق جریان تأیید Plugin در OpenClaw
مسیریابی میشوند که Codex، _meta.codex_approval_kind را با مقدار "mcp_tool_call" علامتگذاری کند. request_user_input
در Codex یک پرسش Gateway مستقل از ارائهدهنده برای نشست
مبدأ ثبت میکند. Control UI کارت پرسش Gateway را نمایش میدهد و یک
گزینه غیرمحرمانه منفرد، هنگامی که کانال از آن پشتیبانی کند، از دکمههای نوعدار کانال استفاده میکند.
لمس دکمهها، پاسخهای Control UI و پاسخ متن ساده بعدی در صف، همگی
همان رکورد Gateway را پیش از بازگرداندن پاسخ app-server توسط OpenClaw حلوفصل میکنند.
حل خودکار Codex و لغو تلاش، مدت انتظار را محدود و رکورد را لغو میکنند.
پرسشهای محرمانه کاملاً در مسیر هشداردار پاسخ متنی باقی میمانند. دیگر درخواستهای
اطلاعات MCP بهصورت بسته ناموفق میشوند.
برای جریان عمومی تأیید Plugin که این پرامپتها را منتقل میکند، به درخواستهای مجوز Plugin مراجعه کنید.
هدایت صف
هدایت صف اجرای فعال به turn/steer در app-server مربوط به Codex نگاشت میشود. با
messages.queue.mode: "steer" پیشفرض، OpenClaw پیامهای گفتوگوی حالت هدایت را
در بازه سکوت پیکربندیشده دستهبندی میکند و آنها را بهترتیب ورود در قالب یک درخواست turn/steer
ارسال میکند.
نوبتهای بازبینی Codex و Compaction دستی میتوانند هدایت در همان نوبت را رد کنند. در
این حالت، OpenClaw پیش از شروع درخواست منتظر میماند تا اجرای فعال پایان یابد.
اگر پیامها باید بهطور پیشفرض بهجای هدایت در صف قرار گیرند، از /queue followup یا /queue collect
استفاده کنید. به صف هدایت مراجعه کنید.
بارگذاری بازخورد Codex
وقتی /diagnostics [note] برای یک نشست در مهار بومی Codex
تأیید شود، OpenClaw برای رشتههای مرتبط Codex، از جمله گزارشهای هر رشته
فهرستشده و زیررشتههای Codex ایجادشده در صورت موجود بودن، feedback/upload در
app-server مربوط به Codex را نیز فراخوانی میکند.
بارگذاری از مسیر عادی بازخورد Codex به سرورهای OpenAI انجام میشود. اگر
بازخورد Codex در آن app-server غیرفعال باشد، فرمان خطای
app-server را برمیگرداند. پاسخ عیبیابی تکمیلشده، کانالها،
شناسههای نشست OpenClaw، شناسههای رشته Codex و فرمانهای محلی codex resume <thread-id>
را برای رشتههای ارسالشده فهرست میکند.
اگر تأیید را رد کنید یا نادیده بگیرید، OpenClaw آن شناسههای Codex را چاپ نمیکند و بازخورد Codex را نمیفرستد. این بارگذاری جایگزین خروجی محلی عیبیابی Gateway نمیشود. برای رفتار مربوط به تأیید، حریم خصوصی، بسته محلی و گفتوگوی گروهی، به خروجی عیبیابی مراجعه کنید.
تنها زمانی از /codex diagnostics [note] استفاده کنید که بارگذاری بازخورد Codex
را برای رشته متصل فعلی، بدون بسته کامل عیبیابی Gateway، میخواهید.
Compaction و آینه رونوشت
وقتی مدل انتخابشده از مهار Codex استفاده میکند، Compaction بومی رشته
بر عهده app-server مربوط به Codex است. OpenClaw برای نوبتهای Codex، Compaction پیشاجرایی
انجام نمیدهد، Compaction متعلق به Codex را با Compaction موتور زمینه جایگزین نمیکند و وقتی
Compaction بومی قابل شروع نباشد، به خلاصهسازی OpenClaw یا عمومی OpenAI
بازنمیگردد. OpenClaw یک آینه رونوشت برای تاریخچه کانال، جستوجو،
/new، /reset و تغییر مدل یا مهار در آینده نگه میدارد.
درخواستهای صریح Compaction، مانند /compact یا عملیات Compaction دستی
درخواستشده توسط یک Plugin، Compaction بومی Codex را با thread/compact/start آغاز میکنند.
OpenClaw درخواست و اجاره کلاینت مشترک را باز نگه میدارد تا Codex آیتم تکمیل
contextCompaction متناظر را منتشر کند و سپس نوبت Compaction را
تکمیلشده گزارش میدهد. اگر آن نوبت پایانی از مهلت زمانی پیکربندیشده Compaction
فراتر رود، OpenClaw درخواست وقفه بومی نوبت را میدهد. اجاره و حصار Compaction
هر رشته تا زمانی نگه داشته میشوند که Codex وضعیت پایانی را گزارش کند یا
RPC وقفه را تأیید کند. اگر Codex در مهلت ارفاقی وقفه تأیید نکند،
OpenClaw پیش از آزادسازی حصار، اتصال را بازنشسته میکند. اتصالهای راهدور
همچنین پیوند رشته متناظر را جدا میکنند تا کارهای بعدی نتوانند
با یک نوبت راهدور تأییدنشده همپوشانی داشته باشند. نوبتهای دیگر روی یک اتصال بازنشسته
ناموفق میشوند و میتوانند با یک کلاینت تازه دوباره تلاش کنند. بستهشدن کلاینت، لغو درخواست یا
نوبت ناموفق Compaction، عملیاتی ناموفق برمیگرداند. Compaction خودکار ناشی از فشار زمینه
وظیفه Codex است؛ OpenClaw تنها برای محرکهایی که بهصورت دستی
درخواست شدهاند، Compaction بومی را آغاز میکند.
وقتی یک موتور زمینه، تصویرسازی راهاندازی رشته Codex را درخواست میکند، OpenClaw نامها و شناسههای فراخوانی ابزار، شکلهای ورودی و محتوای پالایششده نتیجه ابزار را در رشته تازه Codex تصویرسازی میکند. مقادیر خام آرگومانهای فراخوانی ابزار را در آن تصویرسازی کپی نمیکند.
این آینه شامل درخواست کاربر، متن نهایی دستیار و رکوردهای سبک استدلال یا برنامه Codex است، هرگاه app-server آنها را منتشر کند. OpenClaw شروع و وضعیت پایانی Compaction بومی را ثبت میکند، اما خلاصهای خوانا برای انسان از Compaction یا فهرستی قابل ممیزی از ورودیهایی که Codex پس از Compaction نگه داشته است، ارائه نمیکند.
ازآنجاکه Codex مالک رشته بومی مرجع است، tool_result_persist
رکوردهای نتیجه ابزار بومی Codex را بازنویسی نمیکند. این مورد تنها وقتی اعمال میشود که OpenClaw
نتیجه ابزار رونوشت نشست متعلق به OpenClaw را مینویسد.
رسانه و تحویل
OpenClaw همچنان مالک تحویل رسانه و انتخاب ارائهدهنده رسانه است. تصویر،
ویدئو، موسیقی، PDF، TTS و درک رسانه از تنظیمات متناظر ارائهدهنده/مدل،
مانند agents.defaults.mediaModels.image،
agents.defaults.mediaModels.video، pdfModel و tts استفاده میکنند.
متن، تصاویر، ویدئو، موسیقی، TTS، تأییدها و خروجی ابزار پیامرسانی همچنان
از مسیر عادی تحویل OpenClaw عبور میکنند؛ تولید رسانه به
زماناجرای قدیمی نیاز ندارد. وقتی Codex یک آیتم بومی تولید تصویر با
savedPath منتشر میکند، OpenClaw همان فایل را از مسیر عادی رسانه پاسخ
ارسال میکند، حتی اگر نوبت Codex فاقد متن دستیار باشد.