خمسة قرارات عملية تحوّل المخطّط إلى شيء يعمل: أي نموذج يستدل، وما الذي ينسّقه، وأين تسكن الذاكرة، وأي أدوات يستطيع الوصول إليها، وأين يجده الناس. ويمرّ هذا الفصل على كل واحد منها بالترتيب.
خمسة قرارات عملية تحوّل المخطّط إلى شيء يعمل: أي نموذج يستدل، وما الذي ينسّقه، وأين تسكن الذاكرة، وأي أدوات يستطيع الوصول إليها، وأين يجده الناس. ويمرّ هذا الفصل على كل واحد منها بالترتيب.
وملاحظة عن طريقة قراءته. كل منتج مذكور هنا سيبقى موجودًا بصورة ما لسنوات، وكل واحد منها سيكون قد تغيّر بحلول وقت استخدامك له. فتعامل مع ما يلي على أنه خريطة لأنواع المكوّنات التي تحتاجها، مع أمثلة حالية ملحقة بها، لا قائمة مشتريات.
النموذج هو محرّك الاستدلال. تصل إليه عبر شبكة: ترسل نصًّا فيعود إليك نصّ. وكلما كان أفضل في اتّباع التعليمات واستخدام الأدوات، كان سلوك وكيلك أفضل.
الجدول 8-1: من أين تأتي النماذج
| المزوّد | الطابع |
|---|---|
| Anthropic — Claude | اتّباع دقيق للتعليمات، وسياق طويل، واستخدام قوي للأدوات وكتابة برمجية قوية |
| OpenAI — عائلة GPT | قدرة واسعة، ودعم بالغ الاتّساع من المنظومة المحيطة |
| Google — Gemini | استدلال متعدد الوسائط، وسياق طويل جدًا |
| نماذج مفتوحة الأوزان | تعمل على بنيتك التحتية؛ والرخصة تختلف من نموذج إلى آخر |
لأول وكيل، ابدأ بنموذج قادر عام الغرض من أحد المزوّدين الكبار. فهي موثوقة، ووثائقها جيدة، وأدوات التطوير تدعمها على نطاق واسع. وانظر في النماذج مفتوحة الأوزان حين تحتاج إلى تحكّم أكبر، أو كلفة أقلّ، أو بيانات لا يجوز أن تخرج من أنظمتك.
وبعد أن يستقرّ النموذج، تحتاج إلى شيء يدير المنطق: أي تعليم يخرج ومتى، وأي أداة تُستدعى، وما الذي يُتذكَّر، وما يحدث عند الفشل. وأطر التطوير تقوم بهذا حتى لا تكتبه من الصفر.
الجدول 8-2: أطر التطوير وما يصلح له كل منها
| الإطار | ما يصلح له |
|---|---|
| LangChain وLangGraph | الوكلاء العامّون، والحلقات التي تريد تحكّمًا صريحًا فيها |
| LlamaIndex | مساعدون مبنيّون على مستنداتك |
| CrewAI | عدة وكلاء بأدوار موزَّعة |
| AutoGen | تجارب خفيفة على أنظمة متعددة الوكلاء |
| Semantic Kernel | أنظمة في بيئة الإنتاج داخل منظومات برمجية أكبر |
| حزمة أدوات المزوّد نفسه | البناء قريبًا من نموذج واحد، مع استخدام الأدوات وخصائص الوكلاء الفرعيين جاهزةً فيه |
LangChain إن أردت طبقة تنسيق كاملة، مقرونًا بـLlamaIndex حين تكون المستندات في المركز. ولا تمدّ يدك إلى CrewAI أو AutoGen إلا حين يكون لديك فعلًا عدة وكلاء — والجزء الخامس سيساعدك في الحكم على ذلك. وحزمة أدوات المزوّد نفسه هي غالبًا أقصر طريق بعد أن تستقرّ على نموذج.
بلا ذاكرة يبدأ الوكيل من الصفر في كل مرة. ونوعان منها، كما بيّن الفصل 6: الذاكرة قصيرة المدى للجلسة، والذاكرة طويلة المدى على امتداد الجلسات. والذاكرة قصيرة المدى تسكن غالبًا في نافذة السياق وفي ذاكرة مؤقّتة. أما الذاكرة طويلة المدى فتحتاج إلى مكان حقيقي.
الجدول 8-3: أين تسكن الذاكرة طويلة المدى
| المخزن | ما يصلح له |
|---|---|
| Chroma | مشاريع صغيرة، تعمل محليًا |
| Pinecone أو Weaviate | أنظمة أكبر تحتاج إلى التوسّع، أو إلى بيانات وصفية مُهيَّكلة |
| Redis | حالة الجلسة والتخزين المؤقّت |
| PostgreSQL مع امتداد متجهي | حين تشغّله أصلًا وتريد مخزنًا واحدًا لا اثنين |
ابدأ صغيرًا. وإن كنت تشغّل قاعدة بيانات علائقية أصلًا، فامتدادها المتجهي هو الخيار العملي عادةً، لأن نظامًا أقلّ للتشغيل يساوي كثيرًا.
الوكيل المفيد فعلًا لا يتكلّم فقط. فالأدوات تمكّنه من البحث عن المعلومة، والترتيب، والإرسال، والتحديث، والحساب. وفي التطبيق ستوصّل حفنة من هذه:
اختر الأداتين أو الثلاث التي يحتاجها الوكيل فعلًا، وتوقّف. واكتب أوصافها بعناية، لأن هذا أهمّ مما يتوقّعه الجديد على المجال: النموذج يقرّر استدعاء أداة من قراءة وصفها. والوصف الغامض ينتج وكيلًا يستدعي الشيء الخطأ في اللحظة الخطأ. اكتبها كما تكتب لزميل جديد لا يستطيع أن يسألك سؤالًا تاليًا. وفي الفصل 11 دليل على حجم الفارق الذي يصنعه هذا.
لا نموذج يعرف مستنداتك الداخلية. فإن كان على الوكيل أن يجيب من أدلّة المنتجات أو السياسات أو العقود، فهو يحتاج إلى الاسترجاع — أي الفصل 4 مطبَّقًا على موادّك:
يتولّى LlamaIndex الإدخال والتقطيع والاسترجاع؛ ومكوّنات الاسترجاع في LangChain تؤدّي العمل نفسه داخل مسار أكبر؛ أما التمثيلات المتجهية نفسها فتقع في المخزن الذي اخترته أعلاه.
الجدول 8-4: أماكن يمكن وضع الوكيل فيها
| المكان | ما يصلح له |
|---|---|
| صفحة ويب أو بوابة | الأدوات الموجّهة للعملاء والأدوات الداخلية |
| Slack أو Teams | العمل الداخلي، حيث يوجد الناس أصلًا |
| واجهة تستدعيها برمجيات أخرى | الدمج في نظام أكبر |
| طرفية | وكلاء الهندسة والبرمجة |
| الصوت | إمكانية الوصول والاستخدام دون استعمال اليدين |
ابدأ من حيث يوجد مستخدموك أصلًا، وهو عادةً منصّة محادثة أو صفحة يزورونها بالفعل. وأدوات مثل Streamlit وGradio تضع نموذجًا أوليًا أمام الناس في ظهيرة واحدة، وهذا يساوي أكثر من شهر من التصميم.
وأبقِ تمييزًا واحدًا واضحًا، لأنه يثير الخلاف. النشر يعني إتاحة النظام. أما التشغيل في بيئة الإنتاج فيعني متابعته، وتقييد صلاحياته، والاحتفاظ بسجلات يمكنك تدقيقها، ووجود خطة لليوم الذي يتصرّف فيه على غير المتوقّع. الأول ظهيرة واحدة. والثاني هو العمل.
هذا كل ما يلزم لبناء وكيل واحد عامل. وهو يطرح سؤالًا وجيهًا: إن كانت الأجزاء مفهومة إلى هذا الحدّ، فكيف تبدو من الداخل الأنظمة التي يستخدمها ملايين الناس أصلًا؟