Động cơ
- Trong ghi chú phát hành Claude Opus 4.7, phần “mức sử dụng token tăng” là điều nổi bật nhất.
- Khi chúng ta đang bước vào thời đại mà chỉ cần đủ token và thời gian thì có thể làm được rất nhiều việc, hiệu quả sử dụng token cũng liên tục trở thành một vấn đề.
- Từ khoảng tháng 3, cộng đồng đã dậy sóng về việc Claude Code lặng lẽ giảm TTL cache từ 1 giờ → 5 phút.
- Khi đo thử với Opus 4.7, có phân tích cho thấy lượng token tiêu thụ cao gần gấp 1,5 lần so với 4.6.
- Cũng có một kho nghiên cứu về hiệu quả cache của Claude Code.
- Từ câu hỏi “Liệu có cách nào tăng hiệu quả token bằng cách thay đổi giá trị cài đặt trong Claude Code và Codex không?”, tôi đã phân tích tài liệu chính thức của Claude Code (cài đặt/biến môi trường/IDE), tài liệu chính thức của Codex (cài đặt/biến môi trường/MCP), cũng như mã nguồn của Codex, và thu được kết quả khá có ý nghĩa.
- Không chỉ với chế độ tương tác tôi thường dùng, tôi còn biết thêm nhiều cách để cải thiện hiệu quả token/tốc độ khởi động/độ ổn định trong chế độ không tương tác có thể lập trình được.
Prompt để phân tích trạng thái của tôi
Prompt dành cho những ai muốn đi thẳng vào việc kiểm tra cấu hình coding agent của mình:
https://gist.github.com/spilist/c468cbf1ed0ffc91100f813aabdcd520/… 를 읽고 그대로 실행해줘
Điều gì thực sự ngốn token
Trong coding agent, nhìn chung có ba con đường làm rò rỉ token:
- Văn bản bổ sung được tự động gắn vào mỗi phiên hoặc mỗi lượt
- Kết quả đầu ra của các lệnh gọi công cụ quá dài còn lưu trong lịch sử hội thoại
- Các lệnh gọi bổ sung do kết nối bên ngoài như tìm kiếm, connector, tích hợp IDE
Giới thiệu các đòn bẩy có thể dùng để giảm 3 yếu tố trên trong Claude Code và Codex. (Bỏ qua các nội dung cơ bản như tắt MCP server/plugin không dùng, điều chỉnh model và mức reasoning.)
- Phần giải thích cho từng cài đặt, cũng như trade-off của chúng, được viết chi tiết trong bài blog.
Claude Code (phiên bản xác nhận cuối cùng: 2.1.114)
-
includeGitInstructions: false
-
autoConnectIde: false
-
CLAUDE_CODE_GLOB_NO_IGNORE=false
-
Thiết lập giới hạn đầu ra (BASH_MAX_OUTPUT_LENGTH, CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS, MAX_MCP_OUTPUT_TOKENS)
-
Các biến môi trường và cờ dành cho tác vụ ngắn, đơn giản hoặc chế độ không đối thoại
ENABLE_CLAUDEAI_MCP_SERVERS=false: tắt MCP serverCLAUDE_CODE_DISABLE_AUTO_MEMORY=1: không tải bộ nhớ đã được lưu tự độngCLAUDE_CODE_DISABLE_CLAUDE_MDS=1: bỏ quaCLAUDE.mdtoàn cục/dự ánCLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1: loại trừ sub-agent tích hợp sẵn và định nghĩa skill khỏi system prompt--tools: kích hoạt có chọn lọc các công cụ native. Nếu--tools ""thì vô hiệu hóa toàn bộ. Với worker thật sự chỉ dùng trí thông minh của model thì có thể tắt hết; còn khi giao việc đơn giản ở chế độ tương tác, nếu tắt hết thì gần như không thể làm gì, nên chỉ bật những thứ cần thiết như"Bash,Edit,Glob,Grep,Read,Write"--strict-mcp-config: chỉ dùng cấu hình MCP được chỉ định qua CLI và bỏ qua cấu hình MCP toàn cục. Có thể tiêm gọn gàng chỉ những connector cần thiết cho từng worker.--disable-slash-commands: định nghĩa các slash command như/help,/clearsẽ bị loại khỏi system prompt--no-session-persistence: không dùng đường dẫn lưu/khôi phục phiên, nên không để lại dấu vết của các lần chạy dùng một lần--exclude-dynamic-system-prompt-sections: loại bỏ các phần thay đổi theo từng máy/môi trường để tăng tỷ lệ tái sử dụng cache của prompt--system-prompt: ngoài tất cả những điều đó, bạn thậm chí có thể thay thế hoàn toàn system prompt của Claude
-
Xóa attribution
Codex CLI (phiên bản xác nhận cuối cùng: 0.121.0 + mã nguồn Codex trên Github của phiên bản đó)
- Tắt MCP (app/connector) được kết nối với ChatGPT (features.apps = false)
- web_search = "disabled"
- Thiết lập giới hạn đầu ra (tool_output_token_limit)
- Các cờ giúp chạy tốt trong chế độ không đối thoại
--profile: có thể gom và áp dụng chọn lọc một bộ cài đặt cụ thể (web_search = "disabled",tool_output_token_limit = 2000, v.v.)--json+--output-last-message FILE: giúp việc parse/trích xuất trong pipeline dễ hơn, từ đó giảm việc tiêu tốn lại token ở bước hậu xử lý--sandbox read-only: trong các tự động hóa chỉ cần đọc, chặn việc vô tình thử ghi → vòng lặp retry → lãng phí token--skip-git-repo-check: cho phép chạy ngay cả khi không phải thư mục đáng tin cậy--ephemeral: không lưu file phiên vào đĩa--color never: giúp đầu ra pipe sạch hơn
- Xóa attribution
Kết
Tôi đã kiểm chứng sự thật một cách kỹ lưỡng, nhưng dĩ nhiên vẫn có thể có chỗ sai. Nếu bạn thoải mái báo lại, tôi sẽ rất cảm kích.
5 bình luận
Đây có vẻ sẽ là một bài viết tham khảo rất tốt. Nếu phần chính của bài viết là cách tiếp cận khóa van của “token đầu vào”,
thì tôi lại thường gặp nhiều trường hợp vấn đề nằm ở chỗ “chính những thứ đã được đăng ký” ngày càng nhiều lên, nên đã thử làm một công cụ tên là claude-slim.
Đây là một CLI quét, phân loại và sắp xếp các tình huống như: trong 60 skill thì có đến một nửa chưa từng được dùng lần nào, hoặc CLAUDE.md bị phình to do plugin. Token counting dựa trên js-tiktoken,
không xóa hẳn mà chuyển sang
skills.disabled/nên có thể restore bất cứ lúc nào.https://github.com/iops-leo/claude-slim
Hướng đi này bổ sung chính xác cho các thiết lập trong bài viết, nên có vẻ sẽ rất tốt nếu dùng song song.
Ồ, cảm ơn vì đã chia sẻ!
Cảm ơn bạn đã chia sẻ thông tin hữu ích. Về cơ bản, tôi đang cảm nhận rõ rằng lượng token sử dụng bản thân nó đã giảm đi quá nhiều, nên mong là phía Claude sẽ tăng lên một chút. Vì khi harness chạy thì lại bị ngắt giữa chừng...
Cảm ơn. Claude cũng tiêu tốn nhiều token, mà hiệu quả công việc thì tôi cũng hơi không hài lòng so với Codex, nên dạo này tôi làm việc với Codex nhiều hơn.
Cảm ơn.