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 آن را مستقیماً و با عنوان DirectModelOnly برای مدل قابل‌مشاهده نگه می‌دارد، به‌جای آنکه در معرض اجرای تودرتوی Code Mode قرار دهد.

اتصال‌های رشته و تغییرات مدل

هنگامی که یک نشست OpenClaw به رشته‌ای موجود در Codex متصل است، نوبت بعدی مدل انتخاب‌شدهٔ فعلی، سیاست تأیید، سندباکس، بازبین تأییدها و ردهٔ سرویس را دوباره به app-server می‌فرستد. تغییر از openai/gpt-5.5 به openai/gpt-5.2 اتصال رشته را حفظ می‌کند، اما از Codex می‌خواهد با مدل تازه انتخاب‌شده ادامه دهد.

اتصال‌های تحت نظارت استثنا هستند. انتخاب‌گر مدل OpenClaw قفل می‌ماند و در ازسرگیری‌ها بازنویسی‌های مدل و ارائه‌دهنده حذف می‌شوند تا Codex مدل و ارائه‌دهندهٔ ماندگار رشتهٔ مرجع را بازیابی کند. یک کنترل بومی و جداگانهٔ Codex می‌تواند آن جفت ماندگار را تغییر دهد و تصویر اولیه می‌تواند هشدار عادی Codex دربارهٔ تفاوت مدل را ایجاد کند؛ مدل بیرونی OpenClaw و زنجیرهٔ جایگزین هرگز جایگزین هیچ‌یک نمی‌شوند.

نظارت و ادامهٔ ایمن

نظارت Codex قابلیتی اختیاری از همان Plugin‏ codex است. این قابلیت رشته‌های بومی را از طریق اتصالی جداگانه کشف می‌کند و فقط نشست‌های بایگانی‌نشده را در فهرست Gateway ارائه می‌دهد. بدون تنظیمات اتصال صریح appServer، این اتصال از stdio مدیریت‌شده در خانهٔ کاربر استفاده می‌کند، درحالی‌که مهار معمولی در دامنهٔ عامل باقی می‌ماند. فهرست‌کردن و خواندن فراداده غیرفعال‌اند: آن‌ها رشته‌ای را از سر نمی‌گیرند، OpenClaw را مشترک رویدادهای زندهٔ آن نمی‌کنند و به تأییدهای آن پاسخ نمی‌دهند.

برای یک نشست ذخیره‌شده یا بیکار روی رایانهٔ Gateway، ادامه به‌عنوان شاخه یک گفت‌وگوی عادی و قفل‌شده روی مدل ایجاد می‌کند و تاریخچهٔ محدودشدهٔ کاربر و دستیار را تا آخرین نوبت پایانی و ماندگار مبدأ آینه می‌کند. نخستین نوبت عادی گفت‌وگو کنترل‌کننده‌های واقعی تأیید را نصب می‌کند و از یک انشعاب بومی موقت برای تثبیت تصویر، بدون بازنویسی مدل یا ارائه‌دهنده، استفاده می‌کند. Codex App Server از پیکربندی بومی فعلی خود استفاده می‌کند و جفت انتخاب‌شده را بازمی‌گرداند؛ اگر آن مدل با آخرین مدل ثبت‌شدهٔ مبدأ تفاوت داشته باشد، هشدار عادی خود را صادر می‌کند. OpenClaw روی همان اتصال نظارت، رشتهٔ مرجع مهار Codex با مبدأ appServer را تحت دایرکتوری کاری و سیاست زمان اجرای آن، دقیقاً با مدل و ارائه‌دهندهٔ بازگردانده‌شده برای آن شروع اولیه، آغاز می‌کند، تاریخچهٔ قابل‌مشاهدهٔ محدودشده را تزریق می‌کند و انشعاب موقت را بایگانی می‌کند. مبدأ هرگز از سر گرفته نمی‌شود. رشتهٔ مرجع تمام سطح ابزار مهار OpenClaw را دارد؛ استدلال، فراخوانی‌های ابزار و نتایج ابزار از مبدأ در آن شبیه‌سازی نمی‌شوند. دامنهٔ اتصال خصوصی در وضعیت‌های درانتظار و ثبت‌شدهٔ اتصال باقی می‌ماند؛ بنابراین هر نوبت بعدی با احراز هویت بومی و پیکربندی ارائه‌دهنده روی همان اتصال می‌ماند. نظارت غیرفعال یا انحراف اتصال/ارتباط، به‌جای تغییر به مهار معمولی خانهٔ عامل، به‌صورت بسته شکست می‌خورد.

