Các MCP Server của bạn đang đốt token ngay cả trước khi bạn kịp gõ một chữ
Bạn đang phải trả tiền cho những dữ liệu mà mình chẳng bao giờ dùng đến.
Tuần trước, tôi có theo dõi một phiên làm việc của agent. Nó đã tải sẵn 47 công cụ MCP. Mỗi công cụ đều gửi toàn bộ JSON schema của nó vào system prompt. Điều này xảy ra ngay cả trước khi tôi gõ một chữ nào.
Mỗi schema của công cụ tiêu tốn từ 150 đến 400 token. 47 công cụ đã khiến tôi tốn thêm 11.000 token chi phí phát sinh (overhead). Mô hình sẽ đọc những token này trong mỗi lượt tương tác. Bạn phải trả tiền cho phần ngữ cảnh (context) này ngay cả khi bạn chỉ sử dụng hai công cụ.
Hầu hết mọi người đều lo lắng về việc tải lên các tệp tin lớn. Họ quên mất chi phí của chính cái "menu" công cụ đó.
Khi bạn kết nối chồng chéo các server như GitHub, Slack và các cơ sở dữ liệu, bạn sẽ kết thúc với khoảng 60 đến 100 công cụ. Tôi đã thấy những phiên làm việc mà phần định nghĩa công cụ chiếm tới 20% toàn bộ ngân sách ngữ cảnh.
Đừng tải mọi thứ cùng một lúc. Hãy sử dụng cơ chế tải trì hoãn (deferred loading) thay thế.
Đây là mô hình: • Chỉ liệt kê tên công cụ và một mô tả ngắn gọn. • Sử dụng một công cụ tìm kiếm để lấy toàn bộ schema khi có nhu cầu.
Thay vì chèn một đối tượng JSON khổng lồ cho mọi công cụ, bạn chỉ cung cấp một cái tên đơn giản. Khi mô hình cần một công cụ cụ thể, nó sẽ gọi một hàm tìm kiếm. Hàm đó sẽ trả về schema đầy đủ chỉ cho những công cụ khớp với yêu cầu.
Kết quả thu được rất lớn: • Tải trước (Eager loading) 80 công cụ: ~18.000 token. • Tải trì hoãn (Deferred loading) 80 công cụ: ~1.000 token.
Điều này biến việc định nghĩa công cụ từ một khoản chi phí lớn thành một con số không đáng kể.
Chiến lược này hiệu quả vì hầu hết các phiên làm việc chỉ sử dụng một phần nhỏ các công cụ có sẵn. Nếu bạn sử dụng mọi công cụ trong một phiên, chi phí vẫn sẽ như cũ. Nhưng với hầu hết người dùng, cách này giúp tiết kiệm một lượng lớn ngữ cảnh.
Đừng hỏi mô hình cần gọi những công cụ nào. Hãy hỏi xem mặc định mô hình cần biết sự tồn tại của những công cụ nào.
Hầu hết các danh mục đều cung cấp mọi thứ cùng một lúc vì nó dễ dàng. Nhưng đó cũng là cách nhanh nhất để đốt sạch ngân sách của bạn vào một cái menu mà chẳng ai thèm đọc.
Hãy giữ mọi thứ đơn giản. Cung cấp một cái tên, một mô tả và một hàm tìm kiếm. Hãy trả tiền cho ba công cụ bạn thực sự dùng, chứ không phải tám mươi công cụ mà bạn bỏ qua.
Source: https://dev.to/enjoy_kumawat/your-mcp-servers-are-burning-tokens-before-you-type-a-word-3076
Optional learning community: https://t.me/GyaanSetuAi
