Jiti: برنامهای که با چت کردن رشد میکنه
خلاصهٔ کاملتر
جفری هانتلی تو این پست میگه بحثهای این روزها دربارهی «کارخونهی نرمافزار» و بهترین زبان برنامهنویسی هنوز به گذشته چسبیدن. به گفتهی نویسنده، کارخونهی نرمافزار فقط خودکار کردن کارهای فعلی نیست. هدف اینه که محصول، خودش رو از داخل خودش بسازه و هر کسی تو شرکت، بدون ابزار جانبی، بتونه محصول رو داخل همون محصول توسعه بده.
برای نشون دادن این ایده، نویسنده Jiti رو ساخته: یه kernel کوچیک (یعنی هستهای که فقط ابزار پایه رو فراهم میکنه) برای رشد دادن یه برنامهی Lisp در حال اجرا از طریق گفتگو با LLM. تو یه قابلیت درخواست میکنی، مدل کد Lisp مینویسه و برنامه اون قابلیت رو برای همیشه به دست میاره. میشه از صفر شروع کرد یا یه برنامهی موجود رو با پرامپت گسترش داد. سورسش هم روی GitHub هست.
روش کارش سادهست: یه مدل OpenAI درخواست تو، دستورالعملها، تعریف ابزارها و وضعیت فعلی برنامه رو میگیره. kernel میتونه تابعهای موجود رو ببینه، تعریفشون رو بخونه، سورس جدید پیشنهاد بده یا یه عبارت رو اجرا کنه. وقتی یه تعریف قبول بشه، یه تابع معمولی Lisp میشه و صدا زدنش دیگه درخواست جدیدی به مدل لازم نداره. یعنی مدل فقط برنامه رو گسترش میده و خود قابلیت تو دنیای Lisp زنده میمونه.
دو ابزار اصلی داره: develop_form برای اضافه کردن، بازتعریف یا حذف قابلیت، و execute_form برای صدا زدن چیزهایی که از قبل هستن. هر دو از یه evaluator و سیستم تراکنش مشترک استفاده میکنن. مثلاً اگه قبلاً uppercase-string و reverse-string رو اضافه کرده باشی، میتونی ازش بخوای ترکیبشون رو بهعنوان یه تابع جدید ذخیره کنه:
(defun shout-backwards (text)
(reverse-string (uppercase-string text)))این تابع با آرگومانها و سورسش به فهرست قابلیتها اضافه میشه و درخواستهای بعدی میتونن روش بنا کنن. نویسنده میگه اعتبار اصلی مال خود Lisp هست، چون تعریف، بازرسی، conditions و restarts دهههاست تو این زبان وجود دارن. به نظر نویسنده، با وجود AI دیگه معلوم نیست چرا باید ایجنت کد بنویسه و بعد یه مرحلهی پرهزینهی کامپایل و CI/CD طی بشه.
نکات کلیدی:
- Jiti یه kernel کوچیک برای رشد دادن برنامهی Lisp در حال اجرا با چت کردن با یه مدل OpenAI هست.
- دو ابزار ایجنت: develop_form برای تغییر برنامه و execute_form برای استفاده از قابلیتهای موجود.
- تابعهای تأییدشده Lisp معمولی هستن و اجراشون دیگه به مدل نیاز نداره.
- قابلیتها با هم ترکیب میشن و برنامه کمکم یه واژگان اجرایی جمع میکنه.
- سورس پروژه روی GitHub در دسترسه.




