یه جایی از چتهای طولانی، ایجنت شروع میکنه به فراموش کردن. تصمیمی که یه ساعت پیش گرفتین رو زیر پا میذاره یا یه فایل رو دوباره از اول مینویسه. این همون چیزیه که Anthropic بهش میگه context rot؛ هر چی کانتکست شلوغتر بشه، دقت مدل در یادآوری پایینتر میاد.
راهحل سادهش اینه که چت رو ببندی و از نو شروع کنی. ولی اونوقت کل ماجرا رو باید دوباره تعریف کنی. این پرامپت این وسط پل میزنه: قبل از بستن، ایجنت خودش یه یادداشت تحویل مینویسه؛ مثل وقتی که یه همکار شیفتش تموم میشه و کار رو به نفر بعد میسپره.
متن پرامپت
آخر هر جلسهی طولانی این رو بفرست:
«قبل از اینکه این چت رو ببندیم، یه یادداشت تحویل برای جلسهی بعدی بنویس و توی فایل HANDOFF.md ریشهی پروژه ذخیره کن. فرض کن نفر بعدی یه ایجنت تازهست که هیچی از این گفتگو یادش نیست. این بخشها رو داشته باشه: ۱) هدف: در دو جمله، داریم چی میسازیم و چرا. ۲) وضعیت فعلی: چی تموم شده، چی نصفهست و چی هنوز شروع نشده. ۳) تصمیمها: هر تصمیم مهمی که گرفتیم و دلیلش، مخصوصاً چیزهایی که امتحان کردیم و کنار گذاشتیم. ۴) فایلهای کلیدی: مسیر فایلهایی که باید اول خونده بشن، با یه خط توضیح. ۵) قدم بعدی: دقیقاً اولین کاری که جلسهی بعد باید انجام بشه، با دستور اجرا یا تست. ۶) هشدارها: باگهای شناختهشده، چیزهایی که نباید بهشون دست زد. چیزی که توی کامیتها، دیف یا داکیومنتهای دیگه هست رو تکرار نکن؛ فقط بهش ارجاع بده. هیچ کلید API، رمز یا اطلاعات شخصی توی یادداشت ننویس. کل یادداشت از یه صفحه بیشتر نشه.»
جلسهی بعد، توی چت تازه فقط بنویس: «اول HANDOFF.md رو بخون، بعد قدم بعدی رو شروع کن.»
با CLAUDE.md و AGENTS.md چه فرقی داره؟
فایلهایی مثل CLAUDE.md یا AGENTS.md قوانین ثابت پروژهان: دستور تست، سبک کد، ساختار. یادداشت تحویل مال وضعیت لحظهایه و بعد از هر جلسه عوض میشه. اگه هنوز فایل قوانین نداری، با پرامپت نوشتن AGENTS.md بسازش.
اگه هم چند ایجنت رو موازی روی شاخههای مختلف میچرخونی (همون روشی که توی مطلب git worktree گفتم)، برای هر worktree یه HANDOFF جدا نگه دار.
ریشهی علمی این کار رو توی مقالهی مهندسی کانتکست Anthropic میتونی بخونی؛ اونجا به این روش میگن structured note-taking. نسخهی اسکیلی همین ایده هم handoff توی اسکیلهای Matt Pocock هست.
چت رو میشه بست؛ رشتهی کار رو نباید.
