الانتقال إلى المحتوى الرئيسي

System Prompt

يبني OpenClaw system prompt مخصصًا لكل تشغيل وكيل. ويكون prompt مملوكًا لـ OpenClaw ولا يستخدم prompt الافتراضي الخاص بـ pi-coding-agent. يتم تجميع prompt بواسطة OpenClaw وحقنه في كل تشغيل وكيل.

البنية

تم تصميم prompt ليكون مضغوطًا عمدًا ويستخدم أقسامًا ثابتة:
  • Tooling: قائمة الأدوات الحالية + أوصاف قصيرة.
  • Safety: تذكير قصير بالضوابط لتجنب السلوك الساعي إلى القوة أو تجاوز الإشراف.
  • Skills (عند توفرها): يوضح للنموذج كيفية تحميل تعليمات Skills عند الطلب.
  • التحديث الذاتي لـ OpenClaw: كيفية فحص التكوين بأمان باستخدام config.schema.lookup، وتصحيح التكوين باستخدام config.patch، واستبدال التكوين بالكامل باستخدام config.apply، وتشغيل update.run فقط عند طلب صريح من المستخدم. كما ترفض أداة gateway المخصصة للمالك فقط أيضًا إعادة كتابة tools.exec.ask / tools.exec.security، بما في ذلك الأسماء المستعارة القديمة tools.bash.* التي تُوحَّد إلى مسارات exec المحمية تلك.
  • Workspace: دليل العمل (agents.defaults.workspace).
  • Documentation: المسار المحلي إلى مستندات OpenClaw (في المستودع أو حزمة npm) ومتى يجب قراءتها.
  • Workspace Files (injected): يشير إلى أن ملفات bootstrap مضمنة أدناه.
  • Sandbox (عند التمكين): يشير إلى بيئة runtime المعزولة، ومسارات sandbox، وما إذا كان exec المرتفع الصلاحيات متاحًا.
  • Current Date & Time: الوقت المحلي للمستخدم، والمنطقة الزمنية، وتنسيق الوقت.
  • Reply Tags: صيغة reply tag الاختيارية للمزوّدين المدعومين.
  • Heartbeats: prompt الخاص بالـ heartbeat وسلوك ack.
  • Runtime: المضيف، ونظام التشغيل، وnode، والنموذج، وجذر المستودع (عند اكتشافه)، ومستوى التفكير (سطر واحد).
  • Reasoning: مستوى الرؤية الحالي + تلميح تبديل /reasoning.
يتضمن قسم Tooling أيضًا إرشادات وقت التشغيل للأعمال طويلة التشغيل:
  • استخدم cron للمتابعة المستقبلية (check back later، والتذكيرات، والأعمال المتكررة) بدلًا من حلقات sleep في exec، أو حيل تأخير yieldMs، أو polling المتكرر لـ process
  • استخدم exec / process فقط للأوامر التي تبدأ الآن وتستمر في العمل في الخلفية
  • عند تمكين تنبيه الإكمال التلقائي، ابدأ الأمر مرة واحدة واعتمد على مسار التنبيه القائم على الدفع عندما يُصدر مخرجات أو يفشل
  • استخدم process للسجلات، أو الحالة، أو الإدخال، أو التدخل عندما تحتاج إلى فحص أمر قيد التشغيل
  • إذا كانت المهمة أكبر، ففضّل sessions_spawn؛ إذ إن إكمال الوكيل الفرعي يعتمد على الدفع ويتم الإعلان عنه تلقائيًا للطالب
  • لا تقم بعمل polling لـ subagents list / sessions_list في حلقة لمجرد انتظار الإكمال
إن ضوابط السلامة في system prompt إرشادية. فهي توجه سلوك النموذج لكنها لا تفرض السياسة. استخدم سياسة الأدوات، وموافقات exec، وsandboxing، وallowlists الخاصة بالقنوات لفرض القيود الصارمة؛ ويمكن للمشغلين تعطيل هذه القيود عمدًا. في القنوات التي تحتوي على بطاقات/أزرار موافقة أصلية، يوجه prompt وقت التشغيل الآن الوكيل إلى الاعتماد أولًا على واجهة الموافقة الأصلية تلك. ويجب أن يتضمن أمرًا يدويًا /approve فقط عندما تقول نتيجة الأداة إن موافقات الدردشة غير متاحة أو أن الموافقة اليدوية هي المسار الوحيد.

أوضاع prompt

يمكن لـ OpenClaw عرض system prompts أصغر للوكلاء الفرعيين. يضبط runtime promptMode لكل تشغيل (وليس إعدادًا موجّهًا للمستخدم):
  • full (الافتراضي): يتضمن جميع الأقسام أعلاه.
  • minimal: يُستخدم للوكلاء الفرعيين؛ ويحذف Skills، وMemory Recall، والتحديث الذاتي لـ OpenClaw، وأسماء النماذج المستعارة، وهوية المستخدم، وReply Tags، وMessaging، والردود الصامتة، وHeartbeats. وتظل Tooling وSafety، وWorkspace، وSandbox، وCurrent Date & Time (عند المعرفة)، وRuntime، والسياق المحقون متاحة.
  • none: يعيد فقط سطر الهوية الأساسي.
