Fundamentals

موجّه النظام

يبني OpenClaw موجّه النظام الخاص به لكل تشغيل للوكيل؛ ولا يوجد موجّه افتراضي في وقت التشغيل.

يتكوّن التجميع من ثلاث طبقات:

  • تعرض buildAgentSystemPrompt الموجّه من مدخلات صريحة. وتظل عارضًا خالصًا ولا تقرأ الإعدادات العامة مباشرةً.
  • تحلّ resolveAgentSystemPromptConfig خيارات الموجّه المدعومة بالإعدادات (عرض المالك، وتلميحات TTS، والأسماء البديلة للنماذج، ووضع الاستشهاد بالذاكرة، ووضع تفويض الوكلاء الفرعيين) لوكيل معيّن.
  • تجمع مهايئات وقت التشغيل (المضمّنة، وCLI، ومعاينات الأوامر/التصدير، وCompaction) الحقائق الحية (الأدوات، وحالة البيئة المعزولة، وإمكانات القناة، وملفات السياق، وإسهامات موجّه المزوّد) وتستدعي واجهة الموجّه المضبوطة.

يحافظ هذا على اتساق أسطح الموجّه المصدّرة/الخاصة بتصحيح الأخطاء مع عمليات التشغيل الحية، من دون تحويل كل تفاصيل وقت التشغيل إلى باني واحد ضخم.

يمكن لـ Plugins المزوّدين تقديم إرشادات تراعي ذاكرة التخزين المؤقت من دون استبدال الموجّه المملوك لـ OpenClaw. ويمكن لوقت تشغيل المزوّد:

  • استبدال أحد أقسام النواة الثلاثة المسماة: interaction_style وtool_call_style وexecution_bias
  • إدراج بادئة ثابتة أعلى حد ذاكرة التخزين المؤقت للموجّه
  • إدراج لاحقة ديناميكية أسفل حد ذاكرة التخزين المؤقت للموجّه

استخدم الإسهامات المملوكة للمزوّد لضبط ما يخص عائلة نموذج بعينها. واحتفظ بخطاف before_prompt_build القديم للتوافق أو لتغييرات الموجّه العامة حقًا.

تستخدم طبقة عائلة OpenAI/Codex GPT-5 المضمّنة (resolveGpt5SystemPromptContribution) هذه الآلية: عقد سلوك stablePrefix (سياسة التنفيذ، وانضباط الأدوات، وعقد المخرجات، وعقد الإكمال) بالإضافة إلى تجاوز اختياري لـ interaction_style للحصول على نبرة أكثر ودًا. وتنطبق على أي معرّف نموذج gpt-5* يُوجَّه عبر Plugins OpenAI أو Codex، ويتحكم فيها agents.defaults.promptOverlays.gpt5.personality ("friendly"/"on" أو "off").

البنية

الموجّه موجز، ويضم أقسامًا ثابتة:

  • الأدوات: تذكير بأن مصدر الحقيقة هو الأدوات المهيكلة، بالإضافة إلى إرشادات استخدام الأدوات في وقت التشغيل. عند تمكين أداة update_plan التجريبية (tools.experimental.planTool)، يضيف وصف الأداة الخاص بها: استخدامها فقط للعمل غير البسيط متعدد الخطوات، والإبقاء على خطوة واحدة على الأكثر بالحالة in_progress، وتجاوزها للعمل البسيط ذي الخطوة الواحدة.
  • انحياز التنفيذ: التصرف ضمن الدور نفسه بشأن الطلبات القابلة للتنفيذ، والاستمرار حتى الاكتمال أو التعطّل، والتعافي من نتائج الأدوات الضعيفة، والتحقق المباشر من الحالة القابلة للتغيير، والتحقق قبل الإنهاء.
  • السلامة: تذكير موجز بالضوابط ضد سلوك السعي إلى السلطة أو تجاوز الإشراف.
  • Skills (عند توفرها): يوضّح للنموذج كيفية تحميل تعليمات Skills عند الطلب.
  • التحكم في OpenClaw: تفضيل أداة gateway لأعمال الإعداد/إعادة التشغيل؛ وعدم اختلاق أوامر CLI.
  • التحديث الذاتي لـ OpenClaw: فحص الإعدادات بأمان باستخدام config.schema.lookup، وتعديلها باستخدام config.patch، واستبدال الإعدادات كاملةً باستخدام config.apply، وتشغيل update.run فقط بناءً على طلب صريح من المستخدم. ترفض أداة gateway الموجّهة للوكيل إعادة كتابة tools.exec.ask / tools.exec.security، بما في ذلك الأسماء البديلة القديمة tools.bash.* التي تُطبَّع إلى تلك المسارات المحمية.
  • مساحة العمل: دليل العمل (agents.defaults.workspace).
  • الوثائق: مسار الوثائق/المصدر المحلي ومتى تجب قراءتها.
  • ملفات مساحة العمل (مدرجة): تنبيه إلى أن ملفات التمهيد مضمنة أدناه.
  • البيئة المعزولة (عند تمكينها): وقت التشغيل المعزول، ومسارات البيئة المعزولة، وتوفر التنفيذ بصلاحيات مرتفعة.
  • التاريخ والوقت الحاليان: المنطقة الزمنية فقط (ثابتة لذاكرة التخزين المؤقت؛ وتأتي الساعة الحية من session_status).
  • توجيهات مخرجات المساعد: صيغة موجزة للمرفقات والملاحظات الصوتية ووسوم الرد.
  • Heartbeats: موجّه Heartbeat وسلوك الإقرار، عند تمكين Heartbeats للوكيل الافتراضي.
  • وقت التشغيل: المضيف، ونظام التشغيل، وNode، والنموذج، وجذر المستودع (عند اكتشافه)، ومستوى التفكير (سطر واحد).
  • الاستدلال: مستوى الرؤية الحالي بالإضافة إلى تلميح تبديل /reasoning.

يبقى المحتوى الثابت الكبير (بما في ذلك سياق المشروع) أعلى الحد الداخلي لذاكرة التخزين المؤقت للموجّه. وتُلحق الأقسام المتغيرة لكل دور (إرشادات تضمين واجهة التحكم، والمراسلة، والصوت، وسياق المحادثة الجماعية، والتفاعلات، وHeartbeats، ووقت التشغيل) أسفل ذلك الحد كي تتمكن الخلفيات المحلية ذات ذاكرات التخزين المؤقت للبادئات من إعادة استخدام بادئة مساحة العمل الثابتة عبر أدوار القنوات. ويجب أن تتجنب أوصاف الأدوات تضمين أسماء القنوات الحالية عندما يتضمن المخطط المقبول تفاصيل وقت التشغيل هذه بالفعل.

تتضمن الأدوات أيضًا إرشادات العمل طويل الأمد:

  • استخدام Cron للمتابعة المستقبلية (check back later، والتذكيرات، والعمل المتكرر) بدلًا من حلقات السكون في exec، أو حيل التأخير باستخدام yieldMs، أو الاستطلاع المتكرر عبر process
  • استخدام exec / process فقط للأوامر التي تبدأ الآن وتستمر في الخلفية
  • عند تمكين التنبيه التلقائي عند الاكتمال، بدء الأمر مرة واحدة والاعتماد على مسار التنبيه القائم على الدفع
  • استخدام process للسجلات أو الحالة أو الإدخال أو التدخل في أمر قيد التشغيل
  • للمهام الأكبر، تفضيل sessions_spawn؛ إذ يعتمد اكتمال الوكيل الفرعي على الدفع ويُعلن عنه تلقائيًا لطالب المهمة
  • عدم استطلاع subagents list / sessions_list في حلقة لمجرد انتظار الاكتمال

يمكن لـ agents.defaults.subagents.delegationMode (الافتراضي "suggest") تعزيز ذلك. تضيف القيمة "prefer" قسمًا مخصصًا باسم تفويض الوكيل الفرعي يطلب من الوكيل الرئيسي العمل منسقًا سريع الاستجابة وتمرير أي شيء يتجاوز الرد المباشر عبر sessions_spawn. هذا خاص بالموجّه فقط؛ وتظل سياسة الأدوات هي المتحكمة في توفر sessions_spawn.

ضوابط السلامة في موجّه النظام استشارية وليست آلية إنفاذ. استخدم سياسة الأدوات، وموافقات التنفيذ، والعزل، وقوائم السماح للقنوات للإنفاذ الصارم؛ ويمكن للمشغّلين تعطيل ضوابط الموجّه عن قصد.

في القنوات التي تتضمن بطاقات/أزرار موافقة أصلية، يطلب الموجّه من الوكيل الاعتماد على واجهة المستخدم تلك أولًا، وتضمين أمر /approve يدوي فقط عندما تشير نتيجة الأداة إلى أن الموافقات عبر المحادثة غير متاحة أو أن الموافقة اليدوية هي المسار الوحيد.

أوضاع الموجّه

