· 6 phút · Kỹ thuật

Vì sao Claude Code gửi 33k token trước prompt của bạn (và cách xử lý)

Vì sao Claude Code gửi 33k token trước prompt của bạn (và cách xử lý)

Bạn mở một phiên Claude Code mới, nhập một câu hỏi chỉ có hai từ, nhưng lệnh gọi API đầu tiên đã báo 33,000 token đầu vào. Bạn chưa dán tệp nào. Bạn chưa chia sẻ dấu vết ngăn xếp nào. Bạn chỉ nói “chào”. Tất cả những token đó từ đâu ra?

Đây không phải lỗi, cũng không phải bất thường trong cách tính phí. Đó là chi phí cố định để khởi tạo một tác tử thực sự có thể có làm việc trong kho mã của bạn. Hãy phân tích chính xác những token đó được dùng vào đâu, so sánh với các công cụ tinh gọn hơn và — hữu ích hơn nữa — xem những yếu tố bạn thực sự có thể điều chỉnh.

Hiểu phần token phụ trội của Claude Code

Mọi công cụ lập trình dùng tác tử đều nạp ngữ cảnh ngay từ đầu, trước cả khi nhận lời nhắc của bạn. Mô hình cần biết mình là ai, có thể gọi những công cụ nào và đang hoạt động trong môi trường nào. Claude Code thuộc nhóm có phần nạp ban đầu lớn hơn. Một lần khởi động nguội thường có khoảng 33k token cho phần dẫn nhập; một công cụ tối giản như OpenCode báo mức gần với 7k.

Khoảng cách đó là có thật, nhưng không phải bảng xếp hạng chất lượng. Đó là lựa chọn thiết kế. 33k đổi lấy bộ công cụ tích hợp phong phú hơn và hành vi tác tử đáng tin cậy hơn; 7k đổi lấy dung lượng ngữ cảnh nhỏ hơn và chi phí khởi động nguội thấp hơn. Không lựa chọn nào là “đúng” — chúng nằm ở những điểm khác nhau trên đường cong đánh đổi giữa năng lực và chi phí.

Dưới đây là phân bổ sơ bộ ngân sách token khi Claude Code khởi động. Con số cụ thể thay đổi giữa các phiên bản, nên hãy xem đây là tỷ lệ tương đối, không phải hằng số cố định:

Thành phầnSố token ước tínhNội dung
Lời nhắc hệ thống~3k–5kDanh tính tác tử, quy tắc hành vi, chính sách định dạng
Định nghĩa công cụ~15k–20kCác lược đồ JSON cho mọi công cụ được bật + các máy chủ MCP
Ngữ cảnh môi trường~2k–4kThư mục làm việc, trạng thái git, hệ điều hành, danh sách thư mục
CLAUDE.md / bộ nhớ dự án0–10k+Các chỉ dẫn cho dự án của bạn (hoàn toàn do bạn kiểm soát)

Hạng mục lớn nhất hầu như luôn là định nghĩa công cụ. Điều này khiến những người cho rằng lời nhắc hệ thống sẽ chiếm phần lớn cảm thấy bất ngờ.

Vì sao lược đồ công cụ lại lớn đến vậy

Mỗi công cụ mà mô hình có thể gọi đều được cung cấp dưới dạng một lược đồ có cấu trúc — tên, mô tả và một JSON Schema đầy đủ cho các tham số. Một công cụ được mô tả kỹ lưỡng có thể chiếm 500–1,500 token nếu tính cả mô tả tham số lồng nhau và các giá trị liệt kê. Claude Code bật một bộ công cụ mặc định khá rộng (đọc/ghi tệp, chỉnh sửa, bash, glob, grep, lấy nội dung web, khởi tạo tác vụ/tác tử, theo dõi việc cần làm và nhiều công cụ khác), và tất cả đều có mặt trong mọi yêu cầu.

Một lược đồ rút gọn cho một công cụ có dạng gần như sau:

{
  "name": "edit_file",
  "description": "Make a targeted edit to an existing file. Use this instead of rewriting the whole file when possible...",
  "input_schema": {
    "type": "object",
    "properties": {
      "path": { "type": "string", "description": "Absolute path to the file" },
      "old_string": { "type": "string", "description": "Exact text to replace, including surrounding context for uniqueness" },
      "new_string": { "type": "string", "description": "Replacement text" }
    },
    "required": ["path", "old_string", "new_string"]
  }
}

Nhân lượng đó với hơn một tá công cụ, rồi thêm mọi công cụ do các máy chủ MCP bạn đã kết nối cung cấp, khối dữ liệu lược đồ sẽ phình lên rất nhanh. Một tình huống dễ mắc phải: ai đó cài ba máy chủ MCP “để dùng thử”, mỗi máy chủ cung cấp 8–15 công cụ, và lượng token cơ bản của họ tăng thêm 10k token mà sau đó họ chẳng bao giờ nghĩ tới nữa.

Ngữ cảnh môi trường mà bạn không yêu cầu

Khi Claude Code khởi động trong một kho mã, nó chèn thông tin về môi trường hiện tại để tác tử không phải tốn một lượt hỏi những câu cơ bản. Trên thực tế, phần này bao gồm những thông tin như:

Working directory: /home/ryan/projects/api-gateway
Platform: linux
Git branch: feature/rate-limiting
Git status: 4 modified, 1 untracked
Recent commits: ...

Thông tin này thực sự hữu ích — đó là lý do tác tử đã biết bạn đang ở một nhánh tính năng — nhưng vẫn tiêu tốn token, và trong một kho mã đơn khối lớn, bản chụp cấu trúc thư mục có thể chiếm dung lượng đáng kể.

Phần phụ trội thực sự mang lại cho bạn điều gì

Trước khi tối ưu để loại bỏ phần này, hãy nhìn nhận rõ sự đánh đổi. Chính 33k đó giúp Claude Code, ngay trong phản hồi đầu tiên, có thể chỉnh sửa đúng tệp với đúng ngữ cảnh xung quanh, chạy kiểm thử, khởi tạo tác tử phụ cho một tác vụ song song và tuân thủ quy ước dự án của bạn — tất cả mà không cần một lượt hỏi làm rõ. Một tác tử dùng 7k token thường phải thu thập ngữ cảnh đó qua các lượt trao đổi bổ sung, đồng nghĩa với nhiều yêu cầu hơn, độ trễ cao hơn và đôi khi tổng số token lớn hơn trong cả phiên.

Vì vậy, phép so sánh không phải là “33k lãng phí còn 7k hiệu quả”. Mà là:

  • Ít yêu cầu hơn, mỗi yêu cầu lớn hơn (Claude Code) so với nhiều yêu cầu hơn, mỗi yêu cầu tinh gọn hơn (các tác tử tối giản)
  • Năng lực có sẵn ngay lập tức so với năng lực được xây dựng theo nhu cầu
  • Chi phí cố định cao hơn cho mỗi phiên so với chi phí biến đổi cao hơn cho mỗi tác vụ

Với một phiên gỡ lỗi gồm năm tin nhắn, chi phí phụ trội cố định được phân bổ khá hiệu quả. Với một yêu cầu một dòng chỉ gửi một lần, nó có vẻ lãng phí. Cả hai nhận định đều đúng trong bối cảnh tương ứng.

Những yếu tố bạn thực sự có thể điều chỉnh

Bạn không thể viết lại bộ công cụ cốt lõi của Claude Code, nhưng có ba yếu tố có thể thay đổi đáng kể lượng token cơ bản.

1. Cắt gọn CLAUDE.md thật mạnh tay

CLAUDE.md được chèn toàn bộ vào mọi yêu cầu. Đây là phần duy nhất trong phần dẫn nhập mà 100% thuộc quyền kiểm soát của bạn, và cũng là nơi tôi thấy lãng phí nhiều nhất — những tệp dài 4k token chứa đầy hướng dẫn phong cách mang tính kỳ vọng mà mô hình vốn đã tuân thủ theo mặc định.

Hãy giữ nội dung ngắn gọn và thực sự thiết yếu. Ưu tiên:

# Project: api-gateway

- Package manager: pnpm (never npm)
- Tests: `pnpm test` — must pass before any commit
- Do NOT edit files in /generated
- API errors use the AppError class in src/errors.ts

Xóa mọi điều mà mô hình đằng nào cũng làm (“viết mã sạch”, “thêm chú thích”). Một quy tắc thực dụng: nếu bỏ một dòng mà không làm thay đổi hành vi của tác tử, dòng đó đang khiến bạn tốn token vô ích. Với ngữ cảnh chuyên sâu, hãy đặt trong một tệp được tham chiếu để tác tử đọc khi cần thay vì dán vào bộ nhớ.

2. Tắt các máy chủ MCP và công cụ không dùng

Đây là thay đổi có tác động lớn nhất với phần lớn người dùng. Hãy rà soát những gì thực sự đang được kết nối:

claude mcp list

Nếu thấy những máy chủ đã thêm từ nhiều tháng trước mà chưa bao giờ dùng, hãy xóa chúng:

claude mcp remove some-unused-server

Bạn cũng có thể giới hạn những công cụ được phép dùng để giữ lược đồ của chúng ngoài ngữ cảnh. Trong phần cài đặt dự án hoặc người dùng:

{
  "permissions": {
    "allow": ["Read", "Edit", "Bash", "Grep", "Glob"],
    "deny": ["WebFetch"]
  }
}

Mỗi công cụ bạn loại khỏi danh sách khả dụng là một lược đồ bạn không phải trả tiền để gửi ở mỗi lượt. Trong thực tế, việc tắt một máy chủ MCP cung cấp nhiều thông tin đã giúp tôi tiết kiệm nhiều token hơn bất kỳ điều chỉnh lời nhắc nào.

3. Tận dụng tối đa bộ nhớ đệm lời nhắc

Đây là yếu tố quan trọng nhất, và nó thay đổi toàn bộ phép tính. Lời nhắc hệ thống, định nghĩa công cụ và ngữ cảnh dự án ổn định giống nhau trong mọi yêu cầu của cùng một phiên — nên rất phù hợp để lưu vào bộ nhớ đệm lời nhắc. Token đầu vào được lưu trong bộ nhớ đệm rẻ hơn rất nhiều so với token mới, vì vậy phần dẫn nhập 33k đó gần như không còn đáng kể sau lệnh gọi đầu tiên.

Claude Code tự động dùng bộ nhớ đệm, nhưng bạn có thể hỗ trợ bằng cách giữ phần ngữ cảnh ổn định thực sự không đổi:

  • Tránh viết lại CLAUDE.md giữa phiên — một thay đổi sẽ làm mất hiệu lực bộ nhớ đệm của phần nằm sau nó.
  • Đặt ngữ cảnh tĩnh ở đầu; giữ các chi tiết hay thay đổi trong tin nhắn của bạn, thay vì trong phần dẫn nhập.
  • Thứ tự rất quan trọng: bộ nhớ đệm hoạt động trên một tiền tố, nên bất kỳ thay đổi nào ở đầu cũng làm mất hiệu lực toàn bộ phần phía sau.

Ý nghĩa thực tế là: hãy tối ưu số token của yêu cầu đầu tiên để giảm chi phí, nhưng hãy tối ưu phiên làm việc để tận dụng dữ liệu đã có trong bộ nhớ đệm. Một tiền tố 33k ổn định, được lưu đệm hiệu quả, thường rẻ hơn trong một phiên làm việc thực tế so với tiền tố 7k không bao giờ được lưu đệm vì bị xây dựng lại ở mỗi lượt.

Nếu bạn đang chạy khối lượng lớn tác vụ dùng tác tử và theo dõi sát chi phí trên mỗi token, đây cũng là lúc quyền truy cập API với giá thấp hơn — như dịch vụ AI Prime Tech cung cấp cho các mô hình Claude — kết hợp hiệu quả với cách quản lý bộ nhớ đệm tốt.

Những điểm cần áp dụng trong thực tế

  • Chi phí khởi động ~33k chủ yếu đến từ lược đồ công cụ, không phải lời nhắc hệ thống. Định nghĩa công cụ và các máy chủ MCP chiếm phần lớn ngân sách.
  • Đó là sự đánh đổi, không phải lãng phí. Phần phụ trội mang lại năng lực tức thì và giảm số lượt trao đổi; các tác tử tinh gọn hơn chuyển chi phí từ cố định sang biến đổi.
  • Rà soát các máy chủ MCP trước tiên. Xóa máy chủ không dùng và chặn công cụ không dùng là biện pháp giảm token có tác động lớn nhất.
  • Chỉ giữ nội dung thiết yếu trong CLAUDE.md. Xóa mọi điều mô hình đã làm theo mặc định; tham chiếu tài liệu chuyên sâu khi cần thay vì dán vào.
  • Thiết kế để tận dụng bộ nhớ đệm, chứ không chỉ để có yêu cầu đầu tiên nhỏ. Một phần dẫn nhập ổn định được lưu đệm hiệu quả tốt hơn một phần rất nhỏ nhưng bị xây dựng lại ở mỗi lượt.
  • Đo lường theo phiên, không phải theo tin nhắn. Đánh giá phần phụ trội trên toàn bộ tác vụ, nơi chi phí cố định được phân bổ.
A

AI Prime Tech xuất bản blog này. Các bài viết được soạn với sự hỗ trợ của AI; hãy đối chiếu những chi tiết phụ thuộc vào phiên bản như ID mô hình, giá và giới hạn với tài liệu chính thức trước khi dựa vào chúng.

Truy cập Claude API với chi phí thấp hơn

Một khóa API cho Claude Opus 5.5, Sonnet 5, Haiku 4.5 và Fable 5.1, cùng GPT-6 mô hình. Thanh toán theo mức sử dụng, không cần đăng ký thuê bao.

Nhận khóa API của bạn →
AI Prime Tech là cổng API bên thứ ba độc lập. Claude™ và Anthropic® là các nhãn hiệu của Anthropic, PBC. Không hàm ý có sự liên kết hay chứng thực.