> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wolffi.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# نظام السياق الرشيق

> لماذا يكلف طلب وولفيش الجديد ~9.4 ألف رمز بدلاً من ~94 ألفًا — وكيف يسترجع النموذج كل شيء آخر عند الطلب

# الأساسيات في الداخل، وكل شيء آخر على بُعد استدعاء واحد

كان وولفيش يُحمِّل موجه النظام مقدَّمًا: ملفات ذاكرة كاملة، وتفريغ حلقات يومين، وكتالوج نثري للأدوات بحجم 16 ألف رمز. إعادة تصميم السياق الرشيق (v1.0.203) تقلب ذلك. الموجه الآن يحمل الأساسيات فقط بالإضافة إلى فهرسين مُدمجين — **فهرس القدرات** و**خريطة الذاكرة** — والنموذج *يسترجع* كل شيء آخر بالأدوات، عند الطلب، في أجزاء من الثانية.

موجه النظام لمحادثة جديدة هو \~5,000 رمز (كان \~44,000). أضف مخططات الأدوات الأساسية (\~4 آلاف) فيكلف الطلب الجديد **≈9.4 ألف رمز مقابل \~94 ألفًا سابقًا — تخفيض بمقدار 10×**.

```
موجه النظام (~5 آلاف رمز، ثابت البايتات)
  <identity>      — soul.md + user.md
  <device>        — حقائق الجهاز الثابتة
  <prefrontal>    — عقد agents.core.md + خلاصة التفضيلات المُتعلَّمة
  <capabilities>  — سطر واحد لكل قدرة مُثبَّتة
  <memory_map>    — خريطة تغطية لكل ما يمكن استرجاعه
  <runtime>       — حالة حلقة مُقلَّصة

+ مخططات الأدوات الأساسية (~4 آلاف رمز)
+ رسائل المحادثة
```

## ماذا يحتوي الموجه الجديد

| القسم            | المحتوى                                                                                                                                                                                   | الحجم         |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `<identity>`     | `soul.md` + `user.md` — ملك المستخدم، بدون تغيير                                                                                                                                          | تحت سيطرتك    |
| `<device>`       | حقائق الجهاز الثابتة                                                                                                                                                                      | \~40 رمزًا    |
| `<prefrontal>`   | عقد التشغيل المُعاد كتابته `agents.core.md` (\~1.4 ألف رمز فعليًا — حلّ محل دليل بحجم 39KB) بالإضافة إلى خلاصة التفضيلات المُتعلَّمة محدودة الحجم من basalganglia (\~500 رمز، بدون تغيير) | \~1.9 ألف رمز |
| `<capabilities>` | سطر واحد لكل قدرة مُثبَّتة: الاسم، وصف ≤90 حرفًا، عدد الأدوات، علامة `[loaded]` للقابلة للاستدعاء                                                                                         | \~800 رمز     |
| `<memory_map>`   | خريطة تغطية لكل ما يمكن استرجاعه — أعداد السجلات لكل مصدر، نطاقات التواريخ، عناوين المعرفة، أعداد المحادثات/المخرجات. أبدًا لا المحتوى.                                                   | صغير          |
| `<runtime>`      | حالة حلقة مُقلَّصة — العدادات الحية تركب الذيل المتطاير الصادر، لا الموجه                                                                                                                 | صغير          |

الأقسام الشرطية تظهر فقط عندما تنطبق:

* `<variables>` — متغيراتك المُعرَّفة في `config.json` (فقط عندما تكون قد عرَّفت أيًا منها)
* **طبقة الدور** — تعليمات القائد/الوكيل في [وضع سير العمل](/ar/configuration/workflow-mode)، متضمّنةً كتالوج `<workflow_models>` لدى القائد بالنماذج القابلة للإطلاق
* `<channel>` — قواعد تنسيق القناة (مثل طبقة "بدون Markdown" في WhatsApp)
* `<local_model>` — طبقة صدق صغيرة للنماذج المحلية (Ollama): الاعتراف عند تجاوز العمق، واقتراح نموذج أقدر، مع الامتثال الكامل إذا أصرّ المستخدم. لا شيء يُحجب — النماذج المحلية تحصل على نفس السياق الرشيق، ومجموعة الأدوات الأساسية الكاملة، وخريطة الذاكرة، واكتشاف الأدوات مثل النماذج السحابية.

