Log in to leave a comment
No posts yet
إن منح وكلاء الذكاء الاصطناعي (AI Agents) القدرة على معالجة الملفات أو تحليل الأكواد أمر أصعب مما يبدو. الخطأ الأكثر شيوعاً هو حشو السياق (Context Stuffing)، أي دفع عشرات الآلاف من أسطر الكود بالكامل داخل المطالبة (Prompt). لا يؤدي هذا الأسلوب فقط إلى استنزاف رصيدك البنكي بسبب تكاليف الرموز (Tokens)، بل يتسبب أيضاً في ظاهرة الفقد في المنتصف (Lost in the Middle)، حيث يفقد النموذج التركيز على جوهر المعلومات.
من ناحية أخرى، فإن تشغيل حاويات Docker حقيقية لمنح صلاحيات القشرة (Shell) يواجه عقبات مثل تأخير البداية الباردة (Cold Start) الذي يتراوح بين 2 إلى 10 ثوانٍ في بيئات Serverless، بالإضافة إلى تكاليف إدارة البنية التحتية المعقدة.
الحل بسيط بشكل مدهش: استخدام justbash، وهي بيئة Bash افتراضية تعمل بلغة TypeScript الأصلية دون الحاجة لخادم فيزيائي. تكتسح هذه التقنية الأعباء الإضافية للبنية التحتية وتجعل الوكيل يختار ويقرأ البيانات التي يحتاجها فقط بنفسه.
justbash ليس مجرد غلاف للأوامر (Wrapper)، بل هو محرك محاكاة ينفذ بيئة Bash كاملة داخل TypeScript. يقوم بتحليل الأوامر المدخلة وتنفيذها كدوال JavaScript، ويدير البيانات من خلال نظام ملفات افتراضي (VFS) داخل الذاكرة.
تظهر فروق الأداء بين الأساليب المختلفة في بيئة التشغيل الحقيقية بشكل جلي:
| عنصر المقارنة | Shell حقيقي (Docker/VM) | Python Sandbox (WASI) | justbash (TypeScript VFS) |
|---|---|---|---|
| سرعة التشغيل | 2,000ms ~ 10,000ms | أكثر من 200ms | أقل من 1ms (فوري) |
| استهلاك الذاكرة | أكثر من 500MB | حوالي 50MB | أقل من 5MB |
| مستوى العزل | مستوى نواة نظام التشغيل | بيئة WASI المعزولة | قيود وقت تشغيل JS |
| التحكم في الشبكة | يتطلب إعداد جدار حماية | يتطلب اعتراض (Interceptor) | قائم على القائمة البيضاء |
تكمن القيمة الحقيقية لـ justbash في الفورية. بما أنه يستهلك موارد تعادل إنشاء كائن JavaScript فقط، فإنه يظهر كفاءة لا تضاهى في بيئات مثل Vercel Functions أو AWS Lambda حيث تحتاج لتشغيل آلاف الوكلاء في وقت واحد.
بينما كانت الأساليب التقليدية "تلقم" الوكيل كل المعلومات، يقوم الوكيل في بيئة Bash الافتراضية بالبحث عن المعلومات المطلوبة بنفسه. لنفترض أننا بصدد تحليل مشروع يحتوي على 100 ملف:
ls -R ثم يبحث عن الكلمات المفتاحية باستخدام grep ويقرأ أسطرًا محددة فقط باستخدام sed. ينتهي الأمر باستهلاك 6,000 رمز فقط.وفقاً لبيانات القياس الفعلية، ينخفض استهلاك الرموز بنسبة تزيد عن 95% عند تحليل المشاريع الكبيرة. وهذا لا يوفر التكاليف فحسب، بل يرفع كثافة البيانات التي يعالجها النموذج، مما يؤدي لزيادة هائلة في دقة الاستنتاج.
عملية بناء وكيل ذكي من خلال الربط بين bash-tool و justbash هي عملية بديهية.
أولاً، قم بتثبيت الحزمة وتحديد الحالة الأولية لنظام الملفات الافتراضي.
`typescript
import { createBashTool } from "bash-tool";
const { tools } = await createBashTool({
files: {
"config/settings.json": '{"mode": "analysis", "depth": 5}',
"README.md": "هذه بيئة افتراضية لتحليل المشروع.",
},
});
`
امنح الوكيل قدرات bash و readFile و writeFile. لمنع الحلقات اللانهائية، يجب تضمين وسيلة أمان مثل stepCountIs.
`typescript
const agent = new ToolLoopAgent({
model: yourModelProvider("gpt-4o"),
tools,
stopWhen: stepCountIs(20),
});
const result = await agent.generate({
prompt: "اقرأ إعدادات دليل config وتحقق من هيكل المشروع.",
});
`
حدد استراتيجية للوكيل لاستخدام الأدوات بكفاءة. لا تأمره ببساطة بتحليل الملفات، بل وجهه بوضوح: "يجب عليك التحقق من الهيكل باستخدام ls -R واختيار الملفات ذات الصلة فقط باستخدام grep قبل القراءة".
بيئة justbash معزولة تماماً عن الخارج افتراضياً. ولكن إذا كنت بحاجة لاستدعاء API خارجي، يمكنك إعداد قائمة بيضاء لـ curl.
عند النشر الفعلي، يجب فحص النقاط الثلاث التالية:
pwd عند البدء أو حدد مسار الجذر الافتراضي بوضوح في المطالبة.executionLimits مثل تحديد maxCallDepth بحدود 50 لمنع هدر الموارد.تعد justbash و bash-tool أدوات عملية تحل الصراع بين التكلفة والأداء الذي يواجهه مطورو الذكاء الاصطناعي. فهي تقلل تعقيد البنية التحتية إلى مستوى JavaScript مع توفير منصة عمل آمنة وقوية للوكيل.
سيتطور وكلاء المستقبل من مستقبلين سلبيين للبيانات إلى مستكشفين نشطين يتنقلون في أنظمة الملفات ويجدون الإجابات بأنفسهم. راجع أسلوب حقن السياق في مشروعك الحالي وفكر في الانتقال إلى الهيكل الذكي عبر Bash الافتراضي.
قائمة مرجعية للبدء
justbash وأجرِ اختباراً لتصفية كمية صغيرة من البيانات.maxCallDepth والقائمة البيضاء.