يعرض OpenClaw موجّهات نظام أصغر للوكلاء الفرعيين. ويضبط وقت التشغيل promptMode لكل تشغيل (وليس إعدادًا موجّهًا للمستخدم):

  • full (الافتراضي): جميع الأقسام أعلاه.
  • minimal: يُستخدم للوكلاء الفرعيين؛ ويحذف قسم موجّه الذاكرة (المضمّن باسم استدعاء الذاكرة)، والتحديث الذاتي لـ OpenClaw، والأسماء البديلة للنماذج، وهوية المستخدم، وتوجيهات مخرجات المساعد، والمراسلة، والردود الصامتة، وHeartbeats. وتظل الأدوات، والسلامة، وSkills (عند تقديمها)، ومساحة العمل، والبيئة المعزولة، والتاريخ والوقت الحاليان (عند معرفتهما)، ووقت التشغيل، والسياق المدرج متاحة.
  • none: يعيد سطر الهوية الأساسي فقط.

ضمن promptMode=minimal، تُعنون الموجّهات الإضافية المدرجة باسم سياق الوكيل الفرعي بدلًا من سياق المحادثة الجماعية.

في عمليات الرد التلقائي للقنوات، يحذف OpenClaw قسم الردود الصامتة العام عندما يكون السياق المباشر أو الجماعي أو الخاص بأداة الرسائل فقط مالكًا بالفعل لعقد الرد المرئي. لا يعرض NO_REPLY إلا الوضع التلقائي القديم للمجموعة/القناة؛ وتتجاوز المحادثات المباشرة والردود الخاصة بأداة الرسائل فقط إرشادات الرمز الصامت.

لقطات الموجّه

يحتفظ OpenClaw بلقطات موجّه مثبتة في المستودع للمسار السعيد لوقت تشغيل Codex ضمن test/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. وهي تعرض معاملات سلسلة/دور محددة لخادم التطبيق بالإضافة إلى مكدس معاد إنشاؤه لطبقات الموجّه المرتبطة بالنموذج لأدوار Telegram المباشرة، ومجموعة Discord، وHeartbeat: مُثبّت موجّه نموذج Codex gpt-5.5، ونص مطوّر أذونات المسار السعيد لـ Codex، وتعليمات مطوّر OpenClaw، وتعليمات وضع التعاون المحددة لنطاق الدور عندما يوفرها OpenClaw، ومدخلات دور المستخدم، ومراجع مواصفات الأدوات الديناميكية.

حدّث مُثبّت موجّه نموذج Codex باستخدام pnpm prompt:snapshots:sync-codex-model. يبحث افتراضيًا عن $CODEX_HOME/models_cache.json، ثم ~/.codex/models_cache.json، ثم اصطلاح نسخة عمل المشرف ~/code/codex/codex-rs/models-manager/models.json؛ وإذا لم يوجد أي منها، فإنه يخرج من دون تغيير المُثبّت المثبت في المستودع. مرّر --catalog <path> للتحديث من ملف models_cache.json أو models.json محدد.

هذه اللقطات ليست التقاطًا خامًا مطابقًا بايتًا ببايت لطلب OpenAI. يمكن لـ Codex إضافة سياق مساحة عمل مملوك لوقت التشغيل (AGENTS.md، وسياق البيئة، والذكريات، وتعليمات التطبيق/Plugin، وتعليمات وضع التعاون الافتراضي المضمّنة) بعد أن يرسل OpenClaw معاملات السلسلة والدور.

أعِد الإنشاء باستخدام pnpm prompt:snapshots:gen؛ وتحقق من الانحراف باستخدام pnpm prompt:snapshots:check. يشغّل CI فحص الانحراف إلى جانب أجزاء الحدود الإضافية، بحيث تصل تغييرات الموجّه وتحديثات اللقطات في PR نفسه.

إدراج تمهيد مساحة العمل

تُحل ملفات التمهيد من مساحة العمل النشطة وتُوجّه إلى سطح الموجّه الموافق لعمرها:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (فقط في مساحات العمل الجديدة كليًا)
  • MEMORY.md عند وجوده

في بيئة Codex الأصلية، يتجنب OpenClaw تكرار ملفات مساحة العمل الثابتة في كل دور للمستخدم. يحمّل Codex ملف AGENTS.md عبر اكتشاف وثائق المشروع الخاص به. ويُمرّر TOOLS.md بوصفه تعليمات مطوّر موروثة لـ Codex. وتُمرّر SOUL.md وIDENTITY.md وUSER.md بوصفها تعليمات مطوّر للتعاون محددة بنطاق الدور كي لا يرثها وكلاء Codex الفرعيون الأصليون. ولا يُدرج محتوى HEARTBEAT.md مباشرةً؛ بل تحصل أدوار Heartbeat على ملاحظة لوضع التعاون تشير إلى الملف عندما يكون موجودًا وغير فارغ. ولا يُلصق محتوى MEMORY.md في كل دور أصلي لـ Codex أيضًا: عندما تتوفر أدوات الذاكرة لمساحة العمل، تحصل أدوار Codex على ملاحظة صغيرة عن ذاكرة مساحة العمل توجه النموذج إلى memory_search أو memory_get. إذا كانت الأدوات معطلة، أو كان البحث في الذاكرة غير متاح، أو اختلفت مساحة العمل النشطة عن مساحة عمل ذاكرة الوكيل، يعود MEMORY.md إلى مسار سياق الدور المحدود المعتاد. ويحتفظ BOOTSTRAP.md بدور سياق الدور المعتاد.

