Skip to content

هندسة السياق

💡 دليل التعلم: تحل هندسة التوجيه مشكلة "كيفية التعبير عن الأمور بوضوح"، بينما تحل هندسة السياق مشكلة "جعل النموذج يرى المعلومات المناسبة في اللحظة المناسبة". سيدور هذا الفصل حول سؤال واحد: ضمن نافذة السياق المحدودة، كيف نجعل النموذج يفهمك دون أن تحرق أموالك؟

قبل البدء، يُنصح ببناء حجرين أساسيين:


0. مقدمة: لماذا ينسى النموذج أثناء المحادثة، وتزداد التكلفة؟

1Current round
1200Token usage
$0.0024Current cost
Memory intact
Context Window Limit (4000)
System Prompt (1000)
New Input
Drag the slider to add conversation rounds:
Round 1Round 20

💡 Everything is normal:The current token count (1200) is still within the window. The model can recall all conversation details.

يواجه الكثيرون مواقف مماثلة عند استخدام نماذج اللغة الكبيرة:

  • في منتصف المحادثة، "ينسى" النموذج فجأة الشروط الأساسية التي تم ذكرها سابقًا؛
  • في المحادثات الطويلة، تتناقض الإجابات مع بعضها البعض، ويصعب الحفاظ على نفس مجموعة الإعدادات؛
  • مع زيادة جولات المحادثة، ترتفع الفاتورة باستمرار مثل عداد التاكسي.

بشكل حدسي، قد نعتقد أن: "هذا النموذج ذاكرته ضعيفة". لكن في معظم الأحيان، المشكلة ليست في أن النموذج "لا يستطيع التذكر"، بل أننا لم نصمم السياق الذي يمكنه رؤيته بشكل جيد.

Problem
  • Context is hard to keep consistent:As conversations grow, earlier and later meaning can drift apart.
  • Key facts are easy to lose:Information given early can be hard to reference accurately later.
  • Call cost keeps rising:Every round has to process a large amount of history again.
Likely causes
  • The model only sees the current call:It can only rely on the context provided in this round.
  • Information is not structured:Important facts and minor details are mixed together, making stable memory hard.
  • History is recomputed repeatedly:Large fixed prefixes are processed again and again across turns.
Impact
  • Answer quality becomes unstable:Longer conversations make consistency and traceability harder.
  • Cost is hard to estimate:Context size fluctuates heavily from turn to turn.
  • Production systems become hard to maintain:Without a clear context strategy, systems are hard to operate and extend.

في مواجهة هذه التحديات، لم يعد الاعتماد فقط على "كتابة توجيهات جيدة" كافيًا. نحتاج إلى منهجية هندسية أكثر منهجية لضمان حصول النموذج دائمًا على المعلومات الأكثر أهمية ضمن النافذة والميزانية المحدودين. هذا هو بالضبط ما تحاول هندسة السياق حله.


1. ما هي "هندسة السياق"؟ (التعريف + السيناريوهات)

لنقدم أولاً تعريفًا عمليًا موجزًا، ثم نلقي نظرة على بعض السيناريوهات النموذجية.

هندسة السياق هي منهجية هندسية لبناء وإدارة "بيئة المعلومات" لنماذج اللغة الكبيرة، تحدد ما "يراه النموذج، وما يتجاهله، ومتى يراه"، وبالتالي إنجاز المهام بشكل مستقر ضمن نافذة السياق المحدودة.

يمكنك ببساطة فهمها على أنها ثلاثة أمور: تنظيم المعلومات، والتحكم في النافذة، وإدارة التكلفة. تشمل السيناريوهات الشائعة التي تُستخدم فيها:

  • الوكلاء الحواريون وروبوتات خدمة العملاء
  • مساعدو البرمجة / المستندات
  • استدعاء الأدوات متعدد الجولات وتنسيق العمليات الطويلة

بعد ذلك، سننطلق من "الدروس المؤلمة" لفريق حقيقي، لنرى كيف تطوروا تدريجيًا من "مجرد كتابة Prompt" إلى "إتقان هندسة السياق".


2. البدء من "الدروس المؤلمة": الحفر التي وقع فيها فريق Manus

تأتي حالة هذا الفصل من Manus (وكيل ذكاء اصطناعي عام). على عكس المحادثات العادية، يحتاج Manus إلى التخطيط الذاتي واستدعاء الأدوات لإنجاز المهام الطويلة (التي تشمل عشرات أو حتى مئات جولات التفاعل).

هذا يخلق تناقضًا جوهريًا:

  • إذا لم نسجل: تُفقد المعلومات الأساسية، وتتعطل المهمة.
  • إذا سجلنا كل شيء: تنفجر التكلفة والتأخير، وقد نتجاوز حد النافذة.