مبدأ اصلی CLI یا VS Code همچنان واجد شرایط حضور در هر دو فهرست است. شاخهٔ مرجع یک رشتهٔ بومی Codex است، اما نوع مبدأ آن appServer است؛ کلاینت‌های بومی ممکن است این نوع مبدأ را فیلتر کنند، بنابراین نمایش آن در Codex Desktop تضمین‌شده نیست.

مبدأهای فعال نمی‌توانند شاخه‌ای جدید آغاز کنند یا بایگانی شوند؛ یک گفت‌وگوی تحت نظارت موجود همچنان قابل بازشدن است. notLoaded به معنای نامشخص‌بودن فعالیت است، نه بیکاری؛ OpenClaw فقط پس از تأیید صریح نبود اجراکنندهٔ دیگر و خواندن تازهٔ وضعیت در سطح فرایند محلی، بایگانی یک ردیف محلی idle یا notLoaded را مجاز می‌کند. Codex تغییرات رشته را درون یک فرایند App Server به‌صورت ترتیبی اجرا می‌کند، اما اجارهٔ انحصاری اجراکننده یا مالک تأیید میان‌فرایندی ارائه نمی‌دهد؛ بنابراین این خواندن نمی‌تواند ثابت کند فرایند دیگری از رشته استفاده نمی‌کند. OpenClaw مالک اتصال فعال و شناخته‌شده را برای هدف دقیق یا هر نسل بایگانی‌نشده‌ای که پرس‌وجوی صفحه‌بندی‌شدهٔ نسل‌های Codex بازمی‌گرداند، مسدود می‌کند. خطاهای شمارش، چرخه‌ها و پایان‌یافتن حد ایمنی به‌صورت بسته شکست می‌خورند. بایگانی بومی همچنان ممکن است با نوبتی جدید در فرایندی دیگر وارد وضعیت رقابتی شود؛ بنابراین تأیید، کلاینت‌های ناشناخته و فاصلهٔ میان خواندن وضعیت و بایگانی را پوشش می‌دهد. گفت‌وگوی تحت نظارت و قفل‌شده روی مدل تا زمانی که از اتصال بومی محافظت می‌کند، قابل حذف نیست.

فهرست‌های Node جفت‌شده در انتشار اولیه فقط شامل فراداده می‌مانند. مرز فراخوانی فعلی Node از نوع درخواست/پاسخ است و نمی‌تواند رویدادهای بلندمدت نوبت، درخواست‌های تأیید یا خروجی جریانی لازم برای یک اتصال واقعی مهار Codex را انتقال دهد. بنابراین ادامه و بایگانی راه‌دور، حتی هنگامی که ردیف بیکار است، در دسترس نمی‌مانند.

برای راه‌اندازی اپراتور و رفتار قابل‌مشاهدهٔ رابط کنترل، به نظارت Codex مراجعه کنید.

پاسخ‌های قابل‌مشاهده و Heartbeatها

نوبت‌های گفت‌وگوی مستقیم/مبدأ از طریق مهار Codex به‌طور پیش‌فرض برای سطوح داخلی WebChat، متن نهایی دستیار را خودکار تحویل می‌دهند و با قرارداد مهار Pi مطابقت دارند: عامل به‌طور عادی پاسخ می‌دهد و OpenClaw متن نهایی را در گفت‌وگوی مبدأ ارسال می‌کند. برای خصوصی نگه‌داشتن متن نهایی دستیار، مگر زمانی که عامل message(action="send") را فراخوانی کند، مقدار messages.visibleReplies: "message_tool" را تنظیم کنید.

