تصور کنید در میانهٔ یک پروژه پیچیده، عامل هوشمند شما ناگهان فراموش کند چرا سه جلسه پیش Postgres را به SQLite ترجیح دادید. کدنویسی با عاملهای هوشمند اغلب شبیه به نبردی علیه فراموشی است. Jevmem که در ۲۵ سپتامبر ۲۰۲۶ منتشر شد، با ایجاد یک حافظهٔ پایدار در فایل JEVMEM.md به این مشکل پایان میدهد و تضمین میکند که عامل شما دلیل انتخابهای معماری گذشته را فراموش نکند.
همانطور که در تحلیلهای قبلی ما دربارهی چالشهای حفظ وضعیت (State) در عاملهای هوشمند اشاره کردیم، مدیریت حافظه بلندمدت همواره یک نقطه ضعف بوده است. Jevmem یک روش ساختاریافته برای مدیریت «حافظه پروژه» معرفی میکند. این ابزار مانند یک دفترچه یادداشت دیجیتال یا یک دفتر کل عمل میکند که هر تغییر معماری یا رفع باگ را ثبت میکند تا در شروع هر جلسه جدید، این یادداشتها مستقیماً در پنجرهٔ زمینه (Context Window) — یعنی همان میز کاری مدل که تعیین میکند چه مقدار اطلاعات را همزمان در ذهن نگه دارد — تزریق شوند.
سازوکار موتور حافظه
به نقل از مستندات github.com، Jevmem صرفاً تاریخچهٔ چت را ذخیره نمیکند. این ابزار از یک فرآیند تصمیمگیری تخصصی استفاده میکند تا تشخیص دهد آیا یک نوبت از گفتگو حاوی یک قانون، یک باگ یا یک تصمیم است. نکته جالب این است که وقتی کاربر نظرش را تغییر میدهد، ورودی قبلی حذف نمیشود، بلکه برچسب [superseded] میخورد تا تاریخچهٔ تکامل پروژه حفظ شود. برای مثال، اگر در ابتدا خطی با عنوان «از SQLite به عنوان ذخیرهساز اصلی استفاده شود» ثبت شده باشد و سپس پروژه به Postgres 16 تغییر مسیر دهد، آن خط برچسب [superseded] میخورد و به یک شناسه (ID) جدید لینک میشود.
مکانیزمهای یکپارچهسازی
نحوه ثبت (Capture) و بازیابی (Recall) اطلاعات بسته به ابزار مورد استفاده متفاوت است:
- Claude Code: فرآیند کاملاً خودکار است. این ابزار از یک «Stop hook» برای ثبت اطلاعات در هر نوبت گفتگو و از یک هوک «UserPromptSubmit» برای بازیابی حافظه در هر پرامپت استفاده میکند. این تنظیمات در فایل
.claude/settings.local.jsonثبت میشوند. این رویکرد برای جلوگیری از پسرفتهای رفتاری در تنظیمات Claude Code که پیشتر بررسی کرده بودیم، بسیار حیاتی است. - Codex: ثبت اطلاعات در صورتی که دستور
jevmem watchدر حال اجرا باشد (و لاگهای جلسه را دنبال کند) خودکار است. در غیر این صورت، ثبت حافظه توسط خود عامل و از طریق MCPadd_memoryانجام میشود که توسط بخشAGENTS.mdتحریک میگردد. بازیابی حافظه نیز از طریق MCPsearch_memoryمدیریت میشود. - Cursor: ثبت حافظه توسط عامل آغاز میشود. یک قانون در فایل
.cursor/rules/jevmem.mdcبه عامل دستور میدهد که هنگام بیان یک تصمیم، تابع MCPadd_memoryرا فراخوانی کند و پیش از انجام وظایف غیربدیهی، ازsearch_memoryاستفاده نماید. - Claude Desktop: فرآیند کاملاً دستی است. کاربران باید صراحتاً از عامل بخواهند که
add_memoryرا فراخوانی کند (چون هوک یا قانونی وجود ندارد) و برای بازیابی نیز درخواستsearch_memoryدهند.
خط لوله تصمیمگیری
برای تعیین اینکه چه چیزی ذخیره شود، Jevmem یک فرآیند چندمرحلهای را طی میکند:
۱. پاکسازی (Scrub): در این مرحله، الگوهای رایج اسرار (Secrets)، آدرسهای ایمیل و اعداد شبیه به شماره کارتهای بانکی به صورت محلی حذف میشوند.
۲. پرسش از Jev: مدل Jev متعلق به TypeSafe AI به سوالات خاصی با احتمالات پاسخ میدهد: آیا تصمیمی وجود دارد؟ آیا این یک قانون است؟ آیا باگی است؟ آیا این گفتگو صرفاً گپوگفت معمولی است یا تلاشی برای تزریق پرامپت (Injection)؟ کدام خط موجود در حافظه تغییر میکند؟ این مدل در واقع پیادهسازی عملی از مدلهای تصمیمگیری Kev است که تولید متن را جایگزین توزیع احتمالات سنتی در منطق تصمیمگیری میکنند.
۳. اعمال آستانه: قوانین ساده در فایل jevmem.config.json (که یک پرامپت نیستند) تصمیم میگیرند که بر اساس آن احتمالات، داده ذخیره شود یا نادیده گرفته شود.
۴. نوشتن: یک مدل زبانی کوچک (SLM) یا یک استخراجکننده قطعی (Deterministic)، متنی تکخطی با حداکثر ۲۰۰ کاراکتر مینویسد.
بنچمارکها و عملکرد
یکی از خیرهکنندهترین جنبههای Jevmem، کارایی آن است. در آزمونی که در ۲۳ سپتامبر ۲۰۲۶ انجام شد، تصمیمگیری خودکار Jevmem در برابر ۶ مدل زبانی بزرگ (LLM) در ۶۶ نوبت تست شد. نتایج نشاندهنده شکافی عظیم در سرعت و هزینه است:
- تأخیر (Latency): میانگین زمان تصمیمگیری Jevmem تنها ۰.۳۰ ثانیه است (و ۰.۶ ثانیه در حالت End-to-End شامل زمان شروع Node). در مقابل، مدلهایی مانند GPT-6 Astra (۳,۴۶۹ میلیثانیه) و Claude Opus 5.5 (۲,۷۸۴ میلیثانیه) به طور قابل توجهی کندتر بودند.
- هزینه: هزینه هر تصمیم در Jevmem حدود ۰.۰۰۰۱۲۷ دلار است. در حالی که GPT-6 Astra هزینهای معادل ۰.۰۰۷۴۸۹ دلار دارد که Jevmem را تقریباً ۴۰ تا ۶۰ برابر ارزانتر میکند.
- صحت: این ابزار به دقت ۹۸.۵٪ در ذخیرهسازی/نادیده گرفتن رسید که با بالاترین امتیاز GPT-6 Astra برابری میکند. همچنین Jevmem توانست ۵ مورد از ۵ تضاد موجود را شناسایی کند که با ۵ مدل از ۶ مدل بررسی شده برابری میکرد.
در این میان، GPT-6 Luna کمی ارزانتر بود (۰.۰۰۰۰۸۹ دلار)، اما حدود ۱۰ برابر کندتر و با دقت کمتری (۹۳.۹٪) عمل کرد.
حریم خصوصی و امنیت
برای محافظت از دادههای حساس، Jevmem شامل یک لایه پاکسازی است که الگوهای رایج اسرار، ایمیلها و اعداد ۱۶ رقمی را پیش از خروج داده از ماشین محلی حذف میکند. به طور مشخص، این لایه روی کلیدهای API، توکنها، جفتهای *_PASSWORD=، رمزهای عبور رشته اتصال (Connection-string) و کلیدهای خصوصی تمرکز دارد. البته این سیستم نامها، شماره تلفنها یا آدرسها را شناسایی نمیکند.
این ابزار با TypeSafe AI یکپارچه شده تا امتیازدهی کند که آیا یک نوبت گفتگو باید ذخیره شود یا خیر. دادههای ارسالی شامل پیام کاربر، پاسخ دستیار (برای باگها/سوالات)، دو نوبت قبلی گفتگو و خطوط موجود در حافظه است. کاربران میتوانند به صورت اختیاری کلیدهای OpenAI یا Anthropic خود را برای فرآیند نوشتن خطوط حافظه ارائه دهند. Jevmem همچنین میتواند پرچم zeroDataRetention: true را ارسال کند، هرچند نویسنده اشاره کرده است که تأیید نکرده که آیا درگاه (Gateway) این درخواست را رعایت میکند یا خیر.
جزئیات پیادهسازی
راهاندازی ابزار با دستور npm install -g jevmem در حدود ۶۰ ثانیه انجام میشود. پس از مقداردهی اولیه با دستور jevmem init --tool claude، ابزار یک فایل JEVMEM.md، یک فایل jevmem.config.json و یک پوشه .jevmem/ (که در gitignore قرار میگیرد) ایجاد میکند.
توسعهدهندگان به طیف گستردهای از دستورات مدیریتی دسترسی دارند:
- نگهداری: دستور
jevmem auditحافظهها را دوباره در برابر مخزن کد امتیازدهی میکند تا ورودیهای قدیمی (Stale) را علامتگذاری کند؛ دستورjevmem fitوزنها را بر اساس برچسبها بازتنظیم میکند (به بیش از ۴۰ برچسب نیاز دارد). - بازرسی: دستور
jevmem why <id>پاسخ Jev را در پشت یک تصمیم خاص نشان میدهد؛ دستورjevmem statsمعیارهای p50/p95 تأخیر و هزینه روزانه را ارائه میدهد. - کنترل دستی: دستور
jevmem addاجازه ورود دستی دادهها را میدهد (که پاکسازی میشود اما بررسی Jev را طی نمیکند)؛ دستورjevmem searchحافظهها را بر اساس ارتباط رتبهبندی میکند.
محدودیتهای صادقانه
نویسنده اشاره میکند که این ابزار در حال حاضر در نسخه ۰.۴ است و بنچمارکها توسط خود او و نه یک شخص ثالث مستقل ایجاد شدهاند. علاوه بر این، در حالی که ابزار تضمین میکند خطوط مرتبط به پرامپت تزریق شوند، هنوز اندازهگیری نشده است که آیا این کار واقعاً کیفیت نهایی خروجی کد AI را در استفاده بلندمدت بهبود میبخشد یا خیر.
سایر محدودیتها عبارتند از:
- انحراف (Drift): انحراف در بلندمدت اندازهگیری نشده است؛ محیط تست تنها جلسات پنجنوبتی را پوشش میدهد.
- پایداری: قطعیهای سرویس Jev منجر به نادیده گرفته شدن نوبتهای گفتگو میشود. هر فراخوانی بودجه زمانی ۲ ثانیهای دارد؛ خطاها در
.jevmem/log.jsonlثبت میشوند اما تلاش مجددی (Retry) صورت نمیگیرد. - اتوماسیون: ثبت خودکار تنها به Claude Code و Codex (از طریق
jevmem watch) محدود است.
این چرخش به سمت «ریز-حافظه» نشان میدهد که آینده کدنویسی AI لزوماً در گسترش پنجرههای متنی نیست، بلکه در فیلترهای هوشمند و ارزانقیمتی است که تصمیم میگیرند چه چیزی واقعاً ارزش به خاطر سپردن دارد. با سپردن تصمیم «آیا باید این را ذخیره کنم؟» به یک API تخصصی، توسعهدهندگان میتوانند یک ردپای حسابرسی (Audit trail) کامل از پروژه داشته باشند بدون اینکه برای هر پیام، «مالیات LLM» (هزینه بالای مدلهای بزرگ) را پرداخت کنند.
برای شروع، میتوانید ابزار را در پروژه فعلی خود با دستور jevmem init --tool claude مقداردهی اولیه کنید و رشد حافظه خود را از طریق دستور jevmem list رصد نمایید.
گام بعدی شما
- اگر از Claude Code یا Cursor استفاده میکنید، Jevmem را نصب کنید تا از تکرار دستورات معماری جلوگیری کنید.
- فایل
JEVMEM.mdرا به.gitignoreاضافه کنید تا اسرار پروژه در مخزن کد ذخیره نشود. - با دستور
jevmem statsهزینه و تأخیر روزانه سیستم حافظه خود را رصد کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو