Mã nguồn bị rò rỉ của Claude Code v2.1.88 tiết lộ kiến trúc kỹ thuật tiên tiến của tác nhân AI

iconMetaEra
Chia sẻ
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconTóm tắt

expand icon
Vào ngày 31 tháng 3 năm 2026, Anthropic vô tình để lộ toàn bộ mã nguồn frontend và phía client của Claude Code (v2.1.88) trên một kho npm. Một tệp cli.js.map bị rò rỉ đã khôi phục khoảng 1900 tệp và hơn 510.000 dòng mã TypeScript, phơi bày kiến trúc của tác nhân AI. Mã nguồn cung cấp những hiểu biết về lịch trình, hệ thống bộ nhớ và các chiến lược bảo mật. Các nhà phát triển và nhà nghiên cứu đang phân tích mã này như một tài liệu tham khảo kỹ thuật. Giữa bối cảnh tâm lý thị trường thay đổi, chỉ số nỗi sợ và tham lam vẫn là chỉ báo quan trọng đối với các altcoin hàng đầu.
Bài viết thực hiện phân tích kỹ thuật sâu về mã nguồn Claude Code (v2.1.88) bị rò rỉ vào ngày 31 tháng 3 năm 2026, coi đây là một trường hợp quý giá tiết lộ kiến trúc kỹ thuật hóa của AI Agent tiên tiến.

Tác giả bài viết, nguồn: Max

Hôm nay (ngày 31 tháng 3 năm 2026), Anthropic lại do lỗi sơ suất trong quy trình đóng gói, đã để lộ toàn bộ mã nguồn frontend và client của phiên bản mới nhất Claude Code (v2.1.88) trên kho npm.

Một người dùng đã đăng tải tệp cli.js.map chưa bị xóa, khôi phục trực tiếp khoảng 1.900 tệp, hơn 510.000 dòng mã TypeScript gốc.

Đối với Anthropic, đây là một sự cố OpSec nghiêm trọng khác sau khi tài liệu mô hình Mythos bị rò rỉ vài ngày trước.

Tuy nhiên, đối với các nhà phát triển và nhà nghiên cứu ngành trong lĩnh vực ứng dụng mô hình lớn, mã nguồn này là một bản trắng về kiến trúc kỹ thuật AI Agent tiên tiến, được chia sẻ hoàn toàn và có giá trị cực kỳ cao.

Bỏ qua những tranh cãi về tuân thủ và sự cố rò rỉ, tôi đã dành một chút thời gian để phân tích sâu mã nguồn này tại địa phương.

Nếu không xem đây là một tin đồn, mà xem như một trường hợp nghiên cứu về kiến trúc trợ lý lập trình AI dùng trong sản xuất, nó chứa đầy những quyết định kỹ thuật đột phá tư duy thông thường.

Dưới đây là bản phân tích kỹ thuật chi tiết về kiến trúc nền tảng, cơ chế lập lịch, hệ thống bộ nhớ và chiến lược bảo mật của Claude Code từ góc nhìn khách quan.

Bài viết khá dài, phù hợp với những người làm việc trong lĩnh vực AI Infra, phát triển Agent và những người quan tâm đến kiến trúc ứng dụng mô hình lớn.

PHẦN.01 Không chỉ là một công cụ CLI

Từ cấu trúc thư mục (khoảng 40 mô-đun cấp một dưới src/), có thể thấy độ phức tạp của Claude Code vượt xa các Agent đơn lẻ thông thường hiện có trên thị trường mã nguồn mở.

Việc lựa chọn công nghệ stack của nó rất thực tế và chú trọng trải nghiệm tương tác người dùng:

Ngôn ngữ là TypeScript, runtime chọn Bun với hiệu suất tích cực hơn, khung CLI sử dụng Commander, và lớp hiển thị terminal lại bất ngờ sử dụng React + Ink.

Tại sao một công cụ dòng lệnh lại dùng React?

Câu trả lời được đưa ra trong file screens/REPL.tsx trong mã nguồn (lên đến 5005 dòng).

Trong các tình huống đầu ra luồng của mô hình lớn (Streaming) và thực thi đồng thời nhiều công cụ, việc quản lý trạng thái giao diện người dùng trở nên cực kỳ phức tạp (ví dụ: đồng thời hiển thị quá trình suy nghĩ, thanh tiến trình gọi công cụ, xem trước Diff mã nguồn, v.v.).

