پیشفرض: هیچ حافظهای وجود ندارد
در فصل ۱.۳ دیدیم context هر چیزی است که مدل در این لحظه میبیند. حالا سؤال بعدی: وقتی session را میبندی، آن چیزها کجا میروند؟
جواب کوتاه است: هیچجا. از بین میروند. مستندات رسمی همین را صریح میگویند — هر session با یک context خالی شروع میشود.
یعنی اگر دیروز دو ساعت با ایجنت روی یک کار وقت گذاشتی و همهی ترجیحهایت را توضیح دادی، امروز هیچکدامش را نمیداند. نه چون فراموش کرده — چون اصلاً جایی ذخیره نشده بود.
این اولش آزاردهنده است، ولی یک روی خوب هم دارد: هیچ چیزی پشت سرت نمیماند. یک session خراب، session بعدی را آلوده نمیکند. و آن «راهحلِ session تازه» که در فصل ۱.۳ گفتیم، دقیقاً به همین دلیل کار میکند.
حافظهی session در برابر دائمی
دو چیز که راحت با هم اشتباه میشوند:
- حافظهی session — همان context. تا وقتی session باز است هست، و با بستنش تمام. رایگان نیست (جا و پول میگیرد) و پایدار هم نیست.
- حافظهی دائمی — چیزی که روی دیسک نوشته شده. یک فایل. تا وقتی پاکش نکنی هست، و در هر session تازه میشود دوباره خواندش.
و کل ترفند همین است: حافظهی دائمی هیچ سازوکار جادویی نیست. یک فایل متنی است. ایجنت در ابتدای کار میخواندش و محتوایش وارد context میشود — یعنی حافظه، در واقع «context ای است که خودکار پر میشود».
MD چیست و چرا اینقدر مهم شد
MD
یا Markdown — که مارکداون خوانده میشود —
یک فایل متنی ساده است با چند علامت کوچک: #
برای عنوان، - برای فهرست، ستاره برای تأکید. همین.
چرا این قالبِ ساده اینقدر مهم شد؟ سه دلیل:
- هم تو میخوانیاش، هم ایجنت. برخلاف قالبهای پیچیده، لازم نیست برنامهی خاصی بازش کند — با هر ویرایشگر متنی باز میشود.
- ساختار دارد ولی سختگیر نیست. عنوان و فهرست کمک میکنند مطلب پیدا شود، ولی اگر جایی قاعده را رعایت نکنی چیزی خراب نمیشود.
- در نسخهبندی خوب کار میکند — میشود دید دقیقاً چه خطی عوض شده (درس ۵.۲).
برای حافظه، این ترکیب دقیقاً همان چیزی است که لازم است: چیزی که هم تو بتوانی بازش کنی و ببینی چه نوشته، هم ایجنت بتواند بخواندش.
JSON و YAML و CSV در یک نگاه
سه قالب دیگر که اسمشان را زیاد میشنوی. لازم نیست بلد باشی بنویسیشان؛ لازم است بدانی هرکدام برای چهاند تا وقتی دیدی گیج نشوی.
- CSV — جدول ساده. هر خط یک ردیف، ستونها با کاما جدا. همان چیزی که در فصل ۰.۲ دیدی و دقیقاً همانجا هم دیدی که یک کامای اضافه چطور کل ردیف را از جا درمیآورد.
- JSON — دادهی ساختاریافته برای برنامهها. دقیق و سختگیر: یک ویرگول جاافتاده و کل فایل بیاعتبار میشود. برای حافظهی دستنویس انتخاب بدی است.
- YAML — چیزی بین آن دو. خواناتر از JSON، ولی به فاصلههای اول خط حساس است.
قاعدهی ساده: برای چیزی که خودت مینویسی و میخوانی، MD. برای دادهی جدولی، CSV. آن دوتای دیگر معمولاً کارِ برنامهاند، نه تو.
فایل حافظهی مشترک
سادهترین حافظهی ممکن: یک فایل MD که چیزهایی را نگه میدارد که نمیخواهی هر بار دوباره توضیح بدهی.
چه چیزی داخلش میرود؟ هر چیزی که اگر ننویسی، دفعهی بعد باید دوباره بگویی. مثلاً:
- این پروژه چیست و چه ساختاری دارد.
- تصمیمهایی که گرفته شده و چرا — این «چرا» از خودِ تصمیم مهمتر است.
- کارهایی که امتحان شده و جواب نداده، تا دوباره امتحان نشوند.
- ترجیحهای تو در نحوهی کار.
و چه چیزی نباید داخلش برود: رمز و کلید (درس ۷.۵) · چیزهایی که هر روز عوض میشوند · و هر چیزی که ایجنت خودش میتواند با نگاهکردن به فایلها بفهمد.
بهخاطر بسپار قاعدهی ورودی به فایل حافظه ساده است: هر بار که دیدی داری چیزی را برای بار دوم توضیح میدهی، همان را بنویس. این دقیقاً همان منطقِ فصل ۰.۱ است — یکبار فکر کن، بارها استفاده شود — فقط این بار روی خودِ ایجنت.
فایل قانون: حافظهای که همیشه خوانده میشود
یک قدم جلوتر: بعضی ابزارها یک فایل مشخص دارند که در شروع هر session خودکار خوانده میشود. اسم عمومیاش در این دوره فایل قانون است.
تفاوتش با یک فایل حافظهی معمولی این است که لازم نیست بگویی بخوانش. خودش میآید.
و سه چیز که مستندات رسمی دربارهاش میگویند و مهماند:
- سطح دارد. میتواند مالِ یک پروژهی خاص باشد، یا مالِ همهی کارهای تو روی این کامپیوتر.
- کوتاه بهتر است. توصیهی رسمی زیر ۲۰۰ خط است — چون فایل بلندتر هم context بیشتری میخورد و هم کمتر رعایت میشود. همان context rot فصل ۱.۳.
- قانون نیست، راهنماست. این را صریح میگویند: محتوای این فایل بهعنوان context داده میشود، نه بهعنوان قاعدهای که بهزور اجرا شود. یعنی ممکن است رعایت نشود — و هرچه دستور مشخصتر باشد، بیشتر رعایت میشود.
ساختن یک فایل قانونِ خوب خودش یک درس کامل دارد (درس ۳.۴)، و در ماژول ۶ میبینی که همین فایل میتواند نقش «برنامه» را بازی کند.
چه چیزی حافظه است، چه چیزی context
جمعبندی این ماژول در یک جدول ذهنی:
- context = چیزی که الان جلوی چشمش است. موقتی، پر و خالی میشود، جا و پول میگیرد، و با بستن session میرود.
- حافظه = فایلی روی دیسک. میماند، تو کنترلش میکنی، و در هر session تازه وارد context میشود.
رابطهشان یکطرفه است: حافظه به context تبدیل میشود، ولی context خودبهخود حافظه نمیشود. چیزی که در گفتوگو گفتی، اگر جایی نوشته نشود، با بستهشدن session میرود.
و یک پیامد که خیلیها را غافلگیر میکند: چون فایل حافظه هر بار وارد context میشود، حافظهی بزرگتر همیشه بهتر نیست. یک فایل قانونِ هزار خطی، هزار خط از context هر session تو را همان اول میخورد.
تمرین (ساختنی + توضیحی)
یک فایل MD کوچک بنویس، به ایجنت بده، و بگو چه تغییری در جوابش دیدی.
۱. در زمین بازیات یک فایل بساز به اسم
notes.md و پنجشش خط داخلش بنویس: من کی هستم، چه
کاری میکنم، جوابها را چطور میخواهم (کوتاه؟ با مثال؟ فارسی؟).
۲. یک session تازه باز کن و بدون دادن فایل، یک درخواست بده. جواب را نگه دار.
۳. session دیگری باز کن، این بار اول فایل را بده و بعد همان درخواست را بده.
۴. دو جواب را کنار هم بگذار و بنویس دقیقاً چه فرقی کردند.
پاسخنامه — یک نمونهی خوب را ببین
«در فایل نوشتم: کارم حسابداری یک شرکت کوچک است · جوابها را کوتاه میخواهم، حداکثر پنج خط · هر عددی که میدهی بگو از کجا آمده.»
«درخواست: از این فایل فروش یک خلاصه بده.»
«بدون فایل: یک خلاصهی چهارده خطی داد با توضیح اینکه CSV چیست. عددها را داد بدون اینکه بگوید کدام ردیفها را حساب کرده.»
«با فایل: پنج خط. توضیح CSV را نداد چون فهمید کارم حسابداری است. و زیر هر عدد نوشت از کدام ردیفها آمده — چون در فایل خواسته بودم.»
چرا این جواب خوب است: تفاوتها مشخصاند و هرکدام به یک خط از فایل وصلاند. «بهتر شد» چیزی نمیگوید؛ «توضیح اضافه را نداد چون میدانست حسابدارم» میگوید.
برای عمق بیشتر
- How Claude remembers your project — مستندات رسمی (انگلیسی). خلاصهی فارسی: منبعِ ادعاهای این فصل. صریح میگوید هر session با یک context خالی شروع میشود و برای همین فایلهای دستورالعمل لازماند؛ این فایلها در شروع هر گفتوگو خوانده میشوند · سطحهای مختلفشان (کاربر، پروژه) را توضیح میدهد · توصیه میکند زیر ۲۰۰ خط بمانند چون فایل بلندتر context بیشتری میخورد و کمتر رعایت میشود · و مهمتر از همه میگوید محتوایشان context است، نه پیکربندیِ اجباری — یعنی راهنماست، نه قانونی که تضمینشده اجرا شود.