اگر در پروژههای بزرگ از عاملهای کدنویس هوش مصنوعی استفاده میکنید، احتمالاً مبلغ زیادی را بابت «مالیات اکتشاف» پرداخت میکنید که بودجه شما را میبلعد. CodeGraph با کاهش ۶۴ درصدی مصرف توکن و ۸۱ درصدی فراخوانی ابزارها برای پرسوجوهای پیچیده در کدبیس VS Code، این مشکل را حل کرده است؛ یافتهای که در ۸ ژوئن ۲۰۲۶ از طریق وبسایت dev.to منتشر شد.
بیشتر عاملهای هوش مصنوعی امروزه شبیه پژوهشگری کور در یک کتابخانه عمل میکنند. وقتی از آنها یک سؤال درباره ویژگی خاصی میپرسید، مثلاً اینکه «یک درخواست پرداخت چگونه به پایگاه داده میرسد»، مدل شروع به انجام مجموعهای از جستوجوهای تکراری با دستور grep و خواندن فایلها میکند تا کد مرتبط را پیدا کند.
مالیات اکتشاف در عمل
برای درک این اتلاف، گردش کار یک عامل معمولی بدون سیستم ایندکسگذاری را در نظر بگیرید:
- جستوجوی
grep "payment"$\rightarrow$ ۴۷ نتیجه $\rightarrow$ ۸۰۰ توکن - خواندن
payment.service.ts$\rightarrow$ یافتن یک سرنخ $\rightarrow$ ۱۲۰۰ توکن - جستوجوی
grep "processPayment"$\rightarrow$ ۳ نتیجه $\rightarrow$ ۷۰۰ توکن - خواندن
order.handler.ts$\rightarrow$ نزدیک بود اما مورد مقصود نبود $\rightarrow$ ۹۵۰ توکن - جستوجوی
grep "db.query"$\rightarrow$ ۸ نتیجه $\rightarrow$ ۶۵۰ توکن - خواندن
db.repository.ts$\rightarrow$ بالاخره پیدا شد $\rightarrow$ ۱۱۰۰ توکن
در این سناریو، مدل ۵۴۰۰ توکن و ۶ فراخوانی ابزار صرف میکند تا فقط فایلهای درست را پیدا کند. مدل حدس میزند، یک فایل را میخواند، متوجه میشود اشتباه بوده و دوباره grep میکند. این حلقه تکراری، ۵۰ تا ۷۰ درصد بودجه توکنها را صرفاً برای «کشف» مصرف میکند، نه برای استدلال واقعی یا نوشتن کد.
تفاوت این روش با CodeGraph مثل تفاوت گشتن تکتک قفسههای یک کتابخانه برای یافتن یک کتاب، با استفاده از یک فهرست کارتونی است که شما را مستقیم به راهروی درست میبرد. CodeGraph دقیقاً نقش همان فهرست کارتونی را ایفا میکند. این ابزار به جای اسکن کردن سیستم فایل در لحظه پرسوجو، کل کدبیس را پیشایندکس کرده و در یک گراف دانش (Knowledge Graph) ساختاریافته ذخیره میکند که در یک پایگاه داده محلی SQLite قرار دارد.
سازوکار ایندکسگذاری
به نقل از تحلیل فنی dev.to، این ابزار نقشه خود را از طریق یک معماری چهارلایه میسازد:
- لایه ۱: اسکن منبع (Source Scanning): دستور
codegraph init -iپروژه را اسکن میکند. این لایه به طور پیشفرض پوشهnode_modules، خروجیهای build و هر چیزی که در.gitignoreلیست شده است را نادیده میگیرد. - لایه ۲: تجزیه AST: این ابزار از tree-sitter استفاده میکند؛ یک پارسر افزایشی که بیش از ۲۰ زبان برنامهنویسی را میشناسد تا درختهای نحو انتزاعی (Abstract Syntax Trees) را ایجاد کند. این قابلیت به ابزار اجازه میدهد تا تفاوت بین یک فراخوانی تابع و یک متغیر با نام مشابه را تشخیص دهد و از جستوجوهای ساده مبتنی بر regex (مانند grep) فراتر رود.
- لایه ۳: گراف دانش: گرههای استخراج شده (توابع، کلاسها، متدها) و یالها (فراخوانیها، ایمپورتها، ارثبریها و پیادهسازیها) در یک پایگاه داده محلی SQLite با قابلیت جستوجوی تماممتن FTS5 ذخیره میشوند. تمام دادهها ۱۰۰٪ محلی باقی میمانند و هیچگونه نشت دادهای (Data Leakage) رخ نمیدهد.
- لایه ۴: سرور MCP: یک سرور پروتکل کانتکست مدل (Model Context Protocol) گراف را از طریق هشت ابزار تخصصی به عاملهایی مثل Claude Code، Cursor یا Codex متصل میکند.

