مهندسی حلقه: بهجای پرامپت زدن، سیستمی بساز که خودش پرامپت بزنه
خلاصهٔ کاملتر
نویسنده مقاله رو با نقلقول از Peter Steinberger و Boris Cherny (مسئول Claude Code تو Anthropic) شروع میکنه که میگن دیگه نباید به agentهای کدنویسی پرامپت بزنی، بلکه باید حلقههایی طراحی کنی که خودشون به agent پرامپت بزنن. به گفته نویسنده، یه «حلقه» یعنی یه هدف بازگشتی: یه purpose تعریف میکنی و AI تکرار میکنه تا کار تموم بشه. نویسنده میگه شاید این آیندهی کار با agentها باشه، ولی هنوز اولشه، خودش هم شکاکه و حتماً باید حواست به هزینهی توکن باشه.
به گفته نویسنده، دو سالی روش کار این بود که یه پرامپت خوب مینوشتی و context کافی میدادی، یه چیزی تایپ میکردی، جوابو میخوندی و دوباره تایپ میکردی؛ agent یه ابزار بود که تو کل مدت دستت بود. حالا یه سیستم کوچیک میسازی که کارو پیدا میکنه، پخشش میکنه، چکش میکنه، مینویسه چی انجام شده و بعد قدم بعدی رو تصمیم میگیره — و میذاری همون سیستم بهجای تو agentها رو هل بده.
نویسنده میگه یه حلقه به پنج چیز نیاز داره بهاضافه یه جا برای بهخاطر سپردن: automationها که سر یه زمانبندی خودشون discovery و triage میکنن؛ worktreeها که دو agent موازی روی فایلهای هم نیفتن؛ skillها که دانش پروژه رو مینویسن تا agent مجبور نباشه حدس بزنه؛ plugin و connectorها که agent رو به ابزارهای واقعیت وصل میکنن؛ و sub-agentها که یکی ایده میده و یکی دیگه چکش میکنه. قطعه ششم هم حافظهست — یه فایل markdown یا برد Linear که بیرون از یه گفتگوی واحد زندگی میکنه و نگه میداره چی تموم شده و چی مونده. به گفته نویسنده، مدل بین اجراها همهچیزو فراموش میکنه، پس حافظه باید روی دیسک باشه نه تو context؛ agent فراموش میکنه، ولی repo نه.
نویسنده میگه نکتهای که غافلگیرش کرده اینه که این دیگه یه بحث ابزار نیست. یه سال پیش برای ساختن یه حلقه باید یه عالمه bash مینوشتی و تا ابد نگهداریش میکردی، ولی حالا این قطعهها مستقیم تو خود محصولات هستن. لیست Steinberger تقریباً دقیق روی اپ Codex و بعد تقریباً همون روی Claude Code میافته. یه primitive مهم تو خود session هم هست: دستور /loop سر یه فاصلهی زمانی دوباره اجرا میشه، و /goal ادامه میده تا یه شرط که خودت نوشتی واقعاً درست بشه و بعد هر turn یه مدل کوچیک جدا چک میکنه که آیا کار تموم شده یا نه — یعنی agentی که کدو نوشته، خودش نمرهش رو نمیده. Codex هم همین /goal رو داره.
به گفته نویسنده، مفیدترین کار ساختاری تو یه حلقه اینه که اونی که مینویسه رو از اونی که چک میکنه جدا کنی، چون مدلی که کدو نوشته خیلی مهربونتره که خودش رو نمره بده. یه agent دوم با دستورالعمل متفاوت و گاهی مدل متفاوت، چیزهایی که اولی خودشو قانع کرده رو میگیره. الگوی رایج هم اینه: یکی explore میکنه، یکی implement و یکی در برابر spec verify میکنه. sub-agentها توکن بیشتری میسوزونن، پس باید جایی خرجشون کنی که نظر دوم واقعاً بهصرفه باشه.
نویسنده تأکید میکنه که حلقه کارو عوض میکنه ولی تو رو از معادله حذف نمیکنه و سه مشکل با بهتر شدن حلقه تیزتر میشن: verification هنوز با توئه، چون حلقهای که بدون نظارت اجرا میشه یعنی حلقهای که بدون نظارت اشتباه میکنه؛ فهم تو اگه بذاری میپوسه، چون هرچی حلقه سریعتر کدی که ننوشتی رو میفرسته، فاصلهی بین چیزی که هست و چیزی که میفهمی بیشتر میشه؛ و وضعیت راحتطلبانه خطرناکترینه، چون وقتی حلقه خودش کار میکنه وسوسهانگیزه که دیگه نظر نداشته باشی. به گفته نویسنده، دو نفر میتونن دقیقاً همون حلقه رو بسازن و نتیجههای کاملاً متضاد بگیرن؛ یکی باهاش روی کاری که عمیق میفهمه سریعتر میشه، اون یکی باهاش از فهمیدن کار فرار میکنه. حلقه فرقشو نمیدونه، تو میدونی. حرف آخرش اینه: حلقه رو بساز، ولی مثل کسی بسازش که میخواد مهندس بمونه، نه فقط کسی که دکمه رو فشار میده.
نکات کلیدی:
- مهندسی حلقه یعنی بهجای پرامپتزدن دستی، سیستمی بسازی که خودش به agentها پرامپت بزنه و کارو تکرار کنه
- حلقه روی پنج قطعه سواره: automationها، worktreeها، skillها، plugin/connectorها و sub-agentها، بهاضافه یه حافظه روی دیسک
- این پنج قطعه حالا هم تو Claude Code و هم تو Codex موجودن؛ دیگه لازم نیست خودت bash بنویسی
- دستور /goal تا برقراری یه شرط مشخص ادامه میده و یه مدل جدا تمومشدن کارو چک میکنه؛ جداکردن سازنده از بررسیکننده کلیدیه
- نویسنده هشدار میده verification، فهم کد و داشتن نظر همچنان به عهده خودته، وگرنه کیفیت محصول افت میکنه




