blog.dopana

Back

AI coding assistant như Claude Code, Cursor và Codex rất mạnh mẽ — nhưng chúng có một hạn chế cơ bản: chúng cần đọc file nguồn thô để hiểu codebase. Với các dự án lớn, việc này đốt cháy context window và API credits với tốc độ đáng báo động.

Graphify giải quyết vấn đề này bằng cách ánh xạ toàn bộ dự án của bạn — code, tài liệu, PDF, hình ảnh và hơn thế nữa — thành một knowledge graph có cấu trúc mà AI assistant có thể truy vấn ngay lập tức.

Graphify là gì?#

Graphify là một công cụ mã nguồn mở, local-first, phân tích một thư mục thành đồ thị nút-cạnh thực sự, được lưu dưới dạng graph.json. AI coding assistant truy vấn đồ thị này thay vì đọc file thô, giảm đáng kể lượng token sử dụng trong khi vẫn giữ được độ chính xác về cấu trúc.

Nó hỗ trợ 36+ ngôn ngữ lập trình thông qua phân tích AST bằng tree-sitter, xử lý nội dung đa phương thức (PDF, hình ảnh, video, bảng tính), và tạo ra ba artifacts chính trong graphify-out/:

  • graph.html — Trực quan hóa đồ thị có thể tương tác
  • GRAPH_REPORT.md — Tóm tắt kiến trúc với các kết nối xuyên file (tương thích Obsidian)
  • graph.json — Knowledge graph thô để truy vấn lập trình

Dự án đã nhanh chóng đạt được gần 100.000 sao GitHub chỉ trong vòng vài tháng kể từ khi ra mắt.

Cách hoạt động#

Graphify sử dụng kiến trúc xử lý hai giai đoạn:

Giai đoạn 1: Code (Phân tích AST xác định)#

Phân tích tree-sitter local trên 36+ ngôn ngữ. Hoàn toàn ngoại tuyến — không gọi LLM nào, không có dữ liệu nào rời khỏi máy bạn. Trích xuất:

  • Class, function, method, interface
  • Quan hệ import/export
  • Call graph và cây kế thừa
  • Tham chiếu biến và thông tin kiểu

Giai đoạn 2: Tài liệu & Media (Trích xuất ngữ nghĩa)#

Với các file phi-code — PDF, hình ảnh, âm thanh, video, bảng tính — Graphify sử dụng backend AI đã cấu hình (Claude, OpenAI, Gemini, Ollama, Bedrock…) để trích xuất các khái niệm ngữ nghĩa và liên kết chúng vào đồ thị code.

Gán nhãn cạnh#

Mọi quan hệ đều được gắn thẻ rõ ràng:

  • EXTRACTED — Tồn tại rõ ràng trong nguồn (ví dụ: một lời gọi hàm)
  • INFERRED — Suy ra bởi thuật toán phân giải của Graphify (ví dụ: tương đồng về khái niệm)

Điều này cho phép nhà phát triển và AI agent phân biệt quan hệ đã được xác thực với suy luận thuật toán.

Phát hiện cộng đồng#

Graphify áp dụng Leiden clustering (không cần LLM) để phân chia code thành các hệ thống con logic và xác định “God nodes” — các thành phần trung tâm nhất, kết nối nhiều nhất trong codebase của bạn.

Các nguồn dữ liệu được hỗ trợ#

LoạiĐịnh dạng
CodePython, TypeScript, JavaScript, Go, Rust, Java, C/C++, C#, Ruby, Swift, Kotlin, Scala, PHP, Lua, Zig, SQL, Terraform/HCL và hơn thế nữa (36+ ngữ pháp)
Tài liệuMarkdown, MDX, HTML, reStructuredText, YAML, JSON, Obsidian wikilinks
Văn phòngWord (.docx), Excel (.xlsx), Google Workspace
MediaPDF, PNG/JPG/WebP/GIF, audio/video (.mp4, .mov, .mp3, .wav), URL YouTube, bài báo arXiv

Cài đặt#

# Yêu cầu: Python 3.10+

# Cài đặt CLI (tên package: graphifyy)
uv tool install graphifyy
# hoặc
pipx install graphifyy

# Đăng ký skill cho AI
graphify install

# Chạy với dự án
graphify .
bash

Để giới hạn skill trong một dự án cụ thể:

graphify install --project
bash

Tính năng chính#

Strict Mode#

Tích hợp với Claude Code để chặn việc đọc file nguồn thô ở lần đầu tiên và buộc agent tham khảo đồ thị trước.

Tích hợp Git Hook#

Tự động xây dựng lại đồ thị code khi commit/checkout:

graphify hook install
bash

Công cụ truy vấn#

AI agent chạy các truy vấn đồ thị con có mục tiêu thay vì đọc toàn bộ file:

graphify query "Hệ thống xác thực hoạt động như thế nào?"
graphify path "auth-service" "user-service"
bash

Tối ưu Token#

Bằng cách cung cấp cho AI assistant các đồ thị con chính xác thay vì file thô, Graphify giảm đáng kể lượng token sử dụng và chi phí API — đặc biệt có giá trị với các codebase lớn.

Graphify vs. Giải pháp thay thế#

Tính năngGraphifyVector RAG (mem0…)Grep
Độ chính xác cấu trúc✅ Cấp độ AST❌ Dựa trên tương đồng✅ Khớp chính xác
Chi phí LLM để index❌ Bằng không (Pass 1 local)⚠️ Chi phí embedding cao✅ Bằng không
Hỗ trợ đa phương thức✅ Code + tài liệu + media✅ Chỉ text❌ Chỉ text
Phân loại quan hệ✅ EXTRACTED vs INFERRED❌ Chỉ tương đồng ngữ nghĩa❌ Không có
Đồ thị tương tác✅ graph.html❌ Không❌ Không

Use Cases#

Tiếp cận codebase lớn — Thành viên mới khám phá GRAPH_REPORT.md và truy vấn đồ thị thay vì dành nhiều ngày đọc file.

Phân tích tác động code review — Theo dõi cách các thay đổi lan truyền qua các module trước khi sửa.

Tài liệu dự án đa phương thức — Kết hợp logic code với sơ đồ kiến trúc, PDF cuộc họp và ảnh chụp bảng trắng thành một knowledge graph thống nhất.

CI/CD tiết kiệm chi phí — Cung cấp cho AI code review agent các đồ thị con chính xác thay vì toàn bộ repository.

Tổng kết#

Graphify thay đổi cách AI coding assistant hiểu code. Thay vì đổ file thô vào context window — tốn kém, lãng phí và thiếu chính xác — nó xây dựng một knowledge graph có cấu trúc mà agent có thể truy vấn với độ chính xác phẫu thuật.

Với chi phí index code bằng không (tree-sitter, local-only), hỗ trợ đa phương thức rộng rãi, và công cụ khám phá trực quan, Graphify đã nhanh chóng trở thành công cụ thiết yếu trong stack phát triển hỗ trợ AI.

Tài liệu tham khảo#