BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

AI Agent thực sự đang làm gì? Phân tích toàn diện vụ rò rỉ 500.000 dòng mã Claude Code

区块律动BlockBeats
特邀专栏作者
2026-04-01 03:04
Bài viết này có khoảng 4158 từ, đọc toàn bộ bài viết mất khoảng 6 phút
Mã giao diện trực tiếp gọi mô hình AI chỉ chiếm 1.6% tổng số lượng
Tóm tắt AI
Mở rộng
  • Quan điểm cốt lõi: Sự kiện rò rỉ mã nguồn của công cụ lập trình AI Claude Code thuộc Anthropic tiết lộ rằng, cốt lõi hiệu suất mạnh mẽ của nó không phải là bản thân mô hình AI, mà nằm ở kiến trúc kỹ thuật đồ sộ và phức tạp được xây dựng xung quanh mô hình. Điều này có thể sẽ trở thành rào cản cạnh tranh then chốt cho các sản phẩm AI trong tương lai.
  • Yếu tố then chốt:
    1. Quy mô mã nguồn bị rò rỉ lên tới 512.000 dòng, nhưng mã giao diện trực tiếp gọi mô hình AI chỉ chiếm 1.6%, 98.4% còn lại là mã kiến trúc kỹ thuật.
    2. Các mô-đun kỹ thuật cốt lõi bao gồm công cụ truy vấn, hệ thống công cụ, kiểm soát quyền an ninh và hệ thống điều phối đa tác nhân, tạo thành một môi trường chạy hoàn chỉnh với LLM là lõi.
    3. Thiết kế cơ chế bộ nhớ đệm phức tạp để kiểm soát chi phí, chi phí gọi API khi bộ nhớ đệm trúng và thất bại chênh lệch 10 lần, quản lý bộ nhớ đệm là chìa khóa để kiểm soát chi phí.
    4. Mã bị rò rỉ chứa 44 công tắc chức năng, trỏ đến hệ thống tác nhân tự chủ có tên KAIROS, có thể điều chỉnh tính chủ động của AI theo sự chú ý của người dùng.
    5. Mã ẩn chứa một hệ thống thú cưng ảo hoàn chỉnh (BUDDY), bao gồm nhiều loài, cấp độ hiếm và đồ trang trí, dự kiến ra mắt vào mùa xuân năm 2026.

512,000 dòng code, 1,906 file, 59.8 MB source map. Vào rạng sáng ngày 31/3, Chaofan Shou từ Solayer Labs phát hiện sản phẩm flagship Claude Code của Anthropic đã để lộ toàn bộ mã nguồn trên kho lưu trữ npm công cộng. Chỉ trong vài giờ, code đã được mirror lên GitHub, số lượng fork vượt 41,000.

Đây không phải lần đầu Anthropic mắc lỗi này. Vào tháng 2/2025 khi Claude Code lần đầu ra mắt, một vụ rò rỉ source map tương tự đã xảy ra. Lần này phiên bản là v2.1.88, nguyên nhân rò rỉ giống nhau: công cụ xây dựng Bun mặc định tạo ra source map, và file này bị bỏ sót trong .npmignore.

Hầu hết các bài báo đang liệt kê những "trứng phục sinh" trong vụ rò rỉ, ví dụ như có hệ thống thú cưng ảo, có "chế độ ngầm" cho phép Claude gửi code ẩn danh cho các dự án mã nguồn mở. Nhưng câu hỏi thực sự đáng phân tích là: Tại sao cùng một mô hình Claude, hiệu suất trên phiên bản web và trong Claude Code lại chênh lệch nhiều đến vậy? 512,000 dòng code đó thực sự đang làm gì?


Mô hình chỉ là phần nổi của tảng băng chìm

Câu trả lời ẩn trong cấu trúc code. Theo phân tích ngược của cộng đồng GitHub trên mã nguồn bị rò rỉ, trong 512,000 dòng TypeScript, chỉ có khoảng 8,000 dòng code giao diện trực tiếp chịu trách nhiệm gọi mô hình AI, chiếm 1.6% tổng số.

98.4% còn lại đang làm gì? Hai module lớn nhất là query engine (46,000 dòng) và tool system (29,000 dòng). Query engine xử lý các lệnh gọi LLM API, đầu ra dạng stream, điều phối bộ nhớ đệm và quản lý hội thoại nhiều lượt. Tool system định nghĩa khoảng 40 công cụ tích hợp và 50 lệnh slash, tạo thành một kiến trúc giống plugin, mỗi công cụ có kiểm soát quyền riêng biệt.

Ngoài ra còn có 25,000 dòng code render UI terminal (một trong số đó là file print.ts dài 5,594 dòng, một hàm đơn lẻ trải dài 3,167 dòng), 20,000 dòng kiểm soát bảo mật và quyền (chứa 23 kiểm tra bảo mật Bash được đánh số và 18 lệnh built-in Zsh bị chặn), và 18,000 dòng hệ thống điều phối đa agent.

