العَرَض والتشخيص الخاطئ
يُطلق فريق وكيلًا، ويشغّل مجموعة التقييم، ويراقب النتيجة الإجمالية ترتفع لبضعة أسابيع ثم تستوي. أحيانًا ترتفع بشكل حاد، ثم تتدهور في التشغيل التالي دون أي تغيير في الكود بينهما. الغريزة هي اللجوء إلى البنية: تبديل المخطط، إضافة وكيل ناقد، توسيع نافذة الاسترجاع، تغيير مخطط استدعاء الأدوات. تُستنزف أسابيع من الهندسة في مشكلة لم تكن في النموذج أبدًا.
مجموعة التقييم نفسها انحرفت. تم تعديل العناصر في مكانها دون رفع الإصدار. قالب prompt تم ضبطه على مجموعة قليلة من الأمثلة امتص تلك الأمثلة بصمت في كتلة few-shot الخاصة به. فهرس استرجاع بُني من وثائق داخلية احتوى بالصدفة على أسئلة التقييم وإجاباتها. تحركت النتيجة لأن أداة القياس تحركت، ولم يلاحظ أحد لأن الأداة لم تُعامل قط كقطعة أثرية.
الإطار المفيد هو هذا: مجموعة التقييم هي مجموعة بيانات. لها تأليف، ومصدر، وقيود ترخيص، وتعرض للخصوصية، وتوزيع، ودورة حياة. معاملتها كمجلد JSON يمكن لأي شخص تعديله هو السبب الجذري لمعظم التلوث. الحل ليس نموذجًا أذكى. الحل هو نفس الانضباط المطبق على بيانات التدريب، مطبقًا على الأداة التي تقيس بها.
عامل مجموعة التقييم كقطعة أثرية ذات إصدار
يجب أن تكون مجموعة التقييم غير قابلة للتغيير بمجرد نشرها. ليس "نحاول عدم تعديلها" — بل غير قابلة للتغيير بنيويًا، مع كل مراجعة معنونة بالمحتوى بحيث يمكن للتشغيل تسجيل ما قاس عليه بالضبط.
الآلية القابلة للتطبيق هي بيان (manifest) يجزئ كل عنصر والمجموعة ككل:
set: agent-tool-use-core
revision: 2024-11-07.3
items_hash: sha256:9f2c...
item_count: 412
retired:
- id: tool-0183
reason: saturated
superseded_by: tool-0411

يحل إطار التقييم revision إلى تجزئة محتوى قبل بدء التشغيل ويكتب تلك التجزئة في سجل النتيجة. إذا لم تتطابق التجزئة مع البيان، يُلغى التشغيل. هذا القيد الواحد يزيل فئة كاملة من الأخطاء: النتيجة التي قارنتها الشهر الماضي أُنتجت بأداة مختلفة، والآن يرفض النظام السماح لك بالتظاهر بغير ذلك.
لعدم القابلية للتغيير تكلفة. عندما يكون العنصر خاطئًا حقًا — صياغة غامضة، توقيع API قديم في أثر استدعاء أداة، إجابة واقعية تغيرت منذ ذلك الحين — لا يمكنك ترقيعه. تتقاعده وتضيف بديلًا، مما يعني أن المجموعة تنمو لها سلالة ومقارناتك التاريخية تحتاج إلى مراعاة التبديل. الفرق التي تتخطى هذا الانضباط تحصل على سلاسل زمنية تبدو أنظف لكنها بلا معنى بصمت. المقايضة حقيقية وتستحق التسمية: أنت تقايض الراحة مقابل القدرة على الوثوق بخط اتجاهك الخاص.
انضباط مجموعة الاحتفاظ
يجب ألا يظهر عنصر تقييم في أي prompt، أو فهرس استرجاع، أو مدونة ضبط دقيق، أو مثال few-shot يُستخدم أثناء التطوير. يبدو هذا بديهيًا ويُخالف routinely، عادةً عبر الاسترجاع.
عندما يكون لدى وكيل خطوة استرجاع على وثائق داخلية، ومجموعة التقييم مخزنة في نفس المستودع أو نفس مخزن المتجهات، فإن استعلامًا قريبًا دلاليًا من سؤال تقييم سيكشف عن عنصر التقييم. ثم يجيب الوكيل من مجموعة التقييم بدلًا من القدرة. لا شيء في المخرجات يبدو خاطئًا؛ النتيجة فقط ترتفع.
الضابط الذي يلتقط هذا هو الكناري. ازرع فهرس التقييم بعناصر إجاباتها الصحيحة معروفة وموسومة ككناري. قيّمها بشكل منفصل عن المجموعة الرئيسية وأبلغ عن معدل إصابة الكناري كمعدل تلوث. إذا كان الكناري يُسترجع أو يُجاب عنه بشكل صحيح بمعدل أعلى من الصدفة، فإن الفهرس يسرب والرقم الرئيسي مشبوه.
الكناري رخيص وغير كامل. يكتشف التسرب عبر مسار الاسترجاع وعبر بناء prompt، لكنه لا يكتشف الحفظ المدمج في أوزان النموذج أثناء التدريب المسبق. لذلك، الإشارات الموثوقة الوحيدة هي الزمنية: عناصر أُلفت بعد تاريخ قطع تدريب النموذج، أو عناصر محفوظة في مجموعة خاصة لم تُنشر قط. كلاهما يقيد ما يمكنك قياسه، لأن مجموعة خاصة لا يمكن مقارنتها بلوحات الصدارة العامة. تلك هي المقايضة — القابلية
يجب أن يحمل كل عنصر مصدره وتأليفه. ليس للفضل، بل لكي يمكن إعادة تقييم قيود الترخيص والخصوصية عندما تتغير. مجموعة بيانات كان مسموحًا استخدامها قبل عامين قد لا تكون كذلك اليوم، ومجموعة جُمعت من نصوص عملاء مكشوطة قد تحتوي على بيانات شخصية لم تُصرح قط لاستخدام التقييم. بدون مصدر لكل عنصر، المعالجة الوحيدة المتاحة هي التخلص من المجموعة بأكملها.