مجموعه ابزارهای MCP
قدرت CodeGraph در ابزارهای خاصی است که در اختیار عامل قرار میدهد؛ این ابزارها به جای ارائه مکانهای متنی، «روابط» را بازمیگردانند:
codegraph_explore: به سؤال «X چگونه کار میکند؟» پاسخ میدهد و نمادهای مرتبط و سورسکد را به تفکیک فایل برمیگرداند.codegraph_search: توابع خاص را مکانیابی میکند (مثلاً «تابع X کجاست؟»).codegraph_callersوcodegraph_callees: شناسایی میکند که چه کسی یک نماد را صدا میزند و آن نماد چه چیزهایی را فراخوانی میکند.codegraph_impact: تحلیل میکند که اگر قطعه خاصی از کد تغییر کند، چه بخشهایی از سیستم ممکن است دچار شکست (Break) شوند.codegraph_node: سورسکد کامل یک نماد خاص را بازیابی میکند.codegraph_files: ساختار کلی فایلها را نقشهبرداری میکند.codegraph_status: بررسی میکند که آیا ایندکس بهروز است یا خیر.
عملکرد در ۷ مخزن کد
تست روی هفت پروژه متنباز با استفاده از مدل Claude Opus 4.8 نشان میدهد که میزان صرفهجویی با افزایش اندازه پروژه، بیشتر میشود. در بنچمارک VS Code (با حدود ۱۰ هزار فایل)، مدل بدون CodeGraph به ۲۱ فراخوانی ابزار و ۱.۷۹ میلیون توکن نیاز داشت. با CodeGraph، همین پاسخ معماری تنها با ۴ فراخوانی ابزار و ۶۴۰ هزار توکن به دست آمد که هزینه پرسوجو را ۱۸٪ کاهش داد.
سایر نتایج میانگین از این مطالعه عبارتند از:
- Alamofire (Swift, ~۱۱۰ فایل): ۶۴٪ کاهش توکن، ۵۸٪ کاهش فراخوانی ابزار و ۴۰٪ صرفهجویی در هزینه.
- Django (Python, ~۳ هزار فایل): ۶۰٪ کاهش توکن، ۷۷٪ کاهش فراخوانی ابزار و ۸٪ صرفهجویی در هزینه.
- OkHttp (Java, ~۶۴۵ فایل): ۵۴٪ کاهش توکن، ۵۰٪ کاهش فراخوانی ابزار و ۲۵٪ صرفهجویی در هزینه.
- Tokio (Rust, ~۷۹۰ فایل): ۳۸٪ کاهش توکن و ۵۷٪ کاهش فراخوانی ابزار.
- Gin (Go, ~۱۱۰ فایل): ۲۳٪ کاهش توکن، ۴۴٪ کاهش فراخوانی ابزار و ۱۹٪ صرفهجویی در هزینه.
- Excalidraw (TS, ~۶۴۰ فایل): ۲۵٪ کاهش توکن و ۴۰٪ کاهش فراخوانی ابزار.

در موارد «نقطه سربهسر» مانند Tokio و Excalidraw، هزینهها ثابت ماند زیرا پاسخهای CodeGraph به دلیل ارائه دادههای ساختاریافته و کانتکست بیشتر، طولانیتر (Verbose) هستند. با این حال، کاهش تعداد فراخوانیهای ابزار و توکنها همچنان یک دستاورد قابل توجه در بهرهوری است.
پیادهسازی و بازگشت سرمایه (ROI)
راهاندازی این ابزار از طریق یک اسکریپت ساده شل، تقریباً ۱ تا ۳ دقیقه زمان میبرد. برای توسعهدهندهای که روزانه ۲۰ سؤال معماری میپرسد، نویسنده تخمین میزند که هزینه هر سؤال از ۰.۸۳ دلار به ۰.۶۸ دلار کاهش یابد. این یعنی صرفهجویی حدود ۳ دلار در روز، ۹۰ دلار در ماه یا ۱۰۸۰ دلار در سال.
چه زمانی از CodeGraph استفاده کنیم؟
- پروژههای بالای ۵۰۰ فایل: مالیات اکتشاف با اندازه پروژه به صورت خطی رشد میکند؛ بالای ۵۰۰ فایل، حلقه «grep-read» واقعاً گران میشود.
- کاربران حرفهای عاملها: کسانی که از Claude Code، Cursor یا Codex استفاده میکنند، جایی که زیر-عاملهای Explore هزینههای سربار را چند برابر میکنند.
- پروژههای چندزبانه: مانند Swift+ObjC یا React Native (JS+Native)، جایی که
grepنمیتواند از مرزهای زبانی عبور کند. - تیمهای CI/CD: با استفاده از دستور
codegraph affectedبرای تعیین اینکه پس از تغییرات، کدام تستها باید اجرا شوند.
چه زمانی از آن صرفنظر کنیم؟
- میکرو-پروژهها: پروژههای زیر ۵۰ فایل که سربار ایندکسگذاری در آنها توجیهپذیر نیست.
- کارهای ساده CRUD: اگر هرگز سؤالات معماری نمیپرسید، نیازی به نقشه ندارید.
- کاربران نسخه وب ChatGPT: این کاربران فاقد پشتیبانی از MCP هستند و بنابراین CodeGraph نمیتواند به آنها متصل شود.
این تغییر حیاتی است چون پنجرههای متنی (Context Windows) محدود هستند. وقتی یک عامل بخش بزرگی از «پهنای باند ذهنی» خود را صرف پیدا کردن فایلها میکند، فضای کمتری برای تحلیل عمیق باقی میماند. با برونسپاری اکتشاف به یک گراف محلی، مدل میتواند بخش بیشتری از پنجره متنی خود را به حل واقعی مسئله اختصاص دهد.
برای کسانی که از Claude Code یا Cursor استفاده میکنند، انتقال ساده است: runtime را نصب کنید (نیازی به Node.js نیست)، دستور codegraph install را اجرا کرده و پروژه را با codegraph init -i مقداردهی اولیه کنید. پس از فعالسازی، میتوانید سلامت سیستم را با codegraph status بررسی کنید یا جستوجوهای سریع CLI را با codegraph query <symbol> انجام دهید. خواهید دید که مدل دیگر از grep استفاده نمیکند و برای پیمایش کد شما از codegraph_explore بهره میبرد.




گفتگو