مر فريق Manus بعدة عمليات إعادة هيكلة قبل أن يدرك حقيقة: السياق لا يمكن الاعتماد فيه على "الكتابة" فقط، بل يجب "تصميمه".

2.1 ماذا علمتنا عمليات إعادة الهيكلة الأربع؟

شارك المؤسس المشارك لـ Manus جي ييتشاو "تاريخ حفرهم":

المرحلةالمشكلة التي واجهوهاالفكرة السائدة حينهاالنتيجة
الأولىالذكاء الاصطناعي ينسى أثناء المحادثة"كتابة المزيد من التوجيهات ستحل المشكلة"أصبحت التوجيهات أطول والتكلفة أعلى
الثانيةالمعلومات المهمة تُستبعد دائمًا"انسخ المعلومات المهمة عدة مرات"نص أطول، تكلفة أعلى
الثالثةفاتورة مرتفعة بشكل مخيف"هل يمكننا إعادة استخدام الحسابات السابقة؟"وجدوا طريقة لتقليل تكلفة الحسابات المتكررة
الرابعةلا يمكن معالجة المستندات الطويلة"هل يمكننا البحث عند الحاجة؟"بناء حل "مكتبة + بحث حسب الطلب"

الدرس الأساسي: ليس الأهم أن تتذكر أكثر، بل أن تتذكر بذكاء.

2.2 كيف تشبه "ذاكرة" الذكاء الاصطناعي؟

ذاكرة الحاسوب التقليدية = القرص الصلب:

  • سعة كبيرة: يمكن تخزين كميات كبيرة من البيانات لفترة طويلة؛
  • تكلفة منخفضة: تكلفة التخزين لمدة عام منخفضة نسبيًا؛
  • سرعة القراءة والكتابة بطيئة نسبيًا، ويستغرق البحث عن المعلومات وقتًا معينًا.

سياق الذكاء الاصطناعي = السبورة الصغيرة:

  • قراءة وكتابة سريعة: يمكن للنموذج رؤية كامل السياق في استدعاء واحد؛
  • سعة محدودة: بعد أن تمتلئ، يجب مسح المحتوى القديم؛
  • كل Token يُكتب يجلب حسابًا وتكلفة إضافية.

خبرة Manus: السبورة الصغيرة يجب استخدامها باعتدال وذكاء، لا تستخدمها لتخزين الموسوعات.


3. الخطوة الأولى: فهم التكلفة - أين يذهب كل قرش من أموالك؟

3.1 لماذا ننظر إلى التكلفة أولاً؟

دعنا نرى كيف تُنفق أموالك في محادثة ذكاء اصطناعي نموذجية:

💰 مكونات التكلفة (محادثة واحدة):
├─ 70% إعادة مشاهدة المحتوى القديم ("عمَّ تحدثنا للتو؟")
├─ 20% معالجة المحتوى الجديد ("ماذا تقول الآن؟")
└─ 10% توليد الرد ("كيف ترد؟")

اكتشاف مذهل: 70% من المال يُنفق على جعل الذكاء الاصطناعي يعيد قراءة ما قلته سابقًا!

3.2 ما هو KV Cache؟ (إعادة استخدام البادئة)

قبل مناقشة الأسعار، يجب أن نفهم مفهومًا تقنيًا أساسيًا: KV Cache (ذاكرة التخزين المؤقت للمفاتيح والقيم). لا تدع هذا المصطلح التقني يخيفك، إنه ببساطة "جدول الذاكرة قصيرة المدى" للذكاء الاصطناعي.

  • بدون KV Cache: في كل مرة، يضطر الذكاء الاصطناعي لقراءة وفهم وحساب النص من البداية وكأنه يراه لأول مرة.
  • مع KV Cache: يخزن الذكاء الاصطناعي نتائج حسابات الأجزاء التي قرأها (Pre-fill). في المرة التالية، إذا لم يتغير المحتوى في البداية، يستدعي الذاكرة مباشرة دون إعادة الحساب.

هذا يشبه:

تذهب إلى قاعة الامتحان. الحالة أ: في كل مرة تقرأ الكتاب الدراسي بالكامل من البداية، ثم تبدأ بالإجابة. (بطيء، متعب، مكلف) الحالة ب: محتوى الكتاب الدراسي محفوظ عن ظهر قلب (Cache)، تجلس وتجيب مباشرة. (سريع، مريح، رخيص)

في جداول أسعار مزودي الخدمات السحابية، "الكتاب المحفوظ" (Cache Hit) عادة ما يكون أرخص بأكثر من 90% من "الكتاب الجديد" (Cache Miss).

