Graft: ابزاری که کد رو برای عاملهای AI نقشه میکنه
خلاصهٔ کاملتر
عاملهای کدنویسی معمولاً وقت زیادی رو صرف چیزایی میکنن که باید از قبل بدونن: برای یه تغییر کوچیک، دقیقهها فایل میخونن، ایمپورتها رو دنبال میکنن و دوباره میفهمن پروژه چطور کنار هم قرار گرفته، بعد تو همون سشن دوباره همین کارو برای تسک بعدی تکرار میکنن. Graft یه ابزار متنبازه که برای حل همین مشکل یه code graph میسازه: یه نقشهٔ ساختاری از توابع، ایمپورتها و ارتباط بینشون که عامل میتونه مستقیم ازش سوال بپرسه، بهجای اینکه دوباره کل کدبیس رو بخونه.
Graft دو تا لایه داره. لایهٔ ساختاری با tree-sitter (یه ابزار تحلیل کد) کار میکنه، هیچ کلید API لازم نداره و کاملاً رایگانه، چون فقط تحلیل استاتیکه، نه فراخوانی مدل. لایهٔ عمیق اختیاریه و رو همین گراف، خلاصه و مفهومهای تولیدشده با هوش مصنوعی اضافه میکنه، اما چون مدل زبانی صدا میزنه، هزینهٔ API داره. برای بیشتر کارای روزمره، همون لایهٔ ساختاری کافیه: اینکه هر چیز کجاست و چی چیو صدا میزنه، بدون اینکه کل فایل رو تو مکالمه بریزی.
نصبش با npx @nanonets/graft و Node نسخهٔ ۲۰ به بالا انجام میشه؛ نسخهٔ تستشده تو این گزارش ۰.۱۸.۰ بوده. بعد از اجرای graft build تو یه پروژه، خروجی تو یه پوشهٔ .graft ذخیره میشه که خودکار به .gitignore اضافه میشه، چون همیشه میشه از رو کد دوباره ساختش. دستورایی مثل graft map نمای کلی پروژه رو نشون میده، graft skeleton امضای توابع یه فایل رو بدون بدنهٔ کامل لیست میکنه، و میشه پرسید چه بخشهایی یه تابع خاص رو صدا میزنن.
تو یه نمونهٔ واقعی، یه سرویس اسناد باید جلوی خروجیگرفتن کاربرای viewer رو میگرفت، اما یه تست نشون داد این کنترل انجام نمیشه. پرسوجوی گراف دربارهٔ «کجا مجوز خروجی چک میشه» تابع مربوطه رو پیدا کرد، اما وقتی پرسیدن چه چیزی این تابع مجوز رو صدا میزنه، فقط فایل تست برگشت، نه خود سرویس خروجی. همین نشون داد قانون مجوز نوشته و تست شده بود، ولی تو مسیر واقعی صدا زده نمیشد. بعد از اصلاح و وصلکردن مجوز به سرویس، graft check گراف رو بهروز کرد و رد جدید تابعها تأیید کرد که مشکل حل شده.
سازندههاش میگن لایهٔ ساختاری فقط تحلیل استاتیکه، پس چیزایی که فقط موقع اجرا مشخص میشن رو نمیبینه، و پشتیبانی از زبونای مختلف هم یکسان نیست. آمار صرفهجویی توکن که تو ابزار نشون داده میشه (تو تست خودشون ۴۲ درصد توکن کمتر و ۶۰ درصد زمان کمتر) فقط برآورد همون بنچمارک داخلیه، نه یه قانون کلی برای هر پروژهای. Graft جای تست و ریویو کد رو نمیگیره؛ فقط نشون میده کجا رو نگاه کنی.
نکات کلیدی:
- لایهٔ ساختاری Graft با tree-sitter کار میکنه، بدون کلید API و کاملاً رایگانه.
- لایهٔ عمیق اختیاری با مدل هوش مصنوعی خلاصه میسازه و هزینهٔ API داره.
- نصب با npx @nanonets/graft و نیاز به Node 20 به بالا؛ نسخهٔ تستشده 0.18.0.
- خروجی گراف تو پوشهٔ .graft ذخیره میشه و خودکار به .gitignore اضافه میشه.
- تو تست داخلی سازندهها، ۴۲ درصد توکن کمتر و ۶۰ درصد زمان کمتر گزارش شده.