عندما يكون promptMode=minimal، تُوسم prompts المحقونة الإضافية باسم Subagent Context بدلًا من Group Chat Context.

حقن bootstrap الخاص بمساحة العمل

يتم اقتطاع ملفات bootstrap وإلحاقها ضمن Project Context بحيث يرى النموذج سياق الهوية والملف الشخصي من دون الحاجة إلى قراءات صريحة:
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (فقط في مساحات العمل الجديدة تمامًا)
  • MEMORY.md عند وجوده، وإلا memory.md كبديل بالأحرف الصغيرة
يتم حقن جميع هذه الملفات في نافذة السياق في كل دور، مما يعني أنها تستهلك tokens. اجعلها موجزة — وخاصة MEMORY.md، الذي يمكن أن ينمو مع الوقت ويؤدي إلى استخدام سياق أعلى من المتوقع وإلى compaction أكثر تكرارًا.
ملاحظة: لا يتم حقن الملفات اليومية memory/*.md تلقائيًا. بل يتم الوصول إليها عند الطلب عبر الأداتين memory_search وmemory_get، ولذلك لا تُحتسب ضمن نافذة السياق ما لم يقرأها النموذج صراحةً.
تُقتطع الملفات الكبيرة مع علامة. ويتم التحكم في الحد الأقصى لحجم كل ملف عبر agents.defaults.bootstrapMaxChars (الافتراضي: 20000). كما يُقيَّد إجمالي محتوى bootstrap المحقون عبر الملفات بواسطة agents.defaults.bootstrapTotalMaxChars (الافتراضي: 150000). وتؤدي الملفات المفقودة إلى حقن علامة قصيرة لملف مفقود. وعندما يحدث الاقتطاع، يمكن لـ OpenClaw حقن كتلة تحذير في Project Context؛ ويمكن التحكم في ذلك بواسطة agents.defaults.bootstrapPromptTruncationWarning (off أو once أو always؛ الافتراضي: once). لا تقوم جلسات الوكيل الفرعي إلا بحقن AGENTS.md وTOOLS.md (أما ملفات bootstrap الأخرى فيتم استبعادها للحفاظ على صغر سياق الوكيل الفرعي). يمكن للـ hooks الداخلية اعتراض هذه الخطوة عبر agent:bootstrap لتعديل ملفات bootstrap المحقونة أو استبدالها (مثل تبديل SOUL.md بشخصية بديلة). إذا كنت تريد أن يبدو الوكيل أقل عمومية، فابدأ بـ دليل شخصية SOUL.md. لفحص مقدار مساهمة كل ملف محقون (الخام مقابل المحقون، والاقتطاع، بالإضافة إلى حمل مخطط الأداة)، استخدم /context list أو /context detail. راجع السياق.

التعامل مع الوقت

يتضمن system prompt قسم Current Date & Time مخصصًا عندما تكون المنطقة الزمنية للمستخدم معروفة. وللحفاظ على ثبات cache الخاص بالـ prompt، لم يعد يتضمن الآن سوى المنطقة الزمنية فقط (من دون ساعة ديناميكية أو تنسيق وقت). استخدم session_status عندما يحتاج الوكيل إلى الوقت الحالي؛ إذ تتضمن بطاقة الحالة سطرًا للطابع الزمني. ويمكن للأداة نفسها اختياريًا أيضًا ضبط تجاوز نموذج لكل جلسة (model=default يمسح هذا التجاوز). قم بالتكوين باستخدام:
  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)
راجع التاريخ والوقت للحصول على التفاصيل الكاملة للسلوك.

Skills

عندما توجد Skills مؤهلة، يحقن OpenClaw قائمة Skills متاحة مختصرة (formatSkillsForPrompt) تتضمن مسار الملف لكل Skill. ويوجه prompt النموذج إلى استخدام read لتحميل SKILL.md من الموقع المدرج (مساحة العمل، أو المُدار، أو المضمن). وإذا لم توجد Skills مؤهلة، فسيتم حذف قسم Skills. تشمل الأهلية بوابات بيانات Skills الوصفية، وفحوصات بيئة/تكوين runtime، وقائمة السماح الفعالة لـ Skills الخاصة بالوكيل عندما يكون agents.defaults.skills أو agents.list[].skills مكوّنًا.
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
يحافظ ذلك على صغر prompt الأساسي مع الاستمرار في تمكين الاستخدام المستهدف للـ Skills.

Documentation

عند توفرها، يتضمن system prompt قسم Documentation يشير إلى دليل مستندات OpenClaw المحلي (إما docs/ في مساحة عمل المستودع أو مستندات حزمة npm المضمنة) ويشير أيضًا إلى المرآة العامة، والمستودع المصدر، وDiscord المجتمع، و ClawHub (https://clawhub.ai) لاكتشاف Skills. ويوجه prompt النموذج إلى الرجوع إلى المستندات المحلية أولًا لسلوك OpenClaw، أو الأوامر، أو التكوين، أو البنية، وإلى تشغيل openclaw status بنفسه عندما يكون ذلك ممكنًا (وسؤال المستخدم فقط عندما يفتقر إلى الوصول).