3.3 فرق السعر بين "الحفظ" و "البحث الفوري"

باستخدام Claude كمثال:

  • البحث الفوري (بدون تخزين مؤقت): $3.00 / مليون كلمة
  • الحفظ المسبق (مع تخزين مؤقت): $0.30 / مليون كلمة
  • فرق 10 أضعاف!

ممارسة Manus: من خلال جعل الذكاء الاصطناعي "يحفظ النص"، خفضوا التكلفة من $0.15 إلى $0.02، ووفروا 87%!

13Tokens written so far
/
100Maximum tokens on the board
13.0%
🧠The small board the model can see (context window)
ContextEngineeringmeansoptimizingtheinformationprovidedtoalargelanguagemodel.

💡Note: The context window is like a small board for the model. The board has limited space, so old content must be erased before new content can fit. Once it overflows, the earliest content disappears from the model view.

3.4 دليل تجنب الحفر: لا تدع الطابع الزمني يدمر "ذاكرة التخزين المؤقت" الخاصة بك

اعتاد العديد من المطورين على كتابة "الوقت الحالي" في أول جملة من System Prompt، معتقدين أن هذا دقيق جدًا. لكن هذا في الواقع أحد أكبر الأنماط المضادة في هندسة السياق.

تخيل: لقد حفظت كتاب تاريخ كامل (System Prompt)، لكن السطر الأول من الكتاب مكتوب فيه "الثواني الحالية". إذا كان هذا السطر يتغير كل ثانية، فكل المحتوى الذي حفظته في الثانية السابقة يصبح غير صالح في الثانية التالية - عليك إعادة حفظه من البداية.

هذه هي نقطة ضعف إعادة استخدام البادئة (KV Cache): طالما تغيرت البداية، يجب إعادة حساب كل ما بعدها.

مثال خاطئ: وضع المعلومات الديناميكية في المقدمة

text
System: الوقت الآن هو 2024-01-01 12:00:01. أنت مساعد...
(بعد دقيقة)
System: الوقت الآن هو 2024-01-01 12:01:01. أنت مساعد...

النتيجة: على الرغم من أن بضع كلمات فقط تغيرت، إلا أنها في البداية، مما يجعل 99% من المحتوى الثابت اللاحق غير قابل لإعادة استخدام التخزين المؤقت، وكل طلب يكون بطيئًا ومكلفًا كالأول.

الطريقة الصحيحة: فصل الديناميكي عن الثابت

text
System: أنت مساعد... (هنا تضع آلاف الكلمات من القواعد الثابتة وقاعدة المعرفة)
User: (أدخل الوقت الحالي من خلال استدعاء أداة أو رسالة مستخدم هنا)

الفائدة: آلاف الكلمات من القواعد في المقدمة لا تتغير أبدًا، يحتاج الذكاء الاصطناعي "لحفظها" مرة واحدة فقط. الطلبات اللاحقة تستدعي الذاكرة مباشرة، بسرعة فائقة.

👇 جرب بنفسك: انقر على المفتاح أدناه، وقم بتشغيل "تسريع حفظ النص"، ثم انقر على "إرسال طلب جديد" عدة مرات. لاحظ: عندما يصبح المحتوى الأول "محفوظًا"، ماذا يحدث لـ سرعة البداية (TTFT)؟

Enable prefix reuse / KV Cache
⚙️Fixed opening prompt (System Prompt)
You are a helpful AI assistant... (about 500 tokens)
💬Recent chat history
User: hello... (about 200 tokens)
New question for this turn
Write a Python snippet for me (about 50 tokens)
0ms
Time to first token (TTFT)
0
Tokens processed this time
0
Approximate compute cost

⏱️Without cache:Every request recomputes attention from the beginning, like rereading a textbook from page one every time.


4. الخطوة الثانية: النافذة المنزلقة - عندما تصبح "الذاكرة" "تكلفة"

مع ازدياد طول المحادثة، أول مشكلة تواجهها هي: ماذا نفعل عندما تمتلئ النافذة؟

4.1 لماذا يسبب "الداخل أولاً يخرج أولاً" مشاكل؟

أبسط إدارة للذاكرة هي النافذة المنزلقة (Sliding Window): الجديد يدخل، القديم يخرج. هذا يبدو عادلاً جدًا، لكنه كارثة في المهام العملية.

إعادة تمثيل السيناريو:

text
سجل المحادثة:
[1] المستخدم: أنا تشانغ سان، مسؤول عن نظام الدفع
[2] المستخدم: المشروع مطور بلغة Go
[3] المستخدم: قاعدة البيانات هي PostgreSQL
...
[20] المستخدم: ساعدني في كتابة واجهة

النتيجة: عند الوصول إلى الجملة 20، تكون الجملة 1 "أنا تشانغ سان" قد أُخرجت من النافذة. نسي الذكاء الاصطناعي تمامًا من أنت، ولا يعرف ما هو النظام الذي تديره.

جوهر المشكلة: هذه الاستراتيجية تعامل المعلومات المهمة (الهوية، حزمة التقنيات) والكلام الفارغ ("حسنًا"، "تم الاستلام") بنفس المستوى، وتطردها معًا.

4.2 "فقدان الذاكرة الوسطى" - لماذا لا يرى الذكاء الاصطناعي المعلومات الأساسية دائمًا؟

بالإضافة إلى "النسيان السريع"، لدى الذكاء الاصطناعي عادة غريبة أخرى: يمكنه أيضًا "التغاضي". وجدت الأبحاث أن: الذكاء الاصطناعي أكثر حساسية للبداية والنهاية، والأكثر عرضة لتجاهل الوسط. هذه هي الظاهرة الشهيرة Lost in the Middle (الضياع في الوسط).

منحنى الذاكرة على شكل U:

text
الموقع: البداية → الوسط → النهاية
الذاكرة:  عالية  →  منخفضة  →  عالية

👇 جرب بنفسك:

  1. أولاً جرب "النافذة المنزلقة": أرسل عدة رسائل في صندوق الدردشة أدناه، ولاحظ كيف تُطرد المحادثات القديمة بلا رحمة.
  2. ثم انظر إلى "الضياع في الوسط": لاحظ، عندما تكون المعلومات الأساسية مخبأة في منتصف النص، هل معدل نجاح الاسترجاع هو الأدنى؟
Maximum remembered messagesUp to 4
🗑️ Forgotten content
Nothing has been pushed out yet
⬆ Outside the window, invisible to the model
⬇ Inside the window, still visible to the model
🖼️ Conversation still in memory
Start chatting here and watch old messages get pushed out

💡Note: A sliding window is the simplest memory strategy: new content enters and old content leaves. It never overfills the context, but once content slides out, the model forgets it completely.

Start (System)
End (Query)
📍
Key fact
Recall probability
Position in context
40.0%
Retrieval success
Middle area, highest risk
Position description

🔍Observation:When a key fact is hidden in the middle of a long context, the model is most likely to miss it.
The reliable approach is to place important instructions at the very front in the System Prompt or at the end in the latest user query.

الحل: ضع المعلومات الأساسية في البداية (توجيه النظام) أو النهاية (سؤال المستخدم).


5. الخطوة الثالثة: الاحتفاظ الانتقائي - كيف "نثبّت" المعلومات الأساسية؟

بما أن "الداخل أولاً يخرج أولاً" غير موثوق، ماذا نفعل إذن؟ جواب Manus هو: بناء "نظام تصنيف المعلومات".

5.1 لماذا نصنف المعلومات؟

لم يعد يتم التعامل مع كل معلومة بالتساوي، بل يتم تحديد بقائها بناءً على درجة أهميتها:

المستوىنوع المعلوماتالمعاملةتأثير التكلفة
VIPإعدادات النظام، هوية المستخدممحفوظة دائمًا+15% تكلفة
مهمهدف المهمة الحاليةمحفوظة خلال المهمة+10% تكلفة
عاديسجل المحادثة العاديآخر 5 جولات محفوظةتكلفة أساسية
قابل للإزالةمعرفة قابلة للاسترجاعتُبحث عند الحاجة-60% تكلفة

الفكرة الأساسية: مقابل زيادة 25% في التكلفة، نحصل على احتفاظ بنسبة 90% من المعلومات الأساسية.

5.2 استراتيجية "التثبيت"

يمكنك تخيل نافذة السياق كلوحة:

  • معلومات VIP: مثبتة بقوة بمسامير في أعلى اللوحة (System Prompt).
  • معلومات مهمة: مثبتة بمغناطيس في منتصف اللوحة (Context Injection).
  • محادثة عادية: مكتوبة في الجزء السفلي من اللوحة، تُمسح القديمة عندما تمتلئ (Sliding Window).

👇 جرب بنفسك: حاول في العرض التوضيحي أدناه "تثبيت" رسالة محادثة مهمة. لاحظ: عندما تواصل الدردشة، هل تبقى المعلومات المثبتة دائمًا، بينما تُطرد غير المثبتة؟

3Messages remembered now
/
6Maximum messages on the board
📌Pinned area for important information1 now
System
You are a helpful AI assistant focused on coding.
📜Regular FIFO conversation2 now
User
Hi, I want to learn Vue.
AI
Sure! Vue is a progressive framework.

💡Note: Selective retention means pinning important information to the board while ordinary messages slide away. System prompts are usually pinned permanently, and key user facts such as names, accounts, or preferences can be pinned through memory modules or RAG.


6. الخطوة الرابعة: RAG - عندما تحتاج "الذاكرة" إلى "مكتبة"

أحيانًا، تكون المعلومات التي نريد معالجتها كثيرة جدًا (مثل مئات الصفحات من التوثيق التقني)، ولا تتسع لها السبورة. هنا نحتاج إلى ذاكرة خارجية - RAG (التوليد المعزز بالاسترجاع).

6.1 لماذا "السبورة الصغيرة" غير كافية؟

عندما واجه Manus وثائق تقنية بملايين الكلمات، قارنوا بين نهجين:

  1. الإدخال الكامل: إدخال كل المحتوى دفعة واحدة في السياق.
    • النتيجة: امتلأت السبورة فورًا، والمعالجة بطيئة جدًا، ووفقًا لنظرية "الضياع في الوسط"، لا يستطيع الذكاء الاصطناعي تذكر المحتوى الأوسط.
    • التكلفة: حوالي $50/مرة، وانتظار 15 ثانية.
  2. البحث حسب الطلب (RAG): الذهاب أولاً إلى المكتبة (قاعدة البيانات) للبحث، ونسخ الفقرات ذات الصلة فقط إلى السبورة.
    • النتيجة: السبورة نظيفة جدًا، والذكاء الاصطناعي يركز على المعلومات الأساسية.
    • التكلفة: حوالي $0.5/مرة، وانتظار ثانيتين.

وفر 99% من المال، و 87% من الوقت!

6.2 أفضل ممارسات "البحث عن المعلومات"

ملخص خبرة Manus:

  • ما حجم الصفحات التي نمزق الكتاب إليها؟ 500-1000 كلمة تعطي أفضل نتيجة.
  • كم كتابًا نبحث فيه في المرة الواحدة؟ 3-5، والزيادة تسبب تشويشًا.
  • ما مدى الصلة المطلوبة للكتب التي نبحث فيها؟ درجة تشابه > 0.7، لتجنب "حشو" محتوى غير ذي صلة.

👇 جرب بنفسك: أدخل سؤالاً في مربع البحث (مثل "كيفية إعادة تعيين كلمة المرور")، ولاحظ كيف يجد النظام فقط أكثر النتائج صلة من بين مجموعة كبيرة من المستندات.

1User Query
🔍
2Library retrieval
📄Password reset guide
Users can reset their password by clicking the "Forgot password" link on the settings page. The system sends a verification email.
📄Pricing policy
Basic is $10 per month, Pro is $29 per month. Enterprise customers should contact sales for a quote.
📄API documentation
All API requests must include a Bearer Token in the Header for authentication.
📄Account security
For account security, enable two-factor authentication and change passwords regularly.
✂️ Copy into context
3Final Prompt
SYSTEM You are a professional AI assistant. Answer the user question using the retrieved materials below.
USER Waiting for a question...

7. الخطوة الخامسة: الضغط - كيف نجعل "السبورة الصغيرة" أكثر كثافة؟

إذا كانت جميع المعلومات مهمة، ولا يمكن حذفها، ولا نريد البحث عن مواد؟ الحل الوحيد هو تصغير حجم الكتابة - وهذا هو ضغط السياق.

7.1 متى نحتاج إلى "الاختصار"؟

  • المواد المسترجعة كبيرة جدًا (>2000 كلمة).
  • سجل المحادثة طويل جدًا (يشغل >80% من مساحة السبورة).
  • الحاجة إلى إجابة سريعة، دون جعل الذكاء الاصطناعي يقرأ نصوصًا مطولة.

7.2 المستويات الثلاثة لـ "الاختصار"

طريقة الضغطنسبة الضغطما يتم الاحتفاظ بهالسيناريو المناسبتأثير التوفير
التلخيص70%المعنى الرئيسيالفهم السريعيوفر 30%
النقاط الرئيسية50%النقاط الأساسيةالمخرجات المنظمةيوفر 50%
الجدولة30%البيانات الأساسيةالمعالجة البرمجيةيوفر 70%

👇 جرب بنفسك: اختر استراتيجيات ضغط مختلفة، ولاحظ كيف تصبح النصوص الطويلة أقصر وأكثر تركيزًا.

Original text420 tokens
⬇️
Compressed
Click a button above to start compression

8. التكامل المنظومي: بناء "قصر الذاكرة" للذكاء الاصطناعي

في السابق، تعلمنا استراتيجيات مستقلة مثل قطع الليغو:

  • KV Cache: يساعدنا في توفير المال (الفصل 3)
  • النافذة المنزلقة: تساعدنا في إفساح المجال (الفصل 4)
  • الاحتفاظ المتدرج: يساعدنا في الاحتفاظ بالأهم (الفصل 5)
  • RAG: يساعدنا في فتح الذاكرة الخارجية (الفصل 6)

الآن، حان الوقت لبناء هذه القطع في قلعة متكاملة - نسميها "قصر الذاكرة" الخاص بـ Manus.

8.1 تجميع السياق مثل بناء منزل

لا تنظر إلى السياق ككومة من النصوص الفوضوية، بل كبناء متعدد الطبقات. لكل طبقة وظيفتها الفريدة و"قواعد السكن" الخاصة بها.

👇 جرب بنفسك: انقر على "ابدأ البناء"، ولاحظ كيف نبني هذا القصر طبقة تلو الأخرى.

🔍
Layer 4: Library (RAG)
Knowledge retrieved on demand
💬
Layer 3: Living Room (Chat)
Most recent 5-10 conversation turns
📌
Layer 2: Pillar (Task)
Current task goal and user profile
🏛️
Layer 1: Foundation (System)
System identity, role, and principles
🚧 Empty lot: click the button below to build the memory palace
Progress: 0/4

8.2 لماذا هذا التصميم هو الأقوى؟

فلسفة تصميم هذا القصر تحل في الواقع ثلاثة تناقضات:

  1. الأساس (System Prompt) —— حل مشكلة "التكلفة"

    • التناقض: إعدادات النظام (من أنت، ما هي القواعد) هي الأطول، ويجب إرسالها في كل مرة.
    • الحل: ضعها في الطبقة السفلية، واستفد من تقنية KV Cache، طالما لم تتغير، يمكن للذكاء الاصطناعي "حفظ النص كاملاً". في مئات الجولات اللاحقة من المحادثة، تكلفة الحساب لهذا الجزء تقترب من 0.
  2. الأعمدة (Task Context) —— حل مشكلة "النسيان"

    • التناقض: عندما تطول المحادثة، ينسى الذكاء الاصطناعي هدف المهمة الأصلي بسهولة (مثل "كتابة لعبة الثعبان").
    • الحل: استخدم استراتيجية الاحتفاظ المتدرج، و "ثبّت" هدف المهمة في الطبقة الثانية. مهما طالت المحادثة، لا تُحذف هذه الطبقة أبدًا، مما يضمن أن الذكاء الاصطناعي لا ينسى هدفه الأصلي.
  3. الطابق العلوي (Chat & RAG) —— حل مشكلة "الفوضى"

    • التناقض: هناك محادثات جديدة، ومواد مسترجعة، ويصعب التمييز بينها.
    • الحل:
      • غرفة المعيشة (المحادثة): تُدار بـ النافذة المنزلقة، مع الاحتفاظ فقط بآخر 5-10 جمل حديثة.
      • المكتبة (RAG): المواد تُستخدم وتُزال فورًا، لا تشغل مساحة.

8.3 النتائج العملية

بعد أن قام فريق Manus بتطبيق هذه البنية، ظهرت النتائج فورًا:

  • توفير المال: لأن الأساس "محفوظ"، انخفضت تكلفة كل جولة محادثة بنسبة 84%.
  • أسرع: لم يعد الذكاء الاصطناعي بحاجة لقراءة آلاف الكلمات من البداية في كل مرة، وتقلص متوسط وقت الاستجابة من 8 ثوانٍ إلى ثانيتين.
  • أكثر دقة: المعلومات الأساسية "مثبتة"، ولن ينسى النموذج أبدًا ما هو دوره أثناء المحادثة.

9. قوالب عملية: انسخ الواجب مباشرة

لمساعدتك على فهم كيفية عمل هذه الآلية بشكل أكثر بديهية، أعددنا لك محاكاة كاملة للسلسلة.

يرجى اختيار سيناريو، وانقر على "التالي"، لترى كيف يقوم قصر الذاكرة باستدعاء وتجميع وتنظيف السياق ديناميكيًا خلال الثواني القليلة من سؤال المستخدم إلى رد الذكاء الاصطناعي.

📱 User view (Chat)
Help me write a Python snake game...
Step 1 / 5
🧠 AI view (Context Construction)
🏛️Layer 1: Foundation (System)KV Cached
System: You are a senior Python engineer...
📌Layer 2: Pillar (Task)Pinned
Task: Build a snake game with Pygame...
💬Layer 3: Living Room (Chat)Sliding
(No chat history yet)
📚Layer 4: Library (RAG)Temp
(No retrieval needed now)
💡 What happened in this step: Initialize: load the foundation (System) and task. Layers 1 and 2 are established.

📝 تصاميم عملية جاهزة للاستخدام

إذا كنت تريد تصميم نظام مشابه لـ Manus، لا تركز فقط على كيفية كتابة Prompt، بل ركز أكثر على كيفية جدولة بنية النظام للسياق.

فيما يلي مخططات تصميم النظام لسيناريوهين كلاسيكيين، تتضمن تصميم التوجيه و المنطق البرمجي (Pseudocode).

السيناريو 1: وكيل مهندس متكامل (ذاكرة طويلة المدى)

التحدي الأساسي: دورة المهمة طويلة، وسهولة نسيان المتطلبات الأصلية وخلفية المشروع. استراتيجية الحل: طبقة System (الهوية) + طبقة Task (تثبيت الهدف) + طبقة Chat (نافذة منزلقة).

1. توجيه النظام (Layer 1 & 2)

markdown
# Layer 1: إعدادات الهوية (System Prompt) - لا تتغير أبدًا، استفد من KV Cache
أنت مهندس متكامل، خبير في Python و Vue3.
أسلوب البرمجة:
- تسمية المتغيرات تلتزم بدقة بـ PEP8
- المنطق الأساسي يجب أن يتضمن تعليقات
- الأولوية لاستخدام دوال الأدوات الموجودة في المشروع

# Layer 2: قفل المهمة (Task Context) - لا يُحذف خلال المهمة
المهمة الحالية: إعادة هيكلة وحدة الدفع (payment_module)
القيود الأساسية:
1. يجب التوافق مع واجهة API القديمة v1.0
2. نصوص ترحيل قاعدة البيانات يجب أن تكون idempotent
3. الموعد النهائي: الجمعة هذا الأسبوع

2. منطق تجميع السياق (Pseudocode)

python
def build_engineer_context(user_input, chat_history, task_info):
    context = []

    # 1. طبقة الأساس: إعدادات الهوية (استفد من تخزين KV Cache المؤقت)
    # هذا الجزء لا يتغير عبر مئات جولات المحادثة، تكلفة الحساب تقريبًا 0
    context.append(SYSTEM_PROMPT)

    # 2. طبقة الأعمدة: قفل المهمة (Pinned)
    # مهما طالت المحادثة، يُدرج هذا الجزء دائمًا بعد System
    context.append(f"المهمة الحالية: {task_info}")

    # 3. طبقة البحث: مقاطع الكود (RAG)
    # ابحث في قاعدة الكود عن الكود ذي الصلة بناءً على سؤال المستخدم
    relevant_code = search_codebase(user_input)
    if relevant_code:
        context.append(f"الكود المرجعي:\n{relevant_code}")

    # 4. طبقة التفاعل: سجل المحادثة (Sliding Window)
    # خذ آخر 10 جولات فقط، لتجنب انفجار السياق
    recent_chat = chat_history[-10:]
    context.extend(recent_chat)

    # 5. أحدث إدخال
    context.append(user_input)

    return context

السيناريو 2: وكيل خدمة عملاء ذكي (إجابة دقيقة)

التحدي الأساسي: حساسية التكلفة، وضرورة عدم اختلاق الحقائق. استراتيجية الحل: طبقة System (قيود قوية) + طبقة RAG (حقن ديناميكي).

1. توجيه النظام (Layer 1)

markdown
# Layer 1: إعدادات الهوية (System Prompt)
أنت موظف خدمة عملاء محترف في التجارة الإلكترونية.
مبادئ الرد:
1. نبرة لطيفة، مهنية، وموجزة
2. **ممنوع منعًا باتًا** اختلاق الحقائق، أجب فقط بناءً على [المواد المرجعية]
3. إذا لم تكن الإجابة موجودة في المواد، أجب مباشرة "آسف جدًا، هذا السؤال يحتاج إلى تحويل لممثل خدمة العملاء البشري"

2. منطق تجميع السياق (Pseudocode)

python
def build_support_context(user_input):
    context = []

    # 1. طبقة الأساس: إعدادات الهوية
    context.append(SYSTEM_PROMPT)

    # 2. طبقة المكتبة: البحث الديناميكي (RAG)
    # في سيناريو خدمة العملاء فقط، RAG هو البطل، يوضع في المنتصف
    docs = vector_db.search(user_input, top_k=3)

    context.append("【بداية المواد المرجعية】")
    for doc in docs:
        context.append(doc.content)
    context.append("【نهاية المواد المرجعية】")

    # 3. طبقة التفاعل: سجل قصير جدًا
    # خدمة العملاء عادة لا تحتاج لذاكرة طويلة المدى، احتفظ بآخر 3 جولات
    context.extend(get_recent_chat(limit=3))

    context.append(user_input)

    return context

10. جدول المصطلحات

