# Armin Ronacher يشرح code mode: لماذا تستهلك الوكلاء سياقها في نتائج وسيطة

> **المغزى:** المغزى: اختناق الوكيل في السياق قد لا يكون مشكلة حجم النافذة، بل نتيجة تمرير كل نتيجة وسيطة على الموديل، بينما أكثرها لا يحتاج أن يراه.

- المصدر: المغزى (https://almaghza.com/a/2026-10-07-armin-ronacher-codemode-context/)
- التاريخ: 26 ربيع الآخر - 7 أكتوبر 2026 (2026-10-07)
- القسم: ذكاء اصطناعي
- الوسوم: AI Agents، MCP، Context Engineering، WebAssembly

نشر Armin Ronacher، صاحب إطار العمل Flask، في 6 أكتوبر 2026 مقالة يشرح فيها آلية اسمها code mode. وتأتي المقالة بعد أيام من [إعلان أداة Pi ضمّ MCP عبر ميزة Codemode](https://almaghza.com/a/2026-10-01-earendil-pi-mcp-codemode/).

والفكرة أن الوكيل (agent)، بدل أن يستدعي أداة بعد أخرى، يكتب كودًا ينسّق الاستدعاءات كلها، ويعمل هذا الكود داخل sandbox معزول. وفي حالة Pi، يتكون الـ sandbox من JavaScript يعمل داخل محرك QuickJS فوق WebAssembly، بلا وصول إلى الشبكة أو نظام الملفات، وبلا timers، وبذاكرة محدودة. والمنفذ الوحيد إلى الخارج هو استدعاء أداة.

والفرق الجوهري يتعلق بالسياق. ففي الطريقة المعتادة، يمر كل استدعاء أداة عبر نافذة الموديل، وتُقتطع مخرجاته إلى آخر 2000 سطر. فيذهب جزء كبير من السياق إلى نتائج وسيطة لا يحتاجها أحد بعد لحظات.

أما في code mode، فتبقى النتائج الوسيطة داخل الكود. يعالج الوكيل دفعة كاملة من البيانات، ويحتفظ بما يحتاجه استدعاء لاحق، ويشغّل العمليات بالتوازي، ولا يرى الموديل إلا الخلاصة.

ولا يقدّم Ronacher الآلية بلا ثمن. فهو يذكر أن ضمان الاستمرارية (durability) أصعب فيها، وأن مشكلة double JSON escaping تظهر حين يستخدم خادم MCP الآلية نفسها، وأن أداءها يسوء مع الموديلات الأصغر. ولا تتضمن المقالة أرقام أداء.

ويقدّم ذلك تشخيصًا مختلفًا للفرق التي تبني وكلاء. فحين يختنق الوكيل في السياق، قد لا يكون الحل نافذة أكبر، بل التوقف عن تمرير كل نتيجة وسيطة على الموديل. ويطرح هذا سؤالًا أوسع عن طبيعة ما يُبنى: وكلاء تستدعي أدوات، أم لغة برمجة صغيرة تُعطى للموديل ليكتب بها.

## المصادر

- [مقالة What is Codemode](https://lucumr.pocoo.org/2026/10/6/codemode/)
- [محرك QuickJS](https://bellard.org/quickjs/)
- [بروتوكول MCP](https://modelcontextprotocol.io/)
- [مدونة Armin Ronacher](https://lucumr.pocoo.org/)
