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

السياق

“السياق” هو كل ما يرسله OpenClaw إلى النموذج أثناء التشغيل. وهو مقيّد بواسطة نافذة السياق الخاصة بالنموذج (حد الرموز). النموذج الذهني للمبتدئين:
  • موجّه النظام (يبنيه OpenClaw): القواعد، والأدوات، وقائمة Skills، والوقت/بيئة التشغيل، وملفات مساحة العمل المحقونة.
  • سجل المحادثة: رسائلك + رسائل المساعد لهذه الجلسة.
  • استدعاءات/نتائج الأدوات + المرفقات: مخرجات الأوامر، وقراءات الملفات، والصور/الصوت، وغير ذلك.
السياق ليس الشيء نفسه الذي تعنيه “الذاكرة”: يمكن تخزين الذاكرة على القرص وإعادة تحميلها لاحقًا؛ أما السياق فهو ما يوجد داخل نافذة النموذج الحالية.

البدء السريع (فحص السياق)

  • /status ← عرض سريع لـ “إلى أي مدى امتلأت نافذتي؟” + إعدادات الجلسة.
  • /context list ← ما الذي يتم حقنه + الأحجام التقريبية (لكل ملف + الإجماليات).
  • /context detail ← تفصيل أعمق: لكل ملف، وأحجام مخططات الأدوات، وأحجام إدخالات Skills، وحجم موجّه النظام.
  • /usage tokens ← إلحاق تذييل استخدام لكل رد ضمن الردود العادية.
  • /compact ← تلخيص السجل الأقدم في إدخال مضغوط لتحرير مساحة في النافذة.
راجع أيضًا: أوامر Slash، استخدام الرموز والتكاليف، الضغط.

مثال على الإخراج

تختلف القيم حسب النموذج، والموفر، وسياسة الأدوات، وما يوجد في مساحة العمل لديك.

/context list

🧠 Context breakdown
Workspace: <workspaceDir>
Bootstrap max/file: 20,000 chars
Sandbox: mode=non-main sandboxed=false
System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))

Injected workspace files:
- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)

Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
Tools: read, edit, write, exec, process, browser, message, sessions_send, …
Tool list (system prompt text): 1,032 chars (~258 tok)
Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
Tools: (same as above)

Session tokens (cached): 14,250 total / ctx=32,000

/context detail

🧠 Context breakdown (detailed)

Top skills (prompt entry size):
- frontend-design: 412 chars (~103 tok)
- oracle: 401 chars (~101 tok)
… (+10 more skills)

Top tools (schema size):
- browser: 9,812 chars (~2,453 tok)
- exec: 6,240 chars (~1,560 tok)
… (+N more tools)

ما الذي يُحتسب ضمن نافذة السياق

كل ما يتلقاه النموذج يُحتسب، بما في ذلك:
  • موجّه النظام (جميع الأقسام).
  • سجل المحادثة.
  • استدعاءات الأدوات + نتائج الأدوات.
  • المرفقات/النصوص المفرغة (الصور/الصوت/الملفات).
  • ملخصات الضغط وعناصر التقليم.
  • “الأغلفة” الخاصة بالموفر أو الرؤوس المخفية (غير مرئية، لكنها تُحتسب).

كيف يبني OpenClaw موجّه النظام

موجّه النظام مملوك لـ OpenClaw ويُعاد بناؤه في كل تشغيل. ويتضمن:
  • قائمة الأدوات + أوصافًا قصيرة.
  • قائمة Skills (بيانات وصفية فقط؛ راجع أدناه).
  • موقع مساحة العمل.
  • الوقت (UTC + الوقت المحول للمستخدم إذا كان مضبوطًا).
  • بيانات وقت التشغيل الوصفية (المضيف/نظام التشغيل/النموذج/التفكير).
  • ملفات bootstrap المحقونة من مساحة العمل تحت سياق المشروع.
التفصيل الكامل: موجّه النظام.

ملفات مساحة العمل المحقونة (سياق المشروع)

افتراضيًا، يحقن OpenClaw مجموعة ثابتة من ملفات مساحة العمل (إن وُجدت):
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (في التشغيل الأول فقط)
تُقتطع الملفات الكبيرة لكل ملف باستخدام agents.defaults.bootstrapMaxChars (الافتراضي 20000 حرفًا). كما يفرض OpenClaw حدًا إجماليًا لحقن bootstrap عبر جميع الملفات باستخدام agents.defaults.bootstrapTotalMaxChars (الافتراضي 150000 حرف). ويعرض /context أحجام الخام مقابل المحقون وما إذا كان قد حدث اقتطاع. عند حدوث اقتطاع، يمكن لوقت التشغيل حقن كتلة تحذير ضمن الموجّه تحت سياق المشروع. اضبط هذا السلوك باستخدام agents.defaults.bootstrapPromptTruncationWarning (off أو once أو always؛ الافتراضي once).

