من LLM إلى التنفيذ: كيف تنشئ وكيل AI باستخدام Go وGigaChat
بدافع الاهتمام، بنى مطور وكيل AI على Go باستخدام LangChainGo والأدوات وسلاسل الطلبات والتكامل مع GigaChat الروسي. وتقدم المقالة تفصيلًا كاملًا للبنية وإعداد MCP

استلهم مطور من محاضرة حول وكلاء الذكاء الاصطناعي وقرر محاولة بناء أحدهم باستخدام Go. لم يكن سهلاً، لكنه نجح — الآن يشارك تجربته ويشرح كيفية جعل تطبيق Go لا يقتصر على توليد النصوص، بل يفكر ويتخذ إجراءات.
الهندسة المعمارية: كيف يختار الوكيل الإجراءات
يختلف وكيل الذكاء الاصطناعي عن نموذج اللغة الكبير القياسي في أنه ليس مولد نصوص، بل نظام اتخاذ القرارات. عندما يقدم المستخدم مهمة، يحللها الوكيل، ويختار أداة مناسبة (بحث، حساب، استدعاء واجهة برمجية)، وينفذها، ويحصل على النتيجة، ويستمر في التفكير. هذه هي السلسلة: استقبال المهمة → نموذج اللغة الكبير يختار خطوة → تنفيذ الأداة → تحديث السياق → التكرار حتى تُحل المهمة. التحدي يكمن في وصف الأدوات بشكل صحيح في التعليمات بحيث يفهم نموذج اللغة الكبير متى وأي أداة يستخدم. الوصف غير الصحيح = يختار الوكيل الأداة الخاطئة ويسير في المسار الخاطئ.
LangChainGo: إطار عمل لمطوري Go
اختار المطور LangChainGo — وهي ربطة Go لـ LangChain، إطار عمل لتطبيقات نموذج اللغة الكبير. فهو يأخذ الأفضل من إصدار Python، لكنه يعمل على Go، وهذا مهم للأنظمة الإنتاجية. يوفر LangChainGo:
- سلاسل الطلبات (Chains) — قوالب لسلاسل الخطوات مع نماذج اللغة الكبيرة
- الأدوات (Tools) — وظائف يمكن للوكيل استدعاؤها (بحث، حساب)
- Memory — سياق المحادثة بين طلبات المستخدم
- MCP (Model Context Protocol) — معيار لربط الأدوات الخارجية
- الدعم لنماذج لغة كبيرة متنوعة — من OpenAI إلى النماذج المحلية
الميزة الرئيسية: يمكنك كتابة كود إنتاجي في Go دون الانتقال إلى Python. هذا يعني نشر أسرع، وتبعيات أقل، وأداء أفضل.
التكامل مع GigaChat و MCP
بدلاً من واجهة برمجية OpenAI، قرر المؤلف استخدام GigaChat — نموذج لغة كبير روسي من Sber. هذا أكثر ملاءمة للعمل مع النص السيريلي والبيانات المحلية، بالإضافة إلى تلبية متطلبات الامتثال. ربط GigaChat عبر LangChainGo لم يكن واضحاً. لم تحتوِ الوثائق إلا على أمثلة لـ OpenAI. اضطر إلى كتابة محول مخصص حتى يتمكن LangChainGo من التواصل مع GigaChat: تنسيق الطلب الصحيح، معالجة الرموز، ترجمات الأخطاء.
بدا MCP في البداية وكأنه بروتوكول معقد، لكن اتضح أنه فكرة بسيطة: الأداة هي دالة تستقبل طلب JSON وترجع استجابة JSON.
"في البداية، بدا أن نظام
Go لمجال الذكاء الاصطناعي أقل سمكاً من Python. في الواقع، إنه مجرد أكثر إحكاماً — وهذا إيجابي."
التحديات والدروس
المشكلة الأولى: تنقطع سلسلة الطلبات بطريقة غير واضحة. إذا اختار الوكيل الأداة الخاطئة، يصبح السياق مربكاً ولن يعود إلى المسار الصحيح. اضطر إلى إضافة التحقق من التعليمات ومنطق الاحتياطي — إذا لم تنجح الأداة الأولى، حاول أخرى.
الثاني: تصحيح الأخطاء. عندما يفكر نموذج اللغة الكبير بشكل غير صحيح، من الصعب فهم السبب. اضطر إلى تسجيل كل خطوة في السلسلة، كل اختيار أداة، كل نتيجة. بدون ذلك، أنت تصطاد الأخطاء بشكل عشوائي.
الثالث: دمج الأدوات المخصصة. يبدو MCP جيداً على الورق، لكن عندما تحتاج إلى دمج واجهة برمجية داخلية أو أداة معقدة — هناك عمل إضافي. اضطر إلى كتابة wrapper يحول النتيجة إلى شيء يمكن لنموذج اللغة الكبير فهمه.
لماذا هذا مهم
بالنسبة لمطوري Go، هذا يعني أن وكلاء الذكاء الاصطناعي لم تعد حصراً على مطوري Python. يجعل LangChainGo من الممكن دمج نظام ذكي في خدمة Go إنتاجية. هذا يعني أنظمة سريعة لا توّلد النصوص فحسب، بل تحل المشاكل.