Toàn bộ dữ liệu của Claude Code gồm 500.000 dòng mã bị rò rỉ đã được tổng hợp, lõi thực sự của AI Agent là gì?

BlockBeatNews

51,2 vạn dòng mã, 1.906 tệp tin, 59,8 MB source map. Rạng sáng ngày 31 tháng 3, Chaofan Shou của Solayer Labs phát hiện sản phẩm chủ lực Claude Code của Anthropic đã phơi bày toàn bộ mã nguồn trên kho npm công khai. Trong vòng vài giờ, mã được sao chép lên GitHub, số lượt fork vượt 41.000.

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

Phần lớn các bài đưa tin đều lục lọi các “trứng phục sinh” trong bản rò rỉ, như hệ thống thú cưng ảo, hay “chế độ nằm vùng” để Claude ẩn danh gửi mã cho dự án mã nguồn mở. Nhưng thứ thật sự đáng phân tích là: vì sao cùng một mô hình Claude lại cho kết quả chênh lệch nhiều đến thế giữa phiên bản web và Claude Code? 51,2 vạn dòng mã rốt cuộc đang làm gì?

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

Câu trả lời nằm trong cấu trúc mã. Theo phân tích ngược của cộng đồng GitHub đối với mã nguồn rò rỉ, trong 512.000 dòng TypeScript, phần mã trực tiếp chịu trách nhiệm gọi giao diện của mô hình AI chỉ khoảng 8.000 dòng, chiếm 1,6% tổng lượng.

Phần còn lại 98,4% đang làm gì? Hai mô-đun lớn nhất là công cụ truy vấn (46.000 dòng) và hệ thống công cụ (29.000 dòng). Công cụ truy vấn xử lý lệnh gọi LLM API, đầu ra dạng luồng, điều phối cache và quản lý hội thoại nhiều lượt. Hệ thống công cụ định nghĩa khoảng 40 công cụ tích hợp sẵn và 50 lệnh dạng slash, tạo thành một kiến trúc kiểu plugin; mỗi công cụ có cơ chế kiểm soát quyền truy cập độc lập.

Ngoài ra còn có 25.000 dòng mã hiển thị UI cho terminal (trong đó một tệp tên print.ts dài tới 5.594 dòng, một hàm trải qua 3.167 dòng), 20.000 dòng về bảo mật và kiểm soát quyền (bao gồm 23 hạng mục kiểm tra bảo mật Bash đánh số và 18 lệnh nội tại Zsh bị chặn), cùng 18.000 dòng hệ thống điều phối đa tác nhân.

Nhà nghiên cứu nghiên cứu máy học Sebastian Raschka, sau khi phân tích mã rò rỉ, cho biết Claude Code mạnh hơn bản web dùng cùng mô hình là nhờ không phải bản thân mô hình, mà nhờ “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ữ, điều phối công cụ chuyên dụng, chiến lược cache và phối hợp giữa các tác nhân con. Thậm chí ông còn cho rằng nếu đem kiến trúc kỹ thuật tương tự gắn vào các mô hình khác như DeepSeek hay Kimi, cũng có thể đạt mức cải thiện hiệu năng lập trình gần tương đương.

Một so sánh trực quan giúp hiểu khoảng cách này. Bạn gõ một câu hỏi trên ChatGPT hoặc Claude phiên bản web; mô hình xử lý xong thì trả về đáp án, và khi kết thúc hội thoại thì chẳng để lại gì. Nhưng cách làm của Claude Code hoàn toàn khác: lúc khởi động, nó đọc trước các tệp dự án của bạn, hiểu cấu trúc kho mã, ghi nhớ sở thích bạn từng nói như “đừng mock database trong test”. Nó có thể trực tiếp thực thi lệnh, chỉnh sửa tệp và chạy test trong chính terminal của bạn; khi gặp tác vụ phức tạp, nó sẽ tách thành nhiều tác vụ con và giao cho các tác nhân con khác nhau xử lý song song. Nói cách khác, AI ở phiên bản web giống như một cửa sổ hỏi-đáp, còn 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ư một hệ điều hành: 42 công cụ tích hợp sẵn tương đương lời gọi hệ thống, hệ thống quyền tương đương quản lý người dùng, giao thức MCP tương đương driver thiết bị, và điều phối tác nhân con tương đương điều độ tiến trình. Mỗi công cụ khi xuất xưởng mặc định được gắn nhãn là “không an toàn, có thể ghi vào”, trừ khi nhà phát triển chủ động khai báo rằng nó an toàn. Công cụ chỉnh sửa tệp sẽ bắt buộc kiểm tra xem bạn đã đọc tệp đó chưa; nếu chưa đọc thì không cho sửa. Đây không phải kiểu “gắn thêm vài công cụ” vào một chatbot; mà là một môi trường chạy có lõi là LLM, kèm cơ chế bảo mật đầy đủ.

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

