الدروس التعليمية

إنشاء نافذة سياق جديدة

أدِر نافذة سياق Bob للحفاظ على الذاكرة والتحكم في التكلفة وجودة المخرجات أثناء المحادثات المعقدة أو الطويلة.

لكل مهمة (محادثة) في لوحة الدردشة نافذة سياق خاصة بها. نافذة السياق هي حد الـ token الذي يمكن لـ Bob الاحتفاظ به في ذاكرة الجلسة الحالية. يشمل السياق تعليمات النظام ومخططات الأدوات وقواعدك ومهاراتك والنص الكامل للمحادثة.

في هذا الدرس، ستفتح نافذة السياق، وتتعرّف إلى ما يحمّله Bob قبل بدء العمل الفعلي، ومتى ينبغي إنشاء نافذة سياق جديدة.

بنهاية هذا الدرس، ستتمكن من:

  1. تحديد فئات نافذة السياق وما يحمّله Bob في كل فئة.
  2. قياس الحمل الأساسي للسياق في Galaxium Travels.
  3. مراقبة نمو Messages بعد طلب متعلق بـ repository مع بقاء الفئات الثابتة مستقرة.
  4. بدء مهمة جديدة لإعادة ضبط نافذة السياق مع الاحتفاظ بالمهمة السابقة في السجل.

تنظيم هذا الدرس

الخطوةالقسمما ستفعله
1إعداد البيئة التدريبيةفتح Galaxium Travels ولوحة الدردشة
2قراءة تفصيل نافذة السياقإرسال طلب قصير ثم فحص تفصيل جديد (~8.5k)
3زيادة الرسائل بطلبسرد الملفات ثم التحقق من ارتفاع Messages إلى ~4.2k (الإجمالي 12.1k)
4إنشاء نافذة سياق جديدةالنقر على + (New task)، ثم التحقق من إعادة ضبط المؤشر

تعرّف إلى المصطلحين التاليين:

  • Task: سلسلة محادثة واحدة لها نافذة سياق مستقلة. تبدأ نافذة سياق جديدة عبر + (New task). توجد هنا طلباتك وردود Bob وأزرار الموافقة.
  • Context window breakdown: انقر على token usage indicator في أعلى يمين لوحة الدردشة لمعرفة أين تُستهلك الـ tokens.

تتغير الإجماليات بحسب خوادم MCP والقواعد والمهارات ومقدار ما يقرأه Bob. الأرقام التالية من Galaxium Travels على نافذة بحجم 270.0k. ينبغي أن تكون الفئات الثابتة قريبة من هذه الأرقام، بينما تعتمد Messages على ما تطلبه من Bob.

المتطلبات المسبقة

لإكمال هذا الدرس، تحتاج إلى ما يلي:

أهمية إدارة السياق

تكلفة الـ token

الـ tokens هي وحدة الاستهلاك في Bob، وتقاس بـ Bobcoins. تستهلك المحادثات الأطول وقراءة الملفات الكبيرة tokens أكثر. يساعد إبقاء المحادثات مركّزة في خفض التكلفة.

يعيد كل طلب إرسال السياق النشط بالكامل، بما في ذلك الحمل الثابت الذي لم تكتبه أنت. حتى السؤال المؤلف من سطر واحد يتضمن Tool definitions وRules وكل ما يحمّله Bob افتراضيًا.

التلخيص يفقد بعض التفاصيل

عندما يصل Bob إلى حد الـ token، فإنه يلخّص المحتوى الأقدم لمواصلة العمل، وقد يؤدي ذلك إلى فقدان التفاصيل. قد تفقد حالات الحواف والاستدلالات الوسيطة والقيود التي ذكرتها قبل عدة طلبات.

إذا كنت لا تزال بحاجة إلى تفاصيل المحتوى، فابدأ مهمة جديدة قبل أن يلخّصها Bob.

تتراجع الجودة قبل الوصول إلى الحد

يستخدم Bob حاليًا نافذة بحجم 270.0k token. راجع token usage indicator لديك لمعرفة الحد الدقيق. غالبًا ما تتراجع الجودة قبل بلوغ الحد؛ فكلما ازدادت Messages أصبحت الردود أقل موثوقية.

إعداد البيئة التدريبية

  1. استنسخ repository الخاص بـ Galaxium Travels.

    git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels
  2. انقر على File ثم Open Folder.

  3. انتقل إلى الدليل galaxium-travels الذي استنسخته وافتحه.

  4. افتح واجهة دردشة Bob بالنقر على أيقونة Bob بجوار شريط التنقل، أو استخدم الاختصار Option + Command + B على macOS أو Ctrl + Alt + B على Windows.

  5. شغّل /init في حقل إدخال الدردشة. يفحص Bob الـ repository وينشئ ملف AGENTS.md يحتوي على قواعد المشروع. انقر على Approve todo tools for task إذا ظهر الطلب.

    انتظر حتى يبلغ Bob عن اكتمال العملية. سيظهر AGENTS.md لاحقًا ضمن سطر Rules في تفصيل نافذة السياق؛ لذلك يجب أن يكون موجودًا قبل قياس خط الأساس.

قراءة تفصيل نافذة السياق

احصل على خط أساس جديد، ثم اقرأ التفصيل.

  1. انقر على + أعلى لوحة الدردشة لبدء مهمة جديدة.

  2. أرسل طلبًا قصيرًا لاستخدام قدر محدود من الـ tokens:

    Quickly say hi back.

    انتظر رد Bob.

  3. انقر على مؤشر استخدام الـ token أعلى يمين لوحة الدردشة لمشاهدة تفصيل الاستخدام.

تفصيل نافذة السياق