## ما الذي اختفى

أربعة أشياء **حُذفت** من تجميع السياق:

| المحذوف           | ما كان عليه                                                          |
| ----------------- | -------------------------------------------------------------------- |
| `<memory>`        | ملفات ذاكرة كاملة يحقنها cortex في كل دور                            |
| `<recent>`        | تفريغ حلقات آخر يومين                                                |
| `<tools>`         | كتالوج الأدوات النثري بحجم 16 ألف رمز                                |
| حقن متون المهارات | متون SKILL.md المُحفَّزة بالكلمات المفتاحية/`"*"` المُلصقة في الموجه |

لا شيء من تلك المعلومات ضاع. كلها تعيش على القرص، مُفهرَسة بواسطة cortex، على بُعد استدعاء أداة واحد — انظر [أدوات الاسترجاع](/ar/memory/retrieval-tools).

## اقتصاديات الرموز

|                            | قبل              | بعد                            |
| -------------------------- | ---------------- | ------------------------------ |
| موجه النظام (محادثة جديدة) | \~44,000 رمز     | \~5,000 رمز                    |
| مخططات الأدوات المشحونة    | كل أداة مُثبَّتة | المجموعة الأساسية، \~4,000 رمز |
| إجمالي الطلب الجديد        | \~94,000 رمز     | ≈9,400 رمز                     |

مقاسة فعليًا، لا مُتوقَّعة:

* أتمتة تعمل كل ساعة انتقلت من **96,442 رمز إدخال ($0.046/تشغيلة)** إلى **~5.1 ألف رمز موجه ($0.019/تشغيلة)**.
* بادئة الموجه ثابتة البايتات، ما يُحقق **\~99% إصابات في ذاكرة الموجه المؤقتة لدى المزود** مقاسة عبر 50 محادثة.
* أسوأ حالة — تفعيل أثقل 10 قدرات دفعة واحدة — هي أساس \~9.6 ألف + تفعيلات ≈ **41.5 ألف رمز**، ما زال أقل من نصف الحد الأدنى القديم.

ثلاثة خيارات تصميمية متعمَّدة تُبقي البادئة ثابتة البايتات لصالح تخزين المزود المؤقت:

1. **خريطة الذاكرة تتجدد مرة واحدة في اليوم التقويمي** وتُقرِّب الأعداد إلى فئات خشنة، فلا تتقلب بين الأدوار.
2. **العدادات الحية** (رقم التكرار، الأدوات المستدعاة) تركب الذيل المتطاير الصادر بدلاً من موجه النظام.
3. **تفعيل الأدوات محصور بالمحادثة** — تحميل `github` في تشغيلة نبض قلب لا يُبطل أبدًا ذاكرة موجه محادثة حية.

## فهرس القدرات

بدلاً من شحن مخطط كل أداة، يسرد قسم `<capabilities>` كل قدرة مُثبَّتة — بما فيها خوادم MCP — في سطر واحد لكل منها:

```xml theme={null}
<capabilities>
Installed capabilities ([loaded] = callable right now; anything else is
one tool_search/tool_activate away):
- filesystem (6 tools) — Read, write, and patch files [loaded]
- introspect (12 tools) — Check Wolffish's own status, performance, and memory [loaded]
- shell (3 tools) — Execute shell commands [loaded]
- github (14 tools) — Manage repos, issues, and pull requests
- notion (9 tools) — Read and write Notion pages and databases
- git (guide) — Git operations via shell commands
</capabilities>
```

النموذج دائمًا *يعرف* ما هو موجود دون حمل المخططات. علامة `[loaded]` تُميِّز القدرات التي أدواتها قابلة للاستدعاء الآن (المجموعة الأساسية بالإضافة إلى أي شيء فُعِّل في هذه المحادثة)؛ كل شيء آخر يُحمَّل عند الطلب عبر `tool_search` أو `tool_activate`، وتصبح أدواته قابلة للاستدعاء في نفس الدور.

بعد تجاوز 60 قدرة، يتقلص الباقي غير المُحمَّل إلى عدد مُجمَّع (`…plus 23 more capabilities (187 tools) — tool_search finds any of them`)، لذا فإن كلفة الفهرس في الموجه هي **O(1) بعدد القدرات المُثبَّتة** — يمكنك تثبيت مئة خادم MCP دون أن ينمو الموجه.