في البيئات غير التابعة لـ Codex، تتجمع ملفات التمهيد داخل موجّه OpenClaw وفق شروطها الحالية. ويُحذف HEARTBEAT.md في عمليات التشغيل العادية عندما تكون Heartbeats معطلة للوكيل الافتراضي أو تكون قيمة agents.defaults.heartbeat.includeSystemPromptSection هي false. أبقِ الملفات المدرجة موجزة، ولا سيما MEMORY.md غير التابع لـ Codex: يجب أن يظل ملخصًا منقحًا طويل الأمد، مع حفظ الملاحظات اليومية التفصيلية في memory/*.md لاسترجاعها عند الطلب عبر memory_search / memory_get. تزيد ملفات MEMORY.md غير التابعة لـ Codex والمفرطة في الحجم من استهلاك الموجّه وقد تُدرج جزئيًا وفق حدود ملفات التمهيد أدناه.

تُقتطع الملفات الكبيرة مع علامة:

الحد مفتاح الإعداد القيمة الافتراضية
الحد الأقصى للأحرف لكل ملف agents.defaults.bootstrapMaxChars 20000
الإجمالي عبر جميع الملفات agents.defaults.bootstrapTotalMaxChars 60000
تحذير الاقتطاع (off|once|always) agents.defaults.bootstrapPromptTruncationWarning always

تُدرج الملفات المفقودة علامة قصيرة تشير إلى فقدان الملف. وتبقى الأعداد الخام/المدرجة التفصيلية في أدوات التشخيص مثل /context و/status وdoctor والسجلات.

بالنسبة إلى ملفات الذاكرة، لا يعني الاقتطاع فقدان البيانات: يظل الملف سليمًا على القرص. في Codex الأصلي، يُقرأ MEMORY.md عند الطلب عبر أدوات الذاكرة عند توفرها، مع الرجوع إلى موجّه محدود بخلاف ذلك. وفي البيئات الأخرى، لا يرى النموذج سوى النسخة المدرجة المختصرة حتى يقرأ الذاكرة أو يبحث فيها مباشرةً. إذا تكرر اقتطاع MEMORY.md، فلخّصه في موجز دائم أقصر، أو انقل السجل التفصيلي إلى memory/*.md، أو ارفع حدود التمهيد عمدًا.

تُحقن في جلسات الوكلاء الفرعيين ملفات AGENTS.md وTOOLS.md فقط (وتُستبعد ملفات التمهيد الأخرى لإبقاء سياق الوكيل الفرعي صغيرًا).

يمكن للخطافات الداخلية اعتراض هذه الخطوة عبر الحدث agent:bootstrap لتعديل ملفات التمهيد المحقونة أو استبدالها (مثل استبدال SOUL.md بشخصية بديلة).

لجعل الأسلوب أقل عمومية، ابدأ بـدليل الشخصية في SOUL.md.

لفحص مقدار مساهمة كل ملف محقون (المحتوى الخام مقابل المحقون، والاقتطاع، والحمل الزائد لمخطط الأدوات)، استخدم /context list أو /context detail. راجع السياق.

معالجة الوقت

لا يظهر قسم التاريخ والوقت الحاليان إلا عندما تكون المنطقة الزمنية للمستخدم معروفة، ولا يتضمن سوى المنطقة الزمنية (من دون ساعة ديناميكية أو تنسيق للوقت) للحفاظ على استقرار ذاكرة التخزين المؤقت للموجّه.

استخدم session_status عندما يحتاج الوكيل إلى الوقت الحالي؛ إذ تتضمن بطاقة الحالة سطرًا للطابع الزمني. ويمكن للأداة نفسها اختياريًا تعيين تجاوز للنموذج خاص بكل جلسة (model=default يزيله).

اضبط الإعدادات باستخدام:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)

راجع المناطق الزمنية والتاريخ والوقت للحصول على التفاصيل الكاملة للسلوك.

Skills

عند وجود Skills مؤهلة، يحقن OpenClaw قائمة موجزة من <available_skills> ‏(formatSkillsForPrompt) تتضمن مسار الملف وعلامة <version>sha256:...</version> مشتقة من المحتوى لكل Skill. يوجّه الموجّه النموذج إلى استخدام read لتحميل SKILL.md من الموقع المدرج (مساحة العمل أو الموقع المُدار أو المضمّن)، وإلى إعادة قراءة Skill عندما تختلف قيمة <version> الخاصة بها عن دور سابق. إذا لم توجد Skills مؤهلة، يُحذف قسم Skills.

تتلقى أدوار Codex الأصلية هذه القائمة على هيئة تعليمات مطوّر تعاونية محددة النطاق بالدور بدلًا من إدخال المستخدم في كل دور، باستثناء أدوار cron الخفيفة التي تحافظ على الموجّه المجدول كما هو تمامًا. وتحتفظ بيئات التشغيل الأخرى بقسم الموجّه المعتاد.

يمكن أن يشير الموقع إلى Skill متداخلة، مثل skills/personal/foo/SKILL.md. لا يخدم التداخل سوى التنظيم؛ إذ يستخدم الموجّه اسم Skill المسطح من بيانات SKILL.md التمهيدية.

تشمل الأهلية بوابات بيانات Skill الوصفية، وفحوصات بيئة التشغيل/الإعدادات، وقائمة السماح الفعلية لـSkills الوكيل عند ضبط agents.defaults.skills أو agents.list[].skills. لا تكون Skills المضمّنة في Plugin مؤهلة إلا عند تمكين Plugin المالكة لها، ما يتيح لإضافات الأدوات عرض أدلة تشغيل أعمق من دون تضمين كل تلك الإرشادات في وصف كل أداة.

xml
<available_skills>  <skill>    <name>...</name>    <description>...</description>    <location>...</location>    <version>sha256:...</version>  </skill></available_skills>

يحافظ هذا على صغر الموجّه الأساسي مع استمرار إتاحة الاستخدام الموجّه لـSkills. يتحكم نظام Skills الفرعي في تحديد الحجم، بصورة منفصلة عن تحديد حجم القراءة/الحقن العام في وقت التشغيل:

النطاق ميزانية موجّه Skills ميزانية مقتطف وقت التشغيل
عام skills.limits.maxSkillsPromptChars agents.defaults.contextLimits.*
لكل وكيل agents.list[].skillsLimits.maxSkillsPromptChars agents.list[].contextLimits.*

تغطي ميزانية مقتطف وقت التشغيل memory_get، ونتائج الأدوات المباشرة، وعمليات تحديث AGENTS.md بعد Compaction.

التوثيق

يشير قسم التوثيق إلى المستندات المحلية عند توفرها (docs/ في نسخة Git عاملة أو مستندات حزمة npm المضمّنة)، ويعود إلى https://docs.openclaw.ai عند عدم توفرها. كما يسرد موقع مصدر OpenClaw: تعرض نسخ Git العاملة جذر المصدر المحلي، بينما تحصل عمليات تثبيت الحزمة على عنوان URL للمصدر على GitHub مع تعليمات لمراجعة المصدر هناك عندما تكون المستندات ناقصة أو قديمة.

يقدّم الموجّه المستندات بوصفها المرجع المعتمد لمعرفة OpenClaw الذاتية قبل أن يفهم النموذج كيفية عمل OpenClaw (الذاكرة/الملاحظات اليومية، والجلسات، والأدوات، وGateway، والإعدادات، والأوامر، وسياق المشروع)، ويوجّه النموذج إلى التعامل مع AGENTS.md وسياق المشروع وملاحظات مساحة العمل/الملف الشخصي/الذاكرة وmemory_search باعتبارها سياق تعليمات أو ذاكرة للمستخدم، لا معرفة بتصميم OpenClaw أو تنفيذه. إذا لم تتناول المستندات الموضوع أو كانت قديمة، فينبغي للنموذج التصريح بذلك وفحص المصدر. كما يوجّه النموذج إلى تشغيل openclaw status بنفسه متى أمكن، وألا يطلب ذلك من المستخدم إلا عندما يتعذر عليه الوصول.

بالنسبة إلى الإعدادات تحديدًا، يوجّه الوكلاء إلى إجراء أداة gateway المسمى config.schema.lookup للحصول على مستندات وقيود دقيقة على مستوى الحقول، ثم إلى docs/gateway/configuration.md وdocs/gateway/configuration-reference.md للحصول على إرشادات أوسع.

ذو صلة

Was this useful?
On this page

On this page