پرش به محتوای اصلی
پرش به محتوای مقاله

deja-vu: تبدیل نشست‌های Claude Code به لایه‌ی حافظه‌ی دائمی

·۲۴ تیر ۱۴۰۵۶ دقیقه مطالعه۱ بازدید
لایه حافظه برای عامل‌های کدنویسی: جستجو، یادآوری MCP، خودکارسازی زمینه، حذف رمز، آمار و همگام‌سازی لاگ‌ها. یک باینری بدون واب
لایه حافظه برای عامل‌های کدنویسی: جستجو، یادآوری MCP، خودکارسازی زمینه، حذف رمز، آمار و همگام‌سازی لاگ‌ها. یک باینری بدون واب
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی یک لایه‌ی حافظه پس‌نگر (Retroactive) که به‌جای ضبط لحظه‌ای داده‌ها، تاریخچه‌ی موجود در فایل‌های لاگ عامل‌ها را به حافظه‌ی فعال تبدیل می‌کند.

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

در ۱۵ ژوئیه ۲۰۲۶، توسعه‌دهنده‌ای به نام vshulcz ابزار deja-vu را منتشر کرد؛ یک فایل باینری بدون پیش‌نیاز که گیگابایت‌ها داده‌ی متنی ذخیره‌شده توسط عامل‌ها را به یک لایه‌ی حافظه قابل جست‌وجو تبدیل می‌کند.

عامل‌های مدرنی مثل Claude Code، Codex و opencode تمام تصمیمات طراحی و هر خطای رفع‌شده را در فایل‌های JSONL یا SQLite محلی ذخیره می‌کنند. اما این داده‌ها تا امروز «داده‌های مرده» بودند؛ یعنی آرشیوی جامع که اما غیرقابل جست‌وجو است و عامل نمی‌تواند پس از شروع یک جلسه جدید، آن‌ها را به یاد آورد. شما احتمالاً با این کلاف سردرگم روبرو شده‌اید که یک عامل دوباره روی مشکلی که دو هفته پیش حل کرده‌اید وقت تلف می‌کند، صرفاً به این دلیل که آن را فراموش کرده است. این چالش مدیریتی با معرفی قابلیت‌های جدید مدیریت نشست‌ها در Claude Code مورد توجه قرار گرفته بود تا دسترسی به تاریخچه‌ی تعاملات تسهیل شود.

همان‌طور که در تحلیل قبلی ما درباره‌ی نحوه‌ی بهره‌برداری توسعه‌دهندگان مستقل از پروتکل زمینهٔ مدل (MCP) برای گسترش قابلیت‌های عامل‌ها اشاره کردیم، deja-vu یک مکانیسم خاص برای بازیابی حافظه را پیاده‌سازی می‌کند. این ابزار به‌جای تکیه به پایگاه‌های داده برداری (Vector Database) ابری — که شبیه به یک انبار عظیم است که هر شیء را بر اساس شباهت‌های بصری دسته‌بندی می‌کند — از یک «اندیس معکوس» (Inverted Index) محلی در مسیر ~/.cache/deja بهره می‌برد. طبق مستندات این پروژه در گیت‌هاب، این رویکرد تضمین می‌کند که هیچ داده‌ای هرگز از دستگاه کاربر خارج نشود و ریسک‌های حریم خصوصی مرتبط با پلتفرم‌های حافظه شخص ثالث به‌طور کامل حذف شوند.

معماری فنی و سرعت عملیاتی

این ابزار برای پردازش با کارایی بسیار بالا روی مجموعه‌های داده واقعی طراحی شده است. deja-vu فایل‌های JSONL و ذخیره‌سازهای SQLite را تحلیل (Parse) کرده، اطلاعات حساس و اعتبارنامه‌ها را حذف می‌کند و سپس فایل‌های records.bin و «سطل‌های توکن» (Token Buckets) را می‌سازد. برای بهینه‌سازی، یک فایل manifest.json وضعیت هر فایل را ردیابی می‌کند تا اطمینان حاصل شود که فقط فایل‌های تغییریافته دوباره خوانده می‌شوند. این پردازش دقیق داده‌ها یادآور تحلیل‌های پیشین ما درباره‌ی بهینه‌سازی فایل‌های JSONL در Claude Pulse برای کاهش هزینه‌های عملیاتی در محیط ترمینال است.

بر اساس گزارش‌های منتشرشده در گیت‌هاب، آزمایش روی مجموعه‌ای با بیش از ۱۲۵۰ نشست (حدود ۳.۳ گیگابایت) نتایج زیر را داشته است:

  • تأخیر جست‌وجو: جست‌وجوهای گرم (Warm Searches) به‌طور معمول بین ۷ تا ۹ میلی‌ثانیه و در بدترین حالت ۴۰ میلی‌ثانیه زمان می‌برند.
  • سرعت اندیس‌گذاری: ایجاد اندیس برای کل مجموعه داده در حالت سرد (Cold Index) حدود ۱۰ ثانیه زمان می‌برد.
  • بهره‌وری ذخیره‌سازی: حجم اندیس نهایی بسیار بهینه است و تنها حدود ۲.۴٪ از حجم کل داده‌های اولیه را اشغال می‌کند.

قابلیت‌های کلیدی و ادغام با گردش کار

deja-vu صرفاً یک موتور جست‌وجوی متنی نیست، بلکه از طریق یک سرور MCP مستقیماً با جریان کاری عامل ادغام می‌شود. این امر به عامل‌ها اجازه می‌دهد تا از ابزار recall برای یافتن قطعات متنی متراکم و متناظر (که برای صرفه‌جویی در پنجرهٔ زمینه یا Context Window به ۴ کیلوبایت محدود شده‌اند — که شبیه به میز کاری کوچک است و فقط تعداد محدودی برگه را هم‌زمان جای می‌دهد) یا ابزار recall_context برای دریافت یک خلاصه‌ی Markdown از بهترین نشست‌های مرتبط استفاده کنند.

لایه حافظه برای عامل‌های کدنویسی: جستجو، یادآوری MCP، زمینه خودکار، حذف رمز، آمار، اشتراک و همگام‌سازی لاگ‌های جلسه Claude Co

یکی از حیاتی‌ترین ویژگی‌ها، قلاب نصب --auto است. این قابلیت یک تریگر در لحظه‌ی شروع نشست (SessionStart) ایجاد می‌کند؛ به این معنا که خاطرات مرتبط با پروژه فعلی پیش از آنکه کاربر سوالی بپرسد، به بستر متن عامل تزریق شود. این فراخوانی خودکار حالت «فقط خواندنی» دارد و برای جلوگیری از کند شدن یا مختل کردن استارت‌آپ عامل، به ۲ کیلوبایت محدود شده است. همچنین کاربران می‌توانند با دستور deja ctx "query" به‌طور دستی زمینه را به یک پرامپت منتقل کنند.

مدیریت حافظه و ابزارهای خط فرمان

علاوه بر ادغام با عامل، یک رابط خط فرمان (CLI) قدرتمند برای مدیریت دستی حافظه وجود دارد:

  • تحلیل و جست‌وجو: دستور deja <query> با استفاده از منطق AND برای پرس‌وجوهای چند-کلمه‌ای در تمام تاریخچه‌ها جست‌وجو می‌کند. کاربران می‌توانند نتایج را بر اساس --harness (نوع ابزار)، --project (پروژه)، --role (نقش) یا بازه زمانی با دستور --since 30d فیلتر کنند.
  • بازرسی: دستور deja show <id> یک نشست خاص را می‌خواند، در حالی که deja last [n] لیست آخرین نشست‌ها را نمایش می‌دهد. دستور deja sources جزئیات مربوط به ذخیره‌سازهای کشف‌شده، حجم‌ها و تعداد موارد سانسورشده را ارائه می‌دهد.
  • وضعیت سلامت: دستور deja stats آمار کلی، تفکیک بر اساس هر Harness، پروژه‌های برتر و یک نمودار فعالیت ماهانه (Sparkline) را به صورت متنی یا با پرچم --json تولید می‌کند.
  • نگهداری: دستور deja warmup اجازه می‌دهد کاربران اندیس را بدون نیاز به انجام جست‌وجو به‌روزرسانی کنند، که این قابلیت برای کارهای برنامه‌ریزی‌شده (cron jobs) یا اسکریپت‌های استارت‌آپ شل ایده‌آل است.

امنیت و حریم خصوصی

امنیت در مرحله‌ی اندیس‌گذاری تامین می‌شود. این ابزار به‌طور خودکار کلیدهای API، توکن‌های JWT، کلیدهای خصوصی PEM و توکن‌های ارائه‌دهندگان (مانند ghp_ برای گیت‌هاب، sk- برای OpenAI، npm_ یا xox. و AIza) را از اندیس حذف می‌کند. همچنین تخصیص‌های عمومی مانند api_key= یا token= و URLهایی با ساختار scheme://user:pass@host شناسایی و سانسور می‌شوند. این موارد با عبارت [redacted:<kind>] جایگزین می‌شوند تا ضمن حفظ بستر متن برای جست‌وجو، اسرار امنیتی هرگز وارد حافظه موقت، اشتراک‌ها یا خروجی‌های همگام‌سازی نشوند. اگرچه کاربر می‌تواند با متغیر محیطی DEJA_NO_REDACT=1 این مورد را غیرفعال کند، اما این کار صریحاً «ناامن» علامت‌گذاری شده است.

همگام‌سازی و همکاری تیمی

برای مدیریت سیستم‌های چند-دستگاهی، deja-vu مکانیزم همگام‌سازی دارد. کاربران می‌توانند دو ماشین را به یک پوشه مشترک (از طریق iCloud، Syncthing یا یک مخزن git) متصل کنند یا با دستور deja sync ssh دسته‌های JSONL را بین میزبان‌ها جابه‌جا (Push و Pull) کنند.

در همگام‌سازی مبتنی بر SSH، ابزار از ssh/scp سیستم استفاده کرده و به دنبال فایل باینری در PATH ریموت می‌گردد (و در صورت عدم یافتن، مسیر ~/.local/bin/deja را بررسی می‌کند). این فرآیند «هم‌پوشانی‌ناپذیر» (Idempotent) و «فقط افزایشی» (Append-only) است؛ یعنی رکوردها هرگز به مبدأ خود باز نمی‌گردند. یک پرچم --full اجازه می‌دهد همه چیز بدون توجه به واترمارک‌ها دوباره صادر شوند، که هنگام اضافه کردن یک ماشین جدید پس از پاک شدن دسته‌های قدیمی مفید است. نشست‌های همگام‌سازی‌شده در نتایج جست‌وجو به‌وضوح با برچسب imported:<project> مشخص می‌شوند.

برای همکاری تیمی، دستور deja share <id> یک خلاصه‌ی پاک‌سازی‌شده از یک نشست ایجاد می‌کند. این دستور نویزهای ابزاری را حذف کرده و سانسورهای امنیتی را اعمال می‌کند تا کاربر بتواند تاریخچہ‌ی تمیز حل یک باگ خاص را بدون افشای اعتبارنامه‌ها در اختیار همکاران قرار دهد.

سازگاری با ابزارها و مقایسه

