Knaph

پنجره‌ی زمینه11 از 375 دقیقه مطالعه

هر آنچه مدل می‌بیند

عاملِ لیلا چند فایل خوانده، چند فرمان اجرا کرده و یک ساعت با او حرف زده است. لیلا درباره‌ی چیزی می‌پرسد که در همان اولِ کار گفته بود، و عامل طوری جواب می‌دهد که انگار هرگز آن را نشنیده. هیچ چیزی خراب نیست. برای فهمیدنِ دلیلش باید بدانید مدل دقیقاً چه چیزهایی را می‌بیند و برای چه مقدار از آن جا هست.

زمینه

در درس قبل دیدید که هر درخواست همه‌ی چیزهای لازم برای مدل را با خود دارد، چون مدل هیچ چیز نگه نمی‌دارد. به همه‌ی آنچه در یک درخواست هست زمینه (context) می‌گویند. زمینه‌ی یک عامل خیلی بیشتر از پیام‌های شماست:

  • دستورهای برنامه درباره‌ی اینکه چطور رفتار کند (درس «پیام اولِ پنهان» درباره‌ی همین‌هاست)؛
  • شرح ابزارهایی که می‌تواند درخواست کند؛
  • یادداشت‌ها و قاعده‌هایی که شما یا تیمتان برایش نوشته‌اید و در آغاز بارگذاری می‌شوند؛
  • گفت‌وگو تا آن لحظه، هم حرف‌های شما و هم حرف‌های عامل؛
  • هر چه خوانده یا اجرا کرده: محتوای فایل‌ها، خروجیِ فرمان‌ها، صفحه‌های وب.

همه‌ی این‌ها متن‌اند، پس همه توکن‌اند. مدل در هر درخواست همه‌شان را می‌خواند و هیچ چیزِ دیگری را نه. اگر واقعیتی جایی در زمینه نباشد، مدل فقط می‌تواند از آنچه در آموزش یاد گرفته استفاده کند، و آن آموزش هیچ چیز درباره‌ی فایل‌های شما، شرکتتان یا گفت‌وگوی امروز صبح نمی‌داند.

پنجره


لیلا یعنی زمینه می‌تواند همین‌طور بزرگ شود؟ هر فایلی که می‌خواند، هر پیامی؟

امید خودت چه فکر می‌کنی؟ دلیلی هست که نتواند؟

لیلا خب، هزینه‌اش بیشتر می‌شود، این را دیدیم. ولی تو گفتی «می‌تواند». سقفِ مشخصی دارد؟

امید دارد. هر مدل فقط تعدادِ معینی توکن را یک‌جا می‌تواند بگیرد. به این سقف پنجره‌ی زمینه (context window) می‌گویند: همه‌ی آنچه در درخواست هست، به‌اضافه‌ی پاسخی که مدل می‌نویسد، باید در آن جا شود.

لیلا چقدر بزرگ است؟

امید برای مدل‌های فعلیِ Claude در اواخر ۲۰۲۶، حدود یک میلیون توکن. بعضی مدل‌های کوچک‌تر یا قدیمی‌تر ۲۰۰٬۰۰۰ توکن دارند.

لیلا یک میلیون توکن یعنی... حدود ۷۵۰٬۰۰۰ کلمه‌ی انگلیسی؟ اندازه‌ی چند رمانِ بلند. حتماً هیچ‌وقت پر نمی‌شود.

امید برای یک گفت‌وگو به‌ندرت پر می‌شود. حالا به یک عامل فکر کن. از آن می‌خواهی چیزی را در یک پروژه درست کند. بیست فایل می‌خواند. یکی‌شان ۳٬۰۰۰ خط است. تست‌ها را اجرا می‌کند و ۴۰۰ خط خروجی می‌گیرد، آن هم پنج بار.

لیلا آهان. هر فایل و هر خروجی واردِ زمینه می‌شود و برای همه‌ی درخواست‌های بعدی همان‌جا می‌ماند.

امید درست است. یک فایلِ بزرگ به‌تنهایی می‌تواند ده‌ها هزار توکن بگیرد. یک جلسه‌ی طولانیِ کار با عامل می‌تواند حتی یک میلیون را هم پر کند.


پنجره‌ی زمینه به شکل یک ستونِ بلند. از بالا: دستورهای برنامه، شرحِ ابزارها، یادداشت‌های شما برای عامل، گفت‌وگو، فایل‌هایی که عامل خوانده و خروجیِ فرمان‌ها، و در پایین کمی فضای خالی برای پاسخ.

جا کجا خرج می‌شود

