Claude Code dành tới ba phần tư ngân sách token của mình chỉ để đọc mã nguồn, theo phân tích của Red Hat trên 219 phiên làm việc thực tế. Phát hiện này đảo ngược giả định thông thường rằng các tác nhân lập trình dựa trên AI lãng phí thời gian vào việc tạo mã, và gợi ý rằng các nhà phát triển nên tập trung giải quyết vấn đề quản lý ngữ cảnh thay vì chỉ chú trọng vào tốc độ của mô hình.
Dữ liệu đằng sau tuyên bố này
Red Hat đã kiểm tra 219 tương tác với Claude Code của Anthropic và tính toán lượng token sử dụng cho mỗi lượt. Trong mẫu nghiên cứu, lượt trung vị dành 75% token để nạp mã nguồn và tài liệu xung quanh, trong khi chỉ có 25% dành cho việc tạo ra các dòng mã mới. Vì hầu hết các nhà cung cấp AI đều tính phí token đầu vào và đầu ra với cùng một mức giá, nên phần “đọc” của giao dịch chiếm phần lớn chi phí.
Tại sao chi phí đọc lại quan trọng
Chiến lược tối ưu hóa
Nhiều nhóm đang đổ nguồn lực vào các mô hình nhanh hơn hoặc lớn hơn, với hy vọng việc tăng tốc sẽ cắt giảm được vài giây trong mỗi lần tạo mã. Nếu ba phần tư khối lượng công việc chỉ đơn giản là nạp ngữ cảnh, thì một mô hình nhanh hơn cũng chỉ tiết kiệm được một phần nhỏ tổng thời gian. Đòn bẩy thực sự nằm ở lượng ngữ cảnh mà mô hình phải xử lý trong mỗi lượt.
Kiểm soát chi phí
Khi một trợ lý AI đọc lại cùng một trạng thái kho lưu trữ (repository) trong mỗi yêu cầu, lượng token đầu vào sẽ tăng vọt. Các dự án có cửa sổ ngữ cảnh (context window) lớn có thể thấy hóa đơn của họ tăng lên đáng kể, ngay cả khi lượng mã được tạo ra ở mức khiêm tốn.
Trọng tâm kỹ thuật
Những người xây dựng công cụ thường theo đuổi chất lượng mô hình cao hơn trong khi bỏ qua cách xây dựng các câu lệnh (prompts). Phân tích cho thấy “kỹ thuật ngữ cảnh” (context engineering) – bao gồm việc cắt tỉa, lưu bộ nhớ đệm (caching) và tóm tắt mã nguồn được đưa vào mô hình – mang lại ROI lớn hơn so với việc nâng cấp mô hình từng bước một.
Các bước thực tế để giảm bớt chi phí đọc dư thừa
- Loại bỏ các tệp không liên quan – Loại bỏ các tệp mà tác vụ hiện tại không cần thiết khỏi prompt. Prompt nhỏ hơn đồng nghĩa với việc ít token đầu vào hơn.
- Lưu bộ nhớ đệm cho các lần đọc lặp lại – Lưu trữ cách mô hình diễn giải các phần ổn định của mã nguồn và tái sử dụng chúng qua các lượt thay vì gửi lại cùng một văn bản.
- Nén đầu ra của công cụ – Khi các công cụ bên ngoài trả về các khối dữ liệu lớn (ví dụ: báo cáo lint), hãy tóm tắt chúng trước khi đưa ngược lại cho Claude.
- Sử dụng các bản diff lũy tiến –
