Cắt giảm hơn 80% chi phí context trong coding agent: Bài học từ một kỹ sư
Một kỹ sư phần mềm đã chia sẻ giải pháp cắt giảm hơn 80% chi phí context trong các coding agent AI bằng cách kết hợp thiết kế công cụ theo hành động và cơ chế kích hoạt công cụ động. Giải pháp này giúp giảm từ 14.500-19.900 token tiêu tốn ở lượt đầu tiên xuống chỉ còn 3.600 token, cải thiện đáng kể hiệu suất và độ chính xác của mô hình. Bài viết cũng phân tích chi tiết cách Codex, Gemini/Antigravity và Claude Code đang xử lý vấn đề này.

Cắt giảm hơn 80% chi phí context trong coding agent: Bài học từ một kỹ sư
Khi bạn bắt đầu một phiên làm việc với coding agent AI hiện đại, một phần lớn context window đã bị tiêu tốn trước khi bạn gõ dòng tin nhắn đầu tiên. Một kỹ sư đã tìm ra cách giải quyết triệt để vấn đề này bằng cách kết hợp hai thiết kế thông minh: gộp công cụ theo hành động và cơ chế kích hoạt động. Kết quả giúp giảm từ 14.500-19.900 token ở lượt đầu tiên xuống chỉ còn 3.600 token, đồng thời cải thiện đáng kể độ chính xác của mô hình.
Vấn đề: Context window bị "ăn mòn" bởi tool schemas
Trong các coding agent hiện đại, hàng chục tool schemas được nạp vào context window trong mỗi lượt xử lý, dù người dùng chỉ cần vài công cụ cơ bản như đọc file, chạy lệnh shell hoặc chỉnh sửa code. Các công cụ chuyên biệt như tự động hóa trình duyệt, tìm kiếm web hay tạo hình ảnh thường chỉ được dùng không thường xuyên, nhưng vẫn chiếm không gian quý giá trong bộ nhớ của mô hình.
Kết quả là 14.000-20.000 token bị đốt cháy ngay từ lượt đầu tiên, khiến agent nhanh chóng chạm giới hạn context và làm suy giảm khả năng suy luận do tham số không liên quan làm ô nhiễm không gian chú ý.
Khảo sát thực tế: Bốn nền tảng coding agent
Tác giả bài viết đã tiến hành kiểm tra bằng cách gửi một thông điệp đơn giản "hi" trong phiên làm việc mới:
| Nền tảng | Số tool mặc định | Token tiêu tốn lượt đầu |
|---|---|---|
| Codex | 79 tools | 14.534 token (6% context window) |
| Gemini/Antigravity | 17 tools | 19.900 token (13.800 cho tool schemas) |
| Claude Code | 8-10 tools cơ bản | ~3.500-5.000+ token |
| Pi + Dynamic Tools | 4 tools | 3.600 token (1,3% context window) |
So sánh lượng context tiêu tốn của Codex sau khi gửi "hi"
Điều đáng chú ý là Antigravity chỉ có 17 tools nhưng tool schemas tiêu tốn đến 13.800 token, cho thấy số lượng tool không phải là yếu tố duy nhất quyết định chi phí context.
Phân tích context của Antigravity CLI cho thấy tool schemas chiếm 13.8k token
Nguyên tắc 1: Gộp công cụ theo hành động thay vì CRUD
Trong phát triển phần mềm truyền thống, chúng ta thường tạo các endpoint riêng biệt cho từng thao tác: memory_read, memory_write, memory_update, memory_delete. Điều này hợp lý cho HTTP API, nhưng với AI agents, mỗi tool schema đều được gửi qua mạng và nạp vào context window mỗi lượt.
Thay vào đó, tác giả đề xuất gộp các thao tác có cùng mục đích thành một tool duy nhất với tham số action:
{
"name": "memory_write",
"description": "Tạo, cập nhật hoặc xóa entries trong agent memory.",
"parameters": {
"action": {
"enum": ["create", "update", "delete"]
}
}
}
Cách này giúp giảm 50% schema footprint mà không mất đi chức năng nào. Mô hình LLM hiện đại xử lý tốt các tool có tham số action, miễn là hướng dẫn rõ ràng.
Nguyên tắc 2: Kích hoạt công cụ động trong Pi
Điểm mấu chốt của giải pháp là cơ chế kích hoạt công cụ động với bốn cơ chế chính:
1. Bốn tool mặc định tối thiểu
Chỉ giữ 4 tool cố định hoạt động: read, bash, edit, write. Tất cả công cụ khác đều ở trạng thái chờ (standby).
2. Chèn prompt không schema overhead
Thay vì tạo meta-tool để quản lý việc kích hoạt (sẽ thêm JSON schema mới), tác giả dùng hook before_agent_start để chèn một danh sách Markdown gọn nhẹ vào system prompt. Danh sách 20 tool chỉ tốn khoảng 100 token, trong khi 20 JSON schemas tiêu tốn 4.000-10.000 token.
3. Chặn bash command trong quá trình xử lý
Khi model cần kích hoạt một tool standby, nó chỉ cần chạy lệnh pi-tool activate browser_use trong bash. Extension sẽ chặn lệnh này ngay trong Node.js process, cập nhật danh sách tool hoạt động và trả về thông báo xác nhận.
4. Nhóm kích hoạt cùng lúc và TTL tự động
Các tool thường đi kèm với nhau (ví dụ: browser cần navigation, observe, act). Nhóm này được kích hoạt cùng lúc khi cần. Sau khi hoàn thành tác vụ, các tool kích hoạt tạm thời sẽ tự động bị gỡ khỏi schema sau 2 lượt xử lý.
Mô hình kích hoạt công cụ động trong Pi
Kết quả đạt được
| Chỉ số | Trước (Codex/Antigravity) | Sau (Pi + Dynamic Tools) | Mức giảm |
|---|---|---|---|
| Context overhead lượt đầu | 14.500-19.900 token | 3.600 token | -75% đến -82% |
| Số tool active trong schema | 17-79+ tools | 4 tools | -76% đến -95% |
| Độ tin cậy chọn tool | Dễ bị hallucination | Độ chính xác cao | — |
Lợi ích quan trọng nhất
Mô hình có không gian suy luận sạch hơn. Khi context window đầy hơn 40-50%, khả năng chú ý của LLM bị giảm sút. Việc bắt đầu mỗi phiên với 15.000-20.000 token tool schemas tĩnh khiến model nhanh chóng rơi vào trạng thái "mệt mỏi". Ngược lại, khởi đầu với 3.600 token giúp model giữ được trạng thái suy luận tốt nhất trong thời gian dài hơn cho các phiên coding phức tạp.
Ngoài ra, nhà phát triển có thể thoải mái thử nghiệm thêm công cụ mới mà không cần lo lắng về chi phí context. Với cơ chế standby, mỗi tool chỉ tốn 5-10 token là một dòng văn bản đơn giản, thay vì hàng trăm token cho JSON schema.
Bài học cho cộng đồng lập trình Việt Nam
Đối với các lập trình viên và team dev tại Việt Nam đang sử dụng AI coding agents, bài viết này mang lại hai thông điệp quan trọng:
- Hãy chú ý đến context overhead khi cấu hình coding agent, đặc biệt khi làm việc với các dự án lớn hoặc phiên làm việc dài.
- Ưu tiên chọn các nền tảng mã nguồn mở có lifecycle hooks như Pi, cho phép tùy chỉnh sâu cách quản lý tool schemas thay vì bị giới hạn bởi thiết kế tĩnh.
Với chi phí API của các mô hình LLM mạnh như Claude hay GPT-4, việc tiết kiệm 75-82% token không chỉ cải thiện hiệu suất mà còn giúp giảm đáng kể chi phí vận hành cho các cá nhân và doanh nghiệp.