بناء وكيل برمجة ذكاء اصطناعي محلي وآمن باستخدام Node.js

قد تبدو وكلاء الذكاء الاصطناعي (AI agents) معقدة، لكنها ليست كذلك.

الوكيل هو ببساطة نموذج لغوي كبير (LLM) متصل بحلقة تكرارية، وأدوات، وقواعد سلامة.

لقد قمت ببناء وكيل برمجة محلي باستخدام Node.js و Mistral عبر Ollama. لا تحتاج إلى مفاتيح API مدفوعة؛ فكل شيء يعمل على جهازك الخاص.

يساعدك الوكيل على فهم مشاريع JavaScript الخاصة بك. يمكنه القيام بما يلي: • سرد ملفات المشروع • قراءة ملفات المشروع • البحث في النصوص • شرح الكود • العثور على الأخطاء (Bugs) • اقتراح تغييرات على الكود

المبدأ الأساسي هو السلامة. يمكن للوكيل فحص الملفات، لكن لا يمكنه تعديلها. هو فقط يقدم اقتراحاً للتعديل (patch proposal) لتراجعه أنت. هذا يضمن بقاء العنصر البشري في الحلقة (human in the loop).

كيف يعمل الوكيل: يتبع روبوت الدردشة العادي مساراً بسيطاً: المستخدم يطرح سؤالاً -> النموذج يجيب

أما الوكيل فيتبع حلقة تكرارية: المستخدم يطرح سؤالاً -> النموذج يقرر استخدام أداة -> JavaScript يقوم بتشغيل الأداة -> النموذج يرى النتيجة -> النموذج يجيب

الأنماط الرئيسية المستخدمة في هذا المشروع: • حلقة الوكيل (Agent loop): تتكرر العملية حتى يقدم النموذج إجابة نهائية. • استدعاء الأدوات (Tool calling): يطلب النموذج وظائف JavaScript محددة. • القائمة البيضاء للأدوات (Tool allowlist): يتم تشغيل الأدوات المعتمدة فقط. • موجه النظام (System prompt): قواعد تخبر النموذج بكيفية التصرف. • بروتوكول إجراءات JSON: يستجيب النموذج ببيانات مهيكلة. • حدود السلامة (Safety boundary): يظل الوصول إلى الملفات داخل المجلد الرئيسي لمشروعك.

السلامة هي الأولوية. استخدمت دالة تسمى safeResolve لمنع تجاوز المسار (path traversal). يضمن ذلك عدم قدرة الوكيل على الوصول إلى ملفات خارج مجلد مشروعك. كما وضعت حدوداً لأحجام الملفات لحماية سياق النموذج (model context).

هيكل المشروع: • src/cli.js: نقطة الدخول عبر الطرفية (terminal). • src/agent.js: الحلقة الأساسية وتوزيع الأدوات. • src/ollama.js: عميل API المحلي. • src/tools.js: أدوات نظام الملفات الآمنة. • test/tools.test.js: اختبارات السلامة والسلوك.

يمكنك تشغيل هذا المشروع باستخدام Node.js و Ollama. استخدم Mistral أو جرب نماذج مخصصة للبرمجة مثل Qwen2.5-Coder أو DeepSeek-Coder للحصول على نتائج أفضل.

ابنِ أدوات مفيدة. اجعل نطاقها ضيقاً. واجعل الكود الخاص بك يفرض حدود السلامة.

المصدر: https://dev.to/gaurav101/building-a-safe-local-ai-coding-agent-with-nodejs-46ol