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

Friday: کاهش ۹۰ درصدی هزینه‌های توکن با لایه حافظه شناختی

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

پیاده‌سازی یک لایهٔ حافظهٔ شناختی مستقل و میزبانی شخصی که از طریق MCP بین IDEهای مختلف مشترک است و هزینه استنتاج را با بازیابی هدفمند به شدت کاهش می‌دهد.

تصور کنید هر بار که محیط کدنویسی خود را باز می‌کنید، مجبور باشید برای چهارمین بار در هفته، معماری احراز هویت پروژه را برای هوش مصنوعی توضیح دهید. این «فراموشی دیجیتال» بزرگ‌ترین مانع بهره‌وری در استفاده از دستیارهای کدنویسی است. کدنویسی با Friday به این معناست که دیگر هرگز مجبور نباشید ساختار احراز هویت خود را برای ۴۷مین بار در یک هفته برای یک AI توضیح دهید.

پروژهٔ متن‌باز Friday که در ۱۶ سپتامبر ۲۰۲۶ منتشر شد، با ایجاد یک لایهٔ حافظهٔ شناختی (Cognitive Memory) دائمی بین محیط توسعه (IDE) و مدل زبانی بزرگ (LLM) — که شبیه کتابخانه‌داری است که میلیاردها صفحه را خوانده و حالا با همان لحن جواب می‌دهد — این مشکل را ریشه‌ای حل می‌کند. هر توسعه‌دهنده‌ای شایسته یک F.R.I.D.A.Y است؛ یک لایه حافظه شناختی دائمی و میزبانی شخصی برای عامل‌های کدنویسی AI.

بسیاری از دستیارهای کدنویسی فعلی با یک نقص طراحی حیاتی روبروستند: هر جلسهٔ چت جدید را از نقطهٔ صفر شروع می‌کنند. همان‌طور که در تحلیل قبلی ما درباره‌ی مدیریت زمینه در مدل‌های Claude و Gemini اشاره کردیم، اکثر ابزارها هنوز به کاربر وابسته هستند تا دستی فایل‌ها در پنجرهٔ پرامپت بریزد یا زمینه را بازسازی کند. این چالش با نبردهای جاری میان ذخیره‌سازهای معنایی و حافظه‌های خطی برای حفظ دستورات اولیه AI هم‌سو است. طبق گزارش‌های توسعه‌دهندگان، این ناکارآمدی باعث می‌شود تا ۴۰٪ از زمان برنامه‌نویس صرف بازسازی زمینه (Context) شود، نه نوشتن کد. برای مثال، ممکن است توسعه‌دهنده‌ای استراتژی JWT و شمای پایگاه‌داده خود را در یک جلسه توضیح دهد، اما به محض باز کردن یک چت جدید، AI دوباره بپرسد: «از کدام کتابخانه JWT استفاده می‌کنید؟»

Friday این وضعیت را با پیاده‌سازی یک ستون فقرات میزبانی شخصی (Self-hosted) تغییر می‌دهد که از طریق پروتکل زمینهٔ مدل (MCP) به ابزارهای موجود متصل می‌شود. بر اساس مستندات این پروژه در گیت‌هاب، این معماری اجازه می‌دهد یک «مغز مرکزی» به‌طور هم‌زمان به چندین عامل سرویس دهد. این یعنی یک قانون معماری که توسط Claude Code در ترمینال ذخیره شده، بلافاصله در Cursor یا VS Code در دسکتاپ در دسترس است، بدون اینکه نیاز به همگام‌سازی دستی باشد. این «ابرقدرت مغز مشترک» تضمین می‌کند که چه Friday به‌صورت محلی اجرا شود و چه روی یک سرور ابری ۲۴ ساعته (مانند AWS EC2، یک VPS یا Homelab)، هر عامل از طریق انتقال stdio به همان حافظه یکپارچه متصل شود.

معماری حافظه

این سیستم برای تقلید از شناخت انسانی، از یک رویکرد لایه‌ای تحت مدیریت FastAPI استفاده می‌کند. سیستم از یک مسیریاب تخصصی استفاده می‌کند تا بهترین لایه را بر اساس نوع پرس‌وجو انتخاب کند:

  • لایه ۲ (Mem0): مدیریت حافظهٔ معنایی برای تداوم بین جلسات و شباهت‌های زمینه‌ای. این لایه قابلیت اصلی AI برای به خاطر سپردن ترجیحات کاربر در طول ریست‌های مختلف چت را فراهم می‌کند.
  • لایه ۳ (ChromaDB): یک پایگاه‌داده برداری (Vector Database) محلی — مثل کارت معرفی عددی برای هر واژه که می‌گوید این کلمه همسایه‌ی چه کلمات دیگری است — برای بازیابی جراحی‌گونه و دقیق اطلاعات مرتبط. این لایه برای کاهش نویز در پرامپت‌ها حیاتی است.
  • لایه ۴ (Neo4j): یک گراف دانش (Knowledge Graph) که موجودیت‌ها و روابط را در یک کدبیس نقشه‌برداری می‌کند و یک صورت‌بندی بصری از دانش پروژه ایجاد می‌کند.

این ساختار باعث کاهش شدید اتلاف توکن می‌شود. در روش‌های سنتی تولید بازیابی‌افزا (RAG) — شبیه دانش‌آموزی که قبل از جواب دادن، اول کتاب درسی را باز می‌کند و از آن نقل می‌آورد — بلوک‌های حجیمی از حافظه به پرامپت فرستاده می‌شد که هر تسک حدود ۸۰۰۰ توکن هزینه داشت و دقت بازیابی آن تنها حدود ۳۰٪ بود. اما بازیابی هدفمند Friday این مقدار را به تقریباً ۸۰۰ توکن کاهش داده است؛ یعنی ۹۰٪ کاهش هزینه و نویز، در حالی که دقت بازیابی به حدود ۹۴٪ رسیده است. این رویکرد یادگیری از تجربیات، مشابه سیستم WikiSkill گوگل است که با ثبت تجربیات، دقت مدل‌های Gemini را به‌طور چشم‌گیری افزایش داد.

جزئیات پیاده‌سازی فنی

برای دستیابی به این هدف، Friday از یک ساختار دایرکتوری خاص و سیستم خط لوله (Pipeline) برای مدیریت جریان داده استفاده می‌کند:

  • درگاه و ارکستراسیون: فایل gateway/main.py به عنوان ستون فقرات FastAPI برای احراز هویت و مسیریابی عمل می‌کند، در حالی که orchestrator/router.py تعیین می‌کند بر اساس نوع درخواست، کدام لایه حافظه مورد پرس‌وجو قرار گیرد.
  • خط لوله‌های هوشمند: پردازش‌های پس‌زمینه در پوشه pipelines/ وظایف سنگین را بر عهده دارند. auto_graph.py استخراج موجودیت‌های LLM برای Neo4j را مدیریت می‌کند و extract_facts.py مدیریت حقایق نسخه‌دار به سبک S3 را بر عهده دارد.
  • سرور MCP: فایل mcp/server.py استاندارد JSON-RPC 2.0 را پیاده می‌کند تا IDEها بتوانند از طریق stdio با مغز مرکزی ارتباط بگیرند.
  • مسیر جریان داده: یک ورودی حافظه معمولی این مسیر را طی می‌کند: [IDE] $ \rightarrow $ فراخوانی MCP $ \rightarrow $ gateway/main.py $ \rightarrow $ ذخیره در Mem0 $ \rightarrow $ auto_graph.py $ \rightarrow $ مدل DeepSeek LLM (استخراج) $ \rightarrow $ Neo4j (ادغام گره/ایجاد یال).

تجزیه و تحلیل دقیق اجزا

  • درگاه (The Gateway): دایرکتوری gateway/ شامل main.py است که تمام مسیریابی‌ها و احراز هویت‌ها را مدیریت می‌کند. این بخش نقطه ورود اصلی برای هر دو رابط REST API و سرور MCP است.
  • لایه‌های قابل تعویض: دایرکتوری layers/ برای ماژولار بودن طراحی شده است. این بخش شامل layer2_mem0.py برای حافظه معنایی ابری، layer3_chroma.py برای ذخیره‌سازی برداری محلی و layer4_neo4j.py برای گراف دانش است. این لایه‌ها را می‌توان در صورت نیاز تعویض کرد.
  • استودیو (The Studio): پوشه studio/ شامل index.html است؛ یک فرانت‌اند ۱۴۰۰ خطی که با force-graph، d3 و JS خام ساخته شده و برای اجرا به هیچ وابستگی (Dependency) نیاز ندارد.
  • راه‌اندازی اولیه (Bootstrapping): دایرکتوری seed/ داده‌های دمو از جمله facts.example.json و blueprints/demo_architecture.md را فراهم می‌کند تا به کاربران در راه‌اندازی سریع یک نصب تازه کمک کند.
  • زیرساخت: پروژه شامل یک Dockerfile بر پایه python:3.11-slim و یک docker-compose.yml است که مغز Friday را همراه با Neo4j برای استقرار در محیط عملیاتی (Production) بسته‌بندی می‌کند.

موتور Auto-Graph و استودیو عصبی

یکی از متمایزترین ویژگی‌های این ابزار، موتور Auto-Graph است. وقتی برنامه‌نویس حافظه‌ای را ذخیره می‌کند — برای مثال: «اپلیکیشن من برای اشتراک‌ها از Stripe استفاده می‌کند. پلن‌ها: رایگان (۰ دلار)، حرفه‌ای (۱۹ دلار در ماه)، تیمی (۴۹ دلار در ماه). PayPal پرداخت‌های بین‌المللی را مدیریت می‌کند. وب‌هوک‌ها در مسیر /api/payments/webhook هستند» — سیستم با استفاده از مدل DeepSeek Flash به‌طور خودکار موجودیت‌ها و روابط را استخراج می‌کند.

سپس این اطلاعات را بدون نیاز به تگ‌گذاری دستی، فایل‌های YAML یا لینک‌دهی دستی، به صورت گره‌ها و یال‌ها در گراف Neo4j سیم‌کشی می‌کند. در مثال بالا، موتور به‌طور خودکار گره‌هایی برای «MyApp»، «Stripe» و «PayPal» ایجاد کرده و یال‌هایی مانند MyApp ────USES────────▶ Stripe و Stripe ───WEBHOOK_AT──▶ /api/payments/webhook را برقرار می‌کند.

برای بصری‌سازی این داده‌ها، Friday ابزاری به نام Neural Studio ارائه داده است. این مرورگر گراف دانش، مشابه نمای گراف در Obsidian عمل می‌کند و به توسعه‌دهندگان اجازه می‌دهد:

  • کاوش در صورت‌بندی‌ها: کل پایگاه دانش را به صورت یک صورت‌بندی زنده مشاهده کنند.
  • دستکاری نما: از یک اسلایدر پخش (۱ تا ۱۰) برای ایجاد فضای بیشتر در گراف‌های متراکم به‌صورت آنی استفاده کنند.
  • فیلتر و بازرسی: از تراشه‌های فیلتر پروژه برای ایزوله کردن بخش‌های خاص (مثلاً WebApp در برابر Auth) استفاده کرده و از یک کشوی بازرس (Inspector) برای عملیات کامل CRUD استفاده کنند.
  • مدیریت داده‌ها: گره‌ها را مستقیماً از طریق رابط کاربری اضافه، تغییر نام، حذف یا متصل کنند، با این قابلیت که فیزیک گراف را برای تثبیت چیدمان منجمد کنند.
  • به‌روزرسانی‌های آنی: رابط کاربری دارای قابلیت به‌روزرسانی خودکار زنده هنگام رسیدن حافظه‌های جدید و گزینه «Fit View» برای بازنشینی دوربین است.

مدیریت حقایق نسخه‌دار (Versioned Facts) و ردپای ممیزی

علاوه بر حافظهٔ سیال، Friday یک دفتر کل «حقایق نسخه‌دار» شبیه S3 پیاده کرده است. این بخش برای قوانین اتمی است که به‌ندرت تغییر می‌کنند، مانند اهداف استقرار (Deployment Targets) یا استانداردهای تیم. این حقایق مجزا با یک تاریخچه نسخه تغییرناپذیر ذخیره می‌شوند که در آن نسخه‌های قدیمی جایگزین می‌شوند اما هرگز حذف نمی‌شوند. این رویکرد برای ایجاد پایداری دانش، یادآور استفاده از گاوصندوق‌های محلی SQLite در LoreDocs است تا از فقدان حافظه در جلسات طولانی جلوگیری شود.

وقتی یک حقیقت به‌روز می‌شود — مثلاً تغییر از «ما روی Ubuntu 22.04 LTS + systemd مستقر می‌شویم» به «ما روی Ubuntu 24.04 LTS + Docker Compose مستقر می‌شویم» — حقیقت قدیمی با superseded: true و حقیقت جدید با superseded: false علامت‌گذاری می‌شود. این کار تضمین می‌کند که هوش مصنوعی همیشه فعال‌ترین نسخه را دریافت کند، اما یک ردپای ممیزی (Audit Trail) کامل حفظ شود. توسعه‌دهندگان می‌توانند تاریخچه کامل را از طریق API با استفاده از GET /facts?include_superseded=true بازیابی کنند.

استقرار و پیکربندی

استقرار این سیستم از طریق Docker Compose انجام می‌شود و نیازی به پیکربندی دستی پایتون یا پایگاه‌داده ندارد. این تنظیمات برای یک «راه‌اندازی ۶۰ ثانیه‌ای» طراحی شده است که در آن کاربران مخزن را کلون کرده، یک فایل .env را پیکربندی می‌کنند و همه چیز را با یک دستور اجرا می‌کنند.

پیکربندی محیطی:
کاربران باید متغیرهای زیر را در فایل .env خود تنظیم کنند:

  • FRIDAY_API_KEY: یک رمز عبور محرمانه برای محافظت از سرور میزبانی شخصی.
  • DEEPSEEK_API_KEY: برای استخراج Auto-graph (با هزینه حدود ۰.۱۴ دلار به ازای هر میلیون توکن).
  • MEM0_API_KEY: برای حافظه معنایی (لایه رایگان سخاوتمندانه‌ای دارد).
  • NEO4J_PASSWORD: یک رمز عبور قوی برای پایگاه‌داده Neo4j.
  • NEO4J_URI: به‌طور پیش‌فرض bolt://neo4j:7687 است.
  • DEEPSEEK_MODEL: به‌طور پیش‌فرض deepseek-chat است.
  • FACTS_PATH: به‌طور پیش‌فرض /app/facts/facts.json است.

سیستم سپس یک نقطهٔ اتصال سلامت (/health) را ارائه می‌دهد تا وضعیت لایه‌های Neo4j، Mem0 و حقایق را بررسی کند. یک بررسی موفق خروجی {"status":"healthy","layers":{"neo4j":"ok","mem0":"ok","facts":"ok"}} را برمی‌گرداند.

API و ابزارها

Friday یک REST API جامع فراهم می‌کند که در آن تمام نقاط اتصال نوشتاری (Write Endpoints) به هدر X-Brain-Key نیاز دارند. نقاط اتصال کلیدی عبارتند از:

  • POST /add: ذخیره یک حافظه و فعال کردن سیم‌کشی auto-graph.
  • POST /facts: افزودن یا جایگزینی یک حقیقت نسخه‌دار.
  • GET /facts: لیست کردن تمام حقایق فعال.
  • POST /search: انجام جستجوی معنایی از طریق Mem0.
  • POST /ingest: اجازه ورود اسناد کامل یا بلوپرینت‌های معماری.
  • GET /api/graph-data: ارائه گره‌ها و یال‌های مورد نیاز برای رندر کردن رابط کاربری Neural Studio.
  • GET /api/search-quick?q=term: جستجوی سریع و فازی نام گره‌ها.
  • POST /api/node/create و DELETE /api/node/{id} و POST /api/node/rename و POST /api/link/create: عملیات کامل CRUD گراف.

سیستم چهار ابزار بومی MCP را در اختیار عامل‌های AI قرار می‌دهد که آن‌ها به‌طور خودکار یاد می‌گیرند از آن استفاده کنند:
۱. get_context: در شروع جلسه (START) برای بارگذاری تمام حقایق فعال و حافظه‌های اخیر جهت جهت‌دهی سریع.
۲. memory_search: پیش از پاسخ به سوالات معماری یا طراحی (مثلاً: «الگوی احراز هویت ما دوباره چه بود؟»).
۳. add_memory: پس از پیاده‌سازی ویژگی‌ها، رفع باگ‌ها یا اتخاذ تصمیمات معماری.
۴. add_fact: برای قوانین اتمی که هرگز تغییر نمی‌کنند، مانند انتخاب‌های استک تکنولوژی و استانداردهای تیم.

پیکربندی کلاینت‌ها

این پروژه از طیف گسترده‌ای از کلاینت‌ها از طریق پیکربندی‌های خاص پشتیبانی می‌کند:

  • Antigravity IDE: پیکربندی از طریق ~/.gemini/config/mcp_config.json با استفاده از دستور python -m mcp.server.
  • Claude Code CLI: اتصال از طریق دستور claude mcp add friday -e FRIDAY_URL="http://localhost:8000" -e BRAIN_API_KEY="your_key" -- python -m mcp.server یا از طریق ~/.claude.json.
  • Cursor: پیکربندی از طریق .cursor/mcp.json در ریشه پروژه یا تنظیمات سراسری.
  • VS Code (Cline / Roo Code): افزودن از طریق settings.json در بخش cline.mcpServers.
  • Claude Desktop: پیکربندی از طریق claude_desktop_config.json در Application Support (macOS) یا AppData (Windows).
  • عامل‌های سفارشی: می‌توانند از طریق MCP stdio یا یک REST API مستقیم HTTP با استفاده از هدر X-Brain-Key تعامل داشته باشند.

