Engram: حافظهٔ ماندگار برای ایجنتهای کدنویسی
خلاصهٔ کاملتر
به گفتهٔ سازنده، ایجنتهای کدنویسی یه مشکل بزرگ دارن: آخر هر جلسه همهچیزو فراموش میکنن. Engram میخواد همینو حل کنه و به ایجنت یه «مغز» بده. اسمش هم از نوروساینس میاد؛ engram یعنی ردّ فیزیکی یه خاطره تو مغز.
خودش یه باینری Go هست که روش SQLite با جستوجوی تماممتن FTS5 نشسته و از چهار راه در دسترسه: CLI، HTTP API، سرور MCP و یه رابط ترمینالی تعاملی (TUI). چون از MCP استفاده میکنه، با هر ایجنتی که MCP رو پشتیبانی کنه کار میکنه — از Claude Code و Codex تا Cursor و Windsurf و VS Code. نه به Node نیاز داره، نه Python، نه Docker؛ یه باینری و یه فایل SQLite، تمام.
روش کارش سادهست: وقتی ایجنت یه کار مهم مثل رفع باگ یا یه تصمیم معماری انجام میده، با ابزار mem_save عنوان و توضیح (چی، چرا، کجا، چی یاد گرفته) رو ذخیره میکنه و Engram اونو با ایندکس FTS5 تو SQLite نگه میداره. جلسهٔ بعد ایجنت حافظه رو جستوجو میکنه و کانتکست مرتبطو میگیره. در مجموع حدود ۲۰ ابزار MCP برای ذخیره، جستوجو و مدیریت جلسه داره.
یکی از قابلیتهای شاخصش تشخیص تضاده. فرض کن یه جا ذخیره شده «دیتابیس کاربرها Postgres باشه» و بعد یه تصمیم دیگه بگه «با MongoDB جایگزین شه»؛ اول FTS5 با کلمههای مشترک عنوان مثل user و database اینها رو بهعنوان کاندید پیدا میکنه، بعد یه LLM قضاوت میکنه که آیا یکی اون یکیو نقض یا جایگزین میکنه. نکتهش اینه که همون LLM خودِ ایجنتت این قضاوتو میکنه، پس اگه اشتراک داشته باشی عملاً هزینهای برات نداره.
نویسنده میگه Engram یه حالت ابری اختیاری هم داره که حافظه رو بین چند دستگاه sync میکنه. برای بقای حافظه بعد از فشردهشدن (compaction) کانتکست هم یه «پروتکل حافظه» پیشنهاد میده که میشه تو فایلهایی مثل CLAUDE.md گذاشت تا ایجنت یادش نره از Engram استفاده کنه، چون سیستمپرامپت بعد از compaction هم میمونه.
راهاندازیش هم راحته: دستور engram setup تنظیمات MCP و فایلهای پلاگین ایجنت رو مینویسه و بعدش خود ایجنت هر جلسه engram mcp رو بهعنوان یه سابپروسس کوتاه اجرا میکنه؛ لازم نیست سروری دستی بالا بیاری. پروژه با لایسنس MIT منتشر شده و به گفتهٔ سازنده از claude-mem الهام گرفته ولی مستقل از ایجنت و سادهتره.
نکات کلیدی:
- Engram به ایجنتهای کدنویسی حافظهٔ ماندگار میده تا بین جلسهها چیزی فراموش نشه
- یه باینری Go با SQLite و FTS5 که از طریق MCP به هر ایجنتی وصل میشه
- ایجنت کارهای مهمو با mem_save ذخیره و جلسهٔ بعد جستوجو میکنه
- با کمک LLM خودِ ایجنت، تضاد بین تصمیمهای ذخیرهشده رو تشخیص میده
- بدون Node/Python/Docker، با sync ابری اختیاری و لایسنس MIT




