حلقه بیرونی عامل: ساخت سیستمهای هوش مصنوعی در سال ۲۰۲۶
مهندسی نرمافزار در حال تغییر است.
بهرهورترین مهندسان دیگر مدلها را به صورت دستی پرامپت نمیکنند. آنها سیستمهایی طراحی میکنند که به جای آنها مدلها را پرامپت کنند. آنها چارچوبهای کنترل (harnesses) میسازند و حلقهها را مینویسند.
برای ساخت هوش مصنوعی در سطح تولید (production)، باید تفاوت بین دو حلقه را درک کنید:
حلقه داخلی
این حلقه درون زمینه (context) مدل قرار دارد. مدل زبانی بزرگ (LLM) ابزاری را فراخوانی میکند، نتیجه را میگیرد و تا زمانی که فکر کند کار تمام شده، آن را تکرار میکند. این حلقه قدرتمند است اما توسط پنجرههای زمینه (context windows) و انحراف توجه (attention drift) محدود شده است.
حلقه بیرونی
این همان چارچوب کنترل (harness) است. این حلقه خارج از زمینه مدل قرار دارد. این کدی است که شما برای پوشش دادن (wrap) LLM مینویسید. این حلقه تصمیم میگیرد که آیا کار خوب انجام شده، آیا نیاز به تلاش مجدد هست، یا اینکه یک انسان باید مداخله کند.
یک حلقه بیرونی در سطح تولید به این شش مؤلفه نیاز دارد:
- صفهای وظیفه (Task Queues): از Redis یا SQS برای مدیریت کارها استفاده کنید. این کار تضمین میکند که وظایف در صورت کرش کردن سیستم حفظ شوند و امکان محدودسازی نرخ (rate limiting) را فراهم میکند.
- سازندگان زمینه (Context Builders): اینها پرامپت سیستم و محدودیتها را آماده میکنند. زمینه نامناسب منجر به تکرارهای (iterations) نامناسب میشود.
- مدیریت نشست (Session Management): این بخش تاریخچه گفتگو را دنبال میکند تا عامل (agent) جای خود را گم نکند.
- سیگنالهای تکمیل (Completion Signals): شما به راهی نیاز دارید تا بدانید چه زمانی باید متوقف شوید. از تستهای مکانیکی، تجزیه JSON یا روش LLM-as-judge استفاده کنید.
- کنترلکنندههای بودجه (Budget Enforcers): محدودیتهای سختگیرانهای برای تعداد تکرارها و توکنها تعیین کنید تا از حلقههای بینهایت که باعث هدر رفتن پول میشوند، جلوگیری شود.
- ثبتکنندهها (Committers): این مرزی است که خروجی نهایی را در یک فایل یا یک pull request مینویسد.
برای وظایفی که تستها نمیتوانند تشخیص دهند، از LLM-as-judge استفاده کنید. از یک مدل سریع و ارزان برای ارزیابی خروجی مدل گرانقیمت و استدلالی خود استفاده کنید. این یک تخصیص بهینه منابع محاسباتی است.
مراقب تلهی بدهی معماری (architecture debt) باشید.
مدلهای زبانی بزرگ اغلب سعی میکنند خطاها را با افزودن کدهای دفاعی مانند بلوکهای try/except اصلاح کنند. اگر یک حلقه بارها اجرا شود، میتواند کد شما را با جایگزینهای (fallbacks) نامنظم پر کند. در عوض، به عامل خود دستور دهید که علت اصلی (root cause) را اصلاح کند و ثباتهای سیستم (system invariants) را حفظ نماید.
هدف، خودمختاری حداکثری نیست. هدف، ساخت حلقههایی است که برای انسانها قابل نگهداری و قابل درک باقی بمانند.
حلقههای خود را آگاهانه بسازید.
Optional learning community: https://t.me/GyaanSetuAi
