agents.* وmultiAgent.* وsession.* و
messages.* وtalk.*. بالنسبة إلى القنوات، والأدوات، وRuntime الخاص بـ Gateway، وغيرها من
المفاتيح ذات المستوى الأعلى، راجع مرجع التكوين.
الإعدادات الافتراضية للوكيل
agents.defaults.workspace
الافتراضي: ~/.openclaw/workspace.
agents.defaults.repoRoot
جذر المستودع الاختياري الذي يظهر في سطر Runtime في مطالبة النظام. إذا لم يتم ضبطه، يكتشفه OpenClaw تلقائيًا من خلال الصعود من مساحة العمل إلى الأعلى.
agents.defaults.skills
قائمة سماح Skills افتراضية اختيارية للوكلاء الذين لا يضبطون
agents.list[].skills.
- احذف
agents.defaults.skillsللحصول على Skills غير مقيّدة افتراضيًا. - احذف
agents.list[].skillsلوراثة القيم الافتراضية. - اضبط
agents.list[].skills: []لعدم استخدام أي Skills. - تمثل قائمة
agents.list[].skillsغير الفارغة المجموعة النهائية لذلك الوكيل؛ وهي لا تندمج مع القيم الافتراضية.
agents.defaults.skipBootstrap
يعطّل الإنشاء التلقائي لملفات bootstrap الخاصة بمساحة العمل (AGENTS.md وSOUL.md وTOOLS.md وIDENTITY.md وUSER.md وHEARTBEAT.md وBOOTSTRAP.md).
agents.defaults.contextInjection
يتحكم في توقيت حقن ملفات bootstrap الخاصة بمساحة العمل في مطالبة النظام. الافتراضي: "always".
"continuation-skip": تتخطى أدوار المتابعة الآمنة (بعد اكتمال رد المساعد) إعادة حقن bootstrap الخاص بمساحة العمل، مما يقلل حجم المطالبة. أما تشغيلات Heartbeat وإعادات المحاولة بعد Compaction فتستمر في إعادة بناء السياق.
agents.defaults.bootstrapMaxChars
الحد الأقصى لعدد الأحرف لكل ملف bootstrap في مساحة العمل قبل الاقتطاع. الافتراضي: 12000.
agents.defaults.bootstrapTotalMaxChars
الحد الأقصى لإجمالي الأحرف المحقونة عبر جميع ملفات bootstrap الخاصة بمساحة العمل. الافتراضي: 60000.
agents.defaults.bootstrapPromptTruncationWarning
يتحكم في نص التحذير المرئي للوكيل عند اقتطاع سياق bootstrap.
الافتراضي: "once".
"off": لا يحقن نص تحذير في مطالبة النظام مطلقًا."once": يحقن التحذير مرة واحدة لكل توقيع اقتطاع فريد (موصى به)."always": يحقن التحذير في كل تشغيل عندما يوجد اقتطاع.
خريطة ملكية ميزانية السياق
يحتوي OpenClaw على عدة ميزانيات كبيرة للمطالبة/السياق، وهي مقسمة عمدًا حسب المنظومة الفرعية بدلًا من مرورها جميعًا عبر مقبض عام واحد.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: حقن bootstrap العادي لمساحة العمل.agents.defaults.startupContext.*: المقدمة الافتتاحية لمرة واحدة في/newو/reset، بما في ذلك ملفاتmemory/*.mdاليومية الحديثة.skills.limits.*: قائمة Skills المضغوطة المحقونة في مطالبة النظام.agents.defaults.contextLimits.*: المقاطع المقيدة في وقت التشغيل والكتل المحقونة المملوكة لوقت التشغيل.memory.qmd.limits.*: حجم مقتطفات بحث الذاكرة المفهرسة والحقن.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
يتحكم في المقدمة الافتتاحية لأول دور التي تُحقن عند تشغيلات /new و/reset
المجردة.
agents.defaults.contextLimits
الإعدادات الافتراضية المشتركة لأسطح السياق المحدودة في وقت التشغيل.
memoryGetMaxChars: الحد الافتراضي لمقتطفmemory_getقبل إضافة بيانات الاقتطاع الوصفية وإشعار المتابعة.memoryGetDefaultLines: نافذة الأسطر الافتراضية لـmemory_getعند حذفlines.toolResultMaxChars: الحد الأقصى لنتائج الأدوات الحية المستخدم للنتائج المحفوظة و استعادة الفائض.postCompactionMaxChars: الحد الأقصى لمقتطف AGENTS.md المستخدم أثناء حقن التحديث بعد Compaction.
agents.list[].contextLimits
تجاوز لكل وكيل لمقابض contextLimits المشتركة. وترث الحقول المحذوفة
من agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
الحد العام لقائمة Skills المضغوطة المحقونة في مطالبة النظام. لا يؤثر
هذا في قراءة ملفات SKILL.md عند الطلب.
agents.list[].skillsLimits.maxSkillsPromptChars
تجاوز لكل وكيل لميزانية مطالبة Skills.
agents.defaults.imageMaxDimensionPx
الحد الأقصى لحجم البكسل لأطول ضلع في الصورة داخل كتل صور النص التفريغي/الأدوات قبل استدعاءات المزوّد.
الافتراضي: 1200.
غالبًا ما تقلل القيم الأقل من استخدام رموز الرؤية وحجم حمولة الطلب في التشغيلات الثقيلة بلقطات الشاشة.
وتحافظ القيم الأعلى على قدر أكبر من التفاصيل المرئية.
agents.defaults.userTimezone
المنطقة الزمنية لسياق مطالبة النظام (وليس للطوابع الزمنية للرسائل). وتعود إلى المنطقة الزمنية للمضيف.
agents.defaults.timeFormat
تنسيق الوقت في مطالبة النظام. الافتراضي: auto (تفضيل نظام التشغيل).
agents.defaults.model
model: يقبل إما سلسلة ("provider/model") أو كائنًا ({ primary, fallbacks }).- صيغة السلسلة تضبط النموذج الأساسي فقط.
- صيغة الكائن تضبط النموذج الأساسي بالإضافة إلى نماذج الاحتياط المرتبة.
imageModel: يقبل إما سلسلة ("provider/model") أو كائنًا ({ primary, fallbacks }).- يُستخدم بواسطة مسار أداة
imageكتكوين نموذج الرؤية الخاص بها. - ويُستخدم أيضًا كتوجيه احتياطي عندما يتعذر على النموذج المحدد/الافتراضي قبول إدخال الصور.
- يُستخدم بواسطة مسار أداة
imageGenerationModel: يقبل إما سلسلة ("provider/model") أو كائنًا ({ primary, fallbacks }).- يُستخدم بواسطة إمكانية توليد الصور المشتركة وأي سطح أداة/Plugin مستقبلي يولد الصور.
- القيم المعتادة:
google/gemini-3.1-flash-image-previewلتوليد الصور الأصلي في Gemini، أوfal/fal-ai/flux/devلـ fal، أوopenai/gpt-image-2لـ OpenAI Images. - إذا اخترت مزودًا/نموذجًا مباشرةً، فاضبط أيضًا مصادقة المزوّد المطابقة (على سبيل المثال
GEMINI_API_KEYأوGOOGLE_API_KEYلـgoogle/*، أوOPENAI_API_KEYأو OpenAI Codex OAuth لـopenai/gpt-image-2، أوFAL_KEYلـfal/*). - إذا تم حذفه، فلا يزال
image_generateقادرًا على استنتاج مزوّد افتراضي مدعوم بالمصادقة. وهو يحاول أولًا المزوّد الافتراضي الحالي، ثم بقية مزوّدي توليد الصور المسجلين بترتيب معرّف المزوّد.
musicGenerationModel: يقبل إما سلسلة ("provider/model") أو كائنًا ({ primary, fallbacks }).- يُستخدم بواسطة إمكانية توليد الموسيقى المشتركة وبواسطة الأداة المدمجة
music_generate. - القيم المعتادة:
google/lyria-3-clip-previewأوgoogle/lyria-3-pro-previewأوminimax/music-2.5+. - إذا تم حذفه، فلا يزال
music_generateقادرًا على استنتاج مزوّد افتراضي مدعوم بالمصادقة. وهو يحاول أولًا المزوّد الافتراضي الحالي، ثم بقية مزوّدي توليد الموسيقى المسجلين بترتيب معرّف المزوّد. - إذا اخترت مزودًا/نموذجًا مباشرةً، فاضبط أيضًا مصادقة المزوّد/مفتاح API المطابق.
- يُستخدم بواسطة إمكانية توليد الموسيقى المشتركة وبواسطة الأداة المدمجة
videoGenerationModel: يقبل إما سلسلة ("provider/model") أو كائنًا ({ primary, fallbacks }).- يُستخدم بواسطة إمكانية توليد الفيديو المشتركة وبواسطة الأداة المدمجة
video_generate. - القيم المعتادة:
qwen/wan2.6-t2vأوqwen/wan2.6-i2vأوqwen/wan2.6-r2vأوqwen/wan2.6-r2v-flashأوqwen/wan2.7-r2v. - إذا تم حذفه، فلا يزال
video_generateقادرًا على استنتاج مزوّد افتراضي مدعوم بالمصادقة. وهو يحاول أولًا المزوّد الافتراضي الحالي، ثم بقية مزوّدي توليد الفيديو المسجلين بترتيب معرّف المزوّد. - إذا اخترت مزودًا/نموذجًا مباشرةً، فاضبط أيضًا مصادقة المزوّد/مفتاح API المطابق.
- يدعم مزوّد توليد الفيديو المضمّن Qwen ما يصل إلى 1 فيديو ناتج، و1 صورة إدخال، و4 فيديوهات إدخال، ومدة 10 ثوانٍ، وخيارات على مستوى المزوّد هي
sizeوaspectRatioوresolutionوaudioوwatermark.
- يُستخدم بواسطة إمكانية توليد الفيديو المشتركة وبواسطة الأداة المدمجة
pdfModel: يقبل إما سلسلة ("provider/model") أو كائنًا ({ primary, fallbacks }).- يُستخدم بواسطة أداة
pdfلتوجيه النموذج. - إذا تم حذفه، تعود أداة PDF إلى
imageModel، ثم إلى نموذج الجلسة/النموذج الافتراضي المحلَّل.
- يُستخدم بواسطة أداة
pdfMaxBytesMb: الحد الافتراضي لحجم PDF لأداةpdfعندما لا يتم تمريرmaxBytesMbوقت الاستدعاء.pdfMaxPages: الحد الأقصى الافتراضي للصفحات التي تؤخذ في الاعتبار بواسطة وضع الاستخراج الاحتياطي في أداةpdf.verboseDefault: المستوى الافتراضي للإسهاب للوكلاء. القيم:"off"أو"on"أو"full". الافتراضي:"off".elevatedDefault: المستوى الافتراضي للمخرجات المرتفعة الصلاحية للوكلاء. القيم:"off"أو"on"أو"ask"أو"full". الافتراضي:"on".model.primary: الصيغةprovider/model(مثلopenai/gpt-5.4للوصول عبر مفتاح API أوopenai-codex/gpt-5.5لـ Codex OAuth). إذا حذفت المزوّد، يحاول OpenClaw أولًا اسمًا مستعارًا، ثم مطابقة فريدة لمزوّد مكوّن لذلك المعرّف الدقيق للنموذج، وبعدها فقط يعود إلى المزوّد الافتراضي المكوّن (سلوك توافق قديم، لذا يفضَّل استخدامprovider/modelالصريح). وإذا لم يعد ذلك المزوّد يوفّر النموذج الافتراضي المكوّن، يعود OpenClaw إلى أول مزوّد/نموذج مكوّن بدلًا من إظهار افتراضي قديم لمزوّد تمت إزالته.models: فهرس النماذج المكوّن وقائمة السماح لـ/model. يمكن أن تتضمن كل قيمةalias(اختصار) وparams(خاصة بالمزوّد، مثلtemperatureوmaxTokensوcacheRetentionوcontext1mوresponsesServerCompactionوresponsesCompactThreshold).- تعديلات آمنة: استخدم
openclaw config set agents.defaults.models '<json>' --strict-json --mergeلإضافة إدخالات. يرفضconfig setالاستبدالات التي قد تزيل إدخالات موجودة من قائمة السماح ما لم تمرر--replace. - تقوم تدفقات configure/onboarding ذات النطاق الخاص بالمزوّد بدمج نماذج المزوّد المحددة في هذه الخريطة وتحافظ على المزوّدين الآخرين المكوّنين وغير المرتبطين.
- بالنسبة إلى نماذج OpenAI Responses المباشرة، يتم تفعيل Compaction على جانب الخادم تلقائيًا. استخدم
params.responsesServerCompaction: falseلإيقاف حقنcontext_management، أوparams.responsesCompactThresholdلتجاوز العتبة. راجع Compaction على جانب خادم OpenAI.
- تعديلات آمنة: استخدم
params: معلمات المزوّد الافتراضية العامة المطبقة على جميع النماذج. تُضبط فيagents.defaults.params(مثل{ cacheRetention: "long" }).- أسبقية دمج
params(في التكوين): يتم تجاوزagents.defaults.params(الأساس العام) بواسطةagents.defaults.models["provider/model"].params(لكل نموذج)، ثم يتجاوزagents.list[].params(للـagent idالمطابق) حسب المفتاح. راجع التخزين المؤقت للمطالبة للتفاصيل. embeddedHarness: سياسة وقت تشغيل الوكيل المضمّن منخفضة المستوى الافتراضية. استخدمruntime: "auto"للسماح لحزم Plugin المسجلة بادعاء النماذج المدعومة، أوruntime: "pi"لفرض harness المدمج PI، أو معرّف harness مسجل مثلruntime: "codex". اضبطfallback: "none"لتعطيل الاحتياط التلقائي إلى PI.- تقوم كاتبات التكوين التي تعدّل هذه الحقول (على سبيل المثال
/models setو/models set-imageوأوامر إضافة/إزالة الاحتياط) بحفظ الصيغة القياسية للكائن والحفاظ على قوائم الاحتياط الموجودة عندما يكون ذلك ممكنًا. maxConcurrent: الحد الأقصى لتشغيلات الوكيل المتوازية عبر الجلسات (مع بقاء كل جلسة مُسلسلة). الافتراضي: 4.
agents.defaults.embeddedHarness
يتحكم embeddedHarness في المنفّذ منخفض المستوى الذي يشغّل أدوار الوكيل المضمّن.
ينبغي لمعظم عمليات النشر الإبقاء على القيمة الافتراضية { runtime: "auto", fallback: "pi" }.
استخدمه عندما يوفّر Plugin موثوق harness أصليًا، مثل
Codex app-server harness المضمّن.
runtime:"auto"أو"pi"أو معرّف Plugin harness مسجل. يسجل Plugin Codex المضمّن المعرفcodex.fallback:"pi"أو"none". تبقي"pi"على harness المدمج PI كاحتياط للتوافق عندما لا يتم اختيار أي Plugin harness. أما"none"فيجعل اختيار Plugin harness المفقود أو غير المدعوم يفشل بدلًا من استخدام PI بصمت. وتظهر دائمًا إخفاقات Plugin harness المحدد مباشرة.- تجاوزات البيئة: يتجاوز
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>القيمةruntime؛ ويعطّلOPENCLAW_AGENT_HARNESS_FALLBACK=noneالاحتياط إلى PI لتلك العملية. - بالنسبة إلى عمليات النشر المعتمدة على Codex فقط، اضبط
model: "openai/gpt-5.5"وembeddedHarness.runtime: "codex"وembeddedHarness.fallback: "none". - يتم تثبيت اختيار harness لكل معرّف جلسة بعد أول تشغيل مضمّن. تؤثر تغييرات التكوين/البيئة في الجلسات الجديدة أو المعاد تعيينها، وليس في نص موجود. وتُعامل الجلسات القديمة ذات سجل النصوص ولكن من دون تثبيت مسجل على أنها مثبّتة على PI. يعرض
/statusمعرّفات harness غير التابعة لـ PI مثلcodexبجوارFast. - يتحكم هذا فقط في chat harness المضمّن. أما توليد الوسائط، والرؤية، وPDF، والموسيقى، والفيديو، وTTS فلا تزال تستخدم إعدادات المزوّد/النموذج الخاصة بها.
agents.defaults.models):
| الاسم المستعار | النموذج |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 أو GPT-5.5 المكوّن عبر Codex OAuth |
gpt-mini | openai/gpt-5.4-mini |
gpt-nano | openai/gpt-5.4-nano |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite-preview |
--thinking off أو تعرّف agents.defaults.models["zai/<model>"].params.thinking بنفسك.
تفعّل نماذج Z.AI الخيار tool_stream افتراضيًا لبث استدعاء الأدوات. اضبط agents.defaults.models["zai/<model>"].params.tool_stream إلى false لتعطيله.
تستخدم نماذج Anthropic Claude 4.6 التفكير adaptive افتراضيًا عندما لا يتم ضبط مستوى تفكير صريح.
agents.defaults.cliBackends
واجهات CLI خلفية اختيارية لتشغيلات الاحتياط النصية فقط (من دون استدعاءات أدوات). وهي مفيدة كنسخة احتياطية عندما تفشل مزوّدات API.
- تكون الواجهات الخلفية CLI نصية أولًا؛ ويتم دائمًا تعطيل الأدوات.
- تكون الجلسات مدعومة عندما يتم ضبط
sessionArg. - يكون تمرير الصور مدعومًا عندما يقبل
imageArgمسارات الملفات.
agents.defaults.systemPromptOverride
استبدل مطالبة النظام الكاملة التي يجمعها OpenClaw بسلسلة ثابتة. يمكن ضبطها على المستوى الافتراضي (agents.defaults.systemPromptOverride) أو لكل وكيل (agents.list[].systemPromptOverride). وتكون القيم الخاصة بكل وكيل أعلى أولوية؛ ويتم تجاهل القيمة الفارغة أو التي تحتوي على مسافات فقط. وهي مفيدة لتجارب المطالبة المضبوطة.
agents.defaults.promptOverlays
تراكبات مطالبة مستقلة عن المزوّد تُطبَّق حسب عائلة النموذج. تتلقى معرّفات نماذج GPT-5-family عقد السلوك المشترك عبر المزوّدين؛ ويتحكم personality فقط في طبقة أسلوب التفاعل الودي.
- يفعّل
"friendly"(الافتراضي) و"on"طبقة أسلوب التفاعل الودي. - يعطّل
"off"الطبقة الودية فقط؛ بينما يبقى عقد السلوك الموسوم لـ GPT-5 مفعّلًا. - لا يزال يتم قراءة
plugins.entries.openai.config.personalityالقديم عندما لا يكون هذا الإعداد المشترك مضبوطًا.
agents.defaults.heartbeat
تشغيلات Heartbeat الدورية.
every: سلسلة مدة (ms/s/m/h). الافتراضي:30m(مصادقة مفتاح API) أو1h(مصادقة OAuth). اضبطها على0mللتعطيل.includeSystemPromptSection: عندما تكون false، يحذف قسم Heartbeat من مطالبة النظام ويتخطى حقنHEARTBEAT.mdفي سياق bootstrap. الافتراضي:true.suppressToolErrorWarnings: عندما تكون true، يمنع حمولات تحذير أخطاء الأدوات أثناء تشغيلات Heartbeat.timeoutSeconds: الحد الأقصى للوقت بالثواني المسموح لدور وكيل Heartbeat قبل إجهاضه. اتركه غير مضبوط لاستخدامagents.defaults.timeoutSeconds.directPolicy: سياسة التسليم المباشر/للرسائل الخاصة. تسمحallow(الافتراضي) بالتسليم إلى الهدف المباشر. أماblockفتمنع التسليم إلى الهدف المباشر وتصدرreason=dm-blocked.lightContext: عندما تكون true، تستخدم تشغيلات Heartbeat سياق bootstrap خفيفًا وتحتفظ فقط بـHEARTBEAT.mdمن ملفات bootstrap الخاصة بمساحة العمل.isolatedSession: عندما تكون true، يعمل كل Heartbeat في جلسة جديدة من دون أي سجل محادثة سابق. وهو نمط العزل نفسه المستخدم في Cron معsessionTarget: "isolated". ويقلل تكلفة الرموز المميزة لكل Heartbeat من نحو ~100K إلى ~2-5K رمز.- لكل وكيل: اضبط
agents.list[].heartbeat. وعندما يعرّف أي وكيلheartbeat، تشغّل Heartbeats لهؤلاء الوكلاء فقط. - تعمل Heartbeats على أدوار وكيل كاملة — والفواصل الأقصر تستهلك مزيدًا من الرموز المميزة.
agents.defaults.compaction
mode:defaultأوsafeguard(تلخيص مجزّأ للتواريخ الطويلة). راجع Compaction.provider: معرّف Plugin مزود Compaction مسجل. عند ضبطه، يتم استدعاءsummarize()الخاصة بالمزوّد بدلًا من تلخيص LLM المدمج. ويعود إلى المدمج عند الفشل. ويفرض ضبط مزوّد استخدامmode: "safeguard". راجع Compaction.timeoutSeconds: الحد الأقصى بالثواني المسموح لعملية Compaction واحدة قبل أن يجهضها OpenClaw. الافتراضي:900.identifierPolicy:strict(الافتراضي) أوoffأوcustom. تقومstrictبإضافة إرشادات مدمجة للاحتفاظ بالمعرّفات المعتمة أثناء تلخيص Compaction.identifierInstructions: نص مخصص اختياري للحفاظ على المعرّفات يُستخدم عندما يكونidentifierPolicy=custom.postCompactionSections: أسماء أقسام H2/H3 اختيارية من AGENTS.md لإعادة حقنها بعد Compaction. الافتراضي هو["Session Startup", "Red Lines"]؛ اضبط[]لتعطيل إعادة الحقن. وعندما يكون غير مضبوط أو مضبوطًا صراحةً على ذلك الزوج الافتراضي، تُقبل أيضًا عناوينEvery Session/Safetyالقديمة كاحتياط متوافق قديم.model: تجاوز اختياري بصيغةprovider/model-idلتلخيص Compaction فقط. استخدمه عندما ينبغي أن تحتفظ الجلسة الرئيسية بنموذج واحد بينما يجب أن تعمل ملخصات Compaction على نموذج آخر؛ وعندما لا يكون مضبوطًا، يستخدم Compaction النموذج الأساسي للجلسة.notifyUser: عندما تكونtrue، يرسل إشعارات موجزة إلى المستخدم عند بدء Compaction وعند اكتماله (مثل “Compacting context…” و”Compaction complete”). ويكون معطّلًا افتراضيًا لإبقاء Compaction صامتًا.memoryFlush: دور وكيل صامت قبل Compaction التلقائي لتخزين الذكريات الدائمة. ويتم تخطيه عندما تكون مساحة العمل للقراءة فقط.
agents.defaults.contextPruning
يقلّم نتائج الأدوات القديمة من السياق الموجود في الذاكرة قبل إرسالها إلى LLM. لا يعدّل سجل الجلسات على القرص.
سلوك وضع cache-ttl
سلوك وضع cache-ttl
- يفعّل
mode: "cache-ttl"عمليات التقليم. - يتحكم
ttlفي عدد المرات التي يمكن فيها تشغيل التقليم مرة أخرى (بعد آخر لمسة للذاكرة المؤقتة). - يقوم التقليم أولًا باقتطاع نتائج الأدوات الكبيرة بشكل مرن، ثم يزيل نتائج الأدوات الأقدم بشكل صارم إذا لزم الأمر.
... في المنتصف.الإزالة الصارمة تستبدل نتيجة الأداة بالكامل بالعنصر النائب.ملاحظات:- لا يتم أبدًا اقتطاع/إزالة كتل الصور.
- تعتمد النسب على الأحرف (تقريبية)، وليس على عدد الرموز المميزة بدقة.
- إذا كان عدد رسائل المساعد أقل من
keepLastAssistants، يتم تخطي التقليم.
Block streaming
- تتطلب القنوات غير Telegram ضبط
*.blockStreaming: trueصراحةً لتفعيل الردود الكتلية. - تجاوزات القنوات:
channels.<channel>.blockStreamingCoalesce(ومتغيراته لكل حساب). تستخدم Signal/Slack/Discord/Google Chat افتراضيًاminChars: 1500. humanDelay: توقف عشوائي بين الردود الكتلية. تعنيnatural= 800–2500ms. تجاوز لكل وكيل:agents.list[].humanDelay.
مؤشرات الكتابة
- القيم الافتراضية:
instantللدردشات المباشرة/الإشارات، وmessageلدردشات المجموعات غير المشار إليها. - تجاوزات لكل جلسة:
session.typingModeوsession.typingIntervalSeconds.
agents.defaults.sandbox
Sandboxing اختياري للوكيل المضمّن. راجع Sandboxing للدليل الكامل.
تفاصيل Sandbox
تفاصيل Sandbox
الواجهة الخلفية:وضع OpenShell:
docker: Runtime محلي لـ Docker (الافتراضي)ssh: Runtime بعيد عام مدعوم بـ SSHopenshell: Runtime خاص بـ OpenShell
backend: "openshell"، تنتقل الإعدادات الخاصة بالـ Runtime إلى
plugins.entries.openshell.config.تكوين الواجهة الخلفية SSH:target: هدف SSH بصيغةuser@host[:port]command: أمر عميل SSH (الافتراضي:ssh)workspaceRoot: جذر بعيد مطلق يُستخدم لمساحات العمل حسب النطاقidentityFile/certificateFile/knownHostsFile: ملفات محلية موجودة تمرَّر إلى OpenSSHidentityData/certificateData/knownHostsData: محتويات مضمّنة أو SecretRefs يقوم OpenClaw بتحويلها إلى ملفات مؤقتة وقت التشغيلstrictHostKeyChecking/updateHostKeys: مقابض سياسة مفاتيح المضيف الخاصة بـ OpenSSH
identityDataيتغلب علىidentityFilecertificateDataيتغلب علىcertificateFileknownHostsDataيتغلب علىknownHostsFile- يتم تحليل قيم
*Dataالمدعومة بـ SecretRef من لقطة Runtime النشطة للأسرار قبل بدء جلسة sandbox
- يزرع مساحة العمل البعيدة مرة واحدة بعد الإنشاء أو إعادة الإنشاء
- ثم يحافظ على مساحة عمل SSH البعيدة كمرجع أساسي
- يوجّه
exec، وأدوات الملفات، ومسارات الوسائط عبر SSH - لا يزامن التغييرات البعيدة مرة أخرى إلى المضيف تلقائيًا
- لا يدعم حاويات متصفح sandbox
none: مساحة عمل sandbox حسب النطاق تحت~/.openclaw/sandboxesro: مساحة عمل sandbox عند/workspace، ومساحة عمل الوكيل مركّبة للقراءة فقط عند/agentrw: مساحة عمل الوكيل مركّبة للقراءة والكتابة عند/workspace
session: حاوية + مساحة عمل لكل جلسةagent: حاوية + مساحة عمل واحدة لكل وكيل (الافتراضي)shared: حاوية ومساحة عمل مشتركتان (من دون عزل بين الجلسات)
mirror: زرع البعيد من المحلي قبل exec، ثم مزامنته إلى الخلف بعد exec؛ وتبقى مساحة العمل المحلية هي المرجع الأساسيremote: زرع البعيد مرة واحدة عند إنشاء sandbox، ثم تبقى مساحة العمل البعيدة هي المرجع الأساسي
remote، لا تتم مزامنة التعديلات المحلية على المضيف التي تتم خارج OpenClaw إلى sandbox تلقائيًا بعد خطوة الزرع.
يكون النقل عبر SSH إلى OpenShell sandbox، لكن الـ Plugin هو الذي يمتلك دورة حياة sandbox والمزامنة العاكسة الاختيارية.يُشغَّل setupCommand مرة واحدة بعد إنشاء الحاوية (عبر sh -lc). ويحتاج إلى اتصال شبكي صادر، وجذر قابل للكتابة، ومستخدم root.تكون الحاويات افتراضيًا network: "none" — اضبطها على "bridge" (أو شبكة bridge مخصصة) إذا كان الوكيل يحتاج إلى وصول صادر.
يتم حظر "host". كما يتم حظر "container:<id>" افتراضيًا ما لم تضبط صراحةً
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (تجاوز طارئ).المرفقات الواردة تُجهَّز في media/inbound/* داخل مساحة العمل النشطة.docker.binds يربط أدلة مضيف إضافية؛ ويتم دمج الروابط العامة وروابط كل وكيل.المتصفح داخل sandbox (sandbox.browser.enabled): Chromium + CDP داخل حاوية. يتم حقن عنوان noVNC URL في مطالبة النظام. ولا يتطلب browser.enabled في openclaw.json.
يستخدم وصول المراقبة عبر noVNC مصادقة VNC افتراضيًا، ويصدر OpenClaw عنوان URL ذا رمز قصير الأجل (بدلًا من كشف كلمة المرور في عنوان URL المشترك).- يقوم
allowHostControl: false(الافتراضي) بحظر الجلسات المعزولة من استهداف متصفح المضيف. - تكون القيمة الافتراضية لـ
networkهيopenclaw-sandbox-browser(شبكة bridge مخصصة). اضبطها علىbridgeفقط عندما تريد صراحةً اتصال bridge عامًا. - يقيّد
cdpSourceRangeاختياريًا دخول CDP على حافة الحاوية إلى نطاق CIDR (على سبيل المثال172.21.0.1/32). - يربط
sandbox.browser.bindsأدلة مضيف إضافية داخل حاوية متصفح sandbox فقط. وعند ضبطه (بما في ذلك[]) فإنه يستبدلdocker.bindsلحاوية المتصفح. - تُعرَّف افتراضيات التشغيل في
scripts/sandbox-browser-entrypoint.shوهي مضبوطة لمضيفي الحاويات:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(مفعّل افتراضيًا)- تكون الخيارات
--disable-3d-apisو--disable-software-rasterizerو--disable-gpuمفعلة افتراضيًا ويمكن تعطيلها عبرOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0إذا تطلب استخدام WebGL/3D ذلك. - يعيد
OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0تفعيل الامتدادات إذا كان سير عملك يعتمد عليها. - يمكن تغيير
--renderer-process-limit=2باستخدامOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>؛ اضبطه على0لاستخدام الحد الافتراضي لعدد العمليات في Chromium. - بالإضافة إلى
--no-sandboxو--disable-setuid-sandboxعندما يكونnoSandboxمفعّلًا. - تمثل القيم الافتراضية خط الأساس لصورة الحاوية؛ استخدم صورة متصفح مخصصة مع entrypoint مخصص لتغيير افتراضيات الحاوية.
sandbox.docker.binds خاصين بـ Docker فقط.
أنشئ الصور:
agents.list (تجاوزات لكل وكيل)
id: معرّف وكيل ثابت (مطلوب).default: عند ضبط أكثر من وكيل على هذا النحو، يفوز الأول (مع تسجيل تحذير). وإذا لم يتم ضبط أي وكيل، يكون أول إدخال في القائمة هو الافتراضي.model: تتجاوز صيغة السلسلةprimaryفقط؛ بينما تتجاوز صيغة الكائن{ primary, fallbacks }كليهما ([]تعطل الاحتياطات العامة). وتستمر مهام Cron التي تتجاوزprimaryفقط في وراثة الاحتياطات الافتراضية ما لم تضبطfallbacks: [].params: معلمات تدفق لكل وكيل يتم دمجها فوق إدخال النموذج المحدد فيagents.defaults.models. استخدم ذلك للتجاوزات الخاصة بالوكيل مثلcacheRetentionأوtemperatureأوmaxTokensمن دون تكرار فهرس النماذج بالكامل.skills: قائمة سماح Skills اختيارية لكل وكيل. وإذا حُذفت، يرث الوكيلagents.defaults.skillsعند ضبطها؛ والقائمة الصريحة تستبدل القيم الافتراضية بدلًا من دمجها، بينما[]تعني عدم استخدام أي Skills.thinkingDefault: مستوى التفكير الافتراضي الاختياري لكل وكيل (off | minimal | low | medium | high | xhigh | adaptive | max). ويتجاوزagents.defaults.thinkingDefaultلهذا الوكيل عندما لا يكون هناك تجاوز لكل رسالة أو لكل جلسة.reasoningDefault: القيمة الافتراضية الاختيارية لإظهار reasoning لكل وكيل (on | off | stream). وتُطبَّق عندما لا يوجد تجاوز reasoning لكل رسالة أو لكل جلسة.fastModeDefault: القيمة الافتراضية الاختيارية لـ fast mode لكل وكيل (true | false). وتُطبَّق عندما لا يوجد تجاوز fast-mode لكل رسالة أو لكل جلسة.embeddedHarness: تجاوز اختياري لسياسة harness منخفض المستوى لكل وكيل. استخدم{ runtime: "codex", fallback: "none" }لجعل وكيل واحد معتمدًا على Codex فقط بينما يحتفظ بقية الوكلاء بالاحتياط الافتراضي PI.runtime: واصف Runtime اختياري لكل وكيل. استخدمtype: "acp"مع القيم الافتراضية لـruntime.acp(agentوbackendوmodeوcwd) عندما ينبغي أن يستخدم الوكيل جلسات ACP harness افتراضيًا.identity.avatar: مسار نسبةً إلى مساحة العمل، أو عنوان URL من نوعhttp(s)، أو URI من نوعdata:.- تشتق
identityالقيم الافتراضية:ackReactionمنemoji، وmentionPatternsمنname/emoji. subagents.allowAgents: قائمة سماح لمعرّفات الوكلاء لـsessions_spawn(["*"]= أي وكيل؛ الافتراضي: الوكيل نفسه فقط).- حاجز وراثة sandbox: إذا كانت جلسة الطالب ضمن sandbox، فإن
sessions_spawnيرفض الأهداف التي ستعمل من دون sandbox. subagents.requireAgentId: عندما تكون true، يحظر استدعاءاتsessions_spawnالتي تحذفagentId(يفرض اختيار ملف تعريف صريح؛ الافتراضي: false).
التوجيه متعدد الوكلاء
شغّل عدة وكلاء معزولين داخل Gateway واحد. راجع متعدد الوكلاء.حقول مطابقة الربط
type(اختياري):routeللتوجيه العادي (وعند غيابه يكون الافتراضي route)، أوacpلروابط المحادثات الدائمة الخاصة بـ ACP.match.channel(مطلوب)match.accountId(اختياري؛*= أي حساب؛ والمحذوف = الحساب الافتراضي)match.peer(اختياري؛{ kind: direct|group|channel, id })match.guildId/match.teamId(اختياري؛ خاص بالقناة)acp(اختياري؛ لـtype: "acp"فقط):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(مطابقة تامة، من دون peer/guild/team)match.accountId: "*"(على مستوى القناة)- الوكيل الافتراضي
bindings.
بالنسبة إلى إدخالات type: "acp"، يقوم OpenClaw بالتحليل حسب هوية المحادثة المطابقة تمامًا (match.channel + الحساب + match.peer.id) ولا يستخدم ترتيب مستويات route binding أعلاه.
ملفات وصول لكل وكيل
وصول كامل (من دون sandbox)
وصول كامل (من دون sandbox)
أدوات + مساحة عمل للقراءة فقط
أدوات + مساحة عمل للقراءة فقط
من دون وصول إلى نظام الملفات (مراسلة فقط)
من دون وصول إلى نظام الملفات (مراسلة فقط)
الجلسة
تفاصيل حقول الجلسة
تفاصيل حقول الجلسة
scope: استراتيجية تجميع الجلسات الأساسية لسياقات الدردشة الجماعية.per-sender(الافتراضي): يحصل كل مرسل على جلسة معزولة داخل سياق القناة.global: يشترك جميع المشاركين في سياق القناة في جلسة واحدة (استخدمه فقط عندما يكون السياق المشترك مقصودًا).
dmScope: كيفية تجميع الرسائل الخاصة.main: تشترك جميع الرسائل الخاصة في الجلسة الرئيسية.per-peer: عزل حسب معرّف المرسل عبر القنوات.per-channel-peer: عزل حسب القناة + المرسل (موصى به لصناديق الوارد متعددة المستخدمين).per-account-channel-peer: عزل حسب الحساب + القناة + المرسل (موصى به للحسابات المتعددة).
identityLinks: يربط المعرّفات القياسية بالنظراء المسبوقين بالمزوّد لمشاركة الجلسات عبر القنوات.reset: سياسة إعادة التعيين الأساسية. تقومdailyبإعادة التعيين عندatHourحسب التوقيت المحلي؛ وتقومidleبإعادة التعيين بعدidleMinutes. وعندما يتم تكوين كلاهما، يفوز الذي تنتهي صلاحيته أولًا.resetByType: تجاوزات حسب النوع (directوgroupوthread). ويُقبلdmالقديم كاسم مستعار لـdirect.parentForkMaxTokens: الحد الأقصى لـtotalTokensفي الجلسة الأصلية المسموح به عند إنشاء جلسة خيط متفرعة (الافتراضي100000).- إذا كانت قيمة
totalTokensفي الأصل أعلى من هذه القيمة، يبدأ OpenClaw جلسة خيط جديدة بدلًا من وراثة سجل النص الأصلي. - اضبط القيمة على
0لتعطيل هذا الحاجز والسماح دائمًا بالتفرع من الأصل.
- إذا كانت قيمة
mainKey: حقل قديم. يستخدم Runtime دائمًا القيمة"main"لسلة الدردشة المباشرة الرئيسية.agentToAgent.maxPingPongTurns: الحد الأقصى لأدوار الرد المتبادل بين الوكلاء أثناء تبادلات الوكيل إلى الوكيل (عدد صحيح، المجال:0–5). تقوم0بتعطيل سلسلة ping-pong.sendPolicy: المطابقة حسبchannelأوchatType(direct|group|channel، مع الاسم المستعار القديمdm) أوkeyPrefixأوrawKeyPrefix. ويفوز أول منع.maintenance: عناصر التحكم في تنظيف مخزن الجلسات + الاحتفاظ.mode: تقومwarnبإصدار تحذيرات فقط؛ أماenforceفتطبّق التنظيف.pruneAfter: حد العمر للمدخلات القديمة (الافتراضي30d).maxEntries: الحد الأقصى لعدد المدخلات فيsessions.json(الافتراضي500).rotateBytes: يدوّرsessions.jsonعندما يتجاوز هذا الحجم (الافتراضي10mb).resetArchiveRetention: مدة الاحتفاظ بأرشيفات النصوص*.reset.<timestamp>. وتكون افتراضيًا مساوية لـpruneAfter؛ اضبطها علىfalseللتعطيل.maxDiskBytes: ميزانية اختيارية لمساحة القرص الخاصة بدليل الجلسات. في وضعwarnتسجل تحذيرات؛ وفي وضعenforceتزيل أقدم العناصر/الجلسات أولًا.highWaterBytes: هدف اختياري بعد تنظيف الميزانية. ويكون افتراضيًا80%منmaxDiskBytes.
threadBindings: الإعدادات الافتراضية العامة لميزات الجلسات المرتبطة بالخيوط.enabled: مفتاح افتراضي رئيسي (يمكن للمزوّدين تجاوزه؛ ويستخدم Discord القيمةchannels.discord.threadBindings.enabled)idleHours: إلغاء التركيز التلقائي الافتراضي بعد الخمول بالساعات (0يعطّل؛ ويمكن للمزوّدين تجاوزه)maxAgeHours: الحد الأقصى الافتراضي الصارم للعمر بالساعات (0يعطّل؛ ويمكن للمزوّدين تجاوزه)
الرسائل
بادئة الرد
تجاوزات لكل قناة/حساب:channels.<channel>.responsePrefix، وchannels.<channel>.accounts.<id>.responsePrefix.
التحليل (الأكثر تحديدًا يفوز): الحساب → القناة → العام. تؤدي "" إلى التعطيل وإيقاف التسلسل. وتشتق "auto" القيمة [{identity.name}].
متغيرات القالب:
| المتغير | الوصف | المثال |
|---|---|---|
{model} | الاسم القصير للنموذج | claude-opus-4-6 |
{modelFull} | معرّف النموذج الكامل | anthropic/claude-opus-4-6 |
{provider} | اسم المزوّد | anthropic |
{thinkingLevel} | مستوى التفكير الحالي | high، low، off |
{identity.name} | اسم هوية الوكيل | (يماثل "auto") |
{think} اسمًا مستعارًا لـ {thinkingLevel}.
تفاعل الإقرار
- تكون القيمة الافتراضية
identity.emojiللوكيل النشط، وإلا"👀". اضبطها على""للتعطيل. - تجاوزات لكل قناة:
channels.<channel>.ackReactionوchannels.<channel>.accounts.<id>.ackReaction. - ترتيب التحليل: الحساب → القناة →
messages.ackReaction→ الاحتياط من الهوية. - النطاق:
group-mentions(الافتراضي)، أوgroup-all، أوdirect، أوall. - يقوم
removeAckAfterReplyبإزالة الإقرار بعد الرد في Slack وDiscord وTelegram. - يفعّل
messages.statusReactions.enabledتفاعلات الحالة الدورية في Slack وDiscord وTelegram. في Slack وDiscord، يبقي عدم الضبط تفاعلات الحالة مفعلة عندما تكون تفاعلات الإقرار نشطة. في Telegram، اضبطه صراحةً علىtrueلتفعيل تفاعلات الحالة الدورية.
إزالة الاهتزاز للرسائل الواردة
يجمع الرسائل النصية السريعة من المرسل نفسه في دور وكيل واحد. وتؤدي الوسائط/المرفقات إلى التفريغ فورًا. وتتجاوز أوامر التحكم إزالة الاهتزاز.TTS (تحويل النص إلى كلام)
- يتحكم
autoفي وضع TTS التلقائي الافتراضي:offأوalwaysأوinboundأوtagged. ويمكن لـ/tts on|offتجاوز التفضيلات المحلية، كما يعرض/tts statusالحالة الفعلية. - يتجاوز
summaryModelقيمةagents.defaults.model.primaryللتلخيص التلقائي. - يكون
modelOverridesمفعّلًا افتراضيًا؛ أماmodelOverrides.allowProviderفتكون قيمته الافتراضيةfalse(اشتراك اختياري). - تعود مفاتيح API إلى
ELEVENLABS_API_KEY/XI_API_KEYوOPENAI_API_KEY. - يتجاوز
openai.baseUrlنقطة نهاية OpenAI TTS. وترتيب التحليل هو: التكوين، ثمOPENAI_TTS_BASE_URL، ثمhttps://api.openai.com/v1. - عندما يشير
openai.baseUrlإلى نقطة نهاية غير تابعة لـ OpenAI، يتعامل OpenClaw معها على أنها خادم TTS متوافق مع OpenAI ويخفف من التحقق من النموذج/الصوت.
Talk
الإعدادات الافتراضية لوضع Talk (macOS/iOS/Android).- يجب أن تطابق
talk.providerمفتاحًا فيtalk.providersعند تكوين عدة مزوّدات Talk. - تكون مفاتيح Talk القديمة المسطحة (
talk.voiceIdوtalk.voiceAliasesوtalk.modelIdوtalk.outputFormatوtalk.apiKey) خاصة بالتوافق فقط، وتُنقل تلقائيًا إلىtalk.providers.<provider>. - تعود معرّفات الصوت إلى
ELEVENLABS_VOICE_IDأوSAG_VOICE_ID. - يقبل
providers.*.apiKeyسلاسل نصية صريحة أو كائنات SecretRef. - يُطبّق الاحتياط
ELEVENLABS_API_KEYفقط عندما لا يكون هناك مفتاح API لـ Talk مكوّن. - يتيح
providers.*.voiceAliasesلتوجيهات Talk استخدام أسماء ودية. - يتحكم
silenceTimeoutMsفي مدة انتظار وضع Talk بعد صمت المستخدم قبل إرسال النص المنسوخ. وعند عدم ضبطه، يحتفظ بنافذة التوقف المؤقت الافتراضية الخاصة بالمنصة (700 ms على macOS وAndroid، و900 ms على iOS).
ذو صلة
- مرجع التكوين — جميع مفاتيح التكوين الأخرى
- التكوين — المهام الشائعة والإعداد السريع
- أمثلة التكوين