DEV Community

Cover image for Lộ Mã Nguồn Claude Tiết Lộ Gì Về Kiến Trúc Công Cụ Lập Trình AI
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Lộ Mã Nguồn Claude Tiết Lộ Gì Về Kiến Trúc Công Cụ Lập Trình AI

Tóm tắt

Anthropic đã vô tình phát hành một tệp .map cùng với gói npm Claude Code, làm lộ toàn bộ mã nguồn có thể đọc được của công cụ CLI của họ. Sự cố rò rỉ này hé lộ các cơ chế chống chắt lọc với việc tiêm công cụ giả, công cụ regex phát hiện sự thất vọng, chế độ bí mật ẩn danh tính AI trong commit nguồn mở, và một chế độ tác nhân tự động chưa phát hành tên là KAIROS. Dưới đây là những gì các nhà phát triển API nên biết về cách các công cụ AI viết code vận hành thực tế.

Dùng thử Apidog ngay hôm nay

Giới thiệu

Vào ngày 31/03/2026, nhà nghiên cứu bảo mật Chaofan Shou phát hiện Anthropic phát hành tệp bản đồ nguồn (.map) cùng gói npm Claude Code. Source map là tệp giúp ánh xạ mã đã rút gọn về lại code dễ đọc, dùng cho debug và lẽ ra phải loại bỏ trước khi phát hành.

Tuy nhiên, chúng đã không bị loại bỏ, khiến toàn bộ mã nguồn Claude Code – bao gồm comment, tên mã nội bộ, chi tiết kiến trúc – trở nên công khai cho bất kỳ ai tải gói này.

Phát hiện này đã đứng đầu Hacker News (1.888 điểm, 926 bình luận), lan truyền mạnh trên Reddit, Twitter, các diễn đàn dev. Anthropic đã gỡ gói, nhưng mã đã bị sao chép và phân tích rộng rãi.

💡 Dù bạn dùng Claude Code, Cursor, GitHub Copilot hay nền tảng phát triển API như Apidog, sự cố này cung cấp cái nhìn hiếm hoi về nội bộ các công cụ AI viết code. Hiểu rõ cơ chế giúp bạn lựa chọn công cụ phù hợp cho codebase của mình.

Bài viết này phân tích các phát hiện kỹ thuật chính, ý nghĩa thực tiễn cho developer sử dụng công cụ AI viết code.

Mã nguồn đã bị rò rỉ như thế nào

Nguyên nhân gốc rễ: Lỗi công cụ build Bun

Claude Code xây dựng trên Bun – một runtime JS thay thế. Ngày 11/03/2026, lỗi oven-sh/bun#28001 báo rằng Bun vẫn phục vụ source map ở chế độ production, mặc dù documentation nói ngược lại.

Quy trình build của Anthropic đã kích hoạt lỗi này, khiến file .map được xuất hiện trong bản phân phối npm. Chỉ cần chạy:

npm pack @anthropic-ai/claude-code
Enter fullscreen mode Exit fullscreen mode

hoặc kiểm tra nội dung package, bạn đã có thể truy cập code chưa rút gọn.

Đáng chú ý: lỗi trong toolchain (Bun) Anthropic chọn đã làm rò rỉ mã độc quyền qua npm registry. Cùng ngày, registry này cũng phân phối gói Axios bị tấn công.

Những gì đã bị lộ

Vụ rò rỉ bao gồm:

  • Toàn bộ source code TypeScript cho tất cả modules
  • Comment nội bộ giải thích quyết định thiết kế
  • Flag tính năng & cấu hình thử nghiệm
  • Prompt hệ thống và cơ chế an toàn
  • Tên mã nội bộ cho các tính năng chưa phát hành
  • Chi tiết tối ưu hóa hiệu suất (có số liệu cụ thể)

Đây không phải là leak một phần, mà là codebase production kèm ngữ cảnh kỹ thuật gốc.

Chống chắt lọc: Bảo vệ chống trộm cắp mô hình

Tiêm công cụ giả

Trong claude.ts (dòng 301-313): Khi bật flag ANTI_DISTILLATION_CC, request API sẽ gửi anti_distillation: ['fake_tools'].

