عامل کدنویسی من جلسات را به یاد میآورد، نه کار انجام شده را
یک عامل کدنویسی میتواند یک رشته گفتگو را زنده نگه دارد اما همچنان فراموشکار به نظر برسد.
من هنگام ساخت CliGate با این مشکل مواجه شدم. تداوم نشست (session continuity) را اصلاح کردم، اما انجام کارهای تکراری همچنان بسیار کند بود.
عامل گفتگو را به یاد میآورد، اما کار انجام شده را نه.
تداوم نشست یک مشکل را حل میکند. این کار به دستورات پیگیرانه کمک میکند، مانند:
- ادامه بده
- همین کار را برای این فایل انجام بده
- دوباره آن را امتحان کن
این مفید است، اما وقتی چند روز بعد یک گردش کار (workflow) را تکرار میکنید، کمکی نمیکند.
یک عامل باید به یاد بیاورد که چه چیزی باعث موفقیت اجرای قبلی شد. او باید بداند:
- کدام دکمه کار میکند
- کدام مرحله به بنبست ختم میشود
- کدام فیلد نیاز به مدیریت خاص دارد
- کدام قانون را همیشه میخواهید اعمال شود
اولین اجرا پرهزینهترین مرحله است. این زمانی است که عامل به جستجو میپردازد و جزئیاتی را پیدا میکند که در پرامپت شما نیست.
قبل از اصلاح من، این جزئیات فقط در لاگهای خام وجود داشتند. عامل تاریخچه داشت، اما حافظه قابل استفاده مجدد نداشت. او مجبور بود هر بار همه چیز را دوباره کشف کند.
این هوش نیست؛ این یعنی پرداخت دوبارهی همان هزینه عیبیابی.
رویکرد اشتباه این است که تاریخچه بیشتری ذخیره کنید و امیدوار باشید مدل از آن استفاده کند. این کار باعث ایجاد نویز میشود.
در عوض، من یک لایه حافظه کوچکتر و قابل استفاده مجدد ساختم. تمرکز من بر موارد زیر بود:
- رویهها (procedures)
- واقعیتها (facts)
- دستورالعملها (directives)
- مراجع (references)
دیگر سعی نکردم هر آنچه اتفاق میافتد را ذخیره کنم. شروع کردم به ذخیره کردن آنچه باید به یاد آورده شود.
اکنون، دستیار از یک لایه حافظه مبتنی بر فایل برای یادآوری موارد زیر استفاده میکند:
- یک رویه: بهترین مراحل و بنبستهای شناختهشده
- یک واقعیت: یک URL یا یک تنظیم خاص
- یک دستورالعمل: اینکه میخواهید کارها چگونه انجام شوند
- یک مرجع: اینکه مستندات کجا قرار دارند
آدمها اینگونه کار میکنند.
من بازپخش کامل گذشته را نمیخواهم، زیرا رابطهای کاربری تغییر میکنند و دکمهها جابهجا میشوند. من میخواهم عامل:
- بهترین رویه شناختهشده را به یاد بیاورد
- ابتدا آن را امتحان کند
- هر مرحله را تأیید کند
- اگر شکست خورد، به حالت جستجو بازگردد
- پس از موفقیت، حافظه را بهروزرسانی کند
این کار اتوماسیون شکننده را به یک حافظه عملیاتی مفید تبدیل میکند.
من همچنین قوانین ثابت را از تاریخچه گفتگو جدا کردم. قوانینی مانند «همیشه به چینی پاسخ بده» یا «به دادههای عملیاتی دست نزن» بافت (context) نشست نیستند؛ آنها قوانین عملیاتی هستند.
وقتی اینها را جدا کردم، دستیار قابل پیشبینی شد. دیگر لازم نیست در میانه یک کار، ترجیحات شما را دوباره کشف کند.
کارهای تکراری اکنون کوتاهتر شدهاند. دستیار سریعتر عمل میکند زیرا هر بار با یک مدل خالی شروع نمیکند.
یک رشته گفتگوی مداوم را با سیستمی که یاد میگیرد اشتباه نگیرید.
یک نشست، گفتگو را زنده نگه میدارد. حافظه، درسهای مفید را زنده نگه میدارد.
اگر عاملهای کدنویسی میسازید، از خود بپرسید: آیا سیستم شما رشته گفتگو را به یاد میآورد، یا رویه موفقیتآمیز را؟
Source: https://dev.to/codekingai/my-coding-agent-remembered-sessions-not-work-that-was-the-bug-2fig
