تیپ #۳۸

حلقهٔ خواندن، ویرایش و تست در ایجنت‌های کدنویس

یک ایجنت کدنویس به‌ندرت کد را در یک قدم درست می‌نویسد. کارش یک حلقه است: فایل‌های مرتبط را می‌خواند، یک ویرایش کوچک انجام می‌دهد، تست را اجرا می‌کند و خروجی خطا را به تلاش بعدی برمی‌گرداند. نکتهٔ اصلی این است که هر ویرایش را آن‌قدر کوچک نگه دارید که یک تست قرمز دقیقاً بگوید چه چیزی شکسته است 🔁.

توضیح کامل‌تر

حلقهٔ خواندن، ویرایش و تست ستون فقرات هر ایجنت کدنویس است. در هر دور از این حلقه، مدل با ابزارهایی مثل جست‌وجو در مخزن، خواندن فایل، اعمال یک پچ کوچک و اجرای تست یا لینتر کار می‌کند و بعد از هر عمل، خروجی واقعی ابزار را می‌بیند. همین بازخورد بیرونی است که حلقه را می‌بندد: بدون اجرای واقعی تست، مدل به‌راحتی با اطمینان کامل کدی می‌نویسد که هرگز اجرا نشده است. مزیت اصلی این معماری در مقایسه با تولید یک‌بارهٔ کد این است که خطاها به‌جای پنهان ماندن، به ورودی دور بعدی تبدیل می‌شوند. برای مثال، فرض کنید تابعی در محاسبهٔ مالیات اشتباه دارد؛ ایجنت اول تابع و تست مربوطش را پیدا می‌کند، بعد یک شرط را اصلاح می‌کند، تست را اجرا می‌کند و اگر AssertionError دید، از همان پیام برای اصلاح بعدی استفاده می‌کند. در عمل هرچه ویرایش‌ها کوچک‌تر و دستور تست دقیق‌تر باشد، این حلقه سریع‌تر همگرا می‌شود. همچنین باید تعداد دورها، دسترسی به فایل‌ها و اجرای دستورها را در یک محیط ایزوله محدود کنید تا ایجنت خارج از محدودهٔ پروژه تغییر ایجاد نکند.

مفاهیم پایه
← بازگشت به همهٔ نکته‌های روز