نوبت‌های 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 برای مسیریابی رفتار Plugin از فایل‌های hooks.json سراسری یا پروژهٔ Codex استفاده نمی‌کند. 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 و میان‌افزار در آداپتور مهار اجرا می‌شود. برای ابزارهای بومی 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

موارد پشتیبانی‌شده در زمان اجرای v1‏ Codex:

سطح پشتیبانی دلیل
حلقهٔ مدل 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 نسخهٔ ۱:

سطح مرز نسخهٔ ۱ مسیر آینده
تغییر آرگومان ابزار بومی هوک‌های بومی پیش از ابزار 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 گنجانده شود یا یک زمان اجرای سازگاری آن را نصب کند.

هنگامی که یک اپراتور برای درخواست مجوز بومی Codex گزینهٔ allow-always را انتخاب می‌کند، OpenClaw اثر انگشت دقیق ارائه‌دهنده/نشست/ورودی ابزار/cwd را برای یک بازهٔ محدود نشست به‌خاطر می‌سپارد. تصمیم به‌خاطرسپرده‌شده عمداً فقط با تطابق دقیق اعمال می‌شود: تغییر فرمان، آرگومان‌ها، بار دادهٔ ابزار یا cwd یک تأیید تازه ایجاد می‌کند.

درخواست‌های تأیید ابزار MCP در Codex، هنگامی که Codex مقدار _meta.codex_approval_kind را برابر با "mcp_tool_call" قرار می‌دهد، از طریق جریان تأیید Plugin در OpenClaw مسیریابی می‌شوند. پرامپت‌های request_user_input در 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، تابع feedback/upload در app-server Codex را فراخوانی می‌کند؛ این بارگذاری در صورت دسترس‌بودن، گزارش‌های هر رشته فهرست‌شده و زیررشته‌های Codex ایجادشده را نیز شامل می‌شود.

بارگذاری از مسیر عادی بازخورد Codex به سرورهای OpenAI انجام می‌شود. اگر بازخورد Codex در آن app-server غیرفعال باشد، فرمان خطای app-server را برمی‌گرداند. پاسخ نهایی عیب‌یابی، کانال‌ها، شناسه‌های نشست OpenClaw، شناسه‌های رشته Codex و فرمان‌های محلی codex resume <thread-id> مربوط به رشته‌های ارسال‌شده را فهرست می‌کند.

اگر تأیید را رد کنید یا نادیده بگیرید، OpenClaw آن شناسه‌های Codex را چاپ نمی‌کند و بازخورد Codex را نمی‌فرستد. این بارگذاری جایگزین خروجی محلی عیب‌یابی Gateway نمی‌شود. برای آگاهی از رفتار مربوط به تأیید، حریم خصوصی، بسته محلی و گفت‌وگوی گروهی، به خروجی عیب‌یابی مراجعه کنید.

تنها زمانی از /codex diagnostics [note] استفاده کنید که بدون بسته کامل عیب‌یابی Gateway، بارگذاری بازخورد Codex را برای رشته متصل فعلی می‌خواهید.

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.imageGenerationModel، videoGenerationModel، pdfModel و messages.tts استفاده می‌کنند.

متن، تصاویر، ویدئو، موسیقی، TTS، تأییدها و خروجی ابزار پیام‌رسانی همچنان از مسیر عادی تحویل OpenClaw عبور می‌کنند؛ تولید رسانه به محیط اجرای قدیمی نیاز ندارد. هنگامی که Codex یک مورد بومی تولید تصویر با savedPath منتشر می‌کند، OpenClaw همان فایل را دقیقاً از مسیر عادی رسانه پاسخ ارسال می‌کند، حتی اگر نوبت Codex هیچ متن دستیار نداشته باشد.

مطالب مرتبط

Was this useful?
On this page

On this page