Graphify: Memetakan Codebase untuk Membantu AI Memahami Struktur dan Relasi Kode
Graphify adalah tool open-source yang membuat knowledge graph dari codebase dan berbagai sumber dokumentasi. Tujuannya bukan sekadar mencari file, tetapi membantu AI coding agent memahami bagaimana file, fungsi, service, dokumentasi, dan komponen lain saling terhubung.
GitHub
https://github.com/Graphify-Labs/graphify
Apa itu Graphify?
Pada project kecil, kita masih mudah memahami hubungan antar kode.
Tetapi ketika project semakin besar, satu fitur bisa melibatkan banyak file:
Dashboard
↓
Sales Service
↓
Product Service
↓
Inventory
↓
Database
Graphify mencoba membuat hubungan tersebut menjadi sebuah graph yang dapat dipahami dan ditelusuri oleh AI maupun developer.
Jadi, bukan hanya:
"File mana yang mengandung kode ini?"
tetapi juga:
"Bagian apa saja yang berhubungan dengan kode ini?"
Cara Kerja
Secara sederhana, Graphify bekerja melalui beberapa tahap:
Codebase + Docs
↓
Extraction
↓
Build Graph
↓
Analysis & Clustering
↓
Graph + Report
↓
AI Coding Agent
Untuk source code, Graphify menggunakan Tree-sitter untuk membaca struktur kode dan menemukan berbagai elemen seperti function, class, import, dan hubungan antar bagian.
Graphify kemudian membentuk node dan edge dari informasi tersebut.
Contohnya:
OrderService
├── uses → ProductService
├── calls → PaymentService
└── references → OrderModel
Bukan Sekadar Search
Search biasanya membantu menemukan di mana sesuatu berada.
Knowledge graph membantu memahami bagaimana sesuatu terhubung.
Misalnya kita mencari:
"ProductService"
Search mungkin menunjukkan beberapa file.
Graphify dapat membantu menunjukkan:
ProductService
↓
┌────┼─────┐
↓ ↓ ↓
Sales Stock Cart
↓
Dashboard
Ini menjadi lebih berguna ketika codebase sudah memiliki banyak dependency dan hubungan antar-module.
Tidak Hanya Source Code
Graphify juga dapat memproses sumber lain seperti dokumentasi, PDF, gambar, video, audio, dan berbagai file konfigurasi.
Dengan begitu, hubungan yang dibangun tidak hanya:
Code → Code
tetapi bisa menjadi:
Code
↕
Documentation
↕
Architecture Decision
↕
Image / Transcript
Hal ini memungkinkan AI mendapatkan konteks yang lebih luas ketika memahami sebuah project.
Ada Tingkat Keyakinan pada Relationship
Graphify membedakan hubungan berdasarkan bagaimana hubungan tersebut ditemukan.
Contohnya:
EXTRACTED
INFERRED
AMBIGUOUS
EXTRACTED berarti hubungan ditemukan secara langsung dari sumber.
INFERRED berarti hubungan merupakan hasil inferensi.
Sedangkan AMBIGUOUS menunjukkan bahwa hubungan tersebut belum cukup jelas.
Pendekatan ini penting karena tidak semua hubungan dalam knowledge graph memiliki tingkat kepastian yang sama.
Graph untuk Project Besar
Graphify juga dapat melakukan community detection untuk menemukan kelompok kode yang saling berkaitan.
Misalnya:
Application
│
┌──────────┼──────────┐
↓ ↓ ↓
Sales Inventory Accounting
│ │ │
Orders Stock Payment
Dengan struktur seperti ini, developer bisa lebih cepat melihat bagian mana yang membentuk subsystem tertentu.
Graphify juga dapat membantu menemukan god nodes, yaitu node yang memiliki banyak koneksi dan berpotensi menjadi bagian penting dari arsitektur project.
Hasil yang Dihasilkan
Graphify dapat menghasilkan beberapa output, termasuk:
graphify-out/
├── graph.html
├── graph.json
├── GRAPH_REPORT.md
└── cache/
graph.html digunakan untuk melihat graph secara visual.
graph.json menyimpan struktur graph.
GRAPH_REPORT.md berisi ringkasan hasil analisis.
Ada juga cache sehingga file yang tidak berubah tidak harus selalu diproses ulang.
Graphify untuk AI Coding Agent
Graphify memang dirancang untuk digunakan bersama AI coding agent.
Konsepnya sederhana:
Developer
↓
AI Coding Agent
↓
Graphify
↓
Knowledge Graph
↓
Codebase + Documentation
AI dapat menggunakan graph sebagai peta sebelum menjelajahi codebase.
Misalnya kita bertanya:
"Kalau saya mengubah perhitungan stock, bagian mana yang mungkin terdampak?"
Daripada hanya mencari kata stock, AI dapat menggunakan hubungan antar-node untuk menelusuri service, function, module, dan komponen yang berkaitan.
Cocok untuk ERP dan Project Kompleks
Graphify menjadi menarik untuk sistem yang memiliki banyak hubungan, misalnya ERP:
Sales
↓
Product
↓
Inventory
↓
Warehouse
↓
Purchase
↓
Supplier
Ditambah hubungan lain seperti:
Sales
↓
Promotion
↓
Pricing
↓
Product
Ketika sistem semakin besar, memahami dampak sebuah perubahan menjadi semakin sulit.
Graph knowledge seperti yang dibuat Graphify dapat menjadi peta hubungan sistem yang membantu AI melakukan investigasi sebelum mengubah kode.
Graphify bukan pengganti database atau RAG. Perannya lebih spesifik: membuat struktur dan relasi dalam project menjadi lebih mudah dipahami dan ditelusuri.
Kalau search membantu menemukan kode, Graphify mencoba membantu menjawab pertanyaan yang lebih kompleks:
"Kode ini berhubungan dengan apa, dan bagaimana hubungan tersebut membentuk struktur project?"