انظر [نظرة عامة على القدرات](/ar/capabilities/overview) لكيفية عمل الاكتشاف والتفعيل والمجموعة الأساسية.

## خريطة الذاكرة

قسم `<memory_map>` يُخبر النموذج *بما هو موجود ليُسترجع* — أبدًا لا المحتوى نفسه:

```xml theme={null}
<memory_map>
Everything you have ever done, said, produced, or spent is indexed on
disk — this is the coverage map, NOT the content. It is never evidence
of absence: memory_search (2-3 phrasings) before concluding something
was not recorded.
- episode: ~150 records (2026-01-12 → 2026-07-03)
- conversation: ~2500 records (2026-01-12 → 2026-07-03)
- knowledge: 14 records
- task: ~90 records (2026-02-01 → 2026-07-02)
- conversations on disk: ~350 (conversation_list / conversation_read)
- generated/uploaded files: ~200 (memory_search sources: artifact)
- knowledge topics — projects: Wolffish, Docs site | preferences:
  Development, Communication (memory_get the file for details)
</memory_map>
```

تحمل الخريطة أعداد السجلات لكل مصدر، ونطاقات التواريخ، وعناوين ملفات المعرفة، وأعداد المحادثات/المخرجات. الأعداد تُقرَّب إلى فئات خشنة (دقيقة تحت 20، ثم لأقرب 10، ثم لأقرب 50) والكتلة كلها **مُخزَّنة مؤقتًا لكل يوم تقويمي**، فتبقى متطابقة البايتات عبر كل أدوار اليوم — صديقة لذاكرة الموجه المؤقتة بحكم البناء.

<Info>
  خريطة الذاكرة خريطة، لا الأرض نفسها. عدد "\~150 سجل حلقة" يُخبر النموذج بوجود تاريخ يستحق البحث — لكنه لا يُغني أبدًا عن استرجاع المحتوى الفعلي.
</Info>

## الاسترجاع بدلاً من الحقن

عقد التشغيل (`agents.core.md`) يُعلِّم النموذج معاملة نافذة سياقه كـ **مجموعة عمل رشيقة**: ما في الموجه هو الأساسيات، لا مدى ما يعرفه. الاستدعاء تقوده *نية* رسالتك، دون طلب صريح:

* **الإشارات المُعرَّفة** — "أرسل لي *خطة* الرحلة"، "ذلك الملف"، "مثل المرة الماضية" — تعني أنك تعرف أنه يملكها. يبحث أولًا.
* **رائحة المهمة المتكررة** — "أرسل إيميلًا إلى سارة" — تُحفِّز بحثًا سريعًا عن حالات سابقة: قد يكون هناك نمط أو قالب راسخ لإعادة استخدامه.
* **التفضيلات** — يفحص خلاصة التفضيلات المُتعلَّمة في الموجه، ثم يبحث قبل التخمين.
* **مهام الحاضر الصِّرف** — الطقس، عملية حسابية — لا تحتاج استدعاءً. يتصرف مباشرة.

والقاعدة الصارمة: **بحثان بصياغتين مختلفتين قبل الادعاء بعدم التذكر أبدًا**. إخفاق البحث ليس دليل غياب أبدًا.

الفلسفة نفسها تنطبق على سجل المحادثة: المحادثات الطويلة تؤول إلى ملخص متدحرج مع ذيل حرفي، وأي شيء طُوي يمكن استعادته بـ `conversation_read` — انظر [ضغط السياق](/ar/architecture/context-compaction).

<CardGroup cols={2}>
  <Card title="أدوات الاسترجاع" icon="magnifying-glass" href="/ar/memory/retrieval-tools">
    المرجع الكامل لـ memory\_search / memory\_get / conversation\_read.
  </Card>

  <Card title="نظرة عامة على القدرات" icon="puzzle-piece" href="/ar/capabilities/overview">
    كيف يعمل اكتشاف الأدوات ونظام القدرات.
  </Card>

  <Card title="ضغط السياق" icon="compress" href="/ar/architecture/context-compaction">
    كيف تبقى المحادثات الطويلة ضمن نافذة السياق.
  </Card>

  <Card title="عديم الحالة بالتصميم" icon="server" href="/ar/architecture/stateless-model">
    لماذا يحمل كل طلب المحادثة الكاملة.
  </Card>
</CardGroup>