Mỗi lần cache bị xuyên thủng, chi phí tăng gấp 10

Trong mã rò rỉ có một tệp tên promptCacheBreakDetection.ts, nó theo dõi 14 kiểu vector có thể khiến prompt cache bị mất hiệu lực. Vì sao các kỹ sư của Anthropic lại tốn nhiều công sức để ngăn cache bị xuyên thủng?

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

Điều này lý giải hàng loạt quyết định kiến trúc nhìn như “over-design” trong mã rò rỉ. Khi Claude Code khởi động, nó sẽ tải nhánh git hiện tại, lịch sử commit gần đây và tệp CLAUDE.md làm ngữ cảnh; các nội dung tĩnh này được lưu vào cache toàn cục. Chúng được phân tách với phần nội dung động bằng các dấu biên, đảm bảo mỗi hội thoại mới không xử lý lại những ngữ cảnh đã có sẵn. Trong mã còn có một cơ chế gọi là sticky latches, nhằm ngăn việc chuyển chế độ làm hỏng cache đã được thiết lập. Các tác nhân con được thiết kế để tái sử dụng cache của tiến trình cha, thay vì tự tạo lại cửa sổ ngữ cảnh riêng.

Có một chi tiết đáng để khai triển. Những ai đã dùng công cụ lập trình AI đều biết rằng hội thoại càng dài thì câu trả lời của AI càng chậm, vì mỗi lượt hội thoại đều phải gửi lại toàn bộ lịch sử trước đó cho mô hình. Cách thông thường là xóa các tin nhắn cũ để giải phóng dung lượng, nhưng vấn đề là: xóa bất kỳ tin nhắn nào sẽ phá vỡ tính liên tục của cache, khiến toàn bộ lịch sử hội thoại phải được xử lý lại, khiến độ trễ và chi phí cùng lúc tăng vọt.

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

Theo dữ liệu giám sát nội bộ bị rò rỉ (từ phần chú thích code của autoCompact.ts, có ghi ngày 10 tháng 3 năm 2026), trước khi đưa vào giới hạn thất bại tự nén, Claude Code mỗi ngày lãng phí khoảng 250.000 lần gọi API. Có 1.279 phiên người dùng session gặp thất bại nén liên tục hơn 50 lần; phiên nghiêm trọng nhất thất bại liên tục 3.272 lần. Cách khắc phục 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 của mô hình có thể không phải là lớp đắt nhất; chính là thất bại trong quản lý cache.

44 cái công tắc, hướng về cùng một phía

Trong mã rò rỉ có giấu 44 feature flags—các công tắc chức năng đã được biên dịch sẵn—nhưng chưa được phát hành ra công khai. Theo phân tích của cộng đồng, các flags này được chia thành năm nhóm theo miền chức năng; nhóm dày đặc nhất là “tác nhân tự chủ” (12 cái), hướng về một hệ thống có tên KAIROS.

KAIROS được trích dẫn trong mã nguồn hơn 150 lần; nó là một chế độ thường trú kiểu tiến trình nền. 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 phía sau, liên tục quan sát, ghi nhận, và chủ động hành động vào thời điểm phù hợp. Điều kiện là không làm gián đoạn người dùng; mọi thao tác có khả năng chặn người dùng hơn 15 giây sẽ bị trì hoãn thực thi.

KAIROS còn tích hợp nhận biết tiêu điểm terminal. Trong mã có một trường terminalFocus, theo dõi thời gian thực xem người dùng có đang nhìn vào 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 sẽ phán định rằng bạn “không ở đó”, và sẽ chuyển sang chế độ tự chủ để chủ động thực hiện tác vụ, nộp mã trực tiếp—không chờ bạn xác nhận. Khi bạn quay lại terminal, tác nhân lập tức chuyển về chế độ cộng tác: trước tiên báo cáo vừa làm gì xong, rồi xin ý kiến bạn. Mức độ tự chủ không phải cố định; nó dao động theo sự chú ý của bạn theo thời gian thực. Cách này giải quyết một vấn đề khó xử mà công cụ AI lâu nay gặp: AI hoàn toàn tự chủ khiến người ta không yên tâm, còn AI hoàn toàn bị động thì lại kém hiệu quả. Lựa chọn của KAIROS là điều chỉnh tính chủ động của AI theo động thái chú ý của người dùng—bạn nhìn vào nó thì nó ngoan ngoãn, bạn đi sang chỗ khác thì nó tự làm việc.

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

Nhóm thứ hai là “giả lập giải chưng cất và an toàn” (8 flags). Trong số đó đáng chú ý nhất là cơ chế fake_tools: khi đồng thời thỏa mãn 4 điều kiện (flag bật ở lúc biên dịch, cổng CLI được kích hoạt, sử dụng API của bên thứ nhất, và GrowthBook remote switch đặt true), Claude Code sẽ chèn vào yêu cầu API một định nghĩa công cụ giả nhằm “làm bẩn” các tập dữ liệu có thể được dùng để ghi lại luồng API và huấn luyện mô hình của đối thủ. Đây là một hình thái phòng thủ mới trong cuộc đua vũ trang AI: không phải ngăn bạn sao chép, mà là khiến bạn sao chép thứ không đúng.

Ngoài ra, trong mã còn xuất hiện mã hiệu mô hình Capybara (chia thành ba cấp: bản tiêu chuẩn, bản fast và bản cửa sổ ngữ cảnh một triệu), và cộng đồng rộng rãi suy đoán đây là mã hiệu nội bộ của dòng Claude 5.

Trứng phục sinh: Trong 512.000 dòng mã có giấu một thú cưng điện tử

Giữa mọi kiến trúc kỹ thuật nghiêm túc và cơ chế bảo mật, các kỹ sư của Anthropic vẫn lặng lẽ xây dựng một hệ thống thú cưng ảo hoàn chỉnh, với mã nội bộ BUDDY.

Theo mã rò rỉ và phân tích của cộng đồng, BUDDY là một thú cưng dạng “giả vật thể” đặt trong terminal: nó xuất hiện dưới dạng khung bong bóng ASCII cạnh ô nhập liệu của người dùng. Nó có 18 loài (bao gồm chuột nước, kỳ nhông, nấm, hồn ma, rồng, cùng một loạt sinh vật nguyên tác như Pebblecrab, Dustbunny, Mossfrog), được chia thành năm cấp độ theo độ hiếm: phổ thông (60%), hiếm (25%), rất hiếm (10%), huyền thoại (4%) và truyền thuyết (1%). Mỗi loài còn có “biến thể lấp lánh”; loài Shiny Legendary Nebulynx hiếm nhất có xác suất xuất hiện chỉ 1/10.000.

Mỗi con BUDDY có năm thuộc tính: DEBUGGING (gỡ lỗi), PATIENCE (kiên nhẫn), CHAOS (hỗn loạn), WISDOM (trí tuệ) và SNARK (mỉa mai). Chúng cũng đội mũ, tùy chọn gồm vương miện, mũ lễ phức, mũ cánh quạt xoắn, vòng hào quang, mũ phù thủy, và thậm chí còn có một chú vịt con mini. Giá trị băm hash của ID người dùng quyết định bạn sẽ “ươm nở” ra con thú nào; Claude sẽ tạo tên và tính cách cho nó.

Theo kế hoạch ra mắt bị rò rỉ, BUDDY ban đầu dự kiến mở thử nghiệm nội bộ từ ngày 1/4 đến 7/4, và chính thức ra mắt vào tháng 5, bắt đầu từ nhân viên nội bộ của Anthropic.

512.000 dòng mã, 98,4% dùng để làm kỹ thuật “cứng”, nhưng cuối cùng vẫn có người bỏ thời gian để tạo ra một con bọ rùa điện tử biết đội mũ cánh quạt xoắn. Có lẽ đây mới là “một dòng mã nhân văn nhất” trong bản rò rỉ.

Bấm để tìm hiểu:律动BlockBeats đang tuyển dụng

Chào mừng bạn tham gia cộng đồng chính thức của律动 BlockBeats:

Telegram kênh đăng ký: https://t.me/theblockbeats

Nhóm Telegram chat: https://t.me/BlockBeats_App

Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể đến từ bên thứ ba và không đại diện cho quan điểm hoặc ý kiến của Gate. Nội dung hiển thị trên trang này chỉ mang tính chất tham khảo và không cấu thành bất kỳ lời khuyên tài chính, đầu tư hoặc pháp lý nào. Gate không đảm bảo tính chính xác hoặc đầy đủ của thông tin và sẽ không chịu trách nhiệm cho bất kỳ tổn thất nào phát sinh từ việc sử dụng thông tin này. Đầu tư vào tài sản ảo tiềm ẩn rủi ro cao và chịu biến động giá đáng kể. Bạn có thể mất toàn bộ vốn đầu tư. Vui lòng hiểu rõ các rủi ro liên quan và đưa ra quyết định thận trọng dựa trên tình hình tài chính và khả năng chấp nhận rủi ro của riêng bạn. Để biết thêm chi tiết, vui lòng tham khảo Tuyên bố miễn trừ trách nhiệm.
Bình luận
0/400
Không có bình luận