בניית סוכן קוד AI מקומי ובטוח באמצעות Node.js
סוכני AI נשמעים מורכבים. הם לא.
סוכן הוא פשוט LLM המחובר ללולאה, לכלים ולכללי בטיחות.
בניתי סוכן קוד מקומי באמצעות Node.js ו-Mistral דרך Ollama. אין צורך במפתחות API בתשלום. הכל רץ על המחשב שלך.
הסוכן עוזר לך להבין את פרויקטי ה-JavaScript שלך. הוא יכול: • רשימת קבצי הפרויקט • קריאת קבצי הפרויקט • חיפוש טקסט • הסבר קוד • מציאת באגים • הצעה לשינויי קוד
עקרון הליבה הוא בטיחות. הסוכן יכול לבדוק קבצים, אך הוא אינו יכול לערוך אותם. הוא רק מחזיר הצעה לתיקון (patch) לעיון שלך. זה שומר על בן אדם בלולאה (human in the loop).
איך הסוכן עובד: צ'אטבוט רגיל עוקב אחר מסלול פשוט: משתמש שואל שאלה -> המודל עונה
סוכן עוקב אחר לולאה: משתמש שואל שאלה -> המודל מחליט על כלי -> JavaScript מריץ את הכלי -> המודל רואה את התוצאה -> המודל עונה
תבניות מפתח ששימשו בפרויקט זה: • Agent loop: התהליך חוזר על עצמו עד שהמודל מספק תשובה סופית. • Tool calling: המודל מבקש פונקציות JavaScript ספציפיות. • Tool allowlist: רק כלים מאושרים מורצים. • System prompt: כללים שאומרים למודל איך להתנהג. • JSON action protocol: המודל מגיב עם נתונים מובנים. • Safety boundary: הגישה לקבצים נשארת בתוך שורש הפרויקט (project root) שלך.
הבטיחות היא בעדיפות עליונה. השתמשתי בפונקציה בשם safeResolve כדי למנוע path traversal. זה מבטיח שהסוכן לא יוכל לגשת לקבצים מחוץ לתיקיית הפרויקט שלך. הגדרתי גם מגבלות על גודל הקבצים כדי להגן על ה-context של המודל.
מבנה הפרויקט:
• src/cli.js: נקודת הכניסה לטרמינל.
• src/agent.js: לולאת הליבה וניהול הכלים (tool dispatch).
• 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