原文标题: "Hiểu ngay lập tức Mã nguồn Claude Code của Anthropic: Tại sao nó lại tốt hơn người khác?"
Tác giả gốc: Yuker, Nhà nghiên cứu trí tuệ nhân tạo
Ngày 31 tháng 3 năm 2026, nhà nghiên cứu an ninh Chaofan Shou phát hiện rằng bản phát hành của Anthropic lên npm trong gói Claude Code, tệp bản đồ nguồn (source map) không được tách.
Điều này có nghĩa là: Toàn bộ mã nguồn TypeScript của Claude Code, 51,2 nghìn dòng, 1903 tệp, đã bị tiết lộ trên Internet công cộng như vậy.
Tất nhiên, tôi không thể đọc toàn bộ mã nguồn trong chỉ vài giờ, vì vậy tôi đã đặt ba câu hỏi khi đọc mã nguồn này:
1. Sự khác biệt cốt lõi giữa Claude Code và các công cụ lập trình AI khác là gì?
2. Tại sao cách Claude Code viết mã có cảm giác tốt hơn so với người khác?
3. Trong 51 nghìn dòng mã, điều gì đang được ẩn trong đó?
Sau khi đọc xong, phản ứng đầu tiên của tôi là: Đây không phải là một trợ lí lập trình AI, mà đó là một hệ điều hành.
Hãy tưởng tượng bạn thuê một lập trình viên từ xa và cung cấp cho anh ta quyền truy cập từ xa vào máy tính của bạn.
Bạn sẽ làm thế nào?
Nếu bạn theo cách làm của Cursor: Bạn yêu cầu anh ta ngồi bên cạnh bạn, mỗi khi anh ta muốn nhập lệnh, bạn nhìn và nhấp vào "Cho phép". Đơn giản thô thiển, nhưng bạn phải nhìn chăm chú.
Nếu bạn theo cách làm của GitHub Copilot Agent: Bạn cung cấp cho anh ta một máy ảo hoàn toàn mới, để anh ta tự do thử nghiệm bên trong đó. Khi anh ta hoàn thành, anh ta gửi mã và bạn kiểm tra trước khi hợp nhất. An toàn, nhưng anh ta không thể nhìn thấy môi trường cục bộ của bạn.
Nếu bạn theo cách làm của Claude Code:
Bạn cho anh ta trực tiếp sử dụng máy tính của bạn — nhưng bạn đã trang bị cho anh ta một hệ thống kiểm tra an ninh cực kỳ chính xác. Anh ta có thể làm gì, không thể làm gì, những thao tác nào cần sự đồng ý của bạn, những thao tác nào anh ta có thể tự thực hiện, thậm chí nếu anh ta muốn sử dụng câu lệnh rm -rf, anh ta cũng cần phải trải qua 9 lớp kiểm tra mới được phép thực thi.
Đây chính là ba triết lý an ninh hoàn toàn khác nhau:

Tại sao Anthropic chọn con đường khó nhất?
Vì chỉ có như vậy, trí tuệ nhân tạo mới có thể sử dụng thiết bị cuối của bạn, môi trường của bạn, cấu hình của bạn để làm việc — điều này mới thật sự là "viết mã hỗ trợ thực sự" cho bạn, chứ không phải là "viết một đoạn mã trong một phòng sạch và sau đó sao chép qua".
Nhưng mất cái gì? Họ viết ra 51 nghìn dòng mã cho điều đó.
Đa số mọi người nghĩ rằng công cụ lập trình AI là như thế này:
Người dùng nhập → Gọi LLM API → Nhận kết quả → Hiển thị cho người dùng
Mã Claude thực tế như sau:
Người dùng nhập
→ Tạo động 7 lớp từ khóa hệ thống
→ Ghép Git trạng thái, giao ước dự án, bộ nhớ lịch sử
→ 42 công cụ mỗi cái đi kèm với hướng dẫn sử dụng
→ LLM quyết định sử dụng công cụ nào
→ Kiểm tra an ninh 9 lớp (Phân tích cú pháp AST, Bộ phân loại ML, Kiểm tra khu vực cách ly...)
→ Giải quyết cạnh tranh quyền hạn (Bàn phím cục bộ / IDE / Hook / Bộ phân loại AI đồng thời cạnh tranh)
→ Trễ chống chạm 200ms
→ Thực thi công cụ
→ Dữ liệu kết quả trả về theo luồng
→ Gần đạt ngưỡng bối cảnh?→ Nén 3 lớp (Nén nhẹ → Tự động nén → Nén hoàn toàn)
→ Cần song song?→ Phát triển tổ đội Agent con
→ Lặp đi lặp lại cho đến khi nhiệm vụ hoàn thành
Chắc chắn mọi người đều rất tò mò về cái trên, đừng lo, hãy cùng nhau mở ra và xem từng phần.
Mở src/constants/prompts.ts, bạn sẽ thấy hàm này:

Bạn đã chú ý đến cái biên SYSTEM_PROMPT_DYNAMIC_BOUNDARY chưa?
Đây là một đường ranh giới cache. Nội dung ở phía trên đường ranh giới là tĩnh, Claude API có thể lưu vào bộ nhớ cache để tiết kiệm phí token. Nội dung ở phía dưới đường ranh giới là động—nhánh Git hiện tại của bạn, cấu hình dự án CLAUDE.md của bạn, nhớ ưu tiên bạn đã thông báo trước đó… Mỗi cuộc trò chuyện là khác nhau.
Dễ hiểu điều gì từ đó?
Anthropic coi các từ gợi ý như đầu ra của trình biên dịch để tối ưu hóa. Phần tĩnh là "nhị phân đã biên dịch", phần động là "tham số thời gian chạy". Lợi ích của việc này là:
1. Tiết kiệm tiền: Phần tĩnh được lưu vào cache, không tính phí lặp lại
2. Nhanh: Cache trúng giúp nhảy qua việc xử lý token này
3. Linh hoạt: Phần động cho phép mỗi cuộc trò chuyện cảm nhận môi trường hiện tại
Mỗi công cụ đều có một "Hướng dẫn sử dụng" độc lập
Điều khiến tôi sốc hơn là: Mỗi thư mục công cụ đều có một tệp prompt.ts—Đây là hướng dẫn sử dụng dành riêng cho LLM.
Xem prompt.ts của BashTool (src/tools/BashTool/prompt.ts, khoảng 370 dòng):

Đây không phải là tài liệu dành cho con người, đây là hướng dẫn hành vi dành cho trí tuệ nhân tạo. Mỗi khi Claude Code khởi động, những quy tắc này sẽ được tiêm vào từ khóa hệ thống.
Đó là lý do tại sao Claude Code không bao giờ tự ý thực hiện git push --force, trong khi một số công cụ khác có thể—Không phải model thông minh hơn, mà từ khóa đã làm rõ quy định.
Và phiên bản nội bộ của Anthropic khác với phiên bản bạn đang dùng
Mã có nhiều nhánh như sau:

ant chính là nhân viên nội bộ của Anthropic. Phiên bản của họ có hướng dẫn ghi lại mã chi tiết hơn (Không viết chú thích trừ khi WHY không rõ ràng), chiến lược đầu ra táo bạo hơn (phương pháp viết kim tự tháp ngược), và một số tính năng thử nghiệm A/B vẫn đang diễn ra (Verification Agent, Explore & Plan Agent).
Điều này cho thấy Anthropic chính là người dùng lớn nhất của Claude Code. Họ đang sử dụng sản phẩm của mình để phát triển sản phẩm của mình.
Mở src/tools.ts, bạn sẽ thấy Trung tâm đăng ký công cụ:

Có 42 công cụ, nhưng hầu hết bạn chưa bao giờ thấy trực tiếp. Bởi vì nhiều công cụ được tải trễ — chỉ khi LLM cần, chúng mới được tiêm thông qua ToolSearchTool theo yêu cầu.
Tại sao lại như vậy?
Vì mỗi công cụ bổ sung, hệ thống gợi ý phải có thêm một đoạn mô tả, token phải chi tiêu thêm một ít tiền. Nếu bạn chỉ muốn Claude Code giúp bạn sửa một dòng code, nó không cần tải "Trình lên lịch công việc" và "Bộ quản lý cộng tác nhóm".
Có một thiết kế thông minh hơn nữa:

Đặt CLAUDE_CODE_SIMPLE=true, Claude Code sẽ chỉ còn ba công cụ: Bash, Đọc tệp, Sửa tệp.Điều này dành cho người theo chủ nghĩa tối giản.

Chú ý các giá trị mặc định: isConcurrencySafe mặc định false, isReadOnly mặc định false.
Điều này gọi là thiết kế đóng cửa khi hỏng — nếu tác giả của một công cụ quên khai báo tính an toàn, hệ thống sẽ giả sử rằng nó là "không an toàn, có thể ghi". Thà cẩn trọng quá, cũng đừng bỏ sót một rủi ro nào.

