Subscribe Now
Trending News
Shorts

Graft kreslí mapu kódu, aby agenti nemuseli tápat

Graft kreslí mapu kódu, aby agenti nemuseli tápat

Graft od Nanonets vytváří v repozitáři lokální mapu kódu, aby Claude Code, Codex nebo Cursor nemusely při každé úloze znovu hledat vstupní body a závislosti. Základní průchod používá Tree-sitter a bez modelu či API klíče zapisuje do grafu symboly, importy a volání. Agent se pak může přes CLI nebo šest nástrojů MCP ptát na strukturu repozitáře, rozhraní souboru či dosah změny. Projekt má licenci MIT; zdrojový kód je nyní v repozitáři organizace Trail, zatímco balíček @nanonets/graft vydává Nanonets.

Příkaz graft init graf sestaví a Graft napojí na vybrané agenty pomocí jejich instrukčních souborů, MCP a hooků. Dotazy před odpovědí načtou odpovídající uzly a po změně kódu se strukturální vrstva průběžně obnoví. Volitelný graft build --deep přidá popisy souborů, shrnutí symbolů a tematické uzly; k tomu už potřebuje uživatelův model a API klíč. Bez této vrstvy zůstávají příkazy ask, grep, callers, skeleton, map a blast lokální a deterministické.

Autoři v kontrolovaném testu 162 běhů na dvou repozitářích naměřili proti studenému startu Claude Code o 42 % méně tokenů a o 60 % kratší čas při stejné správnosti 93 %. Počet volání nástrojů klesl o 46 %. V padesáti úlohách SWE-bench Verified pak Graft vyřešil 33 případů proti 27 a spotřeboval o 23 % méně tokenů. Obě sady provozovali tvůrci projektu, takže přesná procenta zatím nemají nezávislou reprodukci. Menší externí pokus potvrdil, že Graft dokáže nad 222 soubory vytvořit graf s 1 794 symboly a 4 464 vztahy, úsporu tokenů však neměřil.

Podobný přístup ke struktuře repozitáře má GitNexus od Abhigyana Patwariho, kterému jsme se už věnovali v článku GitNexus: kód jako znalostní graf. Na první pohled dělají oba nástroje totéž: parsují kód pomocí Tree-sitteru, skládají vztahy do grafu a předávají je agentům přes MCP. Rozdíl se ukáže až ve způsobu, jakým agent s mapou pracuje. Graft mu dává čitelný kontext pro orientaci v repozitáři, zatímco GitNexus pracuje s podrobnějším grafovým indexem určeným k cíleným dotazům.

Graft staví především na mapě uložené v propojených souborech Markdown. Agent tyto soubory čte a prohledává jako běžnou dokumentaci; šest nástrojů MCP k tomu přidává hledání kódu, rozhraní souboru a trasování volání. Strukturní vrstva se při dotazech průběžně obnovuje a nepotřebuje model. GitNexus naproti tomu ukládá index do LadybugDB, vytváří funkční skupiny a sleduje průchod procesů přes řetězce volání. Mezi jeho sedmnácti nástroji MCP jsou hybridní vyhledávání a analýza dopadu. Další slouží k dotazům v jazyce Cypher nebo koordinovanému přejmenování. Graft tedy agentovi rychle ukáže, kde začít a který kód načíst. GitNexus se hodí ve chvíli, kdy potřebuje vztahy rozebrat podrobněji.

Oba pohledy se mohou hodit v jedné úloze. Agent ji může otevřít mapou z Graftu a rychle najít správné soubory. Pokud změna zasahuje několik modulů nebo služeb, GitNexus doplní analýzu dopadu a trasu závislostí; po úpravě umí jeho detect_changes přiřadit gitový diff k ovlivněným procesům. Graft mezitím obnoví svou mapu podle pracovního stromu, takže další dotaz už vychází z upraveného kódu. Společný režim žádný projekt nedokumentuje a každý udržuje vlastní index, proto je nutné pohlídat duplicitní konfiguraci MCP a hooků.

Instalace není úplně bez zásahu. graft init může upravit instrukce v repozitáři a při zapojení Codexu také uživatelské soubory v ~/.codex/; příkaz --dry-run předem vypíše změny a --no-global omezí zápis na projekt. Oficiální npm build navíc odesílá anonymní souhrnné statistiky, nikoli kód ani obsah promptů. Telemetrii lze vypnout při inicializaci nebo proměnnou DO_NOT_TRACK=1.

Zdroje:

Related posts