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 فاقد متن دستیار باشد.

مرتبط

Was this useful?
On this page

On this page