تصور کنید یک برنامهنویس هوشمند پس از ۴۰ دقیقه کار روی یک پروژه پیچیده، دقیقاً همان دادهای را که برای اتمام کار نیاز دارد، فراموش کند. برای درک بهتر، یک عامل (Agent) را در نظر بگیرید که سه فایل را خوانده، مجموعه تستها را دو بار اجرا کرده، یک ردپای خطا (Stack Trace) را شکار کرده و برنامهای برای رفع مشکل نوشته است. وقتی پنجره متنی (Context Window) — مثل میز کاری که جا برای چند ورق دارد، نه برای کل کتابخانه — پر میشود، روتینهای استاندارد فشردهسازی معمولاً قدیمیترین یا طولانیترین پیامها را ابتدا حذف میکنند. این یعنی ردپای خطا، چون هم طولانی است و هم قدیمی، دور ریخته میشود. در نتیجه، عامل در نوبت بعدی خود، دوباره تستها را اجرا میکند تا چیزی را بازیابی کند که پیشتر در اختیار داشت.
به نقل از گزارش منتشر شده در ۱۸ آگوست ۲۰۲۶، تیم Favur — تیمی از عاملها که نرمافزارها را بر اساس مشخصات مکتوب از طریق برنامهریزی، کدنویسی، بازبینی و تست بهصورت خودکار میسازند — برای حل این مشکل، سیستمی را پیاده کرده است که تصمیم میگیرد عامل چه چیزی را فراموش کند، پیش از آنکه پنجره متنی اصلاً پر شود.
بسیاری از عاملهای هوش مصنوعی با تاریخچه خود به عنوان متنی بدون تمایز برخورد میکنند و برای تصمیمگیری درباره حذف دادهها، تنها به طول متن و تازگی آن تکیه میکنند. این رویکرد اساساً معیوب است؛ زیرا مهمترین اطلاعات — مانند برنامه پروژه یا یک دستورالعمل خاص — اغلب طولانی هستند و در ابتدای جلسه ایجاد شدهاند. تا زمانی که فرآیند فشردهسازی فعال شود، سیستم با چهارصد پیام متنی روبروست که در آنها هیچ تفاوتی بین نتیجه یک ابزار و یک دستور انسانی وجود ندارد. همانطور که در تحلیلهای قبلی ما دربارهی مدیریت حافظه در مدلهای زبانی اشاره کردیم، تکیه بر «تازگی» یا «طول متن» برای پاکسازی حافظه، یک استراتژی شکستخورده است. این چالشها در واقع ریشه در محدودیتهای بنیادین معماری مدلها دارد، موضوعی که در بررسیهای فنی ما دربارهی دسترسی به حافظه بدون خطای عاملها به تفصیل مورد بحث قرار گرفت.
سیستم Favur شبیه به یک بایگانی دیجیتال است که هر برگه را در لحظه نوشتن، با یک مهر اولویت علامتگذاری میکند. به جای اینکه یک نظافتچی سادهترین یا قدیمیترین کاغذها را دور بریزد، سیستم ابتدا برچسبهای «اولویت پایین» را حذف میکند. این تضمین میکند که دستورالعملهای «اولویت بالا» حتی زمانی که گفتگو به هزاران درخواست میرسد، باقی بمانند. این رویکرد برای Favur یک مورد عادی است و نه یک استثنا؛ به طوری که یکی از پروژههای آنها در این ماه، پیش از اتمام، بیش از ۱۰ هزار درخواست مدل ثبت کرده است.
طرح حفظ داده در سه سطح
Favur در لحظه اضافه شدن هر پیام به تاریخچه، یکی از سه کلاس حفظ داده را به آن اختصاص میدهد. این تصمیم در محل فراخوانی (Call Site) گرفته میشود، زیرا تنها این بخش از سیستم میداند چرا یک پیام ثبت شده است:
- فراموششدنی (Forgettable): دادههای کمارزش، مانند لیست دایرکتوریها، که یک بار مصرف هستند و پس از آن بیفایده میشوند.
- مبهم (Fuzzy): دادههای میانی که ممکن است برای درک زمینه مفید باشند اما برای بازیابی وضعیت (State Recovery) حیاتی نیستند.
- سختگیرانه (Strict): دادههای بسیار ارزشمند. این دسته شامل دستورات انسانی تزریق شده به عامل در حال اجرا و گزارشهای پیشرفت است — همان ژورنالی که عامل برای خودش مینویسد و بعداً برای بازیابی وضعیت خود میخواند. این تفکیک دقیق میان دستورات و حافظه، پاسخی به مشکلاتی است که در سیستمهای نظارتی در برابر حافظه مدل برای مدیریت دستورات عاملها مشاهده شده بود.

سازوکار فشردهسازی حافظه
سیستم برای پاکسازی تاریخچه تحت فشار، از هوش مدل استفاده نمیکند؛ بلکه صرفاً طبقهبندی پیامها را میخواند. فرآیند فشردهسازی بر اساس آستانههای مصرف پنجره متنی و در سه مرحله مجزا اجرا میشود. این آستانهها به جای مقادیر ثابت، قابل تنظیم هستند تا با طولهای مختلف پروژه (مثلاً یک بازسازی کد دو ساعته در مقابل یک پرسش و پاسخ کوتاه) سازگار شوند:
- سطح اول (۵٪ مصرف): سیستم مطالب فراموششدنی و مبهم را خلاصه میکند اما هیچچیز را حذف نمیکند. تاریخچه کوتاهتر میشود، اما شکل کلی اتفاقات بهصورت فشرده باقی میماند.
- سطح دوم (۱۰٪ مصرف): دادههای فراموششدنی و مبهم کاملاً حذف میشوند. سپس سیستم شروع به خلاصهسازی محتوای «سختگیرانه» میکند؛ به این معنی که ژورنال و دستورالعملها همچنان حضور دارند اما حجم کمتری اشغال میکنند.
- سطح سوم (۲۵٪ مصرف): هر سه کلاس داده بهطور کامل حذف میشوند تا فضای جدید باز شود.
تیم Favur معمولاً مصرف پنجره را به ۵۰٪ محدود میکند، زیرا تجربه نشان داده که عاملها پس از این نقطه تمایل به شکست در عملکرد دارند.

این مکانیزم تضمین میکند که یک ردپای خطا (Stack Trace) که به عنوان «سختگیرانه» ثبت شده است، مدتها پس از پاک شدن لیست دایرکتوریها (که به عنوان «فراموششدنی» ثبت شده بودند) در دسترس بماند. یک لیست دایرکتوری پس از سطح اول تبدیل به خلاصه و پس از سطح دوم حذف میشود، که برای یک لیست درست است اما برای یک ردپای خطا فاجعهبار است. در اینجا هیچکدام از این نتایج تصمیمِ روتین فشردهسازی نبودند؛ بلکه هر دو در لحظه ثبت (Append) تصمیمگیری شده بودند. این رویکرد در واقع مشابه مکانیزمهای تثبیت خطا است که در لایه نشانی اصلاحات برای جلوگیری از تکرار اشتباهات عاملها به کار میرود.
این تغییر، فرض بنیادی حافظه در عاملها را از یک «مسئلهی خلاصهسازی» به یک «مسئلهی برچسبگذاری» تبدیل میکند. با انتقال تصمیم به محل فراخوانی، Favur نیاز مدل به «حدس زدن» اهمیت اطلاعات را در حالی که مدل خودش با پر شدن پنجره متنی در حال دست و پنجه نرم میکند، حذف میکند. نتیجه، عاملی است که پنجره متنیاش با ترتیبی که یک انسان انتخاب کرده است، خالی میشود.
هزینههای طراحی
انتقال تصمیم به نقطهای که بیشترین اطلاعات در دسترس است، به معنای انتقال آن به بیشترین تعداد نقاط فراخوانی در کد است. در حالی که روتین فشردهسازی یک قطعه کد واحد است که میتوان آن را در یک جا اصلاح کرد، کلاسهای حفظ داده توازن متفاوتی ایجاد میکنند:
- شکستهای خاموش: اگر توسعهدهنده به اشتباه یک پیام حیاتی را «فراموششدنی» برچسب بزند، عامل بدون هیچ هشداری آن را فراموش میکند. این شکست تنها مدتها بعد ظاهر میشود، زمانی که به نظر میرسد عامل چیزی را فراموش کرده است.
- سایتهای فراخوانی بیدقت: این طرح تنها به اندازه بیدقتترین نقطه فراخوانیاش خوب است. هر پیامی که بدون کلاس برسد، دوباره بر اساس طول و تازگی مرتب میشود و مناطقی در تاریخچه ایجاد میکند که مانند سیستم قدیمی و معیوب رفتار میکنند.
توسعهدهندگانی که در حال ساخت عاملهای خودکار طولانیمدت هستند باید ارزیابی کنند که آیا منطق فشردهسازی فعلی آنها بهطور تصادفی «وضعیت» (State) عاملهایشان را پاک میکند یا خیر. شما میتوانید با بررسی بنچمارک عمومی Favur Evals، این دینامیکهای حافظه را بیشتر کاوش کنید.
گام بعدی شما
- اگر در حال ساخت عاملهای خودکار هستید، منطق پاکسازی حافظه خود را بررسی کنید تا مطمئن شوید «وضعیت» (State) عامل را تصادفی حذف نمیکنید.
- برای درک بهتر این دینامیکها، بنچمارک عمومی Favur Evals را مطالعه کنید.
- بررسی کنید آیا میتوانید برچسبهای اولویت را به جای خلاصه سازی در لایه دیتابیس حافظه خود پیاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو