Source: https://aiprimetech.io/vi/blog/graphify-claude-code-knowledge-graph/ Tháng Bảy 20, 2026 · 6 phút · Công cụ # Graphify cho Claude Code: Biến kho mã của bạn thành đồ thị có thể truy vấn A Tác giả [AI Prime Tech](https://aiprimetech.io/vi/) · Có AI hỗ trợ ## Graphify Claude Code: Biến kho mã thành một đồ thị có thể truy vấn Một kho mã với 800,000 dòng mã có thể chứa câu trả lời cho một câu hỏi tưởng chừng đơn giản ở sáu nơi khác nhau: một mô-đun Terraform, một bản di trú cơ sở dữ liệu, một client được sinh tự động, một tài liệu OpenAPI, một bản kê khai triển khai và một cẩm nang vận hành được viết từ hai năm trước. Claude Code có thể tìm kiếm và đọc những tệp đó, nhưng công việc ở quy mô kho mã thường bị giới hạn bởi tốc độ tác tử khám phá các mối quan hệ giữa chúng. Một phép tìm kiếm văn bản cho customer_id sẽ tìm thấy các lần xuất hiện. Phép tìm kiếm đó không tự động giải thích rằng: - customer_id được khai báo trong một bản di trú cơ sở dữ liệu, - được cung cấp qua một lược đồ API, - được ánh xạ trong một mô hình ORM, - được sao chép vào phần dữ liệu của một sự kiện, - được một tiến trình xử lý nền sử dụng, - và được đề cập trong một quy trình hoàn tác trên môi trường production. Graphify tiếp cận vấn đề này bằng cách chuyển nội dung trong kho mã thành một đồ thị tri thức: các thực thể trở thành nút, các tham chiếu và quan hệ phụ thuộc trở thành cạnh, và Claude Code có thể truy vấn cấu trúc đó để bổ sung ngữ cảnh. Điểm cần lưu ý là đồ thị không phải một nguồn dữ liệu chuẩn thứ hai có khả năng kỳ diệu. Nó là một cách diễn giải kho mã của bạn đã được lập chỉ mục. Giá trị của nó phụ thuộc vào phạm vi hỗ trợ của bộ phân tích cú pháp, việc cập nhật đều đặn, quyền truy cập và mức độ các mối quan hệ thu được có thể trả lời những câu hỏi kỹ thuật thực tế. ## Graphify bổ sung gì cho Claude Code Claude Code đã có một số cách hữu ích để hiểu một dự án: - Đọc trực tiếp các tệp - rg và các phép tìm kiếm khác qua shell - Lịch sử Git và các bản diff - Hướng dẫn dự án trong CLAUDE.md - Các kỹ năng dành cho quy trình có thể lặp lại - Máy chủ MCP dành cho công cụ và dữ liệu bên ngoài Graphify bổ sung một phương thức truy cập khác: truy xuất theo mối quan hệ. Một phép tìm kiếm thông thường đặt câu hỏi: Ký hiệu này xuất hiện ở đâu? Một truy vấn đồ thị đặt câu hỏi: Những dịch vụ nào phụ thuộc vào lược đồ này, hạ tầng nào triển khai các dịch vụ đó và những tài liệu nào mô tả các hệ quả về vận hành? Sự khác biệt đó quan trọng khi tác vụ liên quan đến nhiều phạm vi phụ trách hoặc định dạng tệp. Một đồ thị điển hình có thể chứa các nút như: | Loại nút | Ví dụ | Mã | Hàm, lớp, mô-đun, gói, câu lệnh nhập | Dữ liệu | Bảng, cột, chỉ mục, bản di trú, mô hình ORM | Giao diện | Các tuyến REST, đối tượng OpenAPI, kiểu GraphQL, lược đồ sự kiện | Hạ tầng | Dịch vụ, container, hàng đợi, cơ sở dữ liệu, tài nguyên Terraform | Tài liệu | Các bản ghi quyết định kiến trúc (ADR), cẩm nang vận hành, tệp README, ghi chú về trách nhiệm phụ trách | Vận hành | Tác vụ CI, môi trường triển khai, cảnh báo, bảng điều khiển Các cạnh có thể biểu diễn những mối quan hệ như: - imports - calls - implements - extends - reads_from - writes_to - publishes - consumes - deploys - configured_by - documented_by - owned_by - depends_on Tập hợp loại nút và cạnh cụ thể phụ thuộc vào các bộ lập chỉ mục và cấu hình hiện tại của Graphify. Hãy xem lược đồ đồ thị là một phần của sản phẩm có thể kiểm tra, thay vì mặc nhiên giả định về nó. Trước khi xây dựng prompt dựa trên một mối quan hệ như publishes, hãy xác minh rằng phiên bản đã cài đặt thực sự tạo ra mối quan hệ đó. ## Cài đặt Graphify cho Claude Code Graphify là một dự án đang được phát triển tích cực, nên cách cài đặt và tên lệnh khởi chạy có thể thay đổi. Hãy bắt đầu từ kho mã của dự án và dùng lệnh cài đặt được ghi trong tài liệu của phiên bản bạn định sử dụng: ``` git clone https://github.com/Graphify-Labs/graphify.git cd graphify ``` Nếu bạn sử dụng một gói đã phát hành, hãy ưu tiên lệnh của trình quản lý gói được ghi trong tài liệu dự án thay vì sao chép từ một bài blog cũ. Sau khi cài đặt, hãy xác định ba thông tin trước khi lập chỉ mục cho một monorepo lớn: ``` graphify --help graphify version graphify config --help ``` Các lệnh ở trên minh họa những kiểm tra cần thực hiện; hãy dùng tệp thực thi và các lệnh con mà bản phát hành đã cài đặt của bạn cung cấp. Lần chạy đầu tiên để bảo đảm an toàn nên nhắm đến một kho mã mẫu nhỏ: ``` mkdir -p /tmp/graphify-fixture cd /tmp/graphify-fixture git init printf 'def charge(order):\n return order.total\n' > billing.py printf 'from billing import charge\n' > worker.py graphify index . ``` Lần lập chỉ mục ban đầu thường kết hợp một số bước gồm khám phá, phân tích cú pháp, trích xuất mối quan hệ và lưu trữ đồ thị. Với một kho mã thực tế, hãy kiểm tra cấu hình được tạo và vị trí lưu trữ trước khi thêm quy trình này vào CI. Bạn cần biết chỉ mục: - Nằm cục bộ hay được lưu trữ trên máy chủ - Được cập nhật tăng dần hay xây dựng lại toàn bộ - Được lưu trong cơ sở dữ liệu, các tệp hay một kho lưu trữ nhúng - Có thể chạy an toàn đồng thời với một bộ lập chỉ mục khác hay không - Có thể loại trừ thông tin bí mật, đầu ra của quá trình build và cây thư mục mã bên thứ ba hay không Để tích hợp với Claude Code, Graphify cần được cung cấp thông qua cơ chế tích hợp mà dự án hỗ trợ, thường là MCP. Một .mcp.json cục bộ có thể có dạng như sau: ``` { "mcpServers": { "graphify": { "command": "graphify", "args": ["mcp", "--project", "."], "env": { "GRAPHIFY_INDEX": ".graphify/index" } } } } ``` Đừng coi lệnh con cụ thể đó là áp dụng cho mọi phiên bản. Hãy xác nhận điểm khởi chạy MCP bằng: ``` graphify mcp --help ``` Sau đó kiểm tra máy chủ từ Claude Code: ``` /mcp ``` Bạn sẽ thấy máy chủ Graphify cùng các công cụ mà nó cung cấp. Tên công cụ và cú pháp truy vấn phụ thuộc vào phiên bản. Cách xác minh hữu ích là kiểm tra hoạt động thực tế: yêu cầu Claude Code liệt kê các công cụ đồ thị, chạy một truy vấn có phạm vi hẹp và báo cáo phiên bản kho mã đã được lập chỉ mục. Một lỗi thường gặp là khởi chạy Claude Code từ sai thư mục. Các đường dẫn tương đối của dự án trong .mcp.json, các tệp quy định bỏ qua và cấu hình Graphify được phân giải theo thư mục làm việc của tiến trình máy chủ, không nhất thiết là thư mục bạn đang nghĩ đến. ## Những mối quan hệ quan trọng trong thực tế Đồ thị hữu ích nhất khi nó thể hiện những mối quan hệ khó tái dựng từ văn bản. ### Dòng liên hệ từ mã đến dữ liệu Giả sử một bản di trú đổi tên accounts.status sang accounts.lifecycle_state. Một phép tìm kiếm văn bản có thể xác định các tham chiếu, nhưng đồ thị có thể sắp xếp phạm vi chịu ảnh hưởng: ``` table accounts -> column lifecycle_state -> migration 2025_04_rename_status -> model Account -> repository AccountRepository -> API response AccountSummary -> dashboard query active_accounts ``` Điều đó mang lại cho Claude Code một điểm khởi đầu tốt hơn để rà soát bản di trú. Nó có thể kiểm tra các tệp thực tế sau khi đồ thị xác định những thành phần có khả năng phụ thuộc. ### Cấu trúc liên kết giữa dịch vụ và hạ tầng Các mối quan hệ hạ tầng đặc biệt có giá trị trong monorepo, nơi mã ứng dụng và mã triển khai nằm cùng nhau: ``` service payments-api -> container image payments-api -> Kubernetes deployment payments -> reads secret PAYMENTS_DATABASE_URL -> writes queue payment-events -> consumed by reconciliation-worker ``` Điều này giúp trả lời những câu hỏi như: - Cấu hình triển khai nào phải thay đổi nếu một cổng thay đổi? - Thành phần nào sử dụng hàng đợi này? - Những dịch vụ nào dùng chung cơ sở dữ liệu này? - Cấu hình nào dành riêng cho từng môi trường? - Tài nguyên Terraform nào tạo ra quan hệ phụ thuộc này? Graphify không thể suy luận hoàn hảo hành vi khi chạy từ các tệp tĩnh. Cơ chế khám phá dịch vụ động, reflection, cấu hình được sinh tự động và việc tham chiếu gián tiếp qua biến môi trường có thể để lại khoảng trống. Hãy dùng kết quả về cấu trúc liên kết làm bản đồ ảnh hưởng, rồi xác minh các cạnh quan trọng trong cấu hình triển khai và cấu hình khi chạy. ### Từ tài liệu đến phần triển khai Tài liệu thường bị tách rời khỏi việc tìm kiếm mã vì mối quan hệ mang tính ngữ nghĩa thay vì cú pháp. Một cẩm nang vận hành có thể nhắc đến “bộ xử lý quyết toán” trong khi kho mã gọi nó là reconciliation-worker. Nếu Graphify liên kết các tham chiếu trong tài liệu với thực thể mã hoặc hạ tầng, Claude Code có thể trả lời các câu hỏi vận hành mà ít phải duyệt thủ công hơn: ``` "Where is the rollback procedure for the component that consumes payment-events?" ``` Câu trả lời chỉ đáng tin cậy khi các tên gọi trong tài liệu được ánh xạ chính xác. Thuật ngữ lỗi thời tạo ra những cạnh có vẻ hợp lý nhưng sai, nguy hiểm hơn một lần tìm kiếm rõ ràng không có kết quả. ## Graphify, kỹ năng và MCP là các lớp khác nhau Graphify nên bổ trợ các điểm mở rộng hiện có của Claude Code thay vì thay thế chúng. | Khả năng | Phù hợp nhất với | Đóng góp | Hạn chế chính | Công cụ tìm kiếm và xử lý tệp của Claude Code | Khảo sát chính xác trong môi trường cục bộ | Nội dung tệp và các bản diff hiện tại | Hạn chế trong việc tìm các mối quan hệ giữa nhiều định dạng | Kỹ năng của Claude Code | Hành vi có thể lặp lại | Hướng dẫn, danh sách kiểm tra, phương pháp rà soát | Không tạo ra thông tin thực tế về kho mã | MCP | Tích hợp công cụ và dữ liệu | Một giao diện có kiểm soát với các hệ thống bên ngoài | Chất lượng công cụ và quyền truy cập khác nhau | Graphify | Cấu trúc liên kết và dòng liên hệ trong kho mã | Các mối quan hệ có cấu trúc giữa các thành phần | Chỉ mục có thể chưa đầy đủ hoặc đã lỗi thời Một kiến trúc hữu ích là: - Graphify tìm các thực thể và quan hệ phụ thuộc tiềm năng. - Claude Code dùng các kết quả đó để chọn tệp. - Các công cụ thao tác tệp tích hợp sẵn xác minh phần triển khai hiện tại. - Một kỹ năng áp dụng quy trình rà soát hoặc thay đổi của nhóm. - Các bài kiểm thử, công cụ lint và bước kiểm tra triển khai cung cấp bằng chứng cuối cùng. Ví dụ, một kỹ năng rà soát di trú có thể được đặt trong .claude/skills/review-migration/SKILL.md: ``` # Review Database Migration When reviewing a migration: 1. Identify renamed, removed, or changed columns. 2. Query Graphify for code, schema, event, and infrastructure dependents. 3. Read each high-confidence dependent from the working tree. 4. Check backward compatibility for deployed application versions. 5. Run the repository migration and contract tests. 6. Report uncertain graph relationships separately from verified findings. ``` Kỹ năng xác định quy trình làm việc. Graphify cung cấp ngữ cảnh về các mối quan hệ. MCP là lớp truyền tải và ranh giới công cụ. Sự tách biệt này rất quan trọng. Đưa toàn bộ kiến thức đồ thị vào một kỹ năng sẽ tạo ra các hướng dẫn tĩnh nhanh chóng lỗi thời. Đưa toàn bộ chính sách quy trình vào Graphify sẽ khiến bộ lập chỉ mục phải chịu trách nhiệm cho những quyết định mà nó không thể đưa ra một cách đáng tin cậy. ## Quản lý chi phí và độ cập nhật của chỉ mục Việc lập chỉ mục tốn tài nguyên tính toán, dung lượng đĩa, độ trễ và làm tăng độ phức tạp vận hành. Chi phí không chỉ nằm ở lần quét đầu tiên. Các kho mã lớn còn phát sinh công việc cập nhật khi nhánh thay đổi, tệp được sinh tự động được dựng lại hoặc đồ thị phụ thuộc không còn hợp lệ. Bắt đầu bằng các mục loại trừ: ``` # .graphifyignore .git/ node_modules/ vendor/ dist/ build/ coverage/ tmp/ *.min.js *.map .env *.pem ``` Cú pháp có thể khác với .gitignore, vì vậy hãy xác nhận cách Graphify xử lý tệp bỏ qua. Hãy loại trừ rõ ràng thông tin xác thực và các bản xuất dữ liệu nhạy cảm, ngay cả khi Git đã bỏ qua chúng. Một công cụ lập chỉ mục tệp có thể làm lộ nội dung của tệp đó qua một đường truy vấn. Áp dụng chính sách lập chỉ mục theo từng giai đoạn: - Lập chỉ mục mã nguồn ứng dụng, lược đồ, hạ tầng và tài liệu đang được duy trì. - Loại trừ đầu ra được sinh tự động, trừ khi đó là sản phẩm đầu ra có tính chuẩn định. - Dựng chỉ mục đầy đủ trong CI hoặc bằng tác vụ theo lịch. - Cập nhật tăng dần chỉ mục của nhánh khi được hỗ trợ. - Ghi lại commit nguồn cùng với siêu dữ liệu đồ thị. - Dựng lại sau khi thay đổi bộ phân tích cú pháp hoặc cấu hình. Phiên bản nguồn phải hiển thị cho tác nhân. Một cấu trúc phản hồi như sau an toàn hơn nhiều so với một danh sách không kèm thông tin xác định: ``` { "query": "dependents of table accounts", "indexed_revision": "9f31a7c", "generated_at": "2025-05-14T10:22:11Z", "results": [ { "entity": "AccountRepository", "relationship": "reads_from", "target": "accounts", "confidence": "high", "path": "src/accounts/repository.py" } ] } ``` Khi Claude Code đang sửa đổi cây làm việc sau lần lập chỉ mục gần nhất, kết quả đồ thị là ngữ cảnh lịch sử. Các tệp hiện tại được ưu tiên. Trong thực tế, tôi yêu cầu tác nhân đưa indexed_revision vào quá trình suy luận và kiểm tra lại mọi nhận định rút ra từ đồ thị với cây làm việc. ## Độ chính xác, quyền riêng tư và ranh giới môi trường sản xuất Đồ thị có thể khiến thông tin chưa đầy đủ trông như có tính chuẩn định. Có một số dạng lỗi cần tính đến: - Các lệnh import động và cơ chế phản chiếu bị bỏ sót. - Các tập lệnh shell che khuất mối quan hệ sau phép khai triển biến. - Các client được sinh tự động che khuất lược đồ nguồn. - Liên kết trong tài liệu dùng bí danh mà bộ phân tích cú pháp không nhận ra. - Các tệp đã xóa vẫn còn tồn tại cho đến khi chạy tác vụ dọn dẹp hoặc dựng lại. - Chỉ mục của một nhánh được truy vấn trong khi tác nhân đang làm việc trên nhánh khác. - Các mô-đun hạ tầng được diễn giải mà không có giá trị riêng cho từng môi trường. Đối với quy trình trong môi trường sản xuất, hãy cung cấp độ tin cậy và thông tin nguồn gốc bất cứ khi nào có thể. Một mối quan hệ không có đường dẫn tệp, phiên bản hoặc phương pháp trích xuất sẽ khó kiểm tra. Quyền riêng tư cũng cần được chú ý tương đương. Đồ thị kho mã có thể tiết lộ: - Tên dịch vụ nội bộ - Mô hình dữ liệu khách hàng và thanh toán - Cấu trúc liên kết mạng - Thông tin bí mật qua tên tệp hoặc tham chiếu cấu hình - Các thành phần phụ thuộc có thông tin nhạy cảm về lỗ hổng - Tài liệu độc quyền Giữ các chỉ mục nhạy cảm ở máy cục bộ hoặc trong cùng ranh giới tin cậy với kho mã. Dùng cấu hình MCP theo nguyên tắc đặc quyền tối thiểu, loại trừ dữ liệu bí mật và tránh gửi nội dung đồ thị đến dịch vụ được lưu trữ bên ngoài trừ khi tổ chức đã phê duyệt luồng dữ liệu đó. Khả năng truy vấn đồ thị của Claude Code không làm thay đổi yêu cầu kiểm soát truy cập của kho mã. Mức độ phổ biến cũng không đồng nghĩa với độ đáng tin cậy. Một dự án có thể thu hút sự chú ý đáng kể nhưng vẫn có phạm vi hỗ trợ phân tích cú pháp chưa hoàn thiện, lược đồ đồ thị thiếu ổn định, cam kết nâng cấp hạn chế hoặc hoạt động chưa đáp ứng được mức độ biến động ở quy mô monorepo. Hãy đánh giá dự án bằng một tập dữ liệu kiểm thử lấy từ chính kho mã của bạn: - Nó có xác định được các lệnh import và quan hệ phụ thuộc dịch vụ đã biết không? - Nó có loại bỏ các mối quan hệ đã bị xóa không? - Việc lập chỉ mục tăng dần có hội tụ về cùng kết quả với một lần dựng lại từ đầu không? - Người dùng có thể phân biệt kết quả lỗi thời và kết quả có độ tin cậy thấp không? - Máy chủ MCP có báo lỗi rõ ràng khi chỉ mục không khả dụng không? - Các truy vấn có đủ nhanh để tác nhân làm việc tương tác không? - Bạn có thể tái tạo chỉ mục trong CI không? Đừng biến Graphify thành điều kiện tiên quyết bắt buộc cho mọi hành động của tác nhân. Chế độ hoạt động suy giảm có thể quay về tìm kiếm tệp thông thường là điều thiết yếu. ## Một cách áp dụng thực tế Bắt đầu với một quy trình mà việc tìm mối quan hệ tốn nhiều công sức và sai sót dễ nhận thấy, chẳng hạn như thay đổi API, di trú cơ sở dữ liệu hoặc tái cấu trúc hạ tầng. Đo lường kết quả hữu ích thay vì kích thước đồ thị: - Thời gian xác định các thành phần bị ảnh hưởng - Số thành phần phụ thuộc bị bỏ sót khi rà soát - Tỷ lệ mối quan hệ lỗi thời hoặc không chính xác - Thời gian lập chỉ mục sau các commit thông thường - Lỗi truy vấn và tần suất dùng phương án dự phòng - Dữ liệu bổ sung được cung cấp cho mô hình Dùng Sonnet 4.6 để khảo sát kho mã trên diện rộng khi độ sâu suy luận là yếu tố quan trọng, Haiku 4.5 cho các tác vụ phân loại nhẹ hoặc tra cứu lặp lại, và Fable 5 có ngữ cảnh lớn hơn khi quy trình dùng ngữ cảnh 1M của dự án thực sự hưởng lợi từ việc đưa vào nhiều bằng chứng. Lựa chọn mô hình không thể sửa một đồ thị kém chất lượng. Một mô hình nhỏ hơn với các mối quan hệ chính xác, cập nhật có thể hữu ích hơn một mô hình lớn hơn nhận toàn bộ dữ liệu chỉ mục chưa lọc. Mẫu prompt thực tế là nêu rõ nguồn gốc: ``` Use Graphify to identify likely dependents of the `accounts.lifecycle_state` column. For every result, include its path, indexed revision, relationship, and confidence. Then read the current files and discard relationships that do not exist in the working tree. Do not treat graph results as proof. ``` Câu cuối đó không chỉ mang tính hình thức. Nó ngăn một lớp ngữ cảnh lỗi thời trở thành nguồn có thẩm quyền mà không bị kiểm chứng. ## Những điểm thực tiễn cần ghi nhớ - Giá trị cốt lõi của Graphify là truy xuất các mối quan hệ giữa mã, lược đồ, hạ tầng và tài liệu. - Cài đặt công cụ có phiên bản cụ thể, kiểm tra các lệnh CLI và MCP thực tế của nó, rồi thử trên dữ liệu kiểm thử trước khi lập chỉ mục một monorepo. - Giữ Graphify chịu trách nhiệm về ngữ cảnh kho mã; dùng các kỹ năng Claude Code cho những quy trình kỹ thuật có thể lặp lại. - Đưa phiên bản chỉ mục, thông tin nguồn gốc và độ tin cậy vào phản hồi đồ thị. - Loại trừ thông tin bí mật, dữ liệu nhiễu được sinh tự động và nội dung từ nhà cung cấp không cần thiết. - Xem kết quả đồ thị là các manh mối cần được xác minh với cây làm việc hiện tại. - Kiểm thử việc lập chỉ mục tăng dần, xử lý xóa, cô lập nhánh và hoạt động trong chế độ suy giảm trước khi áp dụng vào môi trường sản xuất. - Mức độ phổ biến có thể là lý do để đánh giá, nhưng chỉ độ chính xác trên kho mã cụ thể và cách hoạt động khi vận hành mới đủ để quyết định phụ thuộc vào công cụ. [Lập trình](/vi/blog/tag/coding/)[Claude](/vi/blog/tag/claude/) A [AI Prime Tech](https://aiprimetech.io/vi/) AI Prime Tech xuất bản blog này. Các bài viết được soạn với sự hỗ trợ của AI; hãy đối chiếu những chi tiết phụ thuộc vào phiên bản như ID mô hình, giá và giới hạn với tài liệu chính thức trước khi dựa vào chúng. Truy cập Claude API với chi phí thấp hơn Một khóa API cho Claude Opus 5.5, Sonnet 5, Haiku 4.5 và Fable 5.1, cùng GPT-6 mô hình. Thanh toán theo mức sử dụng, không cần đăng ký thuê bao. [Nhận khóa API của bạn →](/register) AI Prime Tech là cổng API bên thứ ba độc lập. Claude™ và Anthropic® là các nhãn hiệu của Anthropic, PBC. Không hàm ý có sự liên kết hay chứng thực.