Claude Code

Tiết kiệm token khi dùng Claude Code và Codex: giữ ngữ cảnh gọn, chọn model theo việc

Claude Code và Codex tốn token theo kích thước ngữ cảnh, không theo số câu bạn gõ. Bài giải thích token đi đâu trong một phiên, cách xem bằng /usage và /context, rồi các cách giảm theo tài liệu chính thức: /clear và /compact, CLAUDE.md ngắn, skill, bớt MCP, mức suy luận, subagent, hook lọc output và cách đo trước sau.

Biên soạn: đội ngũ STEYG One9 phút

Token đi đâu trong một phiên coding agent?

Mỗi lần Claude Code hay Codex gọi model, request mang theo gần như toàn bộ phiên: lời dặn hệ thống, mô tả công cụ, file hướng dẫn như CLAUDE.md hay AGENTS.md, lịch sử trò chuyện và kết quả của mọi công cụ đã chạy, từ nội dung file đã đọc tới log của lệnh. Agent dùng công cụ nhiều bước liền, nên một yêu cầu của bạn có thể thành hàng chục request.

Vì vậy chi phí tăng theo kích thước ngữ cảnh chứ không theo số câu bạn gõ: một câu hỏi một dòng trong phiên đã mở cả ngày vẫn kéo theo toàn bộ lịch sử. Phần suy luận (thinking) tính như token output, và output có đơn giá cao hơn input.

Xem token đang tốn vào đâu

Đo trước khi sửa. Trong Claude Code, /usage cho biết token của phiên hiện tại, /context cho biết phần nào đang chiếm cửa sổ ngữ cảnh: file hướng dẫn, công cụ MCP, lịch sử. Có thể cấu hình thanh trạng thái để luôn thấy mức dùng ngữ cảnh. Trong Codex CLI, /status cho biết phiên đang dùng model nào và còn bao nhiêu ngữ cảnh.

Khi chạy bằng API key, usage của nhà cung cấp ghi token input, cache và output của từng request. Đó là số để so trước và sau khi đổi cách làm.

Giữ ngữ cảnh gọn bằng /clear và /compact

Ngữ cảnh cũ không liên quan làm mọi bước sau đắt hơn. Tài liệu Claude Code khuyên:

CLAUDE.md: dặn cách tóm gọn
# Compact instructions

Khi tóm gọn ngữ cảnh, giữ kết quả test và các thay đổi code.
  • Dùng /clear khi chuyển sang việc không liên quan. Đặt tên phiên bằng /rename trước khi xoá để quay lại sau bằng /resume.
  • Dùng /compact khi phiên đã dài mà vẫn cần mạch cũ, kèm lời dặn giữ gì, ví dụ /compact Giữ phần code mẫu và cách gọi API.
  • Nhớ rằng /compact phải đọc cả cuộc trò chuyện để tóm tắt, nên tóm một ngữ cảnh lớn tự nó là một request lớn; muốn bắt đầu lại thì /clear không tốn gì.

CLAUDE.md ngắn, hướng dẫn chuyên biệt chuyển sang skill

CLAUDE.md được nạp vào ngữ cảnh ngay đầu mỗi phiên, nên mọi dòng trong đó tốn token ở mọi request kể cả khi không liên quan. Tài liệu Claude Code khuyên giữ file dưới khoảng 200 dòng, chỉ ghi điều cốt lõi: lệnh build, lệnh test, quy ước đặt tên.

Quy trình chuyên biệt như review pull request hay migration cơ sở dữ liệu nên viết thành skill: skill chỉ nạp khi được dùng. Một skill mô tả kiến trúc dự án cũng giúp agent khỏi phải đọc hàng loạt file để tự tìm hiểu.

Bớt chi phí của MCP server

Claude Code mặc định chỉ đưa tên công cụ MCP vào ngữ cảnh cho tới khi thật sự dùng, nhưng mỗi server bật thêm vẫn tốn chỗ. Tắt server không dùng trong /mcp, và ưu tiên công cụ dòng lệnh như gh hay aws khi có: agent chạy lệnh trực tiếp mà không cần danh sách công cụ đi kèm. Cách MCP hoạt động có ở bài MCP là gì.

Chọn model và mức suy luận theo việc

Đổi model giữa phiên bằng /model. Model tầng cao đáng tiền cho quyết định kiến trúc và lỗi khó; việc lặp lại như đổi tên, sửa định dạng hay viết test theo mẫu không cần tới nó. Subagent làm việc đơn giản có thể khai model: haiku trong cấu hình riêng thay vì thừa hưởng model của phiên chính.

Suy luận mở rộng tính như output và có thể lên tới hàng chục nghìn token mỗi request. Hạ mức suy luận bằng /effort cho việc đơn giản; với model dùng ngân sách suy luận cố định, biến MAX_THINKING_TOKENS đặt trần. Một số model như Opus 5.5, Sonnet 5.5 và Haiku 5.5 luôn suy luận, nên chỉ hạ được mức chứ không tắt được.

Đơn giá mỗi model khác nhau tuỳ nhà cung cấp, nên đối chiếu bảng giá API theo token trước khi đặt model mặc định thay vì đoán theo tên.

Đẩy việc nhiều chữ sang subagent và hook