بعد هذا التبادل في Galaxium Travels، ستختلف أرقامك، لكن ينبغي أن ترى أرقامًا قريبة من الآتي:

Tokens
Total used8.5k (~3% ممتلئ)
System prompt1.5k
Tool definitions5.1k
Rules830
Skills454
Messages590
Reserved for model response20.0k
Available space241.5k

إذا كان Total used بعيدًا كثيرًا عن 8.5k، فتحقق من أنك بدأت مهمة جديدة وأرسلت الطلب الواحد فقط.

تكون Tool definitions عادةً أكبر فئة ثابتة. تُحمّل خوادم MCP ومخططات الأدوات المضمنة سواء استخدمتها أم لا. تأتي Rules من ملفات المشروع مثل AGENTS.md. وقد تزداد Skills لاحقًا إذا حمّل Bob مهارة أثناء المهمة.

  1. اقرأ كل فئة. يبيّن التفصيل أين تذهب الـ tokens:

    الفئةمعناها
    System promptتعليمات Bob الأساسية لهذه الجلسة
    Tool definitionsمخططات أدوات Bob المضمنة وأدوات MCP المتصلة
    Rulesتعليمات مخصصة من مشروعك ووضعك (custom rules، مثل AGENTS.md)
    Skillsتعليمات أي skills حمّلها Bob (قد تعرض الواجهة عددًا مثل Skills (1 loaded))
    Messagesطلباتك وردود Bob ونشاط الأدوات في المهمة. هذا هو transcript المحسوب بالـ tokens.

    ضمن Estimated breakdown:

    • Reserved for model response: tokens محجوزة كي يتمكن Bob من الرد دون بلوغ الحد فورًا.
    • Available space: العدد التقديري للـ tokens المتاحة قبل حاجة Bob إلى التلخيص.

    في Galaxium، يبلغ مجموع الفئات الثابتة (System prompt وTool definitions وRules وSkills) نحو 8k قبل بدء أي عمل فعلي. تدفع هذا الحمل في كل دور، سواء كتبته أم لا.

زيادة الرسائل باستخدام طلب

ابقَ في المهمة نفسها. أرسل طلبًا يضيف محتوى إلى transcript.

  1. اطلب قائمة بالملفات.

    List all of the files in this directory.

    وافق على إجراءات القراءة إذا طُلب منك ذلك. سيسرد Bob ملفات الـ repository.

  2. قارن ما تغيّر. افتح التفصيل مجددًا. في Galaxium Travels، ينبغي أن ترى أرقامًا قريبة من الآتي:

    الفئةمهمة جديدةبعد سرد الملفاتعمل مستمر (مرجع)
    System prompt1.5k1.5k1.5k
    Tool definitions5.1k5.1k5.1k
    Rules830830830
    Skills4544541.2k (1 loaded)
    Messages5904.2k19.4k
    Total used8.5k (~3%)12.1k (~4%)28.0k (~10%)
    Available space241.5k237.9k222.0k

    ينبغي أن تعرض Messages الآن نحو 4.2k. إذا كانت أكبر بكثير، فقد قرأ Bob ملفات أكثر من هذا المثال، وهذا مقبول. المقصود هو أن Messages نمت بينما لم تتغير الفئات الثابتة.

    توجد مخرجات القائمة ونشاط الأدوات في transcript. تبقى System prompt وTool definitions وRules وSkills ثابتة بعد طلب سرد الملفات الواحد.

    يمثل العمود الأيمن جلسة Galaxium أطول تضمنت قراءات وطلبات متابعة أكثر. قد تزداد Skills إذا حمّل Bob مهارة (من 454 إلى 1.2k في ذلك المثال). بمرور الوقت، تكون Messages عادةً أسرع الفئات نموًا.

    يضيف طلب سرد الملفات الواحد نحو 3.6k إلى Messages في Galaxium. يبقى الحمل الثابت قريبًا من 8k. يستهلك استكشاف الـ repository السياق بسرعة، حتى عندما لا يتغير الحمل الثابت.

إنشاء نافذة سياق جديدة

ابدأ مهمة جديدة في المشروع نفسه. تبقى المهمة القديمة (المحادثة) في السجل.

  1. انقر على + (New task) أعلى لوحة الدردشة.

    يُعاد ضبط المؤشر. تنخفض Messages إلى عدد صغير، وتُحمّل System prompt وTool definitions وRules وSkills من جديد إلى ما يقارب خط الأساس.

  2. تبقى المهمة التي غادرتها في قائمة المهام، ويمكنك العودة إليها في أي وقت. تحتفظ بسجلها وعدد الـ tokens الخاص بها. لا يستخدمها Bob أثناء عملك في المهمة الجديدة.

    ابدأ مهمة جديدة عندما:

    • تغيّر الموضوع أو هدف العمل.
    • تصبح Messages كبيرة بما يكفي للإضرار بالجودة أو التكلفة. في Galaxium، يمثل وصول Messages إلى 19.4k إشارة مناسبة لإعادة الضبط.
    • تنتهي من التخطيط وتريد مهمة نظيفة للتنفيذ. راجع التخطيط للميزات المعقدة وتنفيذها.

    للتفكير: افتح التفصيل في المهمة الجديدة. أي الفئات عادت إلى خط الأساس؟ وأيها كان سيستمر في النمو لو بقيت في المهمة القديمة؟

الخطوات التالية

في هذا الدرس، تعلمت إدارة نافذة السياق بفاعلية. قرأت التفصيل، وقست الحمل الثابت للـ token، وراقبت ازدياد Messages بعد طلب سرد ملفات واحد، ثم أعدت الضبط باستخدام + (New task).

ما رأيك في هذا الموضوع؟