الانتقال إلى المحتوى الرئيسي
وكيل agent runtime هو المكوّن الذي يملك حلقة نموذج واحدة مُحضّرة: فهو يتلقى الموجّه، ويقود مخرجات النموذج، ويتعامل مع استدعاءات الأدوات الأصلية، ويعيد الدورة المكتملة إلى OpenClaw. من السهل الخلط بين أوقات التشغيل والمزوّدين لأن كليهما يظهر قرب إعدادات النموذج. لكنها طبقات مختلفة:
الطبقةأمثلةما يعنيه ذلك
المزوّدopenai, anthropic, github-copilotكيف يصادق OpenClaw، ويكتشف النماذج، ويسمّي مراجع النماذج.
النموذجgpt-5.5, claude-opus-4-6النموذج المحدد لدورة الوكيل.
وقت تشغيل الوكيلopenclaw, codex, copilot, claude-cliالحلقة أو الخلفية منخفضة المستوى التي تنفذ الدورة المُحضّرة.
القناةTelegram, Discord, Slack, WhatsAppأين تدخل الرسائل إلى OpenClaw وتخرج منه.
سترى أيضاً كلمة harness في الكود. الـ harness هو التنفيذ الذي يوفّر وقت تشغيل وكيل. على سبيل المثال، ينفذ Codex harness المضمّن وقت التشغيل codex. تستخدم الإعدادات العامة agentRuntime.id في إدخالات المزوّد أو النموذج؛ أما مفاتيح وقت التشغيل على مستوى الوكيل كله فهي قديمة ويتم تجاهلها. يزيل openclaw doctor --fix تثبيتات وقت التشغيل القديمة على مستوى الوكيل كله ويعيد كتابة مراجع نماذج وقت التشغيل القديمة إلى مراجع مزوّد/نموذج معيارية إضافةً إلى سياسة وقت تشغيل محددة بالنموذج عند الحاجة. هناك عائلتان لوقت التشغيل:
  • تعمل harnesses المضمّنة داخل حلقة وكيل OpenClaw المُحضّرة. اليوم يشمل ذلك وقت التشغيل openclaw المدمج إضافةً إلى plugin harnesses المسجلة مثل codex وcopilot.
  • تشغّل خلفيات CLI عملية CLI محلية مع إبقاء مرجع النموذج معيارياً. على سبيل المثال، anthropic/claude-opus-4-8 مع agentRuntime.id: "claude-cli" محدد بالنموذج يعني “حدد نموذج Anthropic ونفّذه عبر Claude CLI.” لا يُعد claude-cli معرّف harness مضمّن ويجب عدم تمريره إلى اختيار AgentHarness.
يُعد copilot harness منفصلاً، واختيارياً، وPlugin خارجياً لـ GitHub Copilot CLI؛ راجع وقت تشغيل وكيل GitHub Copilot للقرار الموجّه للمستخدم بين PI وCodex ووقت تشغيل وكيل GitHub Copilot.

أسطح Codex

ينشأ معظم الالتباس من عدة أسطح مختلفة تشترك في اسم Codex:
السطحاسم/إعداد OpenClawما يفعله
وقت تشغيل خادم تطبيق Codex الأصليمراجع نماذج openai/*يشغّل دورات وكيل OpenAI المضمّنة عبر خادم تطبيق Codex. هذا هو إعداد اشتراك ChatGPT/Codex المعتاد.
ملفات تعريف مصادقة Codex OAuthملفات تعريف OAuth لـ openaiتخزن مصادقة اشتراك ChatGPT/Codex التي يستهلكها Codex app-server harness.
مهايئ Codex ACPruntime: "acp", agentId: "codex"يشغّل Codex عبر مستوى التحكم الخارجي ACP/acpx. استخدمه فقط عندما يُطلب ACP/acpx صراحةً.
مجموعة أوامر التحكم الأصلية في محادثة Codex/codex ...تربط خيوط خادم تطبيق Codex من الدردشة وتستأنفها وتوجهها وتوقفها وتفحصها.
مسار OpenAI Platform API للأسطح غير الوكيلةopenai/* مع مصادقة مفتاح APIيُستخدم لواجهات OpenAI API المباشرة مثل الصور، والتضمينات، والكلام، والوقت الحقيقي.
هذه الأسطح مستقلة عمداً. يؤدي تمكين Plugin codex إلى إتاحة ميزات خادم التطبيق الأصلية؛ ويتولى openclaw doctor --fix إصلاح مسارات Codex القديمة وتنظيف تثبيتات الجلسات البالية. يعني تحديد openai/* لنموذج وكيل الآن “شغّل هذا عبر Codex” ما لم يكن سطح OpenAI API غير وكيل قيد الاستخدام. يستخدم إعداد اشتراك ChatGPT/Codex الشائع Codex OAuth للمصادقة، لكنه يُبقي مرجع النموذج كـ openai/* ويحدد وقت التشغيل codex:
{
  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 وما شابهها من harnesses الخارجية تستخدم ACP. هذه شجرة القرار الموجهة للوكيل:
  1. إذا طلب المستخدم ربط/تحكم/خيط/استئناف/توجيه/إيقاف Codex، فاستخدم سطح أوامر /codex الأصلي عندما يكون Plugin codex المضمّن ممكّناً.
  2. إذا طلب المستخدم Codex كوقت التشغيل المضمّن أو أراد تجربة وكيل Codex العادية المدعومة بالاشتراك، فاستخدم openai/<model>.
  3. إذا اختار المستخدم صراحةً OpenClaw لنموذج OpenAI، فأبقِ مرجع النموذج كـ openai/<model> واضبط سياسة وقت تشغيل المزوّد/النموذج إلى agentRuntime.id: "openclaw". يُوجَّه ملف تعريف OAuth openai المحدد داخلياً عبر نقل مصادقة Codex في OpenClaw.
  4. إذا كانت الإعدادات القديمة لا تزال تحتوي على مراجع نماذج Codex قديمة، فأصلحها إلى openai/<model> باستخدام openclaw doctor --fix؛ يحافظ doctor على مسار مصادقة Codex بإضافة agentRuntime.id: "codex" محدد بنطاق المزوّد/النموذج حيث كان مرجع النموذج القديم يشير إلى ذلك. تُصلح مراجع نماذج codex-cli/* القديمة إلى مسار خادم تطبيق Codex نفسه openai/<model>؛ لم يعد OpenClaw يحتفظ بخلفية Codex CLI مضمّنة.
  5. إذا قال المستخدم صراحةً ACP، أو acpx، أو مهايئ Codex ACP، فاستخدم ACP مع runtime: "acp" وagentId: "codex".
  6. إذا كان الطلب لـ Claude Code أو Gemini CLI أو OpenCode أو Cursor أو Droid أو harness خارجي آخر، فاستخدم ACP/acpx، لا وقت تشغيل الوكيل الفرعي الأصلي.
تقصد…استخدم…
تحكم محادثة/خيط خادم تطبيق Codex/codex ... من Plugin codex المضمّن
وقت تشغيل وكيل خادم تطبيق Codex المضمّنمراجع نماذج الوكيل openai/*
OpenAI Codex OAuthملفات تعريف OAuth لـ openai
Claude Code أو harness خارجي آخرACP/acpx
لتقسيم بادئات عائلة OpenAI، راجع OpenAI و مزوّدي النماذج. لعقد دعم وقت تشغيل Codex، راجع وقت تشغيل Codex harness.

ملكية وقت التشغيل

تملك أوقات التشغيل المختلفة مقادير مختلفة من الحلقة.
السطحOpenClaw المضمّنخادم تطبيق Codex
مالك حلقة النموذجOpenClaw عبر مشغّل OpenClaw المضمّنخادم تطبيق Codex
حالة الخيط المعياريةنص OpenClawخيط Codex، إضافةً إلى مرآة نص OpenClaw
أدوات OpenClaw الديناميكيةحلقة أدوات OpenClaw الأصليةموصولة عبر مهايئ Codex
أدوات الصدفة والملفات الأصليةمسار OpenClawأدوات Codex الأصلية، موصولة عبر الخطافات الأصلية حيث تكون مدعومة
محرك السياقتجميع سياق OpenClaw الأصلييُجمّع OpenClaw سياق المشاريع في دورة Codex
CompactionOpenClaw أو محرك السياق المحددضغط Codex الأصلي، مع إشعارات OpenClaw وصيانة المرآة
تسليم القناةOpenClawOpenClaw
هذا التقسيم في الملكية هو قاعدة التصميم الأساسية:
  • إذا كان OpenClaw يملك السطح، فيمكن لـ OpenClaw توفير سلوك خطافات Plugin العادي.
  • إذا كان وقت التشغيل الأصلي يملك السطح، يحتاج OpenClaw إلى أحداث وقت تشغيل أو خطافات أصلية.
  • إذا كان وقت التشغيل الأصلي يملك حالة الخيط المعيارية، فيجب أن يعكس OpenClaw السياق ويسقطه، لا أن يعيد كتابة داخليات غير مدعومة.

اختيار وقت التشغيل

يختار OpenClaw وقت تشغيل مضمّناً بعد حل المزوّد والنموذج:
  1. سياسة وقت التشغيل المحددة بالنموذج لها الأولوية. يمكن أن توجد في إدخال نموذج مزوّد مُعدّ أو في agents.defaults.models["provider/model"].agentRuntime / agents.list[].models["provider/model"].agentRuntime. تُطبَّق صيغة بدل المزوّد مثل 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 doctor --fix لإزالة إعدادات وقت التشغيل البالية على مستوى الوكيل كله وتحويل مراجع نماذج وقت التشغيل القديمة حيث يمكن لـ OpenClaw الحفاظ على القصد. تفشل أوقات تشغيل Plugin الصريحة على مستوى المزوّد/النموذج بإغلاق صارم. على سبيل المثال، agentRuntime.id: "codex" على مزوّد أو نموذج يعني Codex أو خطأ اختيار/وقت تشغيل واضحاً؛ ولا يُعاد توجيهه بصمت إلى OpenClaw أبداً. تختلف أسماء خلفيات CLI المستعارة عن معرّفات harness المضمّنة. الصيغة المفضلة لـ Claude CLI هي:
{
  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 app-server harness بدلاً من الحفاظ على خلفية Codex CLI. وضع auto محافظ عمداً لمعظم المزوّدين. تُعد نماذج وكلاء OpenAI الاستثناء: كل من وقت التشغيل غير المضبوط وauto يُحلّان إلى Codex harness. تبقى إعدادات وقت تشغيل OpenClaw الصريحة مسار توافق اختياري لدورات وكلاء openai/*؛ وعند إقرانها بملف تعريف OAuth openai محدد، يوجّه OpenClaw ذلك المسار داخلياً عبر نقل مصادقة Codex مع إبقاء مرجع النموذج العام كـ openai/*. يتم تجاهل تثبيتات جلسات وقت تشغيل OpenAI البالية عند اختيار وقت التشغيل ويمكن تنظيفها باستخدام openclaw doctor --fix. إذا حذّر openclaw doctor من أن Plugin codex مفعّل بينما لا تزال مراجع نماذج Codex القديمة موجودة في الإعدادات، فتعامل مع ذلك كحالة توجيه قديمة. شغّل openclaw doctor --fix لإعادة كتابتها إلى openai/* مع Runtime الخاص بـ Codex.

Runtime وكيل GitHub Copilot

يسجّل Plugin الخارجي @openclaw/copilot Runtime اختيارياً باسم copilot مدعوماً بـ GitHub Copilot CLI (@github/copilot-sdk). وهو يطالب بمزوّد الاشتراك القياسي github-copilot ولا يتم اختياره أبداً بواسطة auto. فعّله لكل نموذج أو لكل مزوّد عبر agentRuntime.id:
{
  agents: {
    defaults: {
      model: "github-copilot/gpt-5.5",
      models: {
        "github-copilot/gpt-5.5": {
          agentRuntime: { id: "copilot" },
        },
      },
    },
  },
}
يطالب الحاضن بالمزوّد وRuntime ومفتاح جلسة CLI وبادئة ملف تعريف المصادقة في extensions/copilot/doctor-contract-api.ts، والذي يحمّله openclaw doctor تلقائياً. للإعدادات والمصادقة ونسخ النصوص المطابق وCompaction وعقد doctor التصريحي والقرار الأوسع بين PI وCodex وCopilot SDK، راجع Runtime وكيل GitHub Copilot.

عقد التوافق

عندما لا يكون Runtime هو OpenClaw، يجب أن يوثّق أسطح OpenClaw التي يدعمها. استخدم هذا الشكل لوثائق Runtime:
السؤاللماذا يهم
من يملك حلقة النموذج؟يحدد أين تحدث عمليات إعادة المحاولة ومتابعة الأدوات وقرارات الإجابة النهائية.
من يملك سجل المحادثة القياسي؟يحدد ما إذا كان OpenClaw يستطيع تعديل السجل أم نسخه فقط.
هل تعمل أدوات OpenClaw الديناميكية؟تعتمد الرسائل والجلسات وcron والأدوات المملوكة لـ OpenClaw على ذلك.
هل تعمل خطافات الأدوات الديناميكية؟تتوقع Plugins وجود before_tool_call وafter_tool_call والبرمجيات الوسيطة حول الأدوات المملوكة لـ OpenClaw.
هل تعمل خطافات الأدوات الأصلية؟تحتاج أدوات shell وpatch والأدوات المملوكة لـ Runtime إلى دعم خطافات أصلية للسياسة والمراقبة.
هل تعمل دورة حياة محرك السياق؟تعتمد Plugins الذاكرة والسياق على دورة حياة التجميع والاستيعاب وما بعد الدور وCompaction.
ما بيانات Compaction المعروضة؟تحتاج بعض Plugins إلى إشعارات فقط، بينما تحتاج أخرى إلى بيانات وصفية لما تم الاحتفاظ به أو إسقاطه.
ما غير المدعوم عمداً؟يجب ألا يفترض المستخدمون تكافؤ OpenClaw حيث يملك Runtime الأصلي حالة أكثر.
تم توثيق عقد دعم Runtime الخاص بـ Codex في Runtime حاضن Codex.

تسميات الحالة

قد يعرض مخرج الحالة تسميتي Execution وRuntime معاً. اقرأهما كتشخيصات، وليس كأسماء مزوّدين.
  • مرجع نموذج مثل openai/gpt-5.5 يخبرك بالمزوّد/النموذج المحدد.
  • معرّف Runtime مثل codex يخبرك بأي حلقة تنفّذ الدور.
  • تسمية قناة مثل Telegram أو Discord تخبرك بمكان حدوث المحادثة.
إذا استمر تشغيل ما في عرض Runtime غير متوقع، فتحقق أولاً من سياسة Runtime للمزوّد/النموذج المحدد. لم تعد تثبيتات Runtime للجلسات القديمة تقرر التوجيه.

ذات صلة