Chạy bộ test, đọc tài liệu hay xử lý file log sinh rất nhiều chữ. Giao các việc đó cho subagent thì phần chữ dài nằm trong ngữ cảnh của subagent, phiên chính chỉ nhận bản tóm tắt; request của subagent vẫn tính tiền, nên chọn model nhỏ cho nó.

Hook xử lý dữ liệu trước khi agent thấy: thay vì để agent đọc một file log mười nghìn dòng, hook lọc ra các dòng ERROR. Tài liệu Claude Code có ví dụ hook PreToolUse sửa lệnh chạy test để chỉ in phần lỗi. Nhóm agent (agent teams) tốn token gấp nhiều lần phiên thường, theo tài liệu khoảng 7 lần khi các thành viên chạy ở plan mode, nên giữ việc của mỗi thành viên nhỏ và độc lập.

Viết yêu cầu cụ thể và sửa hướng sớm

Yêu cầu mơ hồ như “cải thiện codebase này” khiến agent quét rộng; yêu cầu cụ thể như “thêm kiểm tra đầu vào cho hàm login trong auth.ts” cho nó đọc đúng chỗ. Với việc lớn:

  • Bật plan mode (Shift+Tab) để agent đề xuất cách làm trước khi sửa, tránh làm lại cả loạt khi hướng ban đầu sai.
  • Thấy agent đi sai thì bấm Escape dừng ngay; /rewind hoặc bấm Escape hai lần đưa cuộc trò chuyện và code về điểm trước đó.
  • Đưa sẵn tiêu chí kiểm tra: test case, ảnh chụp, output mong đợi, để agent tự phát hiện lỗi thay vì chờ bạn chỉ ra.
  • Làm từng phần nhỏ: viết một file, chạy thử, rồi mới làm tiếp.

Vì sao phiên để lâu tốn token dù bạn ít gõ?

Một phiên mở nhiều giờ có thể tốn hơn hẳn những gì bạn thấy mình đã làm:

  • Ngữ cảnh dài: mọi request mang cả lịch sử, kể cả một câu hỏi rất ngắn.
  • Cache hết hạn: nghỉ lâu hơn thời gian sống của cache thì lượt kế tiếp phải xử lý lại toàn bộ ngữ cảnh ở đơn giá input thường.
  • Tác vụ theo lịch và tin nhắn từ phiên khác: mỗi lần kích hoạt gửi lại toàn bộ ngữ cảnh dù bạn không gõ gì.
  • Subagent, workflow và nhóm agent: mỗi agent gửi request riêng bên cạnh phiên chính.

Với Codex: AGENTS.md gọn, /compact và /new

Nguyên lý giống hệt: Codex gửi lại ngữ cảnh của phiên ở mỗi bước. Giữ AGENTS.md ngắn và chỉ ghi quy ước cốt lõi; dùng /compact khi phiên đã dài, /new khi đổi việc; chọn model và mức suy luận bằng /model theo độ khó; chỉ khai MCP server trong config.toml khi dự án cần. Khi dùng gói ChatGPT, các thói quen này giúp hạn mức bền hơn; chi tiết hạn mức ở bài Codex hết hạn mức.

Đo trước và sau khi đổi cách làm

Mẹo nào đáng giữ phải nhìn bằng số, không bằng cảm giác. Cách đo đơn giản:

  1. Chọn một việc điển hình của dự án, ví dụ sửa một lỗi có test đi kèm.
  2. Làm việc đó theo cách cũ, ghi lại tổng token input, cache, output và chi phí trong usage.
  3. Áp một thay đổi: rút gọn CLAUDE.md, tắt MCP server thừa, hạ mức suy luận hay giao việc chạy test cho subagent.
  4. Làm lại cùng việc trong phiên mới và so hai con số; giữ thay đổi nào giảm token mà kết quả vẫn đạt.

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

Vì sao Claude Code tốn nhiều token dù tôi chỉ hỏi một câu ngắn?

Vì mỗi request gửi lại gần hết phiên: lịch sử, file đã đọc, output của lệnh. Câu hỏi ngắn trong phiên dài vẫn kéo theo toàn bộ ngữ cảnh; dùng /clear khi đổi việc.

/compact và /clear khác nhau thế nào?

/compact tóm tắt cuộc trò chuyện để giữ mạch, và việc tóm tắt là một request đọc cả ngữ cảnh. /clear xoá ngữ cảnh để bắt đầu lại và không tốn token.

Hạ mức suy luận có giảm chi phí không?

Có, với việc không cần suy luận sâu: token suy luận tính như output. Dùng /effort để hạ mức; một số model luôn suy luận nên chỉ hạ được mức chứ không tắt được.

Prompt caching có tự giúp giảm chi phí không?

Claude Code tự dùng prompt caching cho phần lặp lại như lời dặn hệ thống. Phần đọc từ cache chỉ rẻ hơn khi nhà cung cấp hỗ trợ cache; xem cột cache trong usage để biết request có trúng cache không.

Tạo API key miễn phí

Tài khoản mới có hạn mức dùng thử 10.000đ trong 7 ngày, không cần thẻ. Một key cho mọi coding agent.

Tạo API key miễn phí

Đọc tiếp

Bài do Hộ kinh doanh Truyền thông & Công nghệ STEYG biên soạn, cập nhật lần cuối 25/10/2026; người chịu trách nhiệm nội dung: Đường Hào Minh. Xem thêm tài liệu API.