در حال حاضر، deja-vu از سه ابزار اصلی پشتیبانی می‌کند:

  • Claude Code: مسیرهای ~/.claude/projects/**/*.jsonl
  • Codex CLI: مسیرهای ~/.codex/sessions/** و فایل history.jsonl
  • opencode: دیتابیس ~/.local/share/opencode/opencode.db (که با فراخوانی CLI sqlite3 اندیس‌گذاری می‌شود)

پشتیبانی از aider و Gemini CLI در نقشه راه قرار دارد. کاربران همچنین می‌توانند مکان‌های سفارشی را از طریق متغیرهای محیطی مانند DEJA_CLAUDE_ROOT یا DEJA_INDEX_DIR تعریف کنند.

تفاوت اصلی این ابزار با پلتفرم‌هایی مثل Mem0 یا Letta در این است که آن‌ها به عنوان حافظه‌های فعال عمل می‌کنند که شامل جاسازی‌ها (Embeddings) و ذخیره‌سازهای برداری هستند، اما deja-vu «پس‌نگر» (Retroactive) است. این رویکرد برای مقابله با زوال حافظه در عامل‌هاست، مشابه آنچه ابزار AIClaw با استفاده از ذخیره‌سازی دو جریانی برای مدیریت حقایق پیاده‌سازی کرده بود. یعنی نیاز نیست قلاب ضبط داده از روز اول نصب شده باشد؛ این ابزار صرفاً آنچه را که عامل‌ها پیش از این روی دیسک نوشته‌اند — حتی تاریخچه‌های مربوط به ماه‌ها پیش از نصب ابزار — اندیس‌گذاری می‌کند.

همچنین برخلاف ابزار cass که رابط گرافیکی (TUI) و ۲۲ ارائه‌دهنده دارد، deja-vu بر مینیمال بودن تمرکز کرده و تنها یک فایل باینری Go است که برای سرعت حداکثری از جست‌وجوی لغوی (Lexical Search) خالص استفاده می‌کند. اگر کاربر بخواهد تمام داده‌ها را پاک کند، می‌تواند دستور deja uninstall --all را اجرا کرده و دایرکتوری ~/.cache/deja را حذف نماید.

این تغییر رویکرد نشان می‌دهد آینده‌ی حافظه‌ی عامل‌ها لزوماً در پایگاه‌های داده برداری عظیم نیست، بلکه در اندیس‌گذاری بهینه «آثار جانبی» (لاگ‌ها) است که عامل‌ها همین حالا تولید می‌کنند. برای توسعه‌دهنده، این به معنای کاهش شدید «انحراف زمینه» (Context Drift) و افزایش چشمگیر قابلیت اطمینان در نگهداری بلندمدت پروژه‌ها است.

گام بعدی شما

اگر می‌خواهید این ابزار را در گردش کار خود ادغام کنید، می‌توانید آن را از طریق Homebrew (brew install vshulcz/tap/deja-vu)، یک اسکریپت curl یا از طریق Go/npm نصب کنید. برای اینکه عامل شما واقعاً به یاد بیاورد:

  1. دستور deja install --all را برای فعال‌سازی MCP و قلاب شروع نشست (Session-start hook) اجرا کنید.
  2. یک دستورالعمل به فایل CLAUDE.md یا AGENTS.md پروژه خود اضافه کنید و به عامل بگویید پیش از آنکه برای پیاده‌سازی مجدداً یک ویژگی تلاش کند، ابتدا دستور deja "<query>" را اجرا کند.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این ابزار با تکیه بر اعتبار معماری محلی (Local-first)، وابستگی توسعه‌دهندگان به سرویس‌های ابری برای حافظه عامل‌ها را حذف می‌کند. نتیجه این است که هزینه و تأخیر استنتاج کاهش یافته و امنیت داده‌های حساس کدنویسی تضمین می‌شود.

تأثیر برای ایران

این ابزار به‌دلیل متن‌باز بودن و اجرای کامل روی سیستم کاربر (Local)، هیچ محدودیتی برای توسعه‌دهندگان ایرانی ندارد و جایگزینی امن برای سرویس‌های ابری است که دسترسی محدودی دارند.

·نگاه ما
تحریریه دات‌هوش

تغییر رویکرد از ذخیره‌سازی برداری (Vector) به اندیس‌گذاری لغوی (Lexical) روی لاگ‌ها، یک بازگشت هوشمندانه به سادگی برای افزایش سرعت است. این ابزار ثابت می‌کند که برای بسیاری از کاربردهای مهندسی، دسترسی سریع به تاریخچه (Recall) بسیار کاربردی‌تر از درک مفهومی عمیق اما کند است. در واقع، deja-vu به جای ساختن یک مغز جدید، یک سیستم بایگانی فوق‌سریع برای مغز فعلی عامل ساخته است.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.