استهلك منسق الوكلاء (Agent Orchestrator) الخاص بي ما بين 1 إلى 2 مليون توكن من نوع Opus لكل مهمة.
كيف انفجرت التكاليف
تم بناء المنسق لـ Claude Code واستخدم تسلسلاً هرمياً من الوكلاء الفرعيين (sub-agents). ورث كل وكيل فرعي إعدادات الوكيل الأب، وقام بتشغيل المطالبة (prompt) الخاصة به، ثم أعاد النتيجة إلى الحلقة (loop) حتى يعلن المراجع أن المخرجات "نظيفة". أتمت الأداة المهام، لكن التكلفة كانت فلكية.
ضاعفت ثلاث "ضرائب" خفية عدد التوكنات:
- ضريبة النموذج (Model tax) – لم يحدد الوكلاء الفرعيون نموذجاً معيناً، فاعتمدوا تلقائياً على Opus، وهو الفئة الأغلى. أي عملية صغيرة كانت لتناسب نموذجاً أرخص (Haiku أو Sonnet) تم احتساب تكلفتها بأسعار Opus.
- ضريبة التخزين المؤقت (Cache tax) – لا يعيد التخزين المؤقت للمطالبات (Prompt caching) استخدام إلا التطابقات المتطابقة تماماً (byte-for-byte). ولأن كل وكيل فرعي أضاف تعليمات مخصصة، فإن كل استدعاء فرض عملية كتابة في التخزين المؤقت البارد (cold cache write). لم يكن من الممكن إعادة استخدام التخزين المؤقت للوكيل الأب، مما أدى إلى ضياع التوفير الذي يوفره التخزين المؤقت المشترك عادةً.
- ضريبة الحلقة (Loop tax) – أبقت قاعدة "الحلقة حتى النظافة" العملية مستمرة طالما وجد المراجع أي خلل. ومع عدم وجود سقف محدد، استمرت الحلقة في العمل حتى توقف النموذج.
مجتمعةً، حولت هذه المضاعفات بضعة أسطر من الكود إلى انهيار من التوكنات.
لماذا فشلت قاعدة الميزانية في المطالبة (prompt)
حاول التصميم الأصلي كبح الإنفاق عن طريق تضمين قاعدة ميزانية مباشرة في مطالبة النظام (system prompt). من الناحية النظرية، كان من المفترض أن يؤدي إخبار النموذج "ابقَ تحت X توكن" إلى الحد من الاستخدام. ولكن من الناحية العملية، فإن القاعدة القائمة على المطالبة ليست سوى مجرد تفضيل. ومع نمو الجلسة، يقوم النموذج بضغط السياق (context) ويمكنه إسقاط تلك التعليمات أو تجاهلها تماماً. والنتيجة: تصرف النموذج كما لو أن القاعدة لم تكن موجودة قط.
نقل فرض القواعد من المطالبة إلى الكود
جردت إعادة التصميم منطق الميزانية من المطالبة ووضعته في نظام خطافات (hook system) حتمي لا يمكن للنموذج تجاوزه.
- اختيار صريح للنموذج – يتطلب كل إرسال لوكيل فرعي الآن اختيار نموذج محدد (Haiku أو Sonnet أو Opus). انتهى نظام الوراثة الصامت، لذا تظل المهام الرخيصة رخيصة.
- حواجز صارمة عبر خطاف PreToolUse – قبل تشغيل أي أداة، يتحقق الخطاف مما يلي:
- عدد عمليات الإرسال التي تمت بالفعل في الجلسة.
- ما إذا كان النموذج المختار يلبي الحد الأدنى من الفئة (لمنع استخدام Opus عن طريق الخطأ).
- الحد الأقصى لعدد تكرارات الحلقة، وبعدها يتم إيقاف العملية.
إذا تم تفعيل أي حاجز، يقوم الكود بإلغاء الوكيل الفرعي؛ وليس لدى النموذج اللغوي أي وسيلة للمجادلة للعودة.
ماذا يعني هذا للمطورين
أي نظام يفرض حدوداً للإنفاق، أو سياسات أمنية، أو قيوداً على الأوامر التدميرية يجب أن يعامل تلك القيود ككود، وليس كإرشادات حوارية. يمكن إعادة كتابة المطالبة، أو تجاهلها، أو فقدانها في عملية الضغط الداخلي للنموذج. أما الكود، من ناحية أخرى، فيتم تنفيذه بشكل حتمي ويمكن مراجعته.
