وقتی یه ایجنت ساده تبدیل به یه موتور کانتکست میشه
خلاصهٔ کاملتر
نویسنده این پست با لحن شوخ تعریف میکنه که یه ایجنت داشته که تقریباً کار میکرده: میتونسته به سؤالها جواب بده و چند تا ابزار صدا بزنه. فقط فکر میکرده دو چیز کوچیک کم داره: یه کم حافظه و دسترسی به دادهٔ واقعی. ولی به گفتهٔ خودش، این دو تا «چیز کوچیک» اصلاً کوچیک نبودن و کل ماجرا رو پیچیده کردن.
اولین درس این بوده که حافظه یه چیز واحد نیست. وقتی میگی ایجنت باید «چیزها رو یادش بمونه»، باید جواب بدی دقیقاً چه چیزهایی؟ مکالمهٔ فعلی، ترجیحات کاربر (مثلاً اینکه نمونهکد TypeScript رو به Python ترجیح میده)، کارهای نیمهتموم دیروز، یا تاریخچهٔ تیکتهای پشتیبانی؟ هر کدوم قانون خودش رو داره: بعضیها باید منقضی بشن، بعضیها قابلجستجو باشن، بعضیها خصوصی، و وقتی کاربر چیزی رو حذف میکنه ایجنت هم باید فراموشش کنه.
قسمت دوم، یعنی وصلکردن دادهٔ واقعی، هم به گفتهٔ نویسنده یه پروژهٔ زیرساختی کامله. داده انواع مختلف داره: ساختیافته مثل کاربرها و فاکتورها، بدونساختار مثل PDF و ایمیل و یادداشت جلسه، و نیمهساختیافته. ایدهٔ اینکه «بذار ایجنت مستقیم از Postgres کوئری بزنه» کلی سؤال جدید باز میکنه: کدوم جدولها، کدوم ردیفها برای این کاربر مجازه، اگه schema عوض شد چی، اگه ایجنت یه کوئری خیلی گرون اجرا کرد چی، و اگه داده کهنه باشه چی.
نویسنده این تنشها رو خلاصه میکنه: داده کهنه یعنی جواب غلط، دادهٔ زیادی یعنی گیجشدن و هزینهٔ بالا، دادهٔ کم یعنی توهم، و دادهٔ غیرمجاز یعنی یه حادثهٔ امنیتی. وقتی هر تیکه از کانتکست تو یه سیستم جداست، آدم مجبوره pipeline همگامسازی، ایندکس، لایهٔ دسترسی و جستجو بسازه. روی اینا هم بحث کش اضافه میشه، چون سؤالها و بازیابیها و فراخوانیهای LLM مدام تکرار میشن.
نتیجهگیری نویسنده اینه که اسم این هیولا context engine هست: لایهای که دادهٔ درست رو با شکل درست و در زمان درست به ایجنت میرسونه و state کاربر، آخرین داده، داکیومنت مرتبط، نتیجههای کششده و حافظه رو سر زمان اجرا کنار هم میذاره.
نویسنده در پایان میگه دیگه نمیخواسته خودش این لایه رو بسازه و به Redis رسیده، چون به نظرش به بهترین شکل «خستهکننده» (boring) و قابلاتکاست و نزدیک به runtime میشینه. محصول معرفیشده Redis Iris هست که نویسنده اون رو یه context engine یکپارچه برای ایجنتها توصیف میکنه. توجه کن که این پست حالت تبلیغی/اسپانسری داره و در عمل داره Redis Iris رو معرفی میکنه.
نکات کلیدی:
- پشت خواستهٔ سادهٔ «به ایجنت حافظه بده»، یه مسئلهٔ طراحی بزرگ به اسم context engine قایمه
- حافظه یه چیز واحد نیست؛ دستههای مختلف با قانونهای متفاوت برای انقضا، جستجو، حریم خصوصی و حذف داره
- بازیابی دادهٔ واقعی خودش یه پروژهٔ زیرساختیه: sync، دسترسی، schema، تازگی داده و کش
- context engine یعنی رسوندن دادهٔ درست با شکل درست در زمان درست به ایجنت سر زمان اجرا
- این پست حالت اسپانسری داره و Redis Iris رو بهعنوان راهحل یکپارچهٔ آماده معرفی میکنه




