Tối ưu hóa chi phí Token cho AI Agent: 7 mô hình giúp cắt giảm 73% hóa đơn
RapidClaw đã giảm 73% chi phí LLM hàng tháng mà không làm giảm chất lượng AI Agent. Bài viết chia sẻ 7 mô hình tối ưu hóa quan trọng nhất, từ prompt caching, định tuyến mô hình đến tự host các tác vụ đơn giản.

Sáu tháng trước, hóa đơn hàng tháng cho Mô hình Ngôn ngữ Lớn (LLM) tại RapidClaw đã đạt đến một con số mà tôi không muốn nhắc đến. Chúng tôi đang vận hành các AI Agent trên môi trường production cho khối lượng công việc của khách hàng, và mỗi lần "chỉ cần thêm một cuộc gọi tool nữa" lại âm thầm cộng gộp thành một cú sốc 4 con số trên hóa đơn.
Tôi là Tijo Bear, người sáng lập RapidClaw. Chúng tôi xây dựng cơ sở hạ tầng cho các đội nhóm muốn triển khai AI Agent mà không cần trở thành kỹ sư prompt toàn thời gian. Sau khi dành một quý để ám ảnh về kinh tế học token của riêng mình, chúng tôi đã cắt giảm chi tiêu xuống 73% — mà không làm giảm chất lượng của Agent. Dưới đây là 7 mô hình quan trọng nhất đã giúp chúng tôi làm được điều đó.
1. Prompt caching là chiến thắng 90% rẻ nhất mà bạn từng triển khai
Nếu bạn đang gửi cùng một system prompt, định nghĩa tool, hoặc ngữ cảnh RAG trong mỗi lượt truy vấn, bạn đang trả giá trọn gói cho những token mà mô hình đã từng thấy. Anthropic, OpenAI và hầu hết các nhà cung cấp lớn hiện nay đều hỗ trợ prompt caching với giá cache hits chỉ khoảng 10% so với token đầu vào bình thường.
# Trước: 4.200 input tokens/lượt với giá đầy đủ
messages = [
{"role": "system", "content": LARGE_SYSTEM_PROMPT + TOOL_DEFINITIONS},
{"role": "user", "content": user_input}
]
# Sau: cùng một prompt, được đánh dấu có thể cache
messages = [
{
"role": "system",
"content": [
{
"type": "text",
"text": LARGE_SYSTEM_PROMPT + TOOL_DEFINITIONS,
"cache_control": {"type": "ephemeral"}
}
]
},
{"role": "user", "content": user_input}
]
Chỉ một dòng cấu hình. Giảm ~85% chi phí cho phần được cache. Không có lý do gì để không triển khai điều này ngay hôm nay.
2. Định tuyến theo độ phức tạp, không theo thói quen
Không phải mọi tác vụ đều cần mô hình đắt tiền nhất của bạn. Chúng tôi đã xây dựng một bộ định tuyến nhỏ phân loại các yêu cầu Agent đến thành ba nhóm và gửi chúng đến mô hình rẻ nhất có thể xử lý công việc:
def route_model(task_type: str, context_size: int) -> str:
if task_type in ("classify", "extract", "format"):
return "haiku" # ~$0.25/M input
if context_size > 50_000 or task_type == "reason":
return "sonnet" # ~$3/M input
return "haiku" # mặc định là rẻ
Chúng tôi chỉ chuyển sang mô hình lớn hơn khi mô hình rẻ trả lại độ tin cậy thấp hoặc không vượt qua xác thực. Khoảng 68% các cuộc gọi Agent của chúng tôi hiện nay được giải quyết trên mô hình nhỏ. Chỉ riêng điều này đã di chuyển kim nhiều hơn bất kỳ tối ưu hóa nào khác.
3. Cắt giảm định nghĩa tool một cách tàn nhẫn
Schema tool/function cũng là token. Chúng tôi đã kiểm toán của mình và tìm thấy 11 công cụ với mô tả trung bình 180 token mỗi cái, một nửa trong số đó là những giải thích dư thừa mà mô hình thực sự không cần.
Hãy cắt mọi mô tả tool xuống còn câu thông tin nhất. Di chuyển các ví dụ đã hoạt động vào một tài liệu có thể truy xuất riêng mà Agent chỉ lấy khi cần hướng dẫn. Chúng tôi đã tiết kiệm ~1.400 token mỗi lượt chỉ bằng cách chỉnh sửa JSON.
4. Ngừng gửi lại toàn bộ lịch sử trò chuyện
Vòng lặp Agent ngây thơ gửi toàn bộ lịch sử tin nhắn trong mỗi lượt. Đến lượt thứ 12, bạn đang trả tiền cho lượt 1–11 một lần nữa. Ba điều sau sẽ giúp ích:
- Cửa sổ trượt (Sliding window) — chỉ giữ N lượt cuối cùng nguyên văn.
- Nén tóm tắt — khi lịch sử vượt quá ngưỡng, hãy yêu cầu một mô hình rẻ tiền tóm tắt các lượt cũ thành một bản tóm tắt 200 token.
- Trích xuất bộ nhớ — kéo các sự thật ổn định (tùy chọn người dùng, ID dự án, quyết định) vào một kho bộ nhớ có cấu trúc, sau đó chỉ chèn các hàng liên quan.
def compact_history(messages, threshold=20):
if len(messages) < threshold:
return messages
old, recent = messages[:-10], messages[-10:]
summary = cheap_summarize(old)
return [{"role": "system", "content": f"Earlier context: {summary}"}] + recent
5. Giới hạn vòng lặp gọi tool
Hố tiền lớn nhất trong các hệ thống Agent không phải là mô hình — mà là vòng lặp bị trôi. Một Agent thử lại một tool bị lỗi 14 lần sẽ âm thầm đốt cháy nhiều ngân sách hơn 200 phiên bình thường.
Hãy giới hạn số lần lặp cứng. Thêm độ trễ theo cấp số nhân (exponential backoff). Hiển thị lỗi rõ ràng cho người dùng thay vì để mô hình tiếp tục trả tiền để thử lại. Mặc định của chúng tôi là 8 cuộc gọi tool mỗi lượt với một rào chắn ngân sách sẽ hủy bỏ phiên nếu token đầu vào vượt quá trần được cấu hình.
6. Streaming và ngắt mạch ngắn (Short-circuit)
Nếu đầu ra của Agent của bạn được phân tích cú pháp và thực thi, bạn không cần đợi hoàn thành đầy đủ. Hãy truyền luồng (stream) phản hồi và ngắt mạch ngay khi bạn có được trường có cấu trúc cần thiết. Chúng tôi đã tiết kiệm khoảng 22% token đầu ra cho các lần tạo dạng dài bằng cách dừng sớm khi một sentinel <done> được phát ra.
async for chunk in client.messages.stream(...):
buffer += chunk.text
if "<done>" in buffer:
break # ngừng trả tiền cho thêm token
7. Tự chủ trì các tác vụ rẻ tiền
Không phải mọi bước trong quy trình Agent đều cần mô hình tiên phong. Embeddings, phân loại, xếp hạng lại (reranking), trích xuất đơn giản — những thứ này chạy rất đẹp trên các mô hình mở nhỏ mà bạn có thể triển khai trên một hộp GPU duy nhất với chi phí cố định hàng tháng.
Chúng tôi đã chuyển embeddings và phân loại ý định sang thiết lập tự host và chi phí biên giảm xuống hiệu quả bằng không. Mô hình tiên phong vẫn xử lý lý luận khó, nhưng các đường ống xung quanh hiện chạy trên cơ sở hạ tầng mà chúng tôi kiểm soát.
Con số biết nói
Được xếp chồng lên nhau, đây là những gì mỗi mô hình đóng góp cho mức cắt giảm 73% của chúng tôi:
| Mô hình | Đóng góp |
|---|---|
| Prompt caching | 31% |
| Định tuyến mô hình | 19% |
| Tự host đường ống (plumbing) | 11% |
| Nén lịch sử | 6% |
| Cắt giảm định nghĩa tool | 3% |
| Giới hạn vòng lặp + rào chắn ngân sách | 2% |
| Ngắt mạch ngắn (Stream short-circuit) | 1% |
Bài học ở đây không phải là bất kỳ thủ thuật đơn lẻ nào cũng kỳ diệu — mà là kinh tế học token mang tính cộng thêm. Năm tối ưu hóa tầm thường sẽ đánh bại một tối ưu hóa anh hùng, và chúng dễ triển khai hơn nhiều.
Điều tôi sẽ làm đầu tiên nếu được bắt đầu lại từ đầu
Nếu tôi phải xây dựng lại điều này từ con số không vào ngày mai với một tuần để tối ưu hóa, tôi sẽ triển khai theo thứ tự này: prompt caching → giới hạn vòng lặp → định tuyến mô hình → nén lịch sử. Chỉ bốn cái đó thôi đã giúp bạn tiết kiệm khoảng 60% và không yêu cầu thay đổi cơ sở hạ tầng.
Mọi thứ khác chỉ là hoàn thiện.
Nếu bạn đang xây dựng các Agent trên môi trường production và muốn một runtime đã tích hợp sẵn các mô hình này theo mặc định, đó chính xác là những gì chúng tôi đang xây dựng tại RapidClaw. Tôi rất muốn nghe cách bạn xử lý kinh tế học token trong stack của riêng mình — hãy để lại bình luận hoặc liên hệ với tôi.
— Tijo
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
