Quên tắt /loop và hoá đơn API nghìn đô: hiểu chi phí khi agent chạy lặp
Tóm tắt
Một câu chuyện lan truyền trong cộng đồng: lập trình viên chạy /loop kiểm tra PR mỗi 30 phút rồi quên tắt, sáng hôm sau hoá đơn API lên vài nghìn đô. Lý do: mỗi lần lặp gửi lại cả cuộc hội thoại, và vì cache mặc định chỉ sống 5 phút nên lần lặp nào cũng phải trả giá đầy đủ cho phần ngữ cảnh đó.
Vì sao tốn đến vậy?
- Mỗi lượt gọi model đều gửi lại toàn bộ ngữ cảnh (system prompt, lịch sử, kết quả tool) — ngữ cảnh càng dài, mỗi lượt càng đắt.
- Prompt cache giúp phần ngữ cảnh lặp lại rẻ hơn nhiều, nhưng TTL mặc định là 5 phút (có tuỳ chọn 1 giờ với giá ghi cao hơn).
- Lặp mỗi 30 phút → cache đã hết hạn → mỗi lần lặp phải ghi cache lại từ đầu.
- Mỗi lần lặp lại thêm kết quả mới vào lịch sử → ngữ cảnh ngày càng phình.
Prompt cache tính giá thế nào?
| Loại | So với giá input gốc |
|---|---|
| Ghi cache 5 phút | 1,25× |
| Ghi cache 1 giờ | 2× |
| Đọc cache | 0,1× (thấp hơn ở một số model mới) |
Áp dụng thế nào?
- Biết cách dừng: loop khoảng cố định (
/loop 30m …) không dừng bằng Esc — phải yêu cầu Claude huỷ. Task lặp tự hết hạn sau 7 ngày. - Chọn đúng công cụ: việc chạy lâu dài nên dùng scheduled task trên cloud/desktop hoặc GitHub Actions với phiên mới mỗi lần, thay vì để một phiên dài lặp mãi.
- Đặt giới hạn chi tiêu và cảnh báo ngân sách trên console API; theo dõi usage hằng ngày.
- Giữ ngữ cảnh gọn:
/clearhoặc mở phiên mới cho việc định kỳ; prompt lặp nên ngắn và cụ thể. - Chọn model hợp việc: kiểm tra trạng thái PR không cần model đắt nhất.
Tham khảo: Prompt caching (Claude docs) · Scheduled tasks & /loop (Claude Code docs)