Nhà nghiên cứu học máy Sebastian Raschka sau khi phân tích code bị rò rỉ đã chỉ ra rằng, lý do Claude Code mạnh hơn phiên bản web cùng mô hình không nằm ở bản thân mô hình, mà nằm ở phần "giàn giáo" phần mềm được xây dựng xung quanh mô hình, bao gồm tải ngữ cảnh kho lưu trữ, lập lịch công cụ chuyên dụng, chiến lược bộ nhớ đệm và sự hợp tác của các agent con. Ông thậm chí cho rằng, nếu áp dụng cùng kiến trúc kỹ thuật này lên các mô hình khác như DeepSeek hoặc Kimi, cũng có thể đạt được mức cải thiện hiệu suất lập trình tương tự.

Một so sánh trực quan có thể giúp hiểu khoảng cách này. Bạn nhập một câu hỏi vào ChatGPT hoặc Claude phiên bản web, mô hình xử lý xong rồi trả lời, khi cuộc hội thoại kết thúc không để lại gì. Nhưng cách làm của Claude Code hoàn toàn khác, khi khởi động nó đọc trước file dự án của bạn, hiểu cấu trúc kho code của bạn, ghi nhớ sở thích của bạn lần trước như "đừng mock database trong bài test". Nó có thể trực tiếp thực thi lệnh trong terminal của bạn, chỉnh sửa file, chạy test, gặp nhiệm vụ phức tạp còn chia thành nhiều nhiệm vụ con phân phối cho các agent con khác nhau xử lý song song. Nói cách khác, AI phiên bản web là một cửa sổ hỏi đáp, Claude Code là một cộng tác viên sống trong máy tính của bạn.

Có người ví kiến trúc này như hệ điều hành: 42 công cụ tích hợp tương đương với system call, hệ thống quyền hạn tương đương với quản lý người dùng, giao thức MCP tương đương với driver thiết bị, điều phối agent con tương đương với lập lịch tiến trình. Mỗi công cụ khi xuất xưởng mặc định được đánh dấu là "không an toàn, có thể ghi", trừ khi nhà phát triển chủ động tuyên bố nó an toàn. Công cụ chỉnh sửa file sẽ buộc kiểm tra xem bạn đã đọc file này chưa, chưa đọc thì không cho sửa. Đây không phải là một chatbot gắn thêm vài công cụ, mà là một môi trường chạy với LLM làm lõi, kèm cơ chế bảo mật hoàn chỉnh.

Điều này có nghĩa một điều: rào cản cạnh tranh của sản phẩm AI, có thể không nằm ở tầng mô hình, mà ở tầng kỹ thuật.


Mỗi lần xuyên thủng bộ nhớ đệm, chi phí tăng gấp 10 lần

Trong code bị rò rỉ có một file tên là promptCacheBreakDetection.ts, nó theo dõi 14 vector có thể khiến prompt cache mất hiệu lực. Tại sao các kỹ sư của Anthropic phải bỏ nhiều công sức ngăn chặn việc xuyên thủng bộ nhớ đệm như vậy?

Nhìn vào giá chính thức của Anthropic là hiểu. Lấy Claude Opus 4.6 làm ví dụ, giá đầu vào tiêu chuẩn là 5 USD cho mỗi triệu token, nhưng nếu trúng bộ nhớ đệm, giá đọc chỉ 0.5 USD, rẻ hơn 90%. Ngược lại, mỗi lần xuyên thủng bộ nhớ đệm, chi phí suy luận sẽ tăng gấp 10 lần.

Điều này giải thích cho nhiều quyết định kiến trúc trông có vẻ "thiết kế quá mức" trong code bị rò rỉ. Khi khởi động, Claude Code sẽ tải nhánh git hiện tại, bản ghi commit gần nhất và file CLAUDE.md làm ngữ cảnh, những nội dung tĩnh này được lưu vào bộ nhớ đệm toàn cục, sử dụng boundary marker để phân tách nội dung động, đảm bảo mỗi cuộc hội thoại không xử lý lặp lại ngữ cảnh đã có. Trong code còn có một cơ chế gọi là sticky latches, ngăn chặn việc chuyển đổi chế độ phá hỏng bộ nhớ đệm đã thiết lập. Các agent con được thiết kế để tái sử dụng bộ nhớ đệm của tiến trình cha, thay vì tự thiết lập lại cửa sổ ngữ cảnh của mình.

Có một chi tiết đáng mở rộng ở đây. Người dùng công cụ lập trình AI đều biết, cuộc hội thoại càng dài, phản hồi của AI càng chậm, vì mỗi lượt hội thoại đều phải gửi lại lịch sử trước đó cho mô hình. Cách làm thông thường là xóa tin nhắn cũ để giải phóng không gian, nhưng vấn đề là, xóa bất kỳ tin nhắn nào cũng sẽ phá vỡ tính liên tục của bộ nhớ đệm, khiến toàn bộ lịch sử hội thoại cần được xử lý lại, độ trễ và chi phí đồng thời tăng vọt.

