Autolith: وكيل برمجي داخل الطرفية مع runtime حي لـ Common Lisp
قدّمت Lambda Symbolics أداة Autolith v0.40.1، وهي وكيل برمجي يعمل داخل الطرفية وعلى ملفات الـ repository مباشرة، مع قدرة على قراءة الملفات وتعديلها وتشغيل الأوامر والاختبارات. ما يميّزها هو تشغيلها داخل صورة Common Lisp حية يمكن للوكيل فحصها وتعديل تعريفاتها ثم اختبار التغييرات أو التراجع عنها.
أبرز النقاط
- Autolith وكيل برمجي يعمل داخل الطرفية وعلى ملفات الـ repository مباشرة.
- يتضمن runtime حياً من SBCL يمكن فحصه وتعديل functions وclasses وmacros فيه أثناء التشغيل.
- التغييرات الحية تُسجل في mutation journal ويمكن اختبارها أو التراجع عنها أو حفظها كـ private image commit.
- ميزة rlm.complete تتعامل مع محتوى أكبر من نافذة النموذج عبر شرائح وبحث واستدلالات فرعية ضمن ميزانية محددة.
- الأداة تنفذ كود النموذج بصلاحيات المستخدم، ولا تمثل بيئة عزل أمني للكود غير الموثوق.
Autolith هو وكيل برمجي يعمل من الطرفية ويتعامل مباشرة مع مساحة عمل المشروع. يستطيع قراءة الملفات وتعديلها، البحث في الـ workspace، تشغيل أوامر shell والاختبارات، والاحتفاظ بسياق المشروع والمحادثات.
الجانب المختلف في الأداة هو أنها ليست مجرد واجهة تستدعي agent منفصلاً؛ إذ تعمل مكوّناتها داخل عملية Common Lisp واحدة. تضم الصورة الحية runtime من SBCL، وعميل مزود النموذج، وواجهة الطرفية، وسجل الأدوات، وحالة المحادثة، والذكريات المستمرة، وagenda الخاصة بمساحة العمل.
تعديل الـ runtime أثناء التشغيل
يستطيع Autolith فحص واستبدال تعريفات كاملة داخل الصورة العاملة، بما يشمل functions وmethods وclasses وmacros وconditions والإعدادات العامة. ويمكن أن يصبح التغيير نافذاً فوراً، ثم يُختبر ويُسجل في mutation journal قابل للمراجعة.
إذا كان التغيير مفيداً، يمكن حفظه كـ private image commit. ووفقاً للمشروع، يتضمن هذا الـ commit manifest وسكربت Lisp قابل للتشغيل لإعادة بناء التغيير، ويُحفظ في Git history خاصة منفصلة عن الـ repository المصدر. الفكرة هنا هي تغيير الوكيل نفسه من دون تعديل ملفات المشروع المتتبعة تلقائياً.
كما توفر الأداة وضع --immutable لمن يريد الفحص فقط: يحتفظ هذا الوضع بمعلومات القراءة والاستعادة، لكنه يمنع أدوات التقييم والتعديل والحفظ وإنشاء checkpoints والتراجع.
سياق أكبر من نافذة النموذج
تقدم Autolith ميزة rlm.complete للتعامل مع corpus أكبر من نافذة سياق النموذج. بدلاً من تمرير كل المحتوى داخل prompt، تُخزّن المادة ككائن content-addressed، ويحصل النموذج على وصف لها مثل الاسم والحجم والبصمة، ثم يوجّه بيئة Lisp معزولة عبر شرائح محددة وعمليات بحث واستدلالات فرعية.
تُحدد هذه العملية بميزانية صريحة لعدد الاستدعاءات والـ tokens، وتترك وراءها inference trace قابلاً للقراءة.
للبحث داخل مساحة العمل، تستخدم الأداة مكتبة fff المكتوبة بـ Rust، وتبقي الفهرس دافئاً بدلاً من تشغيل عملية بحث جديدة مع كل استعلام.
التثبيت والتوافق
الإصدار v0.40.1 متاح لأنظمة Linux على معماريتي x86-64 وaarch64، وmacOS على x86-64 وarm64، إضافة إلى FreeBSD وNetBSD وOpenBSD على x86-64. يتضمن الإصدار الثنائي SBCL 2.6.6 واعتماديات Lisp والمساعدات الأصلية، مع نسخ Linux المبنية لـ glibc وmusl.
يوصي المشروع باستخدام Nix لتثبيت build كامل ومثبت الإصدارات. ويدعم تسجيل الدخول عبر browser device flow أو API key لمزودين منهم ChatGPT Codex وGrok وNous Research وFireworks AI وAnthropic API وOpenRouter وOpenCode وMistral AI، كما يمكن تسجيل endpoint متوافق مع OpenAI من REPL. النموذج الافتراضي المذكور هو gpt-5.6-sol.
تنبيه أمني مهم
ينفذ Autolith الكود الذي يولده النموذج بصلاحيات المستخدم نفسه. وتوضح الوثائق أن حدود العمليات فيه مصممة للموثوقية، لا للحماية من كود خبيث؛ لذلك لا ينبغي التعامل معه كـ security sandbox، بل كوكيل تطوير يحتاج إلى إشراف بشري.
لماذا يهم؟
للمطورين المهتمين بوكلاء يمكن تدقيق سلوكهم واستعادته، يقدم Autolith نموذجاً مختلفاً: الوكيل وruntime والأدوات في عملية Lisp واحدة، مع فصل واضح بين كود المشروع والمحادثات والتجارب والتعديلات الحية. لكن هذا المستوى من القدرة على التنفيذ والتعديل يجعل الإشراف على ما ينفذه الوكيل ضرورياً، خصوصاً لأنه يعمل بصلاحيات المستخدم.