ریفکتور Hermes با ۱۳۹۳ ایجنت
خلاصهٔ کاملتر
Teknium از Nous Research میگه مدتها پاکسازی مخزن Hermes رو عقب میانداختن، چون یعنی کندن مهندسها از کار روی فیچرها و رفع باگ. تا سپتامبر مخزن بیش از یک میلیون خط پایتونِ غیرتستی داشت و فایل gateway/run.py بهتنهایی ۳۴٬۸۴۷ خط بود. دوم سپتامبر به ایجنت همیشگیش گفت کل کار رو خودش تموم کنه: فایلهای غول رو بشکنه، هِلپرهای تکراری رو یکی کنه و آخرش یه PR تحویل بده.
چیزی که این کار رو ممکن کرد، مهارتی به اسم hermes-agent-dev بود. به گفتهٔ نویسنده، تو کار روزمره هر وقت روشی جا میافتاد یا اشتباهی تصحیح میشد، ایجنت خودش درسِ قابلاستفاده رو ذخیره میکرد. skillها فایلهای Markdown خوندنیان که ایجنت برای کارهای بعدی لودشون میکنه. مثلاً یکی از دستورهاش اینه که وقتی یه چک فیل شد، همون تست رو روی origin/main تو محیط تمیز اجرا کن تا بفهمی مشکل از تغییر خودت بوده یا از قبل وجود داشته.
ارکستراتور کدبیس رو اندازه گرفت، به ۳۶ گروه بدون همپوشانی تقسیم کرد و برای هر کارگر بریف نوشت. کارگرها روی git worktree کار میکردن، یعنی چکاوتهای جدا که فایلهای همدیگه رو خراب نکنن، و بعضیهاشون بخشی از کارشون رو باز به زیرایجنت سپردن تا درخت سه سطح پایین رفت. برای اینکه چیزی نشکنه رابطها با کد اصلی مقایسه میشد: JSON schema هر ابزار باید عین قبل میموند و خروجی --help دستورهای CLI بایتبهبایت قابل مقایسه بود.
حدود پنجاه دقیقه بعد از شروع، توکن احراز هویت ارائهدهنده منقضی شد و کل اجرا از کار افتاد؛ ولی چون کارگرها بعد از هر قدمِ تأییدشده کامیت کرده بودن، با یه سشن جدا برای تشخیص خطا و یه هندآف، کار از همونجا ادامه پیدا کرد. نتیجهٔ نهایی: پایتون غیرتستی از ۱٬۰۶۳٬۸۲۶ خط به ۶۹۸٬۳۶۳ خط رسید، فایلهای بالای ۵۰۰۰ خط از ۳۷ به ۶ تا، توابع بالای ۳۰۰ خط از ۱۹۲ به ۲۲ تا، و gateway/run.py از ۳۴٬۸۴۷ خط به ۵٬۵۱۲ خط.
برای اینکه ببینن کد برای خودِ ایجنت هم بهتر شده یا نه، جستوجوی ۴۰۰۰ سمبل رو روی هر دو نسخه شبیهسازی کردن و میانگین توکنِ هر lookup از ۲٬۲۱۸ به ۹۹۳ افتاد. ولی نویسنده هزینهها رو هم میگه: بازبینهای جامعه چند رگرسیون واقعی پیدا کردن که تستها نگرفته بودن، مثل حذف نامهای عمومیای که فقط پلاگینهای بیرونی صداشون میزدن، و یه بازنویسی خودکار suppress() که رفتار مدیریت خطا رو تو حدود ۶۵ نقطه عوض کرد. شکستن فایلها هم تعداد ماژولها رو بالا برد و شش فایل هنوز بالای ۵۰۰۰ خط موندن.
نکات کلیدی:
- اجرای اصلی حدود نوزده ساعت طول کشید و ۱٬۳۹۳ زیرایجنت راه افتاد که تا ۲۱۸ تاشون همزمان کار میکردن.
- کد پایتونِ غیرتستی ۳۴.۴ درصد کم شد: از ۱٬۰۶۳٬۸۲۶ خط به ۶۹۸٬۳۶۳ خط.
- هزینهٔ مدل حدود ۱۹٬۳۰۰ دلار برای اجرای اصلی و حدود ۲۵ هزار دلار با سشنهای بعدی بود؛ برآورد انجام دستی ۱۵۰ هزار تا ۱.۸ میلیون دلار.
- میانگین توکن هر lookup از ۲٬۲۱۸ به ۹۹۳ رسید و lookupهایی که پنجرهٔ دوم لازم داشتن از ۶۲۸ به ۱۸۴ افتاد.
- بازبینی انسانی دو دسته رگرسیون پیدا کرد: حذف نامهای عمومیِ بدون فراخوان داخلی، و تغییر رفتار suppress() در حدود ۶۵ نقطه.




