Technical reference
استخدام الرموز والتكاليف
يتتبع OpenClaw الرموز، لا الأحرف. تختلف الرموز حسب النموذج، لكن معظم النماذج بأسلوب OpenAI يبلغ متوسطها نحو 4 أحرف لكل رمز في النص الإنجليزي.
كيف تُبنى مطالبة النظام
يجمع OpenClaw مطالبة النظام الخاصة به في كل تشغيل. وتشمل:
- قائمة الأدوات + أوصاف قصيرة
- قائمة Skills (البيانات الوصفية فقط؛ تُحمَّل التعليمات عند الطلب باستخدام
read). تتلقى دورات Codex الأصلية كتلة Skills المضغوطة كتعليمات مطوّر تعاون محددة بنطاق الدورة؛ وتتلقاها الحزم الأخرى في سطح المطالبة العادي. وهي محدودة بواسطةskills.limits.maxSkillsPromptChars، مع تجاوز اختياري لكل وكيل عندagents.list[].skillsLimits.maxSkillsPromptChars. - تعليمات التحديث الذاتي
- مساحة العمل + ملفات التمهيد (
AGENTS.md،SOUL.md،TOOLS.md،IDENTITY.md،USER.md،HEARTBEAT.md،BOOTSTRAP.mdعند كونها جديدة، إضافةً إلىMEMORY.mdعند وجوده). لا تلصق دورات Codex الأصلية ملفMEMORY.mdالخام من مساحة عمل الوكيل المكوّنة عندما تكون أدوات الذاكرة متاحة لتلك المساحة؛ بل تتضمن مؤشر ذاكرة صغيرًا في تعليمات مطوّر التعاون المحددة بنطاق الدورة وتستخدم أدوات الذاكرة عند الطلب. إذا كانت الأدوات معطلة، أو كان البحث في الذاكرة غير متاح، أو كانت مساحة العمل النشطة تختلف عن مساحة عمل ذاكرة الوكيل، يستخدمMEMORY.mdمسار سياق الدورة العادي المحدود. لا يُحقن جذرmemory.mdبالأحرف الصغيرة؛ فهو مُدخل إصلاح قديم لـopenclaw doctor --fixعند إقرانه بـMEMORY.md. تُقتطع الملفات الكبيرة المحقونة بواسطةagents.defaults.bootstrapMaxChars(الافتراضي: 20000)، ويُحدد إجمالي حقن التمهيد بواسطةagents.defaults.bootstrapTotalMaxChars(الافتراضي: 60000). لا تُعد ملفاتmemory/*.mdاليومية جزءًا من مطالبة التمهيد العادية؛ فهي تبقى عند الطلب عبر أدوات الذاكرة في الدورات العادية، لكن تشغيلات النموذج عند إعادة الضبط/بدء التشغيل يمكن أن تسبق كتلة سياق بدء تشغيل لمرة واحدة بذاكرة يومية حديثة لتلك الدورة الأولى. تُقر أوامر الدردشة المجردة/newو/resetدون استدعاء النموذج. يتحكمagents.defaults.startupContextفي تمهيد بدء التشغيل. مقتطفات AGENTS.md بعد Compaction منفصلة وتتطلب اشتراكًا صريحًا عبرagents.defaults.compaction.postCompactionSections. - الوقت (UTC + المنطقة الزمنية للمستخدم)
- وسوم الرد + سلوك Heartbeat
- بيانات وصفية لوقت التشغيل (المضيف/نظام التشغيل/النموذج/التفكير)
راجع التفصيل الكامل في مطالبة النظام.
عند توثيق بيانات الاعتماد أو مقتطفات المصادقة، استخدم اصطلاحات العنصر النائب للأسرار لتجنب النتائج الإيجابية الكاذبة من ماسح الأسرار في التغييرات الخاصة بالوثائق فقط.
ما الذي يُحتسب في نافذة السياق
كل ما يتلقاه النموذج يُحتسب ضمن حد السياق:
- مطالبة النظام (كل الأقسام المذكورة أعلاه)
- سجل المحادثة (رسائل المستخدم + المساعد)
- استدعاءات الأدوات ونتائج الأدوات
- المرفقات/النصوص (صور، صوت، ملفات)
- ملخصات Compaction وآثار التشذيب
- أغلفة المزوّد أو رؤوس الأمان (غير مرئية، لكنها لا تزال تُحتسب)
لبعض الأسطح الثقيلة في وقت التشغيل حدودها الصريحة الخاصة:
agents.defaults.contextLimits.memoryGetMaxCharsagents.defaults.contextLimits.memoryGetDefaultLinesagents.defaults.contextLimits.toolResultMaxCharsagents.defaults.contextLimits.postCompactionMaxChars
توجد التجاوزات لكل وكيل ضمن agents.list[].contextLimits. هذه المقابض
مخصصة لمقتطفات وقت التشغيل المحدودة والكتل المحقونة المملوكة لوقت التشغيل.
وهي منفصلة عن حدود التمهيد، وحدود سياق بدء التشغيل، وحدود مطالبة Skills.
toolResultMaxChars سقف متقدم (حتى 1000000 حرف). عند عدم تعيينه، يختار OpenClaw
حد نتيجة الأداة الحي من نافذة سياق النموذج الفعالة: 16000 حرف
دون 100 ألف رمز، و32000 حرف عند 100 ألف+ رمز، و64000 حرف عند 200 ألف+
رمز، مع بقائه محدودًا بحارس حصة سياق وقت التشغيل.
بالنسبة إلى الصور، يقلّص OpenClaw حمولات صور النصوص/الأدوات قبل استدعاءات المزوّد.
استخدم agents.defaults.imageMaxDimensionPx (الافتراضي: 1200) لضبط ذلك:
- القيم الأقل تقلل عادةً استخدام رموز الرؤية وحجم الحمولة.
- القيم الأعلى تحفظ تفاصيل بصرية أكثر للقطات الشاشة الكثيفة بـ OCR/واجهة المستخدم.
للحصول على تفصيل عملي (لكل ملف محقون، والأدوات، وSkills، وحجم مطالبة النظام)، استخدم /context list أو /context detail. راجع السياق.
كيفية رؤية استخدام الرموز الحالي
استخدم هذه في الدردشة:
/status→ بطاقة حالة غنية بالرموز التعبيرية مع نموذج الجلسة، واستخدام السياق، ورموز الإدخال/الإخراج لآخر استجابة، والتكلفة المقدّرة عندما يكون التسعير المحلي مكوّنًا للنموذج النشط./usage off|tokens|full→ يضيف تذييل استخدام لكل استجابة إلى كل رد.- يستمر لكل جلسة (مخزن كـ
responseUsage). /usage reset(الأسماء المستعارة:inherit،clear،default) — يمسح تجاوز الجلسة بحيث تعود الجلسة إلى وراثة الإعداد الافتراضي المكوّن.- يعرض
/usage tokensتفاصيل رموز/ذاكرة تخزين مؤقت للدورة. - يعرض
/usage fullتفاصيل مضغوطة للنموذج/السياق/التكلفة؛ ولا تظهر التكلفة المقدّرة إلا عندما يمتلك OpenClaw بيانات استخدام وصفية وتسعيرًا محليًا للنموذج النشط. يمكن لتخطيطاتmessages.usageTemplateالمخصصة تضمين حقول الرموز/ذاكرة التخزين المؤقت.
- يستمر لكل جلسة (مخزن كـ
/usage cost→ يعرض ملخص تكلفة محليًا من سجلات جلسات OpenClaw.
أسطح أخرى:
- TUI/Web TUI: يدعمان
/status+/usage. - CLI: يعرض
openclaw status --usageوopenclaw channels listنوافذ حصة المزوّد المطبّعة (X% left، وليس تكاليف لكل استجابة). مزوّدو نافذة الاستخدام الحاليون: Anthropic، GitHub Copilot، Gemini CLI، OpenAI Codex، MiniMax، Xiaomi، و z.ai.
تطبّع أسطح الاستخدام الأسماء المستعارة الشائعة لحقول المزوّد الأصلية قبل العرض.
بالنسبة إلى حركة Responses من عائلة OpenAI، يشمل ذلك كلًا من input_tokens /
output_tokens وprompt_tokens / completion_tokens، بحيث لا تغيّر أسماء الحقول
الخاصة بالنقل /status أو /usage أو ملخصات الجلسة.
يُطبّع استخدام Gemini CLI أيضًا: يقرأ محلل stream-json الافتراضي أحداث
message الخاصة بالمساعد، ويُعيّن stats.cached إلى cacheRead مع استخدام
stats.input_tokens - stats.cached عندما يحذف CLI حقل stats.input الصريح.
لا تزال تجاوزات JSON القديمة تقرأ نص الرد من response.
بالنسبة إلى حركة Responses الأصلية من عائلة OpenAI، تُطبّع أسماء استخدام
WebSocket/SSE المستعارة بالطريقة نفسها، وتعود الإجماليات إلى الإدخال + الإخراج
المطبّعين عندما يكون total_tokens مفقودًا أو 0.
عندما تكون لقطة الجلسة الحالية متفرقة، يمكن لـ /status وsession_status
أيضًا استرداد عدادات الرموز/ذاكرة التخزين المؤقت وتسمية نموذج وقت التشغيل النشط من
أحدث سجل استخدام للنص. لا تزال القيم الحية غير الصفرية الحالية لها
الأسبقية على قيم الرجوع من النص، ويمكن للإجماليات النصية الأكبر الموجهة للمطالبة
أن تفوز عندما تكون الإجماليات المخزنة مفقودة أو أصغر.
تأتي مصادقة الاستخدام لنوافذ حصة المزوّد من خطافات خاصة بالمزوّد عندما تكون
متاحة؛ وإلا يعود OpenClaw إلى مطابقة بيانات اعتماد OAuth/API-key
من ملفات تعريف المصادقة، أو البيئة، أو الإعداد.
تستمر إدخالات نصوص المساعد في شكل الاستخدام المطبّع نفسه، بما في ذلك
usage.cost عندما يكون للنموذج النشط تسعير مكوّن ويعيد المزوّد
بيانات استخدام وصفية. يمنح هذا /usage cost وحالة الجلسة المدعومة بالنصوص
مصدرًا ثابتًا حتى بعد زوال حالة وقت التشغيل الحية.
يبقي OpenClaw محاسبة استخدام المزوّد منفصلة عن لقطة السياق الحالية.
يمكن أن يتضمن usage.total للمزوّد إدخالًا مخزنًا مؤقتًا، وإخراجًا، واستدعاءات
نموذج متعددة لحلقة الأدوات، لذا فهو مفيد للتكلفة والقياسات لكنه قد يبالغ في
نافذة السياق الحية. تستخدم عروض السياق والتشخيصات أحدث لقطة مطالبة
(promptTokens، أو آخر استدعاء نموذج عندما لا تتوفر لقطة مطالبة)
لـ context.used.
تقدير التكلفة (عند عرضها)
تُقدّر التكاليف من إعداد تسعير نموذجك:
models.providers.<provider>.models[].costهذه دولارات أمريكية لكل 1M رمز لـ input، وoutput، وcacheRead، و
cacheWrite. إذا كان التسعير مفقودًا، يحذف /usage full التكلفة؛ استخدم /usage tokens
أو messages.usageTemplate مخصصًا عندما تحتاج إلى تفاصيل الرموز/ذاكرة التخزين المؤقت في كل
رد. لا يقتصر عرض التكلفة على مصادقة API-key: يمكن للمزوّدين غير المعتمدين على API-key
مثل aws-sdk عرض تكلفة مقدّرة عندما يتضمن إدخال النموذج المكوّن لديهم
تسعيرًا محليًا ويعيد المزوّد بيانات استخدام وصفية.
بعد أن تصل العمليات الجانبية والقنوات إلى مسار جاهزية Gateway، يبدأ OpenClaw
تمهيد تسعير اختياريًا في الخلفية لمراجع النماذج المكوّنة التي لا تمتلك
تسعيرًا محليًا بالفعل. يجلب ذلك التمهيد كتالوجات تسعير OpenRouter وLiteLLM
البعيدة. عيّن models.pricing.enabled: false لتخطي جلب تلك الكتالوجات
على الشبكات غير المتصلة أو المقيدة؛ وتستمر إدخالات
models.providers.*.models[].cost الصريحة في قيادة تقديرات التكلفة المحلية.
أثر TTL لذاكرة التخزين المؤقت والتشذيب
ينطبق تخزين مطالبات المزوّد مؤقتًا فقط ضمن نافذة TTL لذاكرة التخزين المؤقت. يمكن لـ OpenClaw تشغيل تشذيب cache-ttl اختياريًا: إذ يشذب الجلسة بمجرد انتهاء TTL لذاكرة التخزين المؤقت، ثم يعيد ضبط نافذة التخزين المؤقت بحيث يمكن للطلبات اللاحقة إعادة استخدام السياق المخزن مؤقتًا حديثًا بدلًا من إعادة تخزين السجل الكامل مؤقتًا. هذا يبقي تكاليف كتابة ذاكرة التخزين المؤقت أقل عندما تصبح الجلسة خاملة بعد TTL.
اضبطه في تكوين Gateway وراجع تفاصيل السلوك في تشذيب الجلسات.
يمكن لـ Heartbeat إبقاء ذاكرة التخزين المؤقت دافئة عبر فجوات الخمول. إذا كانت TTL لذاكرة
التخزين المؤقت الخاصة بنموذجك 1h، فإن ضبط فاصل Heartbeat دون ذلك بقليل (مثلًا 55m) يمكن أن يتجنب
إعادة تخزين المطالبة الكاملة مؤقتًا، مما يقلل تكاليف كتابة ذاكرة التخزين المؤقت.
في إعدادات متعددة الوكلاء، يمكنك الاحتفاظ بتكوين نموذج مشترك واحد وضبط سلوك التخزين المؤقت
لكل وكيل باستخدام agents.list[].params.cacheRetention.
للحصول على دليل كامل لكل مقبض على حدة، راجع تخزين المطالبات مؤقتًا.
بالنسبة إلى تسعير Anthropic API، تكون قراءات ذاكرة التخزين المؤقت أرخص بكثير من رموز الإدخال، بينما تُفوتر كتابات ذاكرة التخزين المؤقت بمعامل أعلى. راجع تسعير تخزين المطالبات مؤقتًا لدى Anthropic لأحدث الأسعار ومعاملات TTL: https://docs.anthropic.com/docs/build-with-claude/prompt-caching
مثال: إبقاء ذاكرة تخزين مؤقت لمدة ساعة واحدة دافئة باستخدام Heartbeat
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" heartbeat: every: "55m"مثال: حركة مختلطة مع استراتيجية تخزين مؤقت لكل وكيل
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" # default baseline for most agents list: - id: "research" default: true heartbeat: every: "55m" # keep long cache warm for deep sessions - id: "alerts" params: cacheRetention: "none" # avoid cache writes for bursty notificationsتندمج agents.list[].params فوق params الخاصة بالنموذج المحدد، بحيث يمكنك
تجاوز cacheRetention فقط ووراثة افتراضيات النموذج الأخرى دون تغيير.
سياق Anthropic 1M
يضبط OpenClaw حجم نماذج Claude 4.x القادرة على GA مثل Opus 4.8 وOpus 4.7 وOpus 4.6 و
Sonnet 4.6 باستخدام نافذة سياق Anthropic بحجم 1M. لا تحتاج إلى
params.context1m: true لهذه النماذج.
agents: defaults: models: "anthropic/claude-opus-4-6": alias: opusيمكن للإعدادات الأقدم الاحتفاظ بـ context1m: true، لكن OpenClaw لم يعد يرسل
رأس بيتا المتقاعد context-1m-2025-08-07 الخاص بـ Anthropic لهذا الإعداد ولا
يوسّع نماذج Claude الأقدم غير المدعومة إلى 1M.
المتطلب: يجب أن تكون بيانات الاعتماد مؤهلة لاستخدام السياق الطويل. إذا لم تكن كذلك، تستجيب Anthropic بخطأ حد معدل من جانب المزوّد لذلك الطلب.
إذا صادقت Anthropic باستخدام رموز OAuth/الاشتراك (sk-ant-oat-*)،
يحافظ OpenClaw على رؤوس بيتا المطلوبة من OAuth لدى Anthropic مع تجريد
بيتا context-1m-* المتقاعدة إذا بقيت في إعداد أقدم.
نصائح لتقليل ضغط الرموز
- استخدم
/compactلتلخيص الجلسات الطويلة. - قلّص مخرجات الأدوات الكبيرة في تدفقات عملك.
- خفّض
agents.defaults.imageMaxDimensionPxللجلسات كثيرة لقطات الشاشة. - أبقِ أوصاف Skills قصيرة (تُحقن قائمة Skills في الموجّه).
- فضّل النماذج الأصغر للعمل المطوّل والاستكشافي.
راجع Skills لمعرفة صيغة الحمل الإضافي الدقيقة لقائمة Skills.