Sử dụng React theo phong cách khai báo kết hợp với Store tùy chỉnh tối giản theo phong cách Zustand (state/store.ts) là thực hành kỹ thuật tốt nhất để xử lý việc làm mới cục bộ tần suất cao này.

Về chế độ vận hành, hệ thống được chia rõ ràng thành hai hình thái:

Chế độ REPL tương tác: Giao diện terminal frontend do Ink điều khiển, chủ yếu dành cho nhà phát triển con người.

Chế độ đầu nối/SDK (lớp QueryEngine): Loại bỏ hoàn toàn giao diện người dùng, hỗ trợ đầu ra dạng JSON theo luồng. Điều này tạo tiền đề để tích hợp nó như một động cơ nền tảng vào các IDE (như dạng Cursor) hoặc quy trình CI/CD.

Quy trình khởi động hệ thống cũng đã được tối ưu hóa song song cực đại.

Trong main.tsx, các thao tác nặng về I/O như đọc cấu hình (MDM Settings) và tiền lấy khóa Keychain được thực hiện song song trong tiến trình con với quá trình tải module chính khoảng 135ms, sự khắt khe về miligiây đối với độ trễ khởi động này xuyên suốt toàn bộ mã nguồn.

PHẦN.02 Kỹ thuật Prompt Cache (Bộ nhớ đệm lời nhắc)

Đây là phần có mức độ kỹ thuật cao nhất trong toàn bộ mã nguồn, cũng là rào cản cốt lõi tạo nên sự khác biệt về trải nghiệm giữa Claude Code và các ứng dụng bao bọc thông thường.

Hiện tại, các công cụ Agent khi xử lý ngữ cảnh dài thường vẫn đang đơn giản nối ghép System Prompt và lịch sử hội thoại.

Trong file services/api/claude.ts của Claude Code (mô-đun tương tác cốt lõi dài 3.419 dòng), việc lắp ráp prompt đã được tối ưu đến mức từng byte.

Như đã biết, cơ chế Bộ nhớ nhắc nhở của Anthropic sử dụng khớp tiền tố (Prefix Matching).

Để tối đa hóa tỷ lệ hit bộ nhớ đệm, Claude Code đã thiết kế kiến trúc bộ nhớ đệm phân đoạn chặt chẽ:

Đoạn tĩnh (có thể lưu vào bộ nhớ đệm toàn cục): được tạo bởi systemPromptSection(), bao gồm giới thiệu danh tính mô hình ("You are Claude Code..."), các quy tắc bảo mật hệ thống, giới hạn phong cách mã hóa, hướng dẫn cơ bản về sử dụng công cụ, v.v. Phần này gần như không thay đổi trong suốt vòng đời phiên làm việc.

Đường phân cách động: Trong mã nguồn, một nhãn đặc biệt SYSTEM_PROMPT_DYNAMIC_BOUNDARY đã được mã hóa cứng.

Đoạn động (bộ nhớ đệm theo phiên / không bộ nhớ đệm): chứa dữ liệu thay đổi thường xuyên như thông tin thư mục làm việc hiện tại (CWD), trạng thái Git, lệnh MCP (Model Context Protocol), và cấu hình người dùng.

Và để ngăn ngừa tình trạng xuyên thủng bộ nhớ đệm do các thay đổi nhỏ trong Prompt, hệ thống đã thực hiện rất nhiều biện pháp phòng vệ trông có vẻ phức tạp:

  • Xếp hạng xác định: Mô tả công cụ được truyền đến mô hình lớn được sắp xếp theo bảng chữ cái nghiêm ngặt dựa trên tiền tố công cụ tích hợp + hậu tố công cụ MCP.
  • Ánh xạ đường dẫn băm: Đường dẫn tệp cấu hình không sử dụng UUID ngẫu nhiên, mà sử dụng giá trị băm dựa trên nội dung để tránh làm hỏng bộ nhớ đệm do đường dẫn thay đổi mỗi lần chèn.
  • Trạng thái được tách rời: Ngay cả danh sách các Agent hiện có cũng đã được loại bỏ khỏi mô tả công cụ và chuyển sang phần tệp đính kèm (Attachments). Theo ghi chú trong mã nguồn, chỉ riêng thay đổi này đã giảm khoảng 10,2% lượng token dùng để tạo cache.

Tất cả những điều này đều phản ánh hiện trạng ngành: hiện nay, việc phát triển các ứng dụng AI xuất sắc về bản chất là khai thác một cách tham lam và tinh vi giá trị của hệ thống bộ nhớ đệm API.

