مهندسی حلقه: حلقه‌ها را طراحی کنید، فقط پرامپت ننویسید

از پرامپت‌نویسی دستی برای عوامل کدنویسی (coding agents) دست بردارید. طراحی حلقه‌هایی را شروع کنید که به جای شما برای آن‌ها پرامپت می‌نویسند.

این ایده از پیتر استاینبرگر (Peter Steinberger) بحث‌های مربوط به توسعه‌دهندگان هوش مصنوعی را تغییر داد. او استدلال می‌کند که برنامه‌نویسان باید از نقش راننده به نقش طراح سیستم تغییر وضعیت دهند.

مهندسی حلقه چیست؟

این یعنی گذار از تایپ کردن تک‌تک پرامپت‌ها به نوشتن برنامه‌هایی که عوامل (agents) را مدیریت می‌کنند. به جای اینکه شما کار را انجام دهید، یک حلقه منطق کار را مدیریت می‌کند.

حلقه این مراحل را انجام می‌دهد:

  • یک وظیفه را انتخاب می‌کند.
  • وظیفه را به عامل می‌فرستد.
  • نتیجه را بررسی می‌کند.
  • تصمیم می‌گیرد که ادامه دهد یا متوقف شود.

حلقه زمانی که شما خواب هستید کار می‌کند.

چرخه ۴ مرحله‌ای هر حلقه:

  1. اقدام (Act): عامل کد می‌نویسد یا دستوری را اجرا می‌کند.
  2. مشاهده (Observe): سیستم خروجی، لاگ‌های خطا یا نتایج تست را می‌خواند.
  3. استدلال (Reason): سیستم ارزیابی می‌کند که آیا هدف محقق شده است یا خیر.
  4. تکرار (Repeat): اگر شکست خورد، عامل را برای تلاش مجدد بازمی‌گرداند.

پرامپت‌نویسی دستی در مقابل مهندسی حلقه:

  • دستی: شما موتور هستید. باید پشت صفحه بنشینید. باید هر تغییر (diff) را بخوانید.
  • حلقه: حلقه موتور است. به صورت خودکار اجرا می‌شود. ۲۴/۷ کار می‌کند.

ستون‌های اصلی موفقیت:

یک حلقه خوب به سه چیز نیاز دارد:

  • تاییدکننده (Verifier): ابزاری برای بررسی اینکه آیا کار واقعاً درست انجام شده است یا خیر. اجازه ندهید عامل کار خودش را بررسی کند. از تست‌های واقعی و لینترها (linters) استفاده کنید.
  • مدیریت وضعیت (State Management): پیگیری آنچه انجام شده و آنچه در انتظار است.
  • کنترل هزینه (Cost Control): تعیین محدودیت برای توکن‌ها و تعداد دفعات تلاش مجدد.

ریسک‌هایی که باید مراقب آن‌ها بود:

  • تکمیل کاذب (False Completion): عامل می‌گوید کار تمام شده، اما باگ‌ها همچنان وجود دارند. این مشکل را با تاییدکننده‌های قوی حل کنید.
  • سرعت بیش از حد (Speed Overload): حلقه در حالی که شما خواب هستید ۱۰۰۰ خط کد می‌نویسد. ممکن است تمام روز را فقط صرف درک آن کنید.
  • اتکای بیش از حد (Over-reliance): چون ده بار پشت سر هم خوب به نظر می‌رسد، بررسی کار را متوقف می‌کنید. همیشه برای کارهای حساس، یک انسان را در حلقه (human in the loop) نگه دارید.

چگونه شروع کنیم:

  • کوچک شروع کنید. یک حلقه ساده بسازید که یک پرامپت را تا زمانی که یک تست پاس شود، تکرار کند.
  • روی تاییدکننده‌ها سرمایه‌گذاری کنید. از مجموعه‌ تست‌های موجود خود به عنوان چشم‌های حلقه استفاده کنید.
  • آسیب را محدود کنید. از شاخه‌های گیت (git branches) استفاده کنید و حداکثر محدودیت تلاش مجدد را تعیین کنید.
  • روی کارهای کم‌خطر تمرین کنید. قبل از رفتن به سراغ کدهای عملیاتی (production code)، از حلقه‌ها برای مستندسازی یا بازنویسی کد (refactoring) استفاده کنید.

عصر پرامپت‌نویسی دستی رو به پایان است. عصر مهندسی حلقه فرا رسیده است.

منبع: https://dev.to/sarantoon/loop-engineering-emuuekaar-prompt-agent-dwymuueaimphiiktaip-aelw-programmer-tngkaebb-loop-aethn-1ikh

انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi