📇 یکی از ابزارهایی که باید توی هر پروژهای استفاده بشه، Codebase Memory هست.
https://deusdata.github.io/codebase-memory-mcp/
🟢کاری که میکنه در ظاهر سادهست: کل Codebase شما رو index میکنه و از ارتباط بین بخشهای مختلف کد یک Knowledge Graph میسازه؛ از function و class و interface گرفته تا call chainها، dependencyها، routeها و حتی جریان داده بین functionها.
نتیجه اینه که Agent برای جواب دادن به سؤالهایی مثل:
«این function کجاها استفاده شده؟»
«اگه اینو تغییر بدم چه چیزهایی ممکنه بشکنه؟»
«این request از کجا وارد سیستم میشه و تا کجا میره؟»
دیگه مجبور نیست هی grep بزنه، فایل باز کنه، دوباره سرچ کنه و نصف context window رو صرف پیدا کردن کدی کنه که اصلاً دنبالشه.
بهجاش از طریق MCP مستقیماً روی گراف Codebase query میزنه.
✍️تفاوتش هم فقط تئوری نیست.
توی مقالهای که روی ۳۱ پروژهی واقعی تستش کرده، Codebase Memory با حدود ۱۰ برابر توکن کمتر و ۲.۱ برابر tool call کمتر به 83٪ کیفیت پاسخ رسیده؛ در مقایسه با 92٪ برای Agentی که کدها رو به روش معمول file-by-file میخونه.
↗️ خود پروژه هم برای ۵ تا structural query مشخص benchmark گرفته: حدود ۳,۴۰۰ توکن با graph در مقابل ۴۱۲,۰۰۰ توکن با روش file-by-file. یعنی توی اون تست خاص چیزی حدود 120x مصرف توکن کمتر.
🔭 ایجنت از اول یک دید ساختاری نسبت به پروژه داره. میتونه call chain رو دنبال کنه، impact یک تغییر رو پیدا کنه، dead code رو تشخیص بده، architecture پروژه رو دربیاره و حتی ارتباط بین چند service رو دنبال کنه.
امکان Semantic Search هم داره؛ یعنی لازم نیست حتماً اسم دقیق function رو بدونید. مثلاً دنبال مفهوم send بگردید، میتونه چیزهایی مثل publish یا dispatch رو هم پیدا کنه.
ضمن اینکه همهی indexing و queryها لوکال انجام میشن و کدتون برای ساخت این graph جایی آپلود نمیشه.
خلاصه اینکه بهجای اینکه Agent هر بار پروژه رو از صفر «کشف» کنه، یک نقشهی قابل سرچ از Codebase جلوش میذارید.
مخصوصاً روی پروژههای بزرگ، تفاوتش خیلی محسوستر میشه.
و بالاخره کمتر شاهد Agentی هستیم که برای پیدا کردن یک function شروع میکنه با grep و find و jq کل repository رو شخم زدن 🤢
https://deusdata.github.io/codebase-memory-mcp/
🟢کاری که میکنه در ظاهر سادهست: کل Codebase شما رو index میکنه و از ارتباط بین بخشهای مختلف کد یک Knowledge Graph میسازه؛ از function و class و interface گرفته تا call chainها، dependencyها، routeها و حتی جریان داده بین functionها.
نتیجه اینه که Agent برای جواب دادن به سؤالهایی مثل:
«این function کجاها استفاده شده؟»
«اگه اینو تغییر بدم چه چیزهایی ممکنه بشکنه؟»
«این request از کجا وارد سیستم میشه و تا کجا میره؟»
دیگه مجبور نیست هی grep بزنه، فایل باز کنه، دوباره سرچ کنه و نصف context window رو صرف پیدا کردن کدی کنه که اصلاً دنبالشه.
بهجاش از طریق MCP مستقیماً روی گراف Codebase query میزنه.
✍️تفاوتش هم فقط تئوری نیست.
توی مقالهای که روی ۳۱ پروژهی واقعی تستش کرده، Codebase Memory با حدود ۱۰ برابر توکن کمتر و ۲.۱ برابر tool call کمتر به 83٪ کیفیت پاسخ رسیده؛ در مقایسه با 92٪ برای Agentی که کدها رو به روش معمول file-by-file میخونه.
↗️ خود پروژه هم برای ۵ تا structural query مشخص benchmark گرفته: حدود ۳,۴۰۰ توکن با graph در مقابل ۴۱۲,۰۰۰ توکن با روش file-by-file. یعنی توی اون تست خاص چیزی حدود 120x مصرف توکن کمتر.
🔭 ایجنت از اول یک دید ساختاری نسبت به پروژه داره. میتونه call chain رو دنبال کنه، impact یک تغییر رو پیدا کنه، dead code رو تشخیص بده، architecture پروژه رو دربیاره و حتی ارتباط بین چند service رو دنبال کنه.
امکان Semantic Search هم داره؛ یعنی لازم نیست حتماً اسم دقیق function رو بدونید. مثلاً دنبال مفهوم send بگردید، میتونه چیزهایی مثل publish یا dispatch رو هم پیدا کنه.
ضمن اینکه همهی indexing و queryها لوکال انجام میشن و کدتون برای ساخت این graph جایی آپلود نمیشه.
خلاصه اینکه بهجای اینکه Agent هر بار پروژه رو از صفر «کشف» کنه، یک نقشهی قابل سرچ از Codebase جلوش میذارید.
مخصوصاً روی پروژههای بزرگ، تفاوتش خیلی محسوستر میشه.
و بالاخره کمتر شاهد Agentی هستیم که برای پیدا کردن یک function شروع میکنه با grep و find و jq کل repository رو شخم زدن 🤢