Trong code bị rò rỉ tồn tại một cơ chế gọi là cache_edits, cách làm là không thực sự xóa tin nhắn, mà ở tầng API đánh dấu tin nhắn cũ là "bỏ qua". Mô hình không nhìn thấy những tin nhắn này nữa, nhưng tính liên tục của bộ nhớ đệm không bị phá vỡ. Điều này có nghĩa một cuộc hội thoại dài vài giờ, sau khi dọn dẹp vài trăm tin nhắn cũ, tốc độ phản hồi của lượt tiếp theo gần như nhanh bằng lượt đầu tiên. Đối với người dùng thông thường, đây chính là câu trả lời cốt lõi cho việc "tại sao Claude Code có thể hỗ trợ hội thoại dài vô hạn mà không chậm".

Theo dữ liệu giám sát nội bộ bị rò rỉ (từ chú thích code của autoCompact.ts, ghi ngày 10/3/2026), trước khi giới hạn trên tự động nén thất bại được đưa vào, Claude Code mỗi ngày lãng phí khoảng 250,000 lần gọi API. Có 1,279 user session xuất hiện hơn 50 lần nén liên tiếp thất bại, nghiêm trọng nhất là một session thất bại liên tiếp 3,272 lần. Cách sửa chỉ là thêm một dòng giới hạn: MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3.

Vì vậy, đối với sản phẩm AI, chi phí suy luận mô hình có thể không phải là tầng đắt đỏ nhất, mà quản lý bộ nhớ đệm thất bại mới là.


44 công tắc, chỉ về cùng một hướng

Trong code bị rò rỉ ẩn chứa 44 feature flags - các công tắc tính năng đã được biên dịch, chỉ là chưa phát hành ra ngoài. Theo phân tích cộng đồng, các flags này được chia thành năm loại theo miền chức năng, trong đó dày đặc nhất là loại "tác nhân tự chủ" (12 flags), hướng đến một hệ thống tên là KAIROS.

KAIROS được tham chiếu hơn 150 lần trong mã nguồn, nó là một chế độ daemon chạy nền thường trực. Claude Code không còn chỉ là công cụ phản hồi khi bạn chủ động gọi, mà là một tác nhân luôn chạy trong nền, liên tục quan sát, ghi chép, và chủ động hành động vào thời điểm thích hợp. Điều kiện tiên quyết là không làm gián đoạn người dùng, bất kỳ thao tác nào có thể chặn người dùng quá 15 giây đều sẽ bị trì hoãn thực hiện.

KAIROS còn tích hợp nhận thức tiêu điểm terminal. Trong code có một trường terminalFocus, phát hiện thời gian thực người dùng có đang nhìn cửa sổ terminal hay không. Khi bạn chuyển sang trình duyệt hoặc ứng dụng khác, tác nhân đánh giá bạn "không có mặt", sẽ chuyển sang chế độ tự chủ, chủ động thực hiện nhiệm vụ, trực tiếp gửi code, không đợi bạn xác nhận. Khi bạn chuyển lại terminal, tác nhân lập tức trở về chế độ cộng tác: báo cáo trước những gì vừa làm, rồi xin ý kiến của bạn. Mức độ tự chủ không cố định, mà thay đổi theo sự chú ý của bạn theo thời gian thực. Điều này giải quyết một vấn đề khó xử lâu nay của công cụ AI: AI hoàn toàn tự chủ khiến người ta không yên tâm, AI hoàn toàn thụ động thì hiệu quả lại quá thấp. Lựa chọn của KAIROS là để tính chủ động của AI điều chỉnh động theo sự chú ý của người dùng, bạn nhìn nó thì nó ngoan ngoãn, bạn đi khỏi thì nó tự làm việc.

Một hệ thống con khác của KAIROS gọi là autoDream, cứ tích lũy 5 phiên hoặc cách nhau 24 giờ, tác nhân sẽ khởi động một quy trình "suy ngẫm" trong nền, đi theo bốn bước. Đầu tiên quét qua ký ức hiện có, hiểu bản thân hiện nắm giữ gì. Sau đó trích xuất kiến thức mới từ nhật ký hội thoại. Rồi hợp nhất kiến thức cũ và mới, sửa chữa mâu thuẫn, loại bỏ trùng lặp. Cuối cùng tinh chỉnh chỉ mục, xóa các mục đã lỗi thời. Thiết kế này tham khảo lý thuyết củng cố trí nhớ trong khoa học nhận thức. Con người sắp xếp ký ức ban ngày khi ngủ, KAIROS sắp xếp ngữ cảnh dự án khi người dùng rời đi. Đối với người dùng thông thường, điều này có nghĩa bạn càng dùng Claude Code lâu, nó càng hiểu chính xác dự án của bạn, chứ không chỉ đơn thuần "nhớ bạn đã nói gì".

Loại lớn thứ hai là "chống chưng cất và bảo mật" (8 flags). Đáng chú ý nhất trong đó là cơ chế fake_tools, khi 4 điều kiện đồng thời thỏa mãn (flag thời gian biên dịch bật, điểm vào CLI kích hoạt, sử dụng API first-party, công tắc từ xa GrowthBook là true), Claude Code sẽ tiêm định nghĩa công cụ giả vào yêu cầu API, mục đích là làm nhiễm bẩn tập d

Sự an toàn
AI