PHẦN.03 Công cụ và thực thi song song theo luồng

Claude Code tích hợp hơn 40 công cụ (bao gồm đọc ghi tệp, thực thi Bash, thu thập dữ liệu mạng...), hệ thống công cụ của nó sử dụng mô hình nhà máy (Factory Pattern) có độ mô-đun cao.

Mỗi công cụ kế thừa từ giao diện Tool cơ sở và phải triển khai các phương pháp như checkPermissions(), validateInput() và isConcurrencySafe() (có an toàn khi đồng thời không).

Cơ chế ToolSearch tải theo yêu cầu: Khi số lượng công cụ vượt quá ngưỡng nhất định, việc nhét tất cả mô tả công cụ vào Prompt sẽ khiến chi phí Token không thể chấp nhận được.

Mã nguồn hiển thị một chiến lược tinh tế gọi là ToolSearch: các công cụ không cốt lõi (như một số plugin phân tích cụ thể) được đánh dấu là defer_loading: true.

Mô hình không nhìn thấy định nghĩa cụ thể của các công cụ này trong Prompt hiện tại, chỉ biết rằng có một công cụ ToolSearch. Khi mô hình cho rằng mình cần thêm khả năng, nó phải gọi ToolSearch trước để tải động cấu hình công cụ tương ứng.

StreamingToolExecutor (Bộ thực thi công cụ lưu lượng): Để nâng cao hiệu suất thực thi, hệ thống hỗ trợ gọi công cụ song song.

Bộ điều phối (toolOrchestration.ts) sẽ phân chia các yêu cầu gọi công cụ trả về từ mô hình lớn thành các lô song song và các lô tuần tự.

Các công cụ an toàn về đồng thời (như đọc đồng thời nhiều tệp không liên quan, thực hiện tìm kiếm mạng đồng thời) sẽ được kích hoạt song song, trong khi các công cụ không an toàn về đồng thời (như sửa đổi cùng một tệp mã nguồn theo thứ tự) sẽ được thực hiện nghiêm ngặt theo chuỗi.

Các công cụ xử lý tập kết quả lớn (như tìm kiếm Grep toàn bộ đĩa) có ngân sách maxResultSizeChars; nội dung vượt quá ngân sách sẽ bị cắt ngắn trực tiếp và lưu trữ vĩnh viễn vào tệp tạm thời cục bộ, chỉ trả về bản tóm tắt xem trước cho LLM để ngăn chặn việc kết quả quá lớn làm tràn cửa sổ ngữ cảnh.

Cơ chế Fork giải quyết ô nhiễm ngữ cảnh. PART.04

Agent đơn thể hiện tại có một khuyết điểm nghiêm trọng:

Khi thực hiện các nhiệm vụ phức tạp (ví dụ: gỡ lỗi xuyên tệp), mô hình có thể lặp lại việc đọc các tệp sai, thử các lệnh không chính xác; quá trình thử và sai này tạo ra nhiều ngữ cảnh rác, nhanh chóng làm ô nhiễm cuộc hội thoại chính, khiến mô hình bị phân liệt hoặc quên mục tiêu ban đầu trong các suy luận tiếp theo.

Claude Code đã giới thiệu cơ chế phối hợp phức tạp (Coordinator Mode) và Fork Subagent để giải quyết vấn đề này.

Sau khi kích hoạt chế độ coordinator trong biến môi trường, hệ thống sẽ được tái cấu trúc thành kiến trúc Coordinator-Workers:

  • Người điều phối (Coordinator): Bị thu hồi quyền truy cập trực tiếp vào tệp, chỉ còn lại ba công cụ: Agent (đại lý con), SendMessage và TaskStop. Nhiệm vụ duy nhất của nó là lập kế hoạch luồng công việc (Nghiên cứu → Tổng hợp → Triển khai → Xác minh).
  • Workers (người thực hiện): được tạo ra với mô tả công cụ cụ thể.

Điều đáng khen nhất là cơ chế kế thừa Fork.

Khi cần thực hiện khám phá mã rộng rãi, Coordinator sẽ Fork ra một Explore Agent.

Sub-Agent này sẽ kế thừa bộ nhớ đệm của cuộc hội thoại cha (chia sẻ Prompt Cache để tiết kiệm chi phí), nhưng các hành động khám phá tiếp theo và các tệp rác mà nó đọc sẽ hoàn toàn diễn ra trong ngữ cảnh cách ly của riêng nó.

Sau khi hoàn thành khám phá, sub-Agent chỉ cần gửi lại các kết luận đã tóm tắt (Synthesis) về ngữ cảnh chính của Coordinator thông qua định dạng XML cụ thể .

Thiết kế loại này, sử dụng xong là hủy bỏ và chỉ giữ lại kết luận, là một trong những thực hành tốt nhất hiện nay trong ngành để xử lý hợp tác văn bản dài phức tạp giữa nhiều Agent.

Thiết kế loại này, sử dụng xong là hủy bỏ và chỉ giữ lại kết luận, là một trong những thực hành tốt nhất hiện nay trong ngành để xử lý hợp tác văn bản dài phức tạp giữa nhiều Agent.

PHẦN.05 Đột phá cơ chế song song của Agent Swarm

Ngoài cơ chế Fork tuần tự được sử dụng để giải quyết ô nhiễm ngữ cảnh, mã nguồn còn thể hiện kiến trúc đa Agent song song đầy tham vọng — cụm Swarm (Teammate).

Logic này chủ yếu được ẩn trong các thư mục utils/swarm/ và tasks/.

Hệ thống hỗ trợ một loại nhiệm vụ có tên là in_process_teammate.

Trong kiến trúc này, tiến trình chính có thể thức tỉnh đồng thời nhiều Agent (được gọi là Teammate) để thực hiện các nhiệm vụ khác nhau.

Tuy nhiên, khi chạy nhiều agent đồng thời trong môi trường CLI, bạn sẽ đối mặt với hai thách thức kỹ thuật nghiêm trọng: xung đột hộp thoại quyền và hỗn loạn hiển thị giao diện người dùng.

Giải pháp của Anthropic cực kỳ tinh tế:

  • Quyền lãnh đạo (permissionSync.ts): Tất cả các tiến trình con Teammate đều không được phép trực tiếp hiển thị hộp thoại yêu cầu quyền cho người dùng. Chúng sẽ chuyển yêu cầu quyền thông qua kênh nội bộ đến Leader Agent của tiến trình chính, nơi Leader sẽ thực hiện việc chặn an toàn và xác nhận của người dùng trên giao diện chính.
  • Tự động hóa bố cục terminal: Để người dùng có thể theo dõi rõ ràng trạng thái hoạt động của nhiều Agent song song, mã nguồn tích hợp trực tiếp các lệnh AppleScript điều khiển iTerm2 và Terminal.app. Khi tạo một Teammate mới, hệ thống sẽ tự động chia ô (Split Pane) trong terminal, cấp cho mỗi Agent con một cửa sổ đầu ra riêng biệt.

Điều này đánh dấu sự chuyển đổi chính thức của AI từ “suy nghĩ đơn lẻ” sang “hợp tác song song theo cụm”.

PHẦN.06 Dream (Giấc mơ) Kiến trúc ký ức

Trong bối cảnh RAG (Retrieval-Augmented Generation) đang phổ biến, hầu hết các sản phẩm AI đều đang tích hợp cơ sở dữ liệu vector.

Tuy nhiên, điều bất ngờ là hệ thống bộ nhớ của Claude Code (memdir/mô-đun) cực kỳ cổ điển và thực tế, hoàn toàn dựa trên hệ thống tệp cục bộ.

Kiến trúc của nó bao gồm một tệp MEMORY.md cốt lõi (đóng vai trò là chỉ mục cấp cao, bị giới hạn ở tối đa 200 dòng/25KB) và nhiều tệp chủ đề dựa trên định dạng Frontmatter.

Bộ nhớ được chia rõ ràng thành bốn loại: User, Feedback, Project, Reference.

Điều thú vị hơn là chế độ trợ lý KAIROS ẩn trong mã nguồn.

Đây là chế độ daemon đang chạy dài hạn nhưng chưa được phát hành chính thức.

Trong chế độ KAIROS, hệ thống bộ nhớ không còn là việc cập nhật chỉ mục đơn giản, mà đã áp dụng mô hình ghi thêm tương tự nhật ký của con người (ghi vào logs/YYYY/MM/YYYY-MM-DD.md).

Vào ban đêm hoặc thời gian rảnh, một tác nhân nhiệm vụ ngoại tuyến có tên Dream (mơ) sẽ được kích hoạt ở nền.

Nhiệm vụ của Agent này là tóm tắt, cô đọng nhật ký giao dịch ban ngày và chuyển hóa chúng thành các chủ đề dài hạn có cấu trúc.

Cơ chế tích hợp bất đồng bộ từ nhật ký ngắn hạn sang trí nhớ dài hạn không chỉ vượt qua điểm nghẽn về tỷ lệ hồi phục của tìm kiếm vector, mà còn đại diện cho hướng đi rõ ràng của trợ lý AI đầu cuối hướng tới việc luôn trực tuyến và học liên tục.

PHẦN.07 Thu hẹp quyền hạn và bảo mật

Việc cấp quyền cho AI thực hiện lệnh Shell cục bộ và chỉnh sửa tệp là một con dao hai lưỡi.

Các cửa sổ bật lên thường xuyên yêu cầu xác nhận sẽ phá hủy hoàn toàn trải nghiệm tự động hóa, trong khi thực thi tự động không giới hạn có thể dẫn đến sự cố hệ thống (ví dụ: thực hiện nhầm rm -rf).

Claude Code sử dụng một kiến trúc thu hẹp quyền hạn đa lớp:

Từ sandbox tệp/mạng dựa trên @anthropic-ai/sandbox-runtime ở cấp độ cơ sở, đến các biện pháp chặn mã cứng cho các thao tác nguy hiểm cụ thể (như git push --force), đến các kiểm tra ở cấp độ công cụ.

Nhưng điều nổi bật nhất là thành phần có tên Auto Mode Classifier (yoloClassifier.ts).

Khi người dùng kích hoạt chế độ tự động, hệ thống không sử dụng biểu thức chính quy cứng nhắc để đánh giá mức độ nguy hiểm của lệnh, mà sử dụng cơ chế truy vấn phụ (Side Query).

Hệ thống sẽ tự động gọi một LLM nhỏ hơn, rẻ hơn ở nền để gửi bản ghi tóm tắt của cuộc hội thoại hiện tại và lệnh Bash sắp thực thi đến nó, nhằm yêu cầu mô hình phụ đưa ra quyết định Cho phép hoặc Từ chối.

Ngoài ra, trong hệ thống còn có một cơ chế Denial Tracking dựa trên ngưỡng, khi các công cụ tự động bị từ chối thường xuyên, hệ thống sẽ giảm dần hiệu năng một cách êm dịu và chuyển sang chế độ Prompting để yêu cầu sự can thiệp của con người.

Hệ thống quyền động sử dụng AI nhỏ để giám sát AI lớn linh hoạt hơn nhiều so với các quy tắc chặn tĩnh truyền thống.

PHẦN.08 Một vài bất ngờ nhỏ

Cuối cùng, các Feature Flags (như VOICE_MODE, SSH_REMOTE...) và các kiểm tra biến môi trường process.env.USER_TYPE === 'ant' trong mã nguồn cho thấy tiêu chuẩn kép mà các công ty lớn áp dụng khi thử nghiệm nội bộ và phát hành ngoài.

Đối với nhân viên nội bộ của Anthropic (chỉ Ant), quy chuẩn mã được tiêm vào hệ thống cực kỳ nghiêm ngặt, thậm chí điên cuồng:

Đừng tự ý thêm tính năng, nếu yêu cầu không đề cập thì đừng重构, ba dòng mã tương tự còn tốt hơn là trừu tượng hóa quá sớm, mặc định không viết bất kỳ chú thích nào trừ khi WHY cực kỳ không rõ ràng, nếu bài kiểm tra thất bại thì phải báo cáo trung thực.

Đối với các bản xây dựng công khai bên ngoài, lời nhắc hệ thống cũng nhẹ nhàng hơn nhiều: đi thẳng vào vấn đề, thử phương pháp đơn giản nhất và cố gắng súc tích nhất có thể.

Sự tương phản này cho thấy ranh giới hành vi của các mô hình lớn phần lớn phụ thuộc vào xu hướng lệnh được mã hóa cứng.

Đáng chú ý là mã chứa hai mô-đun thú vị.

Chế độ thâm nhập (Undercover Mode):

Đây là một tính năng gây tranh cãi trong cộng đồng bảo mật.

Trong bối cảnh nhân viên làm việc trên các kho nguồn mở hoặc công cộng, hệ thống sẽ tự động kích hoạt chế độ này và không thể tắt bắt buộc. Chế độ này sẽ yêu cầu rõ ràng trong Prompt rằng mô hình "Do not blow your cover" (đừng tiết lộ danh tính) và buộc loại bỏ mọi dấu vết tuyên bố miễn trừ hoặc mã hóa do AI tạo ra.

