هذا ليس دليلاً نظرياً. هو المسار الذي نمشيه فعلاً حين يطلب عميل وكيلاً، مرتّباً بالخطوات التي نتّخذها — والأخطاء التي دفعنا ثمنها في أول وكيل وضعناه في الإنتاج عام 2024.
الخطوة 0: عرّف المهمّة بجملة واحدة
إن لم تستطع كتابة ما يفعله الوكيل في جملة واحدة بفعل واحد ومخرج واحد، فلست جاهزاً للبناء. «يقرأ فاتورة ويقترح قيداً متوازناً للاعتماد» جملة صالحة. «يساعد قسم المحاسبة» ليست.
الخطوة 1: الأدوات قبل النموذج
الوكيل بلا أدوات روبوت محادثة. الأدوات هي ما يجعله يفعل شيئاً — وهي أيضاً حدود صلاحيته. القاعدة عندنا: كل أداة تفعل شيئاً واحداً، بأضيق صلاحية تكفي، وتُرجع خطأً واضحاً حين تفشل.
// أداة واحدة، صلاحية واحدة، مخرج واحد
const proposeEntry = tool({
name: 'propose_journal_entry',
description: 'يقترح قيداً محاسبياً متوازناً من حقول فاتورة مستخرجة. لا يُرحِّل.',
input: z.object({
vendor: z.string(),
total: z.number().positive(),
vat: z.number().min(0),
date: z.string().date(),
}),
// القيد يبقى مسودّة حتى يعتمده إنسان
execute: async (inv) => ledger.draft(balanceEntry(inv)),
});
لاحظ أن الأداة لا تُرحِّل. الترحيل قرار له أثر مالي، وكل قرار له أثر مالي يمرّ على إنسان. هذا ليس تردّداً في الثقة بالنموذج؛ هو تصميم مسؤولية.
الخطوة 2: اختر النموذج حسب المهمّة لا الموضة
لا يوجد «أفضل نموذج». يوجد أفضل نموذج لهذه المهمّة بهذه التكلفة بهذا الزمن. استخراج حقول من فاتورة لا يحتاج أكبر نموذج في السوق؛ الحكم على عقد قانوني قد يحتاجه. صمّم النظام ليبقى قابلاً لتبديل النموذج دون إعادة بناء — واجهة واحدة، ومزوّد يُبدَّل من ملف إعدادات.
الخطوة 3: الذاكرة ليست مجانية
كل ما تضعه في السياق يكلّف مالاً ووقتاً ويشتّت النموذج. الذاكرة الجيّدة انتقائية: ما يحتاجه الوكيل لهذه الخطوة، لا كل ما حدث. في وكيل الفواتير مثلاً، الوكيل يحتاج شجرة الحسابات وآخر خمسة قيود لهذا المورّد — لا تاريخ الشركة كله.
الخطوة 4: التقييم قبل النشر — دائماً
هنا ينفصل المنتج عن التجربة. قبل أن يرى أي مستخدم الوكيل، نبني مجموعة تقييم من حالات حقيقية — مئة فاتورة فعلية بقيودها الصحيحة — ونقيس: كم قيداً اقترحه الوكيل صحيحاً؟ كم خطأً كان سيمرّ لو لم يراجعه إنسان؟
- مجموعة التقييم من بيانات حقيقية، لا مولّدة
- معيار نجاح رقمي مكتوب قبل التشغيل (مثلاً: 95% قيود صحيحة، 0 قيود غير متوازنة)
- التقييم يعاد عند كل تغيير في النموذج أو التعليمات — كاختبار انحدار
الخطوة 5: ما ينكسر في الإنتاج
ثلاثة أشياء انكسرت عندنا ولم تظهر في التقييم:
- المدخلات القبيحة: فاتورة مصوّرة بزاوية، بخط يد، بلغتين. مجموعة التقييم كانت أنظف من الواقع. الحلّ: أضف الحالات القبيحة إلى المجموعة ما إن تظهر.
- الثقة الزائدة: المستخدم يعتمد القيد المقترح دون قراءته لأن «الوكيل عادةً صحيح». الحلّ: أبرز ما تغيّر عن المعتاد، واجعل الاعتماد يتطلّب نظرة لا نقرة.
- التكلفة: استدعاءات إعادة المحاولة تضاعفت الفاتورة في أول شهر. الحلّ: ميزانية استدعاءات لكل مهمّة، وتوقّف صريح بدل التكرار.
الخلاصة
وكيل الإنتاج ليس نموذجاً ذكياً؛ هو نظام: أدوات ضيّقة الصلاحية، ذاكرة انتقائية، تقييم مُقاس، سجل لكل قرار، وإنسان عند كل أثر مالي. من يبدأ من النموذج ينتهي بتجربة. من يبدأ من المهمّة ينتهي بمنتج.


