ProductiveTechTalk - AI, Development Tools, and Productivity Blog
AI coding agent harness orchestrating multiple code agents in pastel illustration

Claude Code bị lộ mã nguồn: điều gì thực sự làm nên sức mạnh của AI coding agent này?

Kim Jongwook · 2026-04-01

TL;DR

Illustration of Claude Code source leak via npm source maps
  • Claude Code là một “agent harness” cực tinh vi, không phải chatbot viết code thông thường.
  • File Claude.md là bộ não 40.000 ký tự, được nạp lại ở mọi lượt hội thoại, điều khiển toàn bộ hành vi Claude Code.
  • Hệ thống đa agent, git worktree và phân loại quyền thông minh giúp vừa nhanh vừa an toàn.
  • Cơ chế nén ngữ cảnh 5 tầng và lệnh /compact quyết định chất lượng các phiên làm việc dài.
  • Vụ lộ mã tạo ra bản thiết kế thực tế cho bất kỳ ai muốn xây AI coding agent cạnh tranh.
Table of Contents


Sự cố lộ mã Claude Code là gì và vì sao chấn động đến vậy?

Centered illustration of claude.md guiding an AI coding agent

Sự cố lộ mã Claude Code là vụ rò rỉ toàn bộ mã nguồn khung AI coding agent của Anthropic qua file map trên npm. Chỉ trong 24 giờ, tin này lan truyền trên X với hơn 22 triệu lượt xem, khiến cả cộng đồng AI development xôn xao.

Related: Sự cố rò rỉ Claude Code: Lộ roadmap AI coding 2026

Related: Open Claude là gì? Bí mật AI agent vận hành 500 người

Related: Claude Code 2026: Nền tảng AI Operating System | Hướng Dẫn

Related: Harness Engineering là gì? Thiết kế AI Agent 2026

Related: Claude Code Auto Mode: Chạy Tác Vụ Dài Không Bị Hỏi

Mã nguồn bị lộ gồm khoảng 2.300 file, tương đương gần 500.000 dòng code. Chỉ nhìn vào số lượng file và cách chia module đã thấy rõ đây là sản phẩm được thiết kế hệ thống từ đầu — không phải bản demo vội vàng, cũng không phải “wrapper chatbot” đơn giản, mà là một agent harness phức tạp, bao quanh LLM để thực sự hoạt động được trong dự án phần mềm lớn.

“Claude Code là một harness tuyệt vời. Nó khiến mô hình ngôn ngữ lớn hoạt động tốt hơn rất nhiều nhờ lớp harness bao quanh.”

Anthropic dự kiến dùng DMCA để gỡ bản leak. Nhưng cộng đồng đã nhanh tay viết lại toàn bộ sang Python, biến nó thành phiên bản hợp pháp có thể tải về và chạy cục bộ. Ở góc độ thực chiến, đây giống như cả cộng đồng AI agent bỗng dưng được tặng một “bản vẽ kiến trúc” gần như hoàn chỉnh.

Sự cố này khác gì các vụ lộ mã khác?

  • Không lộ dữ liệu khách hàng, không lộ API key.
  • Chỉ lộ cách hoạt động của harness — phần “vỏ thông minh” quanh mô hình.
  • Cộng đồng, bao gồm đối thủ và các dự án mã nguồn mở, nhận được một giáo trình sống về cách build coding agent thực sự dùng được.

Trên “phổ độ nghiêm trọng” của rò rỉ mã nguồn, vụ này được đánh giá là “không quá tệ”. Nhưng tác động đến hệ sinh thái thì lại là chuyện khác hoàn toàn.


Vì sao “harness” của Claude Code quan trọng hơn bản thân mô hình?

Parallel AI coding agents editing isolated git worktrees

Harness của Claude Code là một khung thực thi bao quanh LLM, giúp nó kết nối với file, git, terminal và quy trình làm việc thật của lập trình viên. Chính harness này — chứ không chỉ là model Claude — mới tạo ra trải nghiệm “AI pair programmer” khác biệt.

Theo phân tích của Alfred Versa, sức mạnh thực sự nằm ở tổ hợp giữa Claude Code harness và họ mô hình Claude, được tinh chỉnh để “ăn khớp” với nhau. Khi thử dùng các agent generic với nhiều model khác nhau, kết quả thường chỉ dừng ở mức “code suggestion” kiểu IDE. Lý do đơn giản: nếu harness không hiểu sâu workflow lập trình, mọi model tốt đến đâu cũng không phát huy được.

Gắn model khác vào Claude Code có được không?

Về lý thuyết có thể, nhưng có vài điều cần tính:

  • Harness được tối ưu quanh hành vi và thế mạnh riêng của Claude.
  • Dùng model open-source hoặc OpenAI/Gemini gắn vào nguyên xi nhiều khả năng cho trải nghiệm kém hơn mong đợi.
  • Giá trị lớn nhất với cộng đồng mã nguồn mở là học và biến tấu các nguyên tắc thiết kế, không phải copy y nguyên code.

Bản leak này trao cho cộng đồng nguyên lý và cấu trúc để xây agent mới — không phải “key” để nhân bản Claude Code.


Claude.md là gì và vì sao là “file quan trọng nhất” trong Claude Code?

AI context compaction turning long history into focused memory

Claude.md là file cấu hình điều khiển hành vi Claude Code, được nạp lại ở mọi lượt hội thoại trong một phiên. Đây là “bản hợp đồng làm việc” giữa đội dev và AI — không chỉ là vài dòng hướng dẫn.

Theo mã nguồn, mọi turn trong Claude Code đều được tiêm lại nội dung Claude.md. Dù phiên làm việc kéo dài hàng trăm lượt, các quy ước, tiêu chuẩn và bối cảnh quan trọng vẫn luôn hiện diện trong ngữ cảnh của model. Nhiều dev — kể cả tác giả video phân tích gốc — thừa nhận trước đây gần như không đụng tới file này. Chỉ sau khi đọc mã nguồn mới hiểu mình đã bỏ phí một “đòn bẩy” lớn đến vậy.

Nên ghi gì trong Claude.md?

Bạn có tối đa 40.000 ký tự. Nên ưu tiên:

  • Tiêu chuẩn code của team: naming, style, linting, pattern được khuyến nghị.
  • Kiến trúc hiện tại: module nào làm gì, lớp nào quan trọng, phụ thuộc chính.
  • Quy ước workflow: cách viết test, quy trình tạo PR, branch convention.
  • Điều cấm kỵ: pattern không được dùng, thư viện không được phép, rule bảo mật.

“Bạn có 40.000 ký tự để nói với Claude Code chính xác bạn muốn làm việc như thế nào.”

Kinh nghiệm từ các công cụ tương tự cho thấy: chỉ riêng việc ghi rõ “cách team này muốn review, test, đặt tên” vào file cấu hình đã giảm được rất nhiều vòng hỏi đáp lặp lại.

Làm sao tận dụng Claude.md hiệu quả nhất?

  • Cập nhật cùng lúc với coding guideline của team.
  • Dùng bullet rõ ràng, ví dụ code ngắn, tránh văn dài dòng.
  • Ưu tiên quy tắc “vĩnh viễn” hơn là yêu cầu mang tính tạm thời.

Nếu coi LLM là lập trình viên mới, thì Claude.md chính là “tài liệu onboarding + handbook văn hóa” mà nó đọc lại ở mọi lần trả lời.


Claude Code chạy nhiều agent song song như thế nào?

Chạy nhiều agent song song trong Claude Code là kiến trúc cho phép nhiều “AI đồng đội” hoạt động cùng lúc, chia nhau việc trên cùng codebase nhưng vẫn chia sẻ prompt cache. Thiết kế này gần như biến chi phí “gọi thêm agent” thành rẻ như chạy một agent — trong khi tốc độ tổng thể tăng rõ rệt.

Tác giả khung Claude Code, Boris Cherny, cho biết ông luôn chạy nhiều agent một lúc. Tư duy “một agent làm tất cả” nhanh chóng tắc nghẽn khi dự án phức tạp: phân tích, viết test, sửa bug đan xen khiến một luồng duy nhất bị quá tải ngữ cảnh.

Ba mô hình sub-agent trong Claude Code

  • Fork: thừa hưởng toàn bộ “parent context”, tận dụng prompt cache để giảm chi phí và tăng tốc.
  • Teammate: chạy ở cửa sổ riêng (T-Mux, iTerm…), giao tiếp qua “mailbox” dạng file — mỗi agent đọc/ghi thông điệp trên ổ đĩa.
  • Work Tree: mỗi agent nhận một git worktree + branch riêng, tránh đè file và xung đột commit khi cùng làm trên một repo.

Khi 10 agent cần “đọc” 10 vùng code khác nhau, Claude Code xử lý gần như đồng thời — trong khi các thao tác ghi vẫn được xếp hàng để giữ an toàn.

Cách Claude Code xử lý song song công cụ

  • Concurrent tools — thao tác chỉ đọc như scan file, phân tích log, tìm trong repo: chạy đồng thời để tối đa hóa tốc độ.
  • Serialized tools — mọi thao tác “thay đổi trạng thái” như sửa file, ghi file, chạy lệnh bash: chạy lần lượt để tránh race condition.

Pattern này quen thuộc với ai đã làm microservices: đọc thì scale rộng, ghi thì giữ trật tự. Với dự án Git lớn, kết hợp multi-agent với git worktree là cách rất thực tế để phân nhỏ công việc — một agent lo migration DB, một agent lo UI, một agent sửa test.


Tại sao bạn gần như không bao giờ nên thấy popup “Cho phép?” trong Claude Code?

Hệ thống quản lý quyền trong Claude Code là cơ chế tự động dự đoán và xử lý “cho phép / không cho phép” thay vì liên tục hiện popup hỏi người dùng. Theo mã nguồn: mỗi lần Claude Code phải hỏi bạn “có cho phép không?” là một lần cấu hình đã thất bại.

Anthropic nhận ra đa số người dùng sẽ bấm “Allow” cho gần như mọi yêu cầu sau vài lần đầu, nên đổi chiến lược. Thay vì ép người dùng click vô tận, họ dùng LLM classifier để đoán khả năng bạn đồng ý với từng loại thao tác và xử lý trước.

“Mỗi lần bạn bị hỏi có cho phép hành động nào không, đó là một thất bại về cấu hình. Về cơ bản, bạn gần như không nên thấy điều đó.”

Ba chế độ quyền trong Claude Code

  • Bypass: bỏ qua mọi kiểm tra quyền — nhanh nhưng rủi ro cao, chỉ phù hợp môi trường sandbox.
  • Allow Edits: tự động cho phép chỉnh sửa file trong thư mục làm việc, hạn chế phạm vi hơn Bypass.
  • Auto (khuyến nghị): LLM classifier phân loại từng thao tác khi chạy lần đầu. Thao tác an toàn thì tự động cho phép; thao tác nguy hiểm thì tự động chặn hoặc yêu cầu can thiệp.

Trong settings.json, bạn có thể định nghĩa danh sách lệnh luôn được phép và danh sách đen tuyệt đối bị chặn. Kết quả: gần như không còn popup, nhưng vẫn giữ được kiểm soát thực sự.

Cấu hình whitelist/blacklist hợp lý từ đầu giúp tránh cả “an toàn giả tạo” — bị hỏi suốt nhưng vẫn bấm đại — lẫn nguy cơ bị xóa nhầm nguồn lực quan trọng.


Compaction trong Claude Code là gì và vì sao “biết quên” còn quan trọng hơn “biết nhớ”?

Compaction trong Claude Code là cơ chế nén và chọn lọc ngữ cảnh giúp mô hình giữ lại phần cốt lõi và bỏ bớt phần thừa trong phiên làm việc dài. Nhiều người nghĩ điều quan trọng là “model nhớ được gì” — nhưng thực ra, model quyết định quên gì mới là vấn đề then chốt.

Claude Code dùng tới 5 chiến lược compaction để quản lý ngữ cảnh:

  • Micro Compact: dựa vào thời gian, xóa kết quả tool đã quá cũ và ít có khả năng còn hữu ích.
  • Context Collapse: tóm tắt một đoạn hội thoại thành nội dung ngắn gọn — đây là nén “mất dữ liệu” (lossy), nên có thể mất chi tiết nhỏ.
  • Session Memory: trích xuất “lõi ngữ cảnh” quan trọng và lưu vào file, được tái sử dụng khi /resume phiên làm việc.
  • Full Compact: tóm tắt toàn bộ lịch sử hội thoại, dùng khi phiên quá dài nhưng vẫn cần cái nhìn tổng thể.
  • PTL Truncation: đơn giản là xóa nhóm tin nhắn cũ nhất, chấp nhận đánh đổi khi coi chúng không còn quan trọng.

“Điều quan trọng hơn những gì mô hình nhớ là những gì nó quên. Biết nên quên gì cho phép ghi nhớ phần quan trọng một cách chính xác hơn nhiều.”

Khi nào nên chủ động dùng /compact?

Đừng đợi hệ thống tự xử lý. Khi phiên bắt đầu dài, nhiều lỗi và thay đổi lớn, hãy chạy /compact sớm. Hãy coi nó như thao tác “lưu game” trong trò chơi điện tử — chốt lại trạng thái trước khi tiến vào phần phức tạp hơn.

Claude Code hỗ trợ context window 200.000 token, với tùy chọn lên tới 1.000.000 token. Chất lượng có giảm nhẹ sau mốc 200.000, nhưng theo đánh giá thực nghiệm trong cộng đồng, vẫn tốt hơn nhiều đối thủ.

Khi làm việc lâu với AI dev tools mà không có bước “chốt lại” như /compact, phiên làm việc sẽ dần trở nên rối rắm. AI bắt đầu nhầm lẫn giữa yêu cầu cũ và mới — nhất là trong dự án nhiều nhánh tính năng chạy song song.


Làm thế nào Claude Code xử lý file lớn và duy trì phiên làm việc dài?

Claude Code không feed toàn bộ file khổng lồ vào model. Với file rất lớn, nó chỉ đưa vào preview khoảng 8 KB đầu tiên. Nếu bạn dán nguyên một file log hoặc JSON hàng MB, model thực tế chỉ “đọc” phần đầu.

Vì vậy, muốn Claude Code hiểu đúng:

  • Chỉ dán đoạn liên quan thay vì cả file.
  • Hoặc dùng công cụ tìm kiếm/trích xuất trước, rồi đưa phần tóm gọn vào.

Về tính liên tục phiên làm việc:

  • Toàn bộ trò chuyện được lưu dưới dạng JSONL.
  • Dùng --continue hoặc --resume để nối lại phiên cũ.
  • Nhờ Session Memory, quay lại phiên cũ thường hiệu quả hơn tạo phiên mới.

Khả năng “resume” tốt là điểm khác biệt lớn giữa tool chỉ dùng được cho demo và tool đủ sức dùng mỗi ngày. Claude Code dùng compaction + session memory để tránh việc phải “giải thích lại mọi thứ từ đầu” mỗi khi mở lại dự án.


Hệ thống Hooks và 66 công cụ tích hợp: vũ khí bí mật của power user?

Hooks trong Claude Code là cơ chế cho phép chạy hành động tùy biến tại các mốc sự kiện trong vòng đời agent. Đây là tầng “automation nâng cao” mà đa số người dùng phổ thông chưa chạm tới, nhưng lại là mỏ vàng cho power user.

Các mốc sự kiện được hỗ trợ:

  • Trước khi dùng tool (Pre-tool use)
  • Sau khi dùng tool (Post-tool use)
  • Khi người dùng gửi prompt
  • Khi phiên bắt đầu / kết thúc

Các loại hook bao gồm: Command (chạy lệnh hệ thống), Prompt (bơm thêm prompt đặc biệt), Agent (gọi agent khác), HTTP (gọi API ngoài), Function (chạy hàm tùy biến).

Ví dụ thực tế: “mỗi khi có commit mới, tự động cập nhật tài liệu liên quan” là một hook Post-tool use gắn với lệnh update docs. Không cần nhắc AI mỗi lần nữa.

66 công cụ tích hợp trong Claude Code làm được gì?

Claude Code có 66 built-in tools: duyệt web, đọc/ghi file, chạy code, chạy lệnh shell, và nhiều tiện ích phân tích, tìm kiếm trong repo.

Chúng được chia thành concurrent tools (thao tác đọc, chạy song song) và serialized tools (thao tác ghi/đổi trạng thái, chạy lần lượt).

Một điểm thiết kế đáng chú ý: kiến trúc streaming cho phép dừng agent giữa chừng ngay khi thấy sai hướng, không đốt thêm token vô ích, và tiếp tục lại từ trạng thái trước mà không mất mát nhiều.

Với lập trình, khả năng ngắt sớm mà không tốn thêm chi phí là cực kỳ quan trọng. Chỉ cần nhìn vài bước đầu đã biết agent đang giải sai bài — lúc đó dừng ngay, chỉnh lại yêu cầu, chạy lại. Đó là chiến lược tiết kiệm nhất.


Vụ lộ mã này tác động gì đến cộng đồng mã nguồn mở và bảo mật?

Tác động lớn nhất của vụ lộ mã Claude Code là tạo ra hiệu ứng lan tỏa mã nguồn mở: cộng đồng có trong tay một blueprint chi tiết về cách build coding agent dạng “production-grade”.

Đối thủ và dự án open source có thể học cách thiết kế prompt và thiết lập agent, sao chép cách quản lý quyền, multi-agent và compaction, rồi xây công cụ tương tự với chi phí thấp hơn hoặc tối ưu cho model khác.

Đây là lần hiếm hoi cộng đồng được “soi” nội thất của một trong những AI coding agent tốt nhất hiện tại — ngay ở thời điểm hầu hết big tech vẫn chọn mô hình đóng.

Về bảo mật:

  • Không có dấu hiệu lộ dữ liệu khách hàng, khoá bí mật hay bí mật kinh doanh lõi.
  • Chủ yếu lộ cách harness hoạt động — thứ vốn có thể được đoán phần nào qua sử dụng thực tế.
  • Nhiều mắt hơn soi vào code đồng nghĩa: lỗ hổng tiềm ẩn được tìm nhanh hơn, thảo luận công khai hơn.

Một hướng đi thú vị đang được cộng đồng thảo luận là dùng Claude Code như “meta harness” — harness giúp cải tiến chính các harness khác, mở đường cho các thử nghiệm tự cải tiến đệ quy (recursive self-improvement) trong hệ thống AI agent mã nguồn mở.


Nên bắt đầu từ đâu? Lộ trình hành động trong 30 ngày

  • Tuần 1: Đọc qua cấu trúc repo Claude Code (hoặc bản Python rewrite) để hiểu các khối chính. Ghi lại cách họ xử lý multi-agent, permissions và compaction.

  • Tuần 2: Thiết kế file tương đương Claude.md cho dự án hoặc team. Áp dụng nguyên tắc phân tách tool “đọc/ghi” vào agent hiện có.

  • Tuần 3: Thử triển khai một kiến trúc multi-agent tối giản dùng git branch/worktree. Cài đặt cơ chế compaction thủ công — ví dụ lệnh tóm tắt định kỳ.

  • Tuần 4: Thêm một hoặc hai hook tự động hoá việc hay bị quên (cập nhật log, cập nhật docs). Đánh giá tốc độ, độ ổn định và điều chỉnh cấu hình quyền theo mô hình Auto.


Câu hỏi thường gặp

Q: Claude.md khác gì so với việc thêm hướng dẫn trực tiếp vào prompt?

A: Claude.md được Claude Code tiêm lại ở mọi lượt hội thoại, trong khi hướng dẫn bạn gõ vào prompt chỉ tồn tại trong vài lượt đầu rồi bị đẩy ra khỏi cửa sổ ngữ cảnh. Với giới hạn 40.000 ký tự, Claude.md cho phép lưu trữ cả tiêu chuẩn code, kiến trúc và workflow một cách bền vững. Đây là “bộ nhớ cứng” của agent, không phải ghi chú tạm thời trong prompt.

Q: Có nên cố gắng dùng Claude Code với mô hình khác ngoài Claude?

A: Về mặt kỹ thuật có thể gắn model khác, nhưng harness của Claude Code được tối ưu riêng cho hành vi của họ mô hình Claude. Hiệu quả với OpenAI, Gemini hay model open-source có thể không đạt như kỳ vọng. Hướng thực tế hơn là học nguyên tắc thiết kế harness rồi áp dụng cho model bạn đang dùng, thay vì ép reuse nguyên cấu trúc.

Q: Tại sao nên chủ động dùng /compact thay vì để hệ thống tự lo?

A: Vì /compact không chỉ là “nén cho đủ context” — nó còn là điểm “chốt mốc nhận thức” của agent. Khi bạn chủ động /compact sau một giai đoạn làm việc lớn, hệ thống tóm tắt lại bản chất công việc, lỗi từng gặp và trạng thái workflow hiện tại. Các lượt sau sẽ tập trung vào phần đã chốt, giảm nguy cơ agent lặp lại sai lầm cũ hoặc lạc đề.

Q: Chế độ Auto permissions có thực sự an toàn trong dự án thật?

A: Chế độ Auto dùng LLM classifier để quyết định thao tác nào an toàn, thao tác nào rủi ro. Khi kết hợp với cấu hình settings.json rõ ràng — danh sách lệnh được phép và bị chặn — phần lớn thao tác phi rủi ro tự động chạy, trong khi hành động nhạy cảm vẫn bị chặn. An toàn hơn nhiều so với liên tục bật popup để rồi người dùng nhấn “Allow” theo phản xạ.

Q: Multi-agent trong Claude Code có cần thiết với dự án nhỏ?

A: Với dự án rất nhỏ, một agent có thể đủ dùng. Nhưng kiến trúc multi-agent thực sự phát huy khi codebase bắt đầu phình to: một agent chuyên đọc tài liệu, một agent chuyên viết test, một agent refactor. Cách phân vai này giúp mỗi agent giữ ngữ cảnh tập trung, trong khi toàn bộ dự án vẫn tận dụng chung cache và quy tắc từ Claude.md.

Bài viết này có hữu ích không?

Nhận thêm những bài viết công nghệ miễn phí.

Theo dõi blog qua email

Nhập địa chỉ email của bạn để đăng ký theo dõi blog này và nhận thông báo về các bài mới qua email.


Khám phá thêm từ ProductiveTechTalk

Đăng ký để nhận các bài đăng mới nhất được gửi đến email của bạn.

Một phản hồi cho “Claude Code bị lộ mã nguồn: mổ xẻ sức mạnh agent AI”

  1. Ảnh đại diện ProductiveTechTalk

    Đoạn bạn nói `Claude.md` là “bộ não 40.000 ký tự được nạp lại ở mọi lượt” làm mình khá bất ngờ. Trước giờ mình toàn nghĩ agent thông minh là do model chính, không ngờ phần “script điều khiển” cố định lại quan trọng đến vậy. Cảm giác như họ đang hard-code một triết lý làm việc vào agent, chứ không chỉ prompt linh tinh mỗi phiên. Điều này cũng giải thích vì sao nhiều “AI dev agent” khác cứ thấy… ngáo ngáo.

    Source: https://www.youtube.com/watch?v=dYG8JxtSgmM

Để lại một bình luận

Khám phá thêm từ ProductiveTechTalk

Đăng ký ngay để tiếp tục đọc và truy cập kho lưu trữ đầy đủ.

Tiếp tục đọc