به دلیل میزبانی شخصی، پروژه ادعا می‌کند که داده‌ها هرگز زیرساخت یا سرور کاربر را ترک نمی‌کنند. امنیت از طریق احراز هویت کلید API برای تمام نقاط اتصال نوشتاری مدیریت می‌شود، اگرچه Neural Studio و بررسی‌های سلامت به‌طور پیش‌فرض عمومی هستند. برای استقرارهای عمومی، مستندات پیشنهاد می‌کنند از احراز هویت پروکسی معکوس مانند Nginx basic auth یا Cloudflare Access استفاده شود. برای استفاده محلی، کاربران باید آدرس bind میزبان را در فایل .env از 0.0.0.0 به 127.0.0.1 تغییر دهند.

نقشه راه آینده

این تغییر به سمت حافظه دائمی و مستقل از عامل، نشان‌دهنده آینده‌ای است که در آن «هوش» یک محیط کدنویسی، نه فقط در مدل مورد استفاده، بلکه در گراف دانشی است که توسعه‌دهنده در طول زمان می‌سازد. نقشه راه Friday مسیر روشنی را برای این تکامل ترسیم می‌کند:

  • نسخه ۱.۰ (بنیاد): درگاه FastAPI، یکپارچگی Neo4j، Neural Studio و سرور MCP را عرضه کرده است.
  • نسخه ۱.۱ (چند کاربره و DX): در حال حاضر در دست توسعه است و بر روی فضای نام‌های ایزوله (Isolated Namespaces) برای چندین کاربر، یک SDK پایتون (pip install friday-client)، یک SDK برای TypeScript/JS و یک CLI اختصاصی برای مدیریت حافظه در ترمینال تمرکز دارد.
  • نسخه ۱.۲ (یکپارچگی‌ها): یکپارچگی‌های برنامه‌ریزی شده شامل یک بات GitHub Actions برای ذخیره خودکار خلاصه‌های PR، یکپارچگی Slack از طریق /friday remember و وارد کردن خودکار تیکت‌ها از Jira و Linear است.
  • نسخه ۲.۰ (ابری): برنامه‌های آینده برای یک گزینه مدیریت شده «Friday Cloud» با محیط‌های کاری تیمی برای حافظه مهندسی مشترک است.

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

گام بعدی شما

  • مخزن گیت‌هاب Friday را کلون کرده و با Docker Compose روی سیستم خود یا یک VPS راه‌اندازی کنید.
  • اگر از Cursor یا Claude Desktop استفاده می‌کنید، تنظیمات MCP را طبق مستندات پروژه به‌روز کنید تا عامل شما به حافظهٔ دائمی دسترسی یابد.
  • یک فایل architecture.md از پروژه فعلی خود را از طریق نقطهٔ اتصال /ingest وارد کنید تا گراف دانش اولیه شما ساخته شود.

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

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

این ابزار با کاهش ۹۰ درصدی هزینه توکن‌ها و افزایش دقت بازیابی به ۹۴٪، موانع اقتصادی و فنی استفاده از عامل‌های هوشمند در پروژه‌های حجیم را از بین می‌برد. تکیه بر پروتکل MCP، استانداردی را ایجاد می‌کند که در آن حافظه دیگر وابسته به یک شرکت خاص (مانند OpenAI یا Anthropic) نیست.

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

برنامه‌نویسان ایرانی می‌توانند با میزبانی شخصی این ابزار روی سرورهای داخلی، بدون نگرانی از نشت داده‌های حساس پروژه به ابرهای خارجی، از قابلیت‌های حافظهٔ بلندمدت برای عامل‌های کدنویسی بهره‌مند شوند.

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

جداسازی حافظه از جلسهٔ چت، هوش مصنوعی را از یک پیمانکار موقت به یک شریک بلندمدت تبدیل می‌کند که جزئیات ریز کد را می‌شناسد. این رویکرد نشان می‌دهد که در آینده، «هوش» یک محیط توسعه نه در مدل انتخابی، بلکه در گراف دانشی است که برنامه‌نویس طی ماه‌ها پرورش داده است. در واقع، مالکیت داده‌های زمینه‌ای (Context) به مزیت رقابتی جدیدی برای تیم‌های مهندسی تبدیل می‌شود.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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