Từ góc độ truyền thông, điều này có thể trông giống như thiếu minh bạch, nhưng nó lại gián tiếp khẳng định khả năng kiểm soát tuyệt đối của nhà sản xuất đối với vai trò và đầu ra của mô hình.

Buddy System (thú cưng điện tử) bí mật:

Mã nguồn chứa một hệ thống thú cưng ẩn (tạo ra vịt, cú mèo, v.v.).

Để đảm bảo tính ngẫu nhiên và tính xác định của việc tạo thú cưng, các kỹ sư đã sử dụng ID người dùng kết hợp với thuật toán sinh số ngẫu nhiên giả Mulberry32.

typescript

// 18 loài: duck, goose, blob, cat, dragon, octopus, owl, penguin, ...

// 5 mức độ hiếm: common (60%), uncommon (25%), rare (10%), epic (4%), legendary (1%)

// Thuộc tính: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK

// Phụ kiện: vương miện, mũ cao, cánh quạt, vầng hào quang, pháp sư, mũ len, vịt nhỏ

// Đặc biệt: 1% xác suất shiny

Chi tiết hài hước nhất là do tên tiếng Anh của một loài động vật trùng khớp với mã hiệu nội bộ cực kỳ bí mật của Anthropic (có thể là Claude Capybara mạnh nhất bị rò rỉ hai ngày trước).

Để tránh phát hiện từ cấm bởi công cụ quét mã tuân thủ, các kỹ sư đã sử dụng String.fromCharCode() để ghép động từ này.

Cách làm đầy hài hước này mang một phong cách độc đáo trong mã cơ sở hạ tầng vô cùng nghiêm túc.

PHẦN.09 Chúng ta có thể học được gì?

Trong thời gian ngắn liên tiếp gặp sự rò rỉ tài liệu kỹ thuật mô hình cốt lõi và mã nguồn ứng dụng cốt lõi, Anthropic thực sự cần tự kiểm điểm sâu sắc về quản lý quy trình nội bộ. Nhưng công nghệ không có tội, bộ mã 510.000 dòng này là một giáo trình tuyệt vời cho ngành công nghiệp.

Từ thiết kế nền tảng của Claude Code có thể thấy, thời kỳ khởi nghiệp ở tầng ứng dụng mô hình lớn, chỉ dựa vào việc ghép nối Prompt, chất đầy cơ sở dữ liệu vector và bao bọc bằng một lớp vòng lặp đơn giản đã kết thúc.

Rào cản thực sự được xây dựng dựa trên việc tối ưu chi phí Token (tối ưu Prompt Cache), lịch trình luồng cho việc phối hợp nhiều máy trạng thái (cơ chế Coordinator và Fork), sự cân bằng giữa khả năng chịu lỗi và can thiệp an toàn đối với ý định người dùng (YOLO Classifier), cũng như tích hợp sâu vào luồng tệp của hệ điều hành chủ.

Hiện tại, các kho lưu trữ fork mã nguồn này trên GitHub đang đối mặt với nguy cơ bị gỡ xuống do yêu cầu DMCA.

Tuy nhiên, mức độ kỹ thuật mà Claude Code thể hiện đã thiết lập một tiêu chuẩn công nghệ hoàn toàn mới cho các sản phẩm trợ lý AI vào năm 2026.

Các chuyên gia nên nhân cơ hội này để xem xét kỹ lưỡng và tiếp thu các thực hành tốt nhất về kỹ thuật.

Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể được lấy từ bên thứ ba và không nhất thiết phản ánh quan điểm hoặc ý kiến của KuCoin. Nội dung này chỉ được cung cấp cho mục đích thông tin chung, không có bất kỳ đại diện hay bảo đảm nào dưới bất kỳ hình thức nào và cũng không được hiểu là lời khuyên tài chính hay đầu tư. KuCoin sẽ không chịu trách nhiệm về bất kỳ sai sót hoặc thiếu sót nào hoặc về bất kỳ kết quả nào phát sinh từ việc sử dụng thông tin này. Việc đầu tư vào tài sản kỹ thuật số có thể tiềm ẩn nhiều rủi ro. Vui lòng đánh giá cẩn thận rủi ro của sản phẩm và khả năng chấp nhận rủi ro của bạn dựa trên hoàn cảnh tài chính của chính bạn. Để biết thêm thông tin, vui lòng tham khảo Điều khoản sử dụngTiết lộ rủi ro của chúng tôi.