پنجره‌ی زمینه را می‌توانید ستونی تصور کنید که از بالا پر می‌شود. بخشی از آن پیش از آنکه چیزی بنویسید گرفته شده است: دستورهای برنامه، شرح ابزارها و یادداشت‌هایی که برایش نوشته‌اید، در آغاز هر جلسه می‌آیند. بعد گفت‌وگو بزرگ می‌شود، و در یک عامل، چیزهایی که می‌خواند و اجرا می‌کند از همه سریع‌تر بزرگ می‌شوند.

یک فایلِ ۳٬۰۰۰ خطی واردِ پنجره‌ی زمینه می‌شود و یک‌جا تکه‌ی بزرگی از فضای خالی را می‌گیرد.

وقتی پنجره تقریباً پر شد، چیزی باید کنار برود: برنامه باید بخش‌های قدیمی‌تر را حذف یا کوتاه کند تا جا باز شود. برای همین است که در یک جلسه‌ی خیلی طولانی، عامل ممکن است چیزی را از اولِ کار گم کند. درسِ آخرِ این بخش درباره‌ی این است که آن‌وقت چه می‌شود و چطور می‌شود از آن دوری کرد.

در Claude Code می‌توانید این ستون را خودتان ببینید: /context را بنویسید تا نشان دهد هر بخش چه مقدار از پنجره را گرفته و چقدر خالی مانده است.

پاسخ هم باید جا شود

پاسخ هم در همان پنجره نوشته می‌شود، توکن‌به‌توکن و بعد از همه‌ی چیزهای دیگر. پس فضایی که می‌ماند همان جایی است که مدل برای پاسخ دادن، یا فکر کردن، دارد. مدلی که پنجره‌اش پر است نمی‌تواند پاسخی بلند بنویسد، هر قدر هم که شما بخواهید. برنامه‌ها معمولاً سقفِ جداگانه‌ای هم برای طولِ هر پاسخ می‌گذارند که معمولاً خیلی کوچک‌تر از پنجره است.

امتحان کنید

اگر Claude Code دارید، جلسه‌ای را در پوشه‌ی یک پروژه شروع کنید و پیش از هر سؤالی /context را بنویسید. ببینید چه مقدار از پیش گرفته شده است. بعد از آن بخواهید یک فایلِ بزرگ را بخواند و دوباره نگاه کنید. با یک دستیار گفت‌وگو هم نسخه‌ی ملایم‌ترش را می‌بینید: سندی خیلی بلند بچسبانید؛ خیلی از برنامه‌ها هشدار می‌دهند که بیش از حد بلند است، یا بی‌صدا بخشی از آن را کنار می‌گذارند.

درست به کار بردن

  1. آنچه عامل لازم دارد به آن بدهید، نه همه‌ی آنچه دارید. او را به فایل یا بخشِ درست راهنمایی کنید تا پنجره چیزهای مهمِ همین کار را در خود داشته باشد.
  2. مراقبِ خروجی‌های غول‌آسا باشید. فرمانی که هزاران خط چاپ می‌کند، یا یک فایلِ داده‌ی بزرگ، می‌تواند یک‌جا سهم بزرگی از پنجره را بگیرد. به‌جایش خلاصه، چند خطِ اول یا یک جست‌وجو بخواهید.
  3. چیزهای مهمی را که خیلی وقت پیش گفته‌اید دوباره بگویید. در یک جلسه‌ی طولانی، دستوری که اولِ کار داده‌اید ممکن است کوتاه شده و از دست رفته باشد. اگر هنوز مهم است، دوباره بگوییدش.
  4. در Claude Code، وقتی جلسه‌ای کُند یا فراموش‌کار شد، /context را نگاه کنید. نشان می‌دهد پنجره نزدیکِ پر شدن است یا نه.

واژه‌های این درس

  • زمینه (context) - همه‌ی آنچه در یک درخواست به مدل می‌رسد: دستورها، شرح ابزارها، گفت‌وگو، و هر چه خوانده یا اجرا کرده است
  • پنجره‌ی زمینه (context window) - بیشترین متنی، بر حسب توکن، که مدل یک‌جا می‌تواند بگیرد، با خودِ پاسخی که می‌نویسد؛ برای مدل‌های فعلیِ Claude در اواخر ۲۰۲۶ حدود یک میلیون توکن

ایده‌ی اصلی

مدل فقط زمینه‌اش را می‌بیند، یعنی همه‌ی آنچه در درخواستِ فعلی هست. پنجره‌ی زمینه سقفِ اندازه‌ی آن است، و یک عامل با چیزهایی که می‌خواند و اجرا می‌کند آن را زود پر می‌کند. پس مهم است چه چیزی در آن می‌گذارید.

دانش خود را بسنجید

ورود برای سنجش دانش خود از این درس و پیگیری پیشرفتتان.