المصطلح الإنجليزيالمقابل العربيالشرح
Context Windowنافذة السياقأقصى طول للنص يمكن للنموذج معالجته في مرة واحدة (بما في ذلك الإدخال والإخراج). المحتوى الذي يتجاوز الحد يتم قطعه أو نسيانه.
Tokenوحدة النصأصغر وحدة يعالج بها LLM النص. عادةً ما يعادل 1 Token حوالي 0.75 كلمة إنجليزية أو 0.5 حرف صيني. تعتمد الفوترة وقيود النافذة على هذه الوحدة.
KV Cacheذاكرة KV المؤقتةتقنية لتسريع الاستدلال، عن طريق تخزين أزواج المفاتيح والقيم المحسوبة مسبقًا، لتجنب إعادة حساب البادئات المتكررة، مما يقلل التأخير والتكلفة بشكل كبير.
RAGالتوليد المعزز بالاسترجاعقبل الإجابة على سؤال، يتم استرجاع المعلومات ذات الصلة من قاعدة معرفة خارجية وتقديمها كسياق للنموذج، لتقليل الهلوسة وتوسيع حدود المعرفة.
Sliding Windowالنافذة المنزلقةأبسط استراتيجية لإدارة السياق. تحافظ على عدد ثابت من الـ Tokens داخل النافذة، وعندما يدخل محتوى جديد، يتم إزالة أقدم محتوى تلقائيًا.
Lost in Middleالضياع في الوسطإحدى قيود نماذج اللغة الكبيرة. تشير الأبحاث إلى أن النموذج يتذكر المعلومات في بداية ونهاية السياق الطويل بشكل أفضل، ويتجاهل بسهولة المعلومات في المنتصف.
System Promptتوجيه النظامالتعليمات الموجودة في بداية المحادثة، تُستخدم لتحديد هوية النموذج، قواعد السلوك، أسلوب الرد، والمهمة الأساسية.
Few-shotالتعلم بقلة الأمثلةتقديم عدة أمثلة "سؤال-جواب" في التوجيه، لمساعدة النموذج على فهم نمط المهمة وتنسيق الإخراج بسرعة.
Chain of Thoughtسلسلة التفكيرتوجيه النموذج لإخراج خطوات الاستدلال قبل تقديم الإجابة النهائية. هذه الطريقة تحسن بشكل كبير قدرة النموذج على حل المشكلات المنطقية والرياضية المعقدة.
Hallucinationالهلوسةظاهرة يقوم فيها النموذج بثقة بتوليد معلومات تبدو معقولة لكنها في الواقع خاطئة أو غير موجودة.
Embeddingالتضمينتقنية لتحويل النص إلى متجهات عددية عالية الأبعاد. النصوص المتشابهة دلاليًا تكون أقرب في فضاء المتجهات، وهي أساس البحث الدلالي.
Vector DBقاعدة بيانات المتجهاتقاعدة بيانات متخصصة في تخزين واسترجاع بيانات المتجهات. تدعم البحث بالتشابه للعثور بسرعة على مقاطع المستندات الأكثر تطابقًا مع الاستعلام.
Temperatureدرجة الحرارةمعامل فائق يتحكم في عشوائية مخرجات النموذج. القيم الأعلى (مثل 0.8) تعطي مخرجات أكثر تنوعًا وإبداعًا؛ والقيم الأقل (مثل 0.2) تعطي مخرجات أكثر تحديدًا ودقة.
TTFTزمن أول وحدةTime to First Token، أي الوقت المستغرق من إرسال المستخدم للطلب حتى إخراج النموذج لأول Token، وهو مؤشر رئيسي لقياس تجربة التفاعل.

الخلاصة: جوهر هندسة السياق

علمتنا عمليات إعادة الهيكلة الأربع لـ Manus:

من الناحية العملية: ليس الأهم أن تتذكر أكثر، بل أن تتذكر بشكل أكثر تنظيمًا وانتقائية.

من منظور التكلفة:

  • معظم الهدر يأتي من إعادة حساب البادئات الثابتة، ويجب حله من خلال استقرار البادئة وآليات التخزين المؤقت؛
  • فقدان المعلومات المهمة غالبًا ما ينبع من النافذة المنزلقة التي "تعامل الجميع بالتساوي"، ويجب حله من خلال تصنيف المعلومات واستراتيجيات التثبيت؛
  • في مواجهة المستندات الطويلة جدًا وقواعد المعرفة، الاعتماد فقط على توسيع نافذة السياق ليس عمليًا، ويجب الجمع بين آليات البحث والضغط.

الهدف هو: ضمن حدود النموذج والسياق المعطاة، جعل كل Token يُستثمر لغرض واضح.