Anthropic server sẽ tiêm các định nghĩa công cụ giả vào prompt hệ thống. Mục đích: Nếu đối thủ ghi lại traffic API để training model của họ, dữ liệu bị “đầu độc” bởi các công cụ giả không tồn tại. Model train trên dữ liệu này sẽ sinh các khả năng không thực.

Ví dụ cấu hình request:

const request = {
  ...,
  anti_distillation: ['fake_tools']
}
Enter fullscreen mode Exit fullscreen mode

Tóm tắt văn bản kết nối

Trong betas.ts (dòng 279-298): Server đệm text của assistant giữa các call tool, tóm tắt nó, trả về bản summary kèm chữ ký mật mã.

Lần hội thoại sau có thể khôi phục gốc từ signature, nhưng ai ghi lại API chỉ lấy summary chứ không phải logic reasoning. Điều này làm việc “distill” prompt trở nên khó khăn hơn.

Cơ chế này có dễ bị vượt qua?

Một số bypass đã được phát hiện:

  • Proxy man-in-the-middle có thể loại bỏ trường anti_distillation trước khi gửi tới Anthropic
  • Đặt biến môi trường CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS để tắt chống chắt lọc
  • Các bảo vệ này chỉ chống lại việc ghi lại traffic thụ động, không ngăn API usage chủ động

Chúng không vô dụng, nhưng chỉ là defense-in-depth, không phải khiên bất khả xâm phạm.

Chế độ bí mật: Ẩn danh tính tác giả AI

Chế độ bí mật làm gì?

Tệp undercover.ts chứa hệ thống che giấu khi Claude Code chạy trong repo không thuộc Anthropic:

  • Ẩn các tên mã nội bộ (vd Capybara, Tengu)
  • Ẩn reference tới Slack, repo nội bộ
  • Chặn xuất hiện cụm “Claude Code” trong output

Bình luận trong code: “KHÔNG CÓ TẮT BẮT BUỘC. Điều này bảo vệ chống rò rỉ tên mã mô hình.”

Ý nghĩa cho open source

Khi nhân viên Anthropic dùng Claude Code để commit, PR hoặc review code open source, công cụ này sẽ ẩn mọi dấu hiệu AI involvement. Các đóng góp AI-generated sẽ không tiết lộ quyền tác giả AI.

Điều này gây tranh cãi về transparency trong open source. Một số dự án yêu cầu disclose code AI. Nếu tool thiết kế để che giấu, enforce policy này rất khó.

Lập luận phản biện: Chế độ bí mật nhằm bảo vệ tên dự án nội bộ, nhưng thực tế nó chặn luôn việc nhận diện AI.

Phát hiện sự thất vọng thông qua regex

Cách hoạt động

userPromptKeywords.ts phát hiện sự thất vọng của user qua regex. Hệ thống quét input để tìm từ ngữ thô tục, cảm xúc mạnh, nhằm đánh giá user có thất vọng với Claude Code không.

Ví dụ mẫu regex:

const frustrationRegex = /(\b(chán|bực|tức|điên|vô dụng|thất vọng)\b|fuck|shit|wtf)/i;
Enter fullscreen mode Exit fullscreen mode

Sự trớ trêu kỹ thuật

Mặc dù Anthropic là top LLM, họ dùng regex chứ không phải LLM để detect cảm xúc người dùng. Comment trong code giải thích: regex thực thi nhanh, rẻ và không tăng latency như gọi LLM.

Quyết định này thực dụng: phân tích cảm xúc trên hot path dùng regex, còn compute LLM dành cho tác vụ chính codegen.

Chứng thực máy khách gốc

Cơ chế xác minh yêu cầu

Trong system.ts (dòng 59-95), request API của Claude Code có placeholder cch=554eb, sau đó HTTP stack của Bun (viết bằng Zig) sẽ ghi đè bằng hash tính toán.

Server Anthropic xác thực hash này để xác nhận request đến từ binary hợp pháp, không phải fork hay proxy.

Tại sao cần thiết

Đây là cơ chế thực thi kỹ thuật để ngăn các fork trái phép. Nếu không tạo được hash hợp lệ, server có thể từ chối request.

Tuy nhiên, có thể vô hiệu hóa qua flag hoặc cài đặt CLAUDE_CODE_ATTRIBUTION_HEADER. Việc thực thi là phân cấp – Anthropic có thể điều chỉnh chặt/lỏng linh hoạt.

Đối với dev API: Đây là mẫu kỹ thuật xác thực client ở cấp protocol, tương tự mobile API attest.

KAIROS: Chế độ tác nhân tự động chưa phát hành

Mã nguồn tiết lộ gì?

Nhiều đoạn code nhắc đến chế độ KAIROS – một agent nền chưa phát hành, gồm:

  • Skill /dream để “chắt lọc bộ nhớ hàng đêm”
  • Ghi log chỉ-add hàng ngày
  • Đăng ký webhook GitHub để monitor repo event
  • Các daemon worker chạy nền, refresh cron 5 phút

Ý nghĩa thực tiễn

KAIROS là agent luôn chạy nền, monitor repo và tự động thực hiện tác vụ mà không cần user trigger. Giống Claude Code luôn online, phát hiện thay đổi và chủ động suggest hoặc sửa code.

Xu hướng này xuất hiện ở Copilot Agent, Cursor, Agent Smith của Google: AI agent không chỉ chờ bạn prompt, mà chủ động hoạt động.

Với nhóm dev API, agent tự động sửa code endpoint có thể làm lệch đặc tả OpenAPI, test, docs... Trừ khi bạn dùng platform tích hợp như Apidog để đồng bộ hóa mọi thay đổi.

Các tối ưu hóa hiệu suất bị lộ

Kết xuất terminal: Kỹ thuật game engine

Các file ink/screen.ts, ink/optimizer.ts cho thấy Claude Code dùng kỹ thuật của game engine để render terminal:

  • Pool ký tự dựa trên Int32Array để buffer màn hình tiết kiệm bộ nhớ
  • Tối ưu hóa patch giảm tính toán chiều rộng ký tự ~50 lần khi stream token

Nhờ đó CLI phản hồi nhanh, kể cả với output dài.

Kinh tế học bộ nhớ đệm prompt

promptCacheBreakDetection.ts theo dõi 14 vector phá cache riêng biệt với “chốt dính” để tránh chuyển chế độ làm mất hiệu lực cache.

Càng ít cache break, càng tiết kiệm chi phí API token – cực quan trọng với mô hình kinh doanh Claude Code.

Thác lỗi tự động nén

autoCompact.ts (dòng 68-70) báo: “1.279 phiên gặp >50 lỗi liên tiếp (tới 3.272), lãng phí ~250.000 call API/ngày toàn cầu”.

Sửa bằng cách đặt MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3. Nếu không fix, hệ thống sẽ retry vô hạn, đốt tài nguyên lớn.

Tăng cường bảo mật shell

23 kiểm tra Bash Security

bashSecurity.ts implement 23 check bảo mật khi thực thi shell command, bao gồm:

  • Phòng chống exploit builtin của Zsh
  • Ngăn chặn tiêm ký tự khoảng trắng Unicode
  • Ngăn byte null IFS
  • Các biện pháp từ báo cáo HackerOne

Đây là mức độ kỹ lưỡng hiếm thấy ở CLI AI. Nếu bạn chạy lệnh shell hoặc script API test qua AI, lớp an toàn này là bắt buộc.

Những điều nhà phát triển API nên rút ra

1. Hiểu rõ công cụ AI codegen của bạn

Claude Code leak cho thấy: Các tool AI có nhiều cơ chế ẩn bên trong (anti-distillation, cảm xúc, chế độ bí mật, xác thực client). Tool khác cũng có thể có những thứ bạn không kiểm tra được.

Hãy kiểm soát: Tool AI thu gì, gửi gì ra ngoài, có che giấu AI involvement trong code bạn không?

2. Chuỗi công cụ build là bề mặt tấn công

Claude Code leak vì lỗi Bun. Axios bị compromise vì npm account takeover. Mọi toolchain đều là điểm yếu tiềm tàng.

Khuyến nghị:

  • Audit dependency của pipeline
  • Kiểm tra CI/CD không leak source map, file .env, config nội bộ
  • Ưu tiên platform giảm phụ thuộc bên thứ ba

3. Công cụ AI đang hướng tới tự động hóa

KAIROS, Copilot Agent, Agent Smith...: Các agent AI sẽ tự động sửa code, theo dõi repo, không cần bạn prompt.

Nhóm API cần chuẩn bị: Đảm bảo vòng đời API quản lý trong một platform tích hợp, tránh bị lệch giữa code, test, spec, docs khi agent AI trigger thay đổi.

4. Minh bạch mã nguồn là quan trọng

Leak này do code proprietary bị lộ. Công cụ AI open source không có rủi ro đó vì bạn kiểm tra được nội bộ.

Cân nhắc: Dùng tool bạn verify được, hay tin tưởng hoàn toàn nhà cung cấp? Sự cố này cho thấy nếu phải “trust vendor”, bạn sẽ bị động khi có hành vi không mong muốn.

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

Claude Code có an toàn để sử dụng sau vụ leak không?

Có. Leak chỉ lộ source code, không dính dữ liệu user. Anthropic đã gỡ bỏ file .map. Các tính năng bị tiết lộ đều là kiến trúc, không phải lỗ hổng bảo mật. Việc bạn có đồng ý với các quyết định đó là vấn đề riêng.

“Chế độ bí mật” là gì?

Chế độ này tự động ngăn Claude Code tiết lộ tên dự án nội bộ, tên mã, danh tính khi hoạt động ngoài repo Anthropic. Không thể tắt. Hệ quả: AI-generated code trong open source sẽ không admit là viết bởi Claude Code.

Công cụ giả là gì?

Khi bật anti-distillation, server tiêm tool giả vào system prompt. Tool này không có chức năng, chỉ để “đầu độc” dữ liệu mà đối thủ ghi lại để train model cạnh tranh.

KAIROS là gì?

KAIROS là agent chưa phát hành, chạy nền, monitor repo, có skill /dream để chắt lọc bộ nhớ và worker daemon refresh 5 phút. Anthropic đang phát triển agent AI luôn hoạt động, chủ động tác động codebase.

Mã nguồn Claude Code bị rò rỉ như thế nào?

Lỗi Bun khiến .map bị include cả ở bản build production. Claude Code dùng Bun nên tệp này bị phát hành lên npm. Bất kỳ ai unpack package đều thấy source code.

Sự cố này có ảnh hưởng user API Claude không?

Không. Leak chỉ ảnh hưởng CLI tool, không phải API Claude. API key, user data, model weight không bị ảnh hưởng. Cơ chế chống chắt lọc chỉ áp dụng cho Claude Code.

Có nên lo về tính năng phát hiện sự thất vọng?

Tuỳ bạn. Claude Code dùng regex detect cảm xúc (từ tục, chửi, thất vọng) để cải thiện sản phẩm. Không thấy dấu hiệu chia sẻ data ra ngoài. Nhiều tool AI khác có thể cũng làm tương tự mà không công khai.

Sự kiện này liên quan gì tới tấn công npm Axios?

Cùng xảy ra ngày 31/03/2026, nhưng không liên quan trực tiếp. Axios bị tấn công chuỗi cung ứng, Claude Code là lỗi build. Cả hai cùng làm nổi bật vấn đề bảo mật npm và niềm tin vào toolchain.

Những điểm chính cần rút ra

  • Claude Code bị rò rỉ mã nguồn do lỗi build Bun phát hành source map trong gói npm
  • Cơ chế chống chắt lọc tiêm công cụ giả, tóm tắt reasoning để chống trộm cắp model
  • Chế độ bí mật che giấu AI involvement trong open source repo không thuộc Anthropic
  • Phát hiện sự thất vọng dùng regex thay vì LLM
  • Bộ khung KAIROS hé lộ chế độ agent AI nền chưa phát hành
  • Chứng thực máy khách xác minh request đến từ binary hợp pháp
  • Vụ leak nhấn mạnh tầm quan trọng của công cụ minh bạch, kiểm tra được trong workflow phát triển API

Hiểu rõ nội bộ công cụ AI giúp bạn quyết định tốt hơn về trust, privacy, và thiết kế workflow. Với nhóm API, bài học là: công cụ dev là một phần của bề mặt bảo mật. Hãy chọn tool bạn có thể verify, và xây dựng workflow đồng bộ dù thay đổi đến từ người hay AI agent.

Top comments (0)