پنجرهی context چیست
در فصل ۱.۱ گفتیم مدل محتملترین ادامه را پیشبینی میکند. سؤال بعدی این است: ادامهی چه چیزی؟ جوابش context است — که کانتکست خوانده میشود و در این جزوه به همان شکل لاتین مینویسیمش، چون همهجا اینطور میبینیاش.
context یعنی همهی متنی که مدل در این لحظه میتواند به آن نگاه کند — شامل جوابی که دارد مینویسد. مستندات رسمی اسمش را «حافظهی کاری» میگذارند و صریح میگویند این با آن حجم عظیم دادهای که رویش آموزش دیده فرق دارد.
تشبیه دقیقش این است: دادهی آموزش مثل هر چیزی است که یک نفر در تمام عمرش خوانده. context مثل کاغذهایی است که همین الان جلویش روی میز باز است. اگر چیزی روی میز نباشد، در آن لحظه برایش وجود ندارد.
پنجرهی context اندازهی همان میز است، و با token شمرده میشود (فصل ۱.۱).
واقعاً چه چیزی وارد context میشود
اینجا معمولاً آدمها غافلگیر میشوند. context فقط آخرین پیام تو نیست. همهی اینها داخلشاند و همه جا میگیرند:
- دستورالعملهای اولیهای که به مدل داده شده.
- کلِ گفتوگو تا اینجا — هر پیام تو و هر جواب او.
- محتوای هر فایلی که خوانده شده.
- نتیجهی هر ابزاری که اجرا شده (فصل ۱.۲).
- تعریف خودِ ابزارها — اینکه چه ابزارهایی هست و هرکدام چه میکند.
- و جوابی که همین الان دارد تولید میشود.
یعنی هر دور از حلقه، context بزرگتر میشود. یک فایل بلند که در قدم دوم خوانده شد، تا آخر session آنجا میماند و جا میگیرد.
و همین توضیح میدهد که چرا یک session طولانی کمکم کند و گران میشود: هر درخواست تازه، تمام آن انباشته را دوباره با خودش حمل میکند.
افت context و compaction
حالا مهمترین بخش این فصل، و جوابِ آن گیری که این ماژول برای بازکردنش آمده: چرا وسط کار کیفیت افت میکند؟
تصور رایج این است که تا وقتی پنجره پر نشده، همهچیز مرتب است و بعد ناگهان خطا میدهد. این غلط است. مستندات رسمی صریح میگویند: با بزرگشدنِ تعداد token، دقت و بهیادآوری افت میکند — پدیدهای که اسمش را context rot گذاشتهاند.
یعنی context بیشتر خودبهخود بهتر نیست. همان منبع میگوید انتخابِ اینکه چه چیزی داخل context باشد، بهاندازهی اینکه چقدر جا داری مهم است.
نشانههای عملیاش که خودت میبینی:
- چیزی را که اول session گفتی فراموش میکند.
- جوابها کلیتر و بیربطتر میشوند.
- دستوری را که یک بار دادهای دوباره باید تکرار کنی.
- کاری را که قبلاً درست انجام داده بود، این بار خراب میکند.
یک راهحل خودکار هم هست به اسم compaction: وقتی گفتوگو به سقف نزدیک میشود، قسمتهای قدیمیترش خلاصه میشوند تا جا باز شود. کمک میکند، ولی خلاصه یعنی جزئیات از دست میرود — پس درمانِ کامل نیست.
و اگر ورودی از خودِ پنجره بزرگتر باشد، اصلاً کار نمیکند و خطا میگیری. آن حالت واضح است؛ حالتِ خطرناک همان افتِ تدریجیِ بیصداست.
token یعنی پول
یک نکتهی مستقیم: هر چیزی که وارد context میشود، هزینه دارد — و در هر دور دوباره حساب میشود، چون هر بار کل انباشته دوباره فرستاده میشود.
پس یک فایل بلند که بیدلیل دادهای، فقط یک بار هزینه ندارد؛ تا آخر آن session در هر رفتوبرگشت با تو میآید.
بهخاطر بسپار context بزرگتر یعنی هم گرانتر، هم کندتر، هم بیدقتتر. این سه با هم بدتر میشوند، نه جدا. برای همین «برای اطمینان همهچیز را میدهم» هر سه را خراب میکند.
حسابوکتاب دقیق هزینه و راههای کمکردنش در درس ۷.۷.
بهداشت session: کِی از نو شروع کن
راهحلِ عملیِ همهی اینها ساده است و اسمش را میگذاریم بهداشت session.
کِی session تازه باز کن:
- وقتی موضوع عوض شد. کار قبلی هرچه بود، الان فقط دارد جا میگیرد و حواس را پرت میکند.
- وقتی نشانههای افت را دیدی — همان چهار موردِ بالا.
- وقتی یک فایل خیلی بلند خوانده شده و دیگر لازمش نداری.
- وقتی مدتی است سرگردان شده و چند بار اصلاحش کردهای بینتیجه.
کِی همان session را ادامه بده: وقتی کار پیوسته است و قدمهای قبلی واقعاً لازماند تا قدم بعدی معنا داشته باشد.
و یک نگرانی که پیش میآید: «اگر session تازه باز کنم، هرچه گفتم از بین میرود؟» بله. و راهحلش این نیست که session را بینهایت طولانی نگه داری — راهحلش این است که چیزهای مهم را در یک فایل نگه داری، که دقیقاً موضوع فصل بعدی است.
تمرین (فکری)
یک کار مشخص از بکلاگت بردار. تصمیم بگیر چه چیزی را به ایجنت بدهی و چه چیزی را ندهی — و برای هرکدام دلیل بنویس.
دو ستون بساز: «میدهم چون…» و «نمیدهم چون…». برای هر چیزی که در ستون اول گذاشتی، از خودت بپرس: اگر این را ندهم، جواب واقعاً بدتر میشود؟ اگر جوابت روشن نیست، احتمالاً جایش ستون دوم است.
پاسخنامه — یک نمونهی خوب را ببین
کار: «از فایل فروش ماهانه یک خلاصه بگیرم.»
میدهم: خودِ فایل فروش همان ماه (بدون آن کاری نمیشود کرد) · توضیح اینکه هر ستون یعنی چه (اسم ستونها گویا نیست) · نمونهی خلاصهی ماه قبل (تا قالب خروجی را بداند).
نمیدهم: فایلهای یازده ماه دیگر (فقط این ماه را میخواهم) · کل تاریخچهی ایمیلهای مربوطه (ربطی به محاسبه ندارد) · فایل مشتریان با شمارهتماسها (لازم نیست، و دادهی شخصی است — ماژول ۵).
منتقلشده: «اول گفتم فایل ماه قبل را هم میدهم برای مقایسه. بعد پرسیدم اگر ندهم جواب بدتر میشود؟ نه — من فقط خلاصهی این ماه را میخواهم. بردمش به ستون دوم.»
چرا این جواب خوب است: مورد آخر نشان میدهد سؤال واقعاً پرسیده شده. و یکی از دلایلِ ندادن، مربوط به دادهی حساس است نه فقط جا — که عادت درستی است.
برای عمق بیشتر
- Context windows — مستندات رسمی (انگلیسی). خلاصهی فارسی: منبعِ همهی ادعاهای این فصل. context را «حافظهی کاری» تعریف میکند و از دادهی آموزش جدایش میکند · فهرست میکند که همهچیز در context حساب میشود، از دستورها و گفتوگو تا تعریف ابزارها و خودِ جواب · و صریح میگوید با بزرگشدن تعداد token دقت و بهیادآوری افت میکند (context rot) و «context بیشتر خودبهخود بهتر نیست». compaction و رفتار در حالت سرریز هم همانجا توضیح داده شده.