Fundamentals

محیط‌های اجرای عامل

یک زمان اجرای عامل مؤلفه‌ای است که مالک یک حلقه مدل آماده است: پرامپت را دریافت می‌کند، خروجی مدل را پیش می‌برد، فراخوانی‌های ابزار بومی را مدیریت می‌کند و نوبت تکمیل‌شده را به OpenClaw برمی‌گرداند.

زمان‌های اجرا به‌راحتی با ارائه‌دهنده‌ها اشتباه گرفته می‌شوند، چون هر دو نزدیک پیکربندی مدل ظاهر می‌شوند. این‌ها لایه‌های متفاوتی هستند:

لایه نمونه‌ها معنی آن
ارائه‌دهنده openai, anthropic, github-copilot اینکه OpenClaw چگونه احراز هویت می‌کند، مدل‌ها را کشف می‌کند و ارجاع‌های مدل را نام‌گذاری می‌کند.
مدل gpt-5.5, claude-opus-4-6 مدلی که برای نوبت عامل انتخاب شده است.
زمان اجرای عامل openclaw, codex, copilot, claude-cli حلقه یا پشتیبان سطح پایینی که نوبت آماده‌شده را اجرا می‌کند.
کانال Telegram, Discord, Slack, WhatsApp جایی که پیام‌ها وارد OpenClaw می‌شوند و از آن خارج می‌شوند.

در کد همچنین واژه هارنس را خواهید دید. هارنس پیاده‌سازی‌ای است که یک زمان اجرای عامل را فراهم می‌کند. برای مثال، هارنس Codex همراه‌سازی‌شده زمان اجرای codex را پیاده‌سازی می‌کند. پیکربندی عمومی از agentRuntime.id روی ورودی‌های ارائه‌دهنده یا مدل استفاده می‌کند؛ کلیدهای زمان اجرای کل عامل میراثی هستند و نادیده گرفته می‌شوند. openclaw doctor --fix پین‌های قدیمی زمان اجرای کل عامل را حذف می‌کند و ارجاع‌های مدل زمان اجرای میراثی را در صورت نیاز به ارجاع‌های استاندارد ارائه‌دهنده/مدل به‌همراه سیاست زمان اجرای محدود به مدل بازنویسی می‌کند.

دو خانواده زمان اجرا وجود دارد:

  • هارنس‌های جاسازی‌شده داخل حلقه عامل آماده‌شده OpenClaw اجرا می‌شوند. امروز این شامل زمان اجرای داخلی openclaw به‌همراه هارنس‌های Plugin ثبت‌شده مانند codex و copilot است.
  • پشتیبان‌های CLI یک فرایند CLI محلی را اجرا می‌کنند، در حالی که ارجاع مدل را استاندارد نگه می‌دارند. برای مثال، anthropic/claude-opus-4-8 با یک agentRuntime.id: "claude-cli" محدود به مدل یعنی «مدل Anthropic را انتخاب کن، از طریق Claude CLI اجرا کن.» claude-cli شناسه هارنس جاسازی‌شده نیست و نباید به انتخاب AgentHarness داده شود.

هارنس copilot یک هارنس Plugin خارجی جداگانه و اختیاری برای GitHub Copilot CLI است؛ برای تصمیم کاربرمحور بین PI، Codex و زمان اجرای عامل GitHub Copilot، زمان اجرای عامل GitHub Copilot را ببینید.

سطوح Codex

بیشتر سردرگمی از چند سطح متفاوت می‌آید که همگی نام Codex را به اشتراک می‌گذارند:

سطح نام/پیکربندی OpenClaw کاری که انجام می‌دهد
زمان اجرای بومی اپ‌سرور Codex ارجاع‌های مدل openai/* نوبت‌های عامل جاسازی‌شده OpenAI را از طریق اپ‌سرور Codex اجرا می‌کند. این راه‌اندازی معمول اشتراک ChatGPT/Codex است.
پروفایل‌های احراز هویت OAuth در Codex پروفایل‌های OAuth مربوط به openai احراز هویت اشتراک ChatGPT/Codex را ذخیره می‌کند که هارنس اپ‌سرور Codex مصرف می‌کند.
آداپتور ACP در Codex runtime: "acp", agentId: "codex" Codex را از طریق صفحه کنترل خارجی ACP/acpx اجرا می‌کند. فقط زمانی استفاده کنید که ACP/acpx صراحتا درخواست شده باشد.
مجموعه فرمان کنترل گفت‌وگوی بومی Codex /codex ... نخ‌های اپ‌سرور Codex را از گفت‌وگو متصل، ازسرگیری، هدایت، متوقف و بررسی می‌کند.
مسیر OpenAI Platform API برای سطوح غیرعاملی openai/* به‌همراه احراز هویت کلید API برای APIهای مستقیم OpenAI مانند تصویر، embedding، گفتار و realtime استفاده می‌شود.

این سطوح عمدا مستقل هستند. فعال کردن Plugin codex قابلیت‌های بومی اپ‌سرور را در دسترس قرار می‌دهد؛ openclaw doctor --fix مالک تعمیر مسیر میراثی میراثی Codex و پاک‌سازی پین‌های نشست کهنه است. انتخاب openai/* برای مدل عامل اکنون یعنی «این را از طریق Codex اجرا کن»، مگر اینکه یک سطح OpenAI API غیرعاملی در حال استفاده باشد.

راه‌اندازی رایج اشتراک ChatGPT/Codex از OAuth در Codex برای احراز هویت استفاده می‌کند، اما ارجاع مدل را به‌صورت openai/* نگه می‌دارد و زمان اجرای codex را انتخاب می‌کند:

json5
{  agents: {    defaults: {      model: "openai/gpt-5.5",    },  },}

این یعنی OpenClaw یک ارجاع مدل OpenAI را انتخاب می‌کند، سپس از زمان اجرای اپ‌سرور Codex می‌خواهد نوبت عامل جاسازی‌شده را اجرا کند. این به معنی «استفاده از صورت‌حساب API» نیست، و به این معنی نیست که کانال، کاتالوگ ارائه‌دهنده مدل یا ذخیره نشست OpenClaw به Codex تبدیل می‌شود.

وقتی Plugin همراه‌سازی‌شده codex فعال است، کنترل Codex با زبان طبیعی باید از سطح فرمان بومی /codex (/codex bind, /codex threads, /codex resume, /codex steer, /codex stop) به‌جای ACP استفاده کند. ACP را برای Codex فقط زمانی استفاده کنید که کاربر صراحتا ACP/acpx را درخواست کرده باشد یا در حال آزمودن مسیر آداپتور ACP باشد. Claude Code، Gemini CLI، OpenCode، Cursor و هارنس‌های خارجی مشابه همچنان از ACP استفاده می‌کنند.

این درخت تصمیم عامل‌محور است:

  1. اگر کاربر اتصال/کنترل/نخ/ازسرگیری/هدایت/توقف Codex را بخواهد، وقتی Plugin همراه‌سازی‌شده codex فعال است از سطح فرمان بومی /codex استفاده کنید.
  2. اگر کاربر Codex به‌عنوان زمان اجرای جاسازی‌شده را بخواهد یا تجربه معمول عامل Codex مبتنی بر اشتراک را بخواهد، از openai/<model> استفاده کنید.
  3. اگر کاربر صراحتا OpenClaw برای یک مدل OpenAI را انتخاب کند، ارجاع مدل را به‌صورت openai/<model> نگه دارید و سیاست زمان اجرای ارائه‌دهنده/مدل را روی agentRuntime.id: "openclaw" تنظیم کنید. یک پروفایل OAuth انتخاب‌شده openai به‌صورت داخلی از طریق انتقال احراز هویت Codex در OpenClaw مسیریابی می‌شود.
  4. اگر پیکربندی میراثی هنوز شامل ارجاع‌های مدل میراثی Codex است، آن را با openclaw doctor --fix به openai/<model> تعمیر کنید؛ doctor مسیر احراز هویت Codex را با افزودن agentRuntime.id: "codex" محدود به ارائه‌دهنده/مدل در جاهایی که ارجاع مدل قدیمی آن را القا می‌کرد حفظ می‌کند. ارجاع‌های مدل میراثی codex-cli/* به همان مسیر اپ‌سرور Codex با openai/<model> تعمیر می‌شوند؛ OpenClaw دیگر یک پشتیبان Codex CLI همراه‌سازی‌شده نگه نمی‌دارد.
  5. اگر کاربر صراحتا ACP، acpx یا آداپتور ACP در Codex را بگوید، از ACP با runtime: "acp" و agentId: "codex" استفاده کنید.
  6. اگر درخواست برای Claude Code، Gemini CLI، OpenCode، Cursor، Droid یا هارنس خارجی دیگری است، از ACP/acpx استفاده کنید، نه زمان اجرای زیرعامل بومی.
منظورتان این است... استفاده کنید از...
کنترل گفت‌وگو/نخ اپ‌سرور Codex /codex ... از Plugin همراه‌سازی‌شده codex
زمان اجرای عامل جاسازی‌شده اپ‌سرور Codex ارجاع‌های مدل عامل openai/*
OAuth در OpenAI Codex پروفایل‌های OAuth مربوط به openai
Claude Code یا هارنس خارجی دیگر ACP/acpx

برای جداسازی پیشوند خانواده OpenAI، OpenAI و ارائه‌دهندگان مدل را ببینید. برای قرارداد پشتیبانی زمان اجرای Codex، زمان اجرای هارنس Codex را ببینید.

مالکیت زمان اجرا

زمان‌های اجرای مختلف مقدارهای متفاوتی از حلقه را مالک هستند.

سطح جاسازی‌شده OpenClaw اپ‌سرور Codex
مالک حلقه مدل OpenClaw از طریق اجراکننده جاسازی‌شده OpenClaw اپ‌سرور Codex
وضعیت نخ استاندارد رونوشت OpenClaw نخ Codex، به‌همراه آینه رونوشت OpenClaw
ابزارهای پویای OpenClaw حلقه ابزار بومی OpenClaw از طریق آداپتور Codex پل زده می‌شود
ابزارهای پوسته و فایل بومی مسیر OpenClaw ابزارهای بومی Codex، در صورت پشتیبانی از طریق قلاب‌های بومی پل زده می‌شود
موتور زمینه سرهم‌سازی زمینه بومی OpenClaw OpenClaw زمینه پروژه‌ها را داخل نوبت Codex سرهم می‌کند
Compaction OpenClaw یا موتور زمینه انتخاب‌شده Compaction بومی Codex، با اعلان‌های OpenClaw و نگهداری آینه
تحویل کانال OpenClaw OpenClaw

این تقسیم مالکیت قانون اصلی طراحی است:

  • اگر OpenClaw مالک سطح باشد، OpenClaw می‌تواند رفتار عادی قلاب Plugin را فراهم کند.
  • اگر زمان اجرای بومی مالک سطح باشد، OpenClaw به رویدادهای زمان اجرا یا قلاب‌های بومی نیاز دارد.
  • اگر زمان اجرای بومی مالک وضعیت استاندارد نخ باشد، OpenClaw باید زمینه را آینه و تصویر کند، نه اینکه داخلی‌های پشتیبانی‌نشده را بازنویسی کند.

انتخاب زمان اجرا

OpenClaw پس از حل ارائه‌دهنده و مدل، یک زمان اجرای جاسازی‌شده را انتخاب می‌کند:

  1. سیاست زمان اجرای محدود به مدل اولویت دارد. این می‌تواند در یک ورودی مدل ارائه‌دهنده پیکربندی‌شده یا در agents.defaults.models["provider/model"].agentRuntime / agents.list[].models["provider/model"].agentRuntime باشد. یک wildcard ارائه‌دهنده مانند agents.defaults.models["vllm/*"].agentRuntime پس از سیاست مدل دقیق اعمال می‌شود، تا مدل‌های ارائه‌دهنده که به‌صورت پویا کشف شده‌اند بتوانند یک زمان اجرا را بدون بازنویسی استثناهای دقیق هر مدل به اشتراک بگذارند.
  2. سیاست زمان اجرای محدود به ارائه‌دهنده در مرحله بعد و در models.providers.<provider>.agentRuntime می‌آید.
  3. در حالت auto، زمان‌های اجرای Plugin ثبت‌شده می‌توانند جفت‌های ارائه‌دهنده/مدل پشتیبانی‌شده را ادعا کنند.
  4. اگر در حالت auto هیچ زمان اجرایی یک نوبت را ادعا نکند، OpenClaw از openclaw به‌عنوان زمان اجرای سازگاری استفاده می‌کند. وقتی اجرا باید سخت‌گیرانه باشد از شناسه زمان اجرای صریح استفاده کنید.

پین‌های زمان اجرای کل نشست و کل عامل نادیده گرفته می‌شوند. این شامل OPENCLAW_AGENT_RUNTIME، وضعیت نشست agentHarnessId/agentRuntimeOverride، agents.defaults.agentRuntime و agents.list[].agentRuntime است. برای حذف پیکربندی کهنه زمان اجرای کل عامل و تبدیل ارجاع‌های مدل زمان اجرای میراثی در جاهایی که OpenClaw می‌تواند نیت را حفظ کند، openclaw doctor --fix را اجرا کنید.

زمان‌های اجرای Plugin صریح ارائه‌دهنده/مدل بسته شکست می‌خورند. برای مثال، agentRuntime.id: "codex" روی یک ارائه‌دهنده یا مدل یعنی Codex یا یک خطای روشن انتخاب/زمان اجرا؛ هرگز بی‌صدا دوباره به OpenClaw مسیریابی نمی‌شود.

نام‌های مستعار پشتیبان CLI با شناسه‌های هارنس جاسازی‌شده متفاوت‌اند. شکل ترجیحی Claude CLI این است:

json5
{  agents: {    defaults: {      model: "anthropic/claude-opus-4-8",      models: {        "anthropic/claude-opus-4-8": {          agentRuntime: { id: "claude-cli" },        },      },    },  },}

ارجاع‌های میراثی مانند claude-cli/claude-opus-4-7 برای سازگاری همچنان پشتیبانی می‌شوند، اما پیکربندی جدید باید ارائه‌دهنده/مدل را استاندارد نگه دارد و پشتیبان اجرا را در سیاست زمان اجرای ارائه‌دهنده/مدل قرار دهد.

ارجاع‌های میراثی codex-cli/* متفاوت‌اند: doctor آن‌ها را به openai/* مهاجرت می‌دهد تا به‌جای حفظ یک پشتیبان Codex CLI از طریق هارنس اپ‌سرور Codex اجرا شوند.

حالت auto برای بیشتر ارائه‌دهنده‌ها عمدا محافظه‌کار است. مدل‌های عامل OpenAI استثنا هستند: زمان اجرای تنظیم‌نشده و auto هر دو به هارنس Codex حل می‌شوند. پیکربندی صریح زمان اجرای OpenClaw یک مسیر سازگاری اختیاری برای نوبت‌های عامل openai/* باقی می‌ماند؛ وقتی با یک پروفایل OAuth انتخاب‌شده openai همراه شود، OpenClaw آن مسیر را به‌صورت داخلی از طریق انتقال احراز هویت Codex مسیریابی می‌کند، در حالی که ارجاع مدل عمومی را به‌صورت openai/* نگه می‌دارد. پین‌های نشست زمان اجرای OpenAI کهنه توسط انتخاب زمان اجرا نادیده گرفته می‌شوند و می‌توان آن‌ها را با openclaw doctor --fix پاک کرد.

اگر openclaw doctor هشدار داد که Plugin مربوط به codex در حالی فعال است که ارجاع‌های مدل قدیمی Codex همچنان در پیکربندی باقی مانده‌اند، آن را به‌عنوان وضعیت مسیر قدیمی در نظر بگیرید. اجرا کنید openclaw doctor --fix تا آن را با زمان اجرای Codex به openai/* بازنویسی کند.

زمان اجرای عامل GitHub Copilot

Plugin خارجی @openclaw/copilot یک زمان اجرای اختیاری copilot را ثبت می‌کند که با GitHub Copilot CLI (@github/copilot-sdk) پشتیبانی می‌شود. این Plugin ارائه‌دهنده اشتراک متعارف github-copilot را تصاحب می‌کند و هرگز توسط auto انتخاب نمی‌شود. برای هر مدل یا هر ارائه‌دهنده از طریق agentRuntime.id فعالش کنید:

json5
{  agents: {    defaults: {      model: "github-copilot/gpt-5.5",      models: {        "github-copilot/gpt-5.5": {          agentRuntime: { id: "copilot" },        },      },    },  },}

این هارنس، ارائه‌دهنده، زمان اجرا، کلید نشست CLI، و پیشوند پروفایل احراز هویت خود را در extensions/copilot/doctor-contract-api.ts تصاحب می‌کند؛ فایلی که openclaw doctor به‌صورت خودکار بارگذاری می‌کند. برای پیکربندی، احراز هویت، آینه‌سازی رونوشت، Compaction، قرارداد اعلانی doctor، و تصمیم گسترده‌تر PI در برابر Codex در برابر Copilot SDK، زمان اجرای عامل GitHub Copilot را ببینید.

قرارداد سازگاری

وقتی یک زمان اجرا OpenClaw نیست، باید مستند کند که از کدام سطح‌های OpenClaw پشتیبانی می‌کند. برای مستندات زمان اجرا از این ساختار استفاده کنید:

پرسش چرا اهمیت دارد
چه کسی مالک حلقه مدل است؟ تعیین می‌کند تلاش‌های مجدد، ادامه ابزار، و تصمیم‌های پاسخ نهایی کجا انجام می‌شوند.
چه کسی مالک تاریخچه رشته متعارف است؟ تعیین می‌کند که OpenClaw می‌تواند تاریخچه را ویرایش کند یا فقط آن را آینه کند.
آیا ابزارهای پویای OpenClaw کار می‌کنند؟ پیام‌رسانی، نشست‌ها، Cron، و ابزارهای متعلق به OpenClaw به این وابسته‌اند.
آیا قلاب‌های ابزار پویا کار می‌کنند؟ Pluginها انتظار before_tool_call، after_tool_call، و میان‌افزار پیرامون ابزارهای متعلق به OpenClaw را دارند.
آیا قلاب‌های ابزار بومی کار می‌کنند؟ ابزارهای پوسته، patch، و ابزارهای متعلق به زمان اجرا برای سیاست و مشاهده به پشتیبانی قلاب بومی نیاز دارند.
آیا چرخه عمر موتور زمینه اجرا می‌شود؟ Pluginهای حافظه و زمینه به چرخه عمر assemble، ingest، after-turn، و Compaction وابسته‌اند.
چه داده‌های Compaction نمایان می‌شود؟ برخی Pluginها فقط به اعلان‌ها نیاز دارند، در حالی که برخی دیگر به فراداده نگه‌داشته‌شده/حذف‌شده نیاز دارند.
چه چیزی عمداً پشتیبانی نمی‌شود؟ کاربران نباید در جاهایی که زمان اجرای بومی مالک وضعیت بیشتری است، هم‌ارزی با OpenClaw را فرض کنند.

قرارداد پشتیبانی زمان اجرای Codex در زمان اجرای هارنس Codex مستند شده است.

برچسب‌های وضعیت

خروجی وضعیت ممکن است هر دو برچسب Execution و Runtime را نشان دهد. آن‌ها را به‌عنوان تشخیص بخوانید، نه نام ارائه‌دهنده.

  • یک ارجاع مدل مانند openai/gpt-5.5 ارائه‌دهنده/مدل انتخاب‌شده را به شما نشان می‌دهد.
  • یک شناسه زمان اجرا مانند codex به شما نشان می‌دهد کدام حلقه در حال اجرای نوبت است.
  • یک برچسب کانال مانند Telegram یا Discord به شما نشان می‌دهد گفتگو کجا در حال انجام است.

اگر یک اجرا همچنان زمان اجرای غیرمنتظره‌ای را نشان می‌دهد، ابتدا سیاست زمان اجرای ارائه‌دهنده/مدل انتخاب‌شده را بررسی کنید. پین‌های زمان اجرای نشست قدیمی دیگر مسیریابی را تعیین نمی‌کنند.

مرتبط

Was this useful?
On this page

On this page