لا تؤدي زيادة المعلومات التي يحصل عليها وكيل البرمجة بالضرورة إلى تحسين نتائجه؛ ففي بعض الحالات، قد تكون بضع مئات من الرموز ذات الصلة أكثر فائدة من عشرات الآلاف من الرموز المزدحمة والمتعارضة. هذه هي الفكرة المركزية في العرض الذي قدمه باروخ سادوغورسكي وباتريك ديبوا حول هندسة السياق، مع التركيز على تحويل ملفات Markdown والتعليمات المتناثرة إلى سير عمل موثوق للوكلاء.
ينطلق العرض من مشكلة عملية: يضع المطور كل ما يعرفه عن المشروع في ملف واحد مثل CLAUDE.md، بما في ذلك أمثلة الشيفرة والوثائق وأفضل الممارسات. وعندما يطلب من الوكيل إضافة معالجة للأخطاء إلى نقطة نهاية، قد ينفذ الوكيل التعديل ظاهرياً، لكن الاختبارات تفشل؛ إذ يعيد طلباً متوقعاً بحالة 404 على أنه 500. السبب ليس بالضرورة هلوسة عشوائية، بل قد يكون وجود تعليمات متعارضة داخل السياق نفسه.
السياق أكبر من نص الطلب
يميز المتحدثان بين هندسة الأوامر وهندسة السياق. فهندسة الأوامر تهتم بصياغة الطلب، بينما يشمل السياق كامل ما يحيط به: موجه النظام، وسجل المحادثة، والملفات التي أُرسلت، والنتائج التي أعادها النموذج، وأي أدوات أو تعليمات إضافية. ومع استمرار الجلسة، يتراكم كل ذلك داخل نافذة السياق، حتى لو كانت الرسائل الجديدة قصيرة.
لذلك فإن وضع كل قواعد المشروع في ملف يُحمّل دائماً يحول الملف إلى ما يشبه درجاً يحوي كل شيء. وقد يفقد الوكيل أجزاء من السياق عندما يصبح طويلاً، أو يواجه نسخاً متعارضة من قاعدة التعامل مع الأخطاء أو تنظيم الملفات. ويزيد الأمر تعقيداً أن المهارات التي تُحمّل أثناء الجلسة قد تظل موجودة في الذاكرة حتى بدء جلسة جديدة، وفق ما ورد في العرض.
المهارات المحمّلة عند الحاجة
يقترح العرض تقسيم السياق إلى مهارات بدلاً من حشره في ملف واحد. المهارة ملف Markdown يضم اسماً ووصفاً يحدد الحالات التي ينبغي فيها تفعيلها. فعند العمل على الواجهة الأمامية، لا يحتاج الوكيل بالضرورة إلى تعليمات خاصة بالواجهة الخلفية، والعكس صحيح.
الوصف هنا ليس عنصراً شكلياً؛ فالوكيل يراجعه ليقرر أي مهارة يجب تحميلها استناداً إلى الطلب. ولهذا يحذر المتحدثان من الاكتفاء بنسخ عنوان المهارة في خانة الوصف. يجب أن يوضح الوصف بعبارات دقيقة متى تُفعّل المهارة وما نوع العمل الذي تغطيه.
هذا الأسلوب، المعروف بالتحميل الكسول، يقلل السياق المرسل مسبقاً، لكنه لا يلغي الحاجة إلى التنظيم. فقد تظهر تعارضات بين المهارات إذا تداخلت أوصافها، كما أن بدء جلسة جديدة قد يكون مفيداً للتخلص من المهارات التي تراكم تحميلها في الجلسة السابقة.
تعامل مع المهارات كقطع أثرية مُدارة
رغم أن المهارة قد تبدأ كملف نصي، يرى العرض أنها أقرب إلى حزمة قابلة لإعادة الاستخدام منها إلى ملف مصدر عادي. فهي قد تحتوي على وثائق وأمثلة وشيفرة وقواعد، وقد تحتاج إلى الإصدار والاختبار والتوزيع، سواء كانت عامة أو خاصة بفريق أو مؤسسة.
وضع الملف على GitHub قد يجعله قابلاً للمشاركة، لكنه لا يحل وحده مسائل معرفة الإصدار الأحدث أو إدارة التوزيع أو ضمان التوافق. لذلك يوصي المتحدثان بالتعامل مع المهارات بوصفها قطعاً أثرية للسياق يمكن إصدارها وإعادة استخدامها عبر المشاريع والأدوات والوكلاء.
اختيار أداة الاسترجاع المناسبة
لا يقدم الاسترجاع المعزز بالتوليد، أو RAG، إجابة صحيحة لمجرد أنه عثر على نتيجة ذات تشابه مرتفع. يوضح العرض أن نظام RAG قد يختار وثيقة قريبة موضوعياً لكنها تخص الإصدار الخطأ من مكتبة أو واجهة برمجة. كما يمكن لتقسيم الوثائق إلى أجزاء بغرض الفهرسة أن يفصل المعلومات التي ينبغي قراءتها معاً.
لهذا لا ينبغي اعتبار RAG بديلاً نهائياً للبحث النصي المباشر. قد يكون البحث باستخدام grep أو أدوات مشابهة أنسب عندما تكون العلاقة بين النتيجة وموضعها في الشيفرة مهمة. أما البحث على الويب، فقد يكون مناسباً للمعلومات الحديثة، لكنه قد يعطي نتائج قديمة أو غير دقيقة في الموضوعات المتخصصة. وتظهر هنا أهمية تضييق البحث باستخدام الإصدار المعروف للوثيقة أو المنتج.
يقترح العرض أربعة مسارات للسياق: البحث في قاعدة بيانات، والبحث على الويب، والقواعد التي ينبغي تطبيقها دائماً أو عند التعامل مع ملفات معينة، والوثائق الخاصة بالإصدار الدقيق المستخدم. أما MCP فيُعرض بوصفه طبقة توصيل أو plumbing تتيح استهلاك هذه المسارات، وليس طريقة بحث واحدة بحد ذاتها.
الذاكرة القابلة للمراجعة بدلاً من الذاكرة الغامضة
يصف المتحدثان الذاكرة المدمجة وآلية ضغط السياق بأنهما صندوقان أسودان إلى حد كبير. فعملية الضغط تلخص أجزاء من الجلسة وتحذف ما تعتبره غير مهم، لكن الوكيل هو الذي يقرر ما الذي يمكن الاستغناء عنه. وقد يؤدي ذلك إلى فقدان قرار مهم اتُخذ في جلسة سابقة.
البديل المقترح هو إنشاء بنك ذاكرة خارجي واضح، مثل مجلد .memory/decisions، تُحفظ فيه القرارات المعمارية وفق صيغة محددة. ويمكن استخدام مهارة وقاعدة تطلبان من الوكيل تسجيل كل قرار جديد في هذا البنك، ثم قراءته عند بدء سياق جديد. بهذه الطريقة تصبح الذاكرة ملفاً يمكن فحصه وإدارته، لا ملاحظات داخلية لا يعرف الفريق محتواها.
الخلاصة العملية للعرض هي أن السياق يحتاج إلى انتقاء وإصدار واختبار وإعادة استخدام. كما يشير الملخص إلى أهمية تقييم النتائج، بما في ذلك استخدام نماذج لغوية كحَكَم عند إجراء التقييمات، حتى لا تُقاس جودة الوكيل بحجم السياق الذي يتلقاه، بل بمدى صحة المخرجات وملاءمتها.