Skills: المحقون مقابل المُحمّل عند الطلب

يتضمن موجّه النظام قائمة Skills مختصرة (الاسم + الوصف + الموقع). ولهذه القائمة حمل فعلي. لا تُضمَّن تعليمات Skills افتراضيًا. ومن المتوقع أن يقوم النموذج بقراءة ملف SKILL.md الخاص بالمهارة باستخدام read عند الحاجة فقط.

الأدوات: هناك كلفتان

تؤثر الأدوات في السياق بطريقتين:
  1. نص قائمة الأدوات في موجّه النظام (ما تراه بصيغة “Tooling”).
  2. مخططات الأدوات (JSON). تُرسل هذه إلى النموذج حتى يتمكن من استدعاء الأدوات. وهي تُحتسب ضمن السياق رغم أنك لا تراها كنص عادي.
يقسم /context detail أكبر مخططات الأدوات حتى تتمكن من رؤية ما يهيمن على الحجم.

الأوامر، والتوجيهات، و”الاختصارات المضمنة”

تتعامل البوابة مع أوامر Slash. وهناك بعض السلوكيات المختلفة:
  • الأوامر المستقلة: الرسالة التي تتكون فقط من /... تُشغَّل كأمر.
  • التوجيهات: تتم إزالة /think و/verbose و/reasoning و/elevated و/model و/queue قبل أن يرى النموذج الرسالة.
    • تستمر الرسائل التي تحتوي على توجيهات فقط في إعدادات الجلسة.
    • تعمل التوجيهات المضمنة داخل رسالة عادية كتلميحات لكل رسالة.
  • الاختصارات المضمنة (للمرسلين الموجودين في قائمة السماح فقط): يمكن لبعض رموز /... داخل رسالة عادية أن تُشغَّل فورًا (مثل: “hey /status”)، وتُزال قبل أن يرى النموذج النص المتبقي.
التفاصيل: أوامر Slash.

الجلسات، والضغط، والتقليم (ما الذي يستمر)

يعتمد ما يستمر عبر الرسائل على الآلية:
  • السجل العادي يستمر في نص الجلسة حتى يُضغط/يُقلَّم حسب السياسة.
  • الضغط يحتفظ بملخص داخل النص ويُبقي الرسائل الحديثة سليمة.
  • التقليم يزيل نتائج الأدوات القديمة من الموجّه داخل الذاكرة أثناء التشغيل، لكنه لا يعيد كتابة النص.
الوثائق: الجلسة، الضغط، تقليم الجلسة. افتراضيًا، يستخدم OpenClaw محرّك السياق المضمّن legacy من أجل التجميع و الضغط. وإذا قمت بتثبيت plugin يوفّر kind: "context-engine" و حددته باستخدام plugins.slots.contextEngine، فسيفوّض OpenClaw تجميع السياق، و/compact، وخطافات دورة حياة سياق الوكيل الفرعي ذات الصلة إلى ذلك المحرّك بدلًا من ذلك. ولا يؤدي ownsCompaction: false إلى رجوع تلقائي إلى المحرّك legacy؛ بل يجب على المحرّك النشط أن يطبّق compact() بشكل صحيح أيضًا. راجع Context Engine للاطلاع على الواجهة القابلة للتوصيل بالكامل، وخطافات دورة الحياة، والإعداد.

ما الذي يبلّغ عنه /context فعليًا

يفضّل /context أحدث تقرير مبني وقت التشغيل لموجّه النظام عندما يكون متاحًا:
  • System prompt (run) = مأخوذ من آخر تشغيل مضمّن (قادر على استخدام الأدوات) ومخزّن في سجل الجلسة.
  • System prompt (estimate) = محسوب أثناء التنفيذ عندما لا يوجد تقرير تشغيل (أو عند التشغيل عبر خلفية CLI لا تولد التقرير).
في كلتا الحالتين، يبلّغ عن الأحجام وأكبر المساهمين؛ لكنه لا يفرغ موجّه النظام الكامل أو مخططات الأدوات.

ذو صلة