التحكم في الوصول هو النصف الثاني. يجب أن تكون مجموعة التقييم قابلة للقراءة من إطار التقييم ومن لا شيء آخر تقريبًا. المهندسون الذين يكررون على prompts لا يحتاجون إلى وصول للقراءة إلى عناصر التقييم؛ يحتاجون إلى نتائج مجمعة وتفصيلات لكل شريحة. منح وصول القراءة للأشخاص الذين وظيفتهم تحسين النتيجة يخلق حافزًا واضحًا للإفراط في التخصيص، حتى مع النوايا الحسنة.
إلى جانب التحكم في الوصول، سجل كل استرجاع لمس فهرس التقييم أثناء التطوير. سجل استرجاع يُظهر عنصر تقييم يظهر في جلسة تطوير هو حدث تلوث، سواء غيّر قرارًا أم لا. السجل يجعل الحدث قابلًا للتدقيق بعد وقوعه بدلًا من أن يكون غير مرئي.
المقايضة الصادقة هنا هي السرعة. تقييد وصول القراءة للتقييم يبطئ حلقة التصحيح، لأن مهندسًا يشتبه في نمط فشل محدد لا يمكنه ببساطة فتح العنصر وقراءته. التعويض هو مجموعة تطوير منفصلة وقابلة للقراءة علنًا لا تُستخدم صراحةً للإبلاغ. مجموعتان، غرضان، إحداهما مقفلة.
ممارسة الإبلاغ
رقم رئيسي بدون مراجعة ومعدل تلوث ليس قياسًا. إنه ادعاء. أي نتيجة منشورة يجب أن تحمل مراجعة المجموعة، وتجزئة المحتوى، ومعدل التلوث المستمد من الكناري إلى جانبها. إذا كان معدل التلوث غير تافه، يجب الإبلاغ عن النتيجة مع هذا التحفظ بدلًا من رقم واحد.
المتوسطات تخفي أيضًا الانحدار. متوسط واحد على مجموعة مختلطة سيخفي قدرة تدهورت بينما تحسنت أخرى. أبلغ عن شرائح لكل قدرة — اختيار الأدوات، بناء الوسائط، الاسترداد متعدد الخطوات، سلوك الرفض — وأبلغ عنها بنفس انضباط المراجعة كالمتوسط. شريحة تتحرك بمقدار صغير على مجموعة من بضع عشرات العناصر ليست إشارة؛ أبلغ عن عدد العناصر ودع القارئ يحكم.
أخيرًا، تقاعد العناصر المشبعة وفق جدول. عنصر يمر به كل نموذج حالي لا يساهم بشيء سوى خط أساس متملق ومتوسط مخفف. تراكم العناصر المشبعة يجعل المجموعة تبدو شاملة بينما يجعل المتوسط أقل إفادة كل ربع. تقاعدها، وسجل التقاعد في البيان، واستبدلها بعناصر تميز.
لا شيء من هذا براق. إنه هندسة بيانات مطبقة على أداة القياس، وهو الفرق بين نتيجة تعني شيئًا ونتيجة تتحرك لأن خط الأنابيب تحرك.