FileEditTool sẽ kiểm tra xem bạn đã dùng FileReadTool để đọc tệp này chưa. Nếu chưa, nó sẽ báo lỗi ngay, không cho phép sửa đổi.
Đó chính là lý do tại sao Claude Code không hoạt động như một số công cụ khác mà "tự động ghi đè mã vào tập tin của bạn" — nó buộc phải hiểu trước khi sửa đổi.
Những người đã sử dụng Claude Code đều có cảm giác:
Nó dường như thực sự biết bạn.
Bạn nói với nó "Đừng mock cơ sở dữ liệu trong bài kiểm tra", lần trò chuyện tiếp theo nó sẽ không mock nữa. Bạn nói với nó "Tôi là kỹ sư backend, mới bắt đầu với React", nó sẽ sử dụng định giả backend khi giải thích mã frontend.
Đằng sau đó là một hệ thống ghi nhớ hoàn chỉnh.

Claude Code sử dụng trí tuệ nhân tạo khác (Claude Sonnet) để quyết định "những ghi nhớ nào liên quan đến cuộc trò chuyện hiện tại".
Không phải khớp từ khóa, không phải tìm kiếm vector — mà là để một mô hình nhỏ nhanh chóng quét qua các tiêu đề và mô tả của tất cả các tập tin ghi nhớ, chọn ra tối đa 5 ghi nhớ liên quan nhất, sau đó đưa nội dung đầy đủ của chúng vào ngữ cảnh cuộc trò chuyện hiện tại.
Chiến lược là "Độ chính xác ưu tiên hơn Tỉ lệ truy xuất" — thà bỏ lỡ một ghi nhớ có thể hữu ích, cũng không đưa vào một ghi nhớ không liên quan làm ô nhiễm ngữ cảnh.
Chế độ KAIROS: "Mơ" vào ban đêm
Đây là phần khiến tôi cảm thấy như trong một câu chuyện khoa học.
Trong mã có một tính năng được gọi là KAIROS. Ở chế độ này, ghi nhớ trong các cuộc trò chuyện dài không tồn tại trong các tập tin cấu trúc, mà nó tồn tại trong một nhật ký ghi thêm theo ngày. Sau đó, có một kỹ năng /dream sẽ chạy vào "buổi tối" (khoảng thời gian ít hoạt động) để chuyển những nhật ký gốc này thành các tập tin chủ đề cấu trúc.

Trí tuệ nhân tạo sắp xếp lại ghi nhớ khi "ngủ". Điều này không còn là kỹ thuật nữa, đây là sinh học học.
Khi bạn yêu cầu Claude Code thực hiện một nhiệm vụ phức tạp, nó có thể đã làm việc này một cách im lặng:

Nó tạo ra một Đại Diện Con.
Và Đại Diện Con này có một phần tự ý 「tự nhận thức」 nghiêm ngặt, ngăn chặn nó tạo ra Đại Diện Con phức tạp hơn:

Đoạn mã này nói rằng: 「Bạn là một công nhân, không phải là một quản lý. Đừng nghĩ đến việc thuê thêm người, hãy tự làm việc.」
Mô Hình Người Phối Hợp: Mô Hình Quản Lý
Trong mô hình người phối hợp, Claude Code trở thành một người sắp xếp công việc thuần túy, không làm việc, chỉ phân công:

Các Nguyên Tắc Cơ Bản được viết trong chú thích mã:
「Song Song là siêu năng lực của bạn」: Công việc Nghiên Cứu chỉ để đọc: thực hiện song song. Công việc Ghi tệp: chia theo nhóm tệp để thực hiện tuần tự (tránh xung đột).
Tinh chỉnh Tạm Trữ Cache tối ưu nhất
Để tối đa hóa tỉ lệ trúng của cache của Đại Diện Con, tất cả kết quả công cụ của các tiến trình con nhánh đều sử dụng cùng văn bản đặt trước:
「Tiến trình con nhánh đã bắt đầu—xử lý ở nền」
Tại sao? Vì cache gợi ý của API Claude dựa trên việc đối chiếu tiền tố ở mức byte. Nếu 10 Đại Diện Con có byte tiền tố hoàn toàn giống nhau, thì chỉ có Đại Diện Con đầu tiên cần 「khởi động lạnh」, 9 Đại Diện còn lại trực tiếp trúng cache.
Đây là một tinh chỉnh giúp tiết kiệm vài đồng mỗi lần gọi, nhưng khi sử dụng quy mô lớn, có thể tiết kiệm đáng kể chi phí.
Tất cả LLM đều có giới hạn cửa sổ bối cảnh. Cuộc hội thoại càng dài, lượng tin nhắn lịch sử càng nhiều, cuối cùng chắc chắn sẽ vượt quá giới hạn.
Claude Code đã thiết kế ba lớp nén cho vấn đề này:

Nén nhỏ chỉ thay thế kết quả cuộc gọi cũ của công cụ - thay thế "Nội dung của tập tin 500 dòng đọc 10 phút trước" bằng [Nội dung kết quả công cụ cũ đã xóa].
Các gợi ý từ khóa và dòng chính trò chuyện được giữ nguyên.
Khi token tiêu thụ gần bằng 87% của cửa sổ ngữ cảnh (kích thước cửa sổ - bộ đệm 13,000), nén tự động được kích hoạt. Có một cầu dao: dừng sau 3 lần nén thất bại liên tiếp để tránh vòng lặp vô hạn.
Cho phép AI tạo bản tóm tắt của toàn bộ đoạn trò chuyện, sau đó thay thế tất cả các tin nhắn lịch sử bằng bản tóm tắt đó. Có một hướng dẫn khắt khe trước khi tạo tóm tắt:

Tại sao cần phải khắt khe như vậy? Bởi vì nếu trong quá trình tóm tắt AI lại gọi công cụ, điều này sẽ tiêu tốn thêm token, ngược lại với mục đích ban đầu. Phần gợi ý này đang nói rằng: "Nhiệm vụ của bạn là tóm tắt, đừng làm cái khác".
Ngân Sách Token Sau Nén:
· Khôi phục tập tin: 50,000 tokens
· Giới hạn mỗi tập tin: 5,000 tokens
· Nội dung kỹ năng: 25,000 tokens
Các con số này không phải chỉ đưa ra một cách ngẫu nhiên - chúng là sự cân bằng giữa "duy trì đủ ngữ cảnh để tiếp tục làm việc" và "mở ra đủ không gian để nhận tin nhắn mới".
Trong 510,000 dòng mã, phần thực sự gọi API LLM có thể không đến 5%. 95% còn lại là gì?
· Kiểm tra bảo mật (18 tập tin chỉ cho một Công cụ Bash)
· Hệ thống quyền (quyết định bốn trạng thái cho phép/từ chối/hỏi/đi qua)
· Quản lý ngữ cảnh (Ba lần nén + Truy xuất trí nhớ AI)
· Phục hồi lỗi (Cầu dao, Tránh đụng, Bền vững Transcript)
· Đồng bộ nhiều Agent (Lập lịch kết tập + Email)
· Giao interaction UI (140 thành phần React + Cầu nối IDE)
· Tinh chỉnh hiệu suất (Ô tô cache ổn định + Tải trước song song khi khởi động)
Nếu bạn đang phát triển sản phẩm AI Agent, đây mới thực sự là vấn đề bạn cần giải quyết. Không phải vấn đề là mô hình có đủ thông minh hay không, mà là vấn đề là cốt truyện của bạn đủ chắc chắn hay không.
Không phải viết một đoạn code tối ưu là xong. Các từ khóa của Claude Code là:
· 7 tầng lắp ráp động
· Mỗi công cụ đi kèm hướng dẫn sử dụng riêng
· Phân chia chính xác ranh giới cache
· Phiên bản nội bộ và phiên bản bên ngoài có tập lệnh khác nhau
· Thứ tự công cụ cố định để duy trì cache ổn định
Đây là quản lý từ khóa theo tiêu chuẩn hệ thống, không phải là nghệ thuật thủ công.
Mỗi phụ thuộc bên ngoài đều có chiến lược khi thất bại:

42 công cụ = Hệ thống gọi = Hệ thống quản lý quyền người dùng kỹ năng = Cửa hàng ứng dụng MCP Protocol = Trình điều khiển thiết bị Cluster Agent = Quản lý tiến trình Nén bối cảnh = Quản lý bộ nhớ Bền vững Transcript = Hệ thống tệp
Đây không chỉ là một "chatbot cộng một số công cụ", đó là một hệ điều hành có nhân LLM.
51 nghìn dòng code. 1903 tập tin. 18 tập tin bảo mật chỉ cho một công cụ Bash.
9 lớp xem xét chỉ để cho phép AI an toàn giúp bạn viết một lệnh.
Đây chính là câu trả lời của Anthropic: Để AI thực sự hữu ích, bạn không thể bỏ nó trong chuồng, cũng không thể để nó hoạt động trần như vậy. Bạn phải xây dựng cho nó một hệ thống tin cậy toàn diện.
Và chi phí cho hệ thống tin cậy này là 51.000 dòng mã.
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia