
Xác định chi phí token ẩn trong vòng lặp tác nhân của bạn
Tuy nhiên, việc cắt giảm lượng token tiêu thụ trong quá trình chạy chỉ là vấn đề đầu tiên.
Nhận diện chi phí token ẩn trong vòng lặp tác tử (agentic loop) của bạn
Bởi Vinod Chugani vào ngày 7/8/2026 trong Trí tuệ nhân tạo 0
Chia sẻ
Đăng bài
Chia sẻ
Trong bài viết này, bạn sẽ tìm hiểu cách chi phí token tăng lên một cách âm thầm trong các vòng lặp AI tác tử, và các mô hình kiến trúc bạn có thể sử dụng để kiểm soát chúng trước khi chúng leo thang.
Các chủ đề chúng ta sẽ đề cập bao gồm:
Tại sao chi phí token tăng phi tuyến tính trong các quy trình làm việc tác tử đa bước, và sự khác biệt giữa trạng thái (state) và ngữ cảnh (context) là yếu tố trung tâm để kiểm soát chúng.
Năm chế độ lỗi riêng biệt – từ tích lũy ngữ cảnh O(N²) đến trùng lặp lời nhắc hệ thống (system prompt) tĩnh – chiếm phần lớn chi phí token vượt mức trong các triển khai sản xuất.
Các biện pháp giảm thiểu thực tế cho từng cạm bẫy, bao gồm nén ngữ cảnh (context compaction), bộ ngắt mạch (circuit breakers), lọc tải trọng (payload filtering), định tuyến mô hình động (dynamic model routing) và tiêm lời nhắc thời gian chạy (runtime prompt injection).
Thời gian là tiền bạc, và trong các hệ thống tác tử, token cũng vậy.
Vấn đề cốt lõi
Xây dựng một trình bao bọc LLM (LLM wrapper) một lượt là một dự án cuối tuần. Giữ cho một tác tử tự trị không làm phá sản cơ sở hạ tầng của bạn một cách âm thầm trong một triển khai sáu tháng là một vấn đề hoàn toàn khác.
Đây là vấn đề cốt lõi: mỗi khi một LLM xử lý văn bản, nó tính phí bạn bằng token, các đoạn văn bản nhỏ (khoảng ba phần tư một từ mỗi đoạn) mà các mô hình sử dụng để đọc và viết. Hãy nghĩ token như các đơn vị đo lường trên hóa đơn đám mây của bạn. Bạn gửi càng nhiều token mỗi cuộc gọi API, bạn càng phải trả nhiều tiền. Đủ đơn giản cho một chatbot. Nhưng trong một vòng lặp tác tử — nơi một AI tự động gọi các công cụ, đọc kết quả và lên kế hoạch cho bước tiếp theo của nó qua hàng chục bước — chi phí token không tăng tuyến tính. Chúng tăng theo cấp số nhân. Một thiết lập ngây thơ đổ mọi đầu ra công cụ vào một mảng tin nhắn ngày càng lớn có thể biến một tác vụ tự động hóa 0,05 USD thành một vòng lặp vô hạn 5,00 USD mà không gây ra bất kỳ lỗi nào.
Giải pháp bắt đầu bằng một sự phân biệt rõ ràng về mặt tư duy: Trạng thái (State), là những sự kiện tối thiểu cần thiết để tiến hành tác vụ, so với ngữ cảnh (context), là bản ghi đầy đủ, chi tiết của mọi thứ đã xảy ra cho đến nay. Hầu hết các khung tác tử mặc định nhầm lẫn hai khái niệm này, và nếu bạn đang đánh giá khung nào đáng để bạn dành thời gian trước khi kiến trúc hóa xung quanh chúng, thì phân tích các khung tác tử AI hàng đầu năm 2025 này đáng để đọc trước. Năm cạm bẫy chi phí dưới đây là những gì sự nhầm lẫn trạng thái/ngữ cảnh đó trông như thế nào trong sản xuất.
Mỗi cạm bẫy dưới đây đại diện cho một chế độ lỗi riêng biệt, một số trong đó đơn giản một cách lừa dối, trong khi những cạm bẫy khác lại tinh vi một cách đáng ngạc nhiên. Tổng hợp lại, chúng chiếm phần lớn chi phí token vượt mức trong các triển khai thực tế.
1. Thuế tích lũy ngữ cảnh O(N²)
Khái niệm: Trong một vòng lặp tác tử, việc truyền toàn bộ lịch sử cuộc trò chuyện đến mọi cuộc gọi mô hình có nghĩa là bạn phải trả tiền cho cùng một token lịch sử nhiều lần, chứ không chỉ một lần.
Cách hoạt động: Hầu hết các khung điều phối mặc định thêm mọi tin nhắn của người dùng, trợ lý và công cụ vào một mảng duy nhất đang phát triển. Đến bước 20 của một quy trình làm việc 20 bước, mô hình đọc lại mọi thứ từ bước 1 đến bước 19. Giải pháp là nén ngữ cảnh (context compaction): tổng hợp các lượt trước đó thành một bản tóm tắt cuộn dày đặc, hoặc sử dụng bộ nhớ đệm lời nhắc KV-cache để đóng băng trạng thái tiền tố và chỉ trả tiền cho phần chênh lệch — một hệ quả trực tiếp của cách các cơ chế chú ý mở rộng theo độ dài chuỗi.
Lưu ý: Nén quá mạnh và bạn sẽ bị "mất trí nhớ ngữ cảnh" (context amnesia). Tác tử bỏ qua một tham số quan trọng mà nó đã truy xuất ở bước 2, tạo ra một thay thế ở bước 8, và dẫn đến một chuỗi các cuộc gọi công cụ hạ nguồn thất bại.
Thời điểm áp dụng: Áp dụng nén ngữ cảnh cho bất kỳ quy trình làm việc đa bước nào dự kiến vượt quá năm lượt hoặc tương tác với các API bên ngoài có độ trễ cao, nhiều dữ liệu.
2. Vòng lặp thử lại không giới hạn trên trạng thái cũ
Sự phình to ngữ cảnh không chỉ là vấn đề tích lũy. Nó trở nên tồi tệ hơn khi mọi thứ gặp trục trặc.
Khái niệm: Khi một lệnh gọi công cụ thất bại, tác nhân cố gắng tự sửa lỗi nhưng kéo theo toàn bộ ngữ cảnh lỗi bị phình to trong mỗi lần thử lại, làm tăng chi phí với mỗi lần thử.
Cách thức hoạt động: Một vòng lặp ReAct (Lý luận và Hành động) tiêu chuẩn bắt một ngoại lệ — ví dụ: lỗi 400 Bad Request — và nối dấu vết lỗi vào ngữ cảnh trước khi yêu cầu mô hình sửa lỗi. Nếu tác nhân bị kẹt, mỗi lần thử lại sẽ gửi tất cả các lỗi trước đó. Giải pháp là một bộ ngắt mạch ở cấp độ điều phối: loại bỏ các quỹ đạo thất bại khỏi trạng thái trước khi trình bày lỗi trở lại mô hình, hoặc dừng hoàn toàn việc thực thi sau một ngưỡng.
Lưu ý: Việc loại bỏ hoàn toàn lịch sử lỗi có nghĩa là tác nhân có thể sẽ lặp lại chính xác lệnh gọi công cụ không hợp lệ. Cần trích xuất và đưa vào một "phương pháp phỏng đoán lỗi" xác định (ví dụ: "Công cụ X thất bại vì thiếu tham số Y") thay vì dấu vết ngăn xếp thô.
Thời điểm áp dụng: Thực thi bộ ngắt mạch và cắt tỉa quỹ đạo trên tất cả các lệnh gọi API bên ngoài không xác định, nơi mô hình tự động tạo tải trọng.
3. Phình to tải trọng công cụ không được lọc
Với các vòng lặp thử lại được kiểm soát, điều tiếp theo cần xem xét là những gì được đưa vào ngữ cảnh ngay từ đầu — cụ thể là đầu ra thô từ các công cụ của bạn.
Khái niệm: Việc đưa các phản hồi API thô, chưa được phân tích cú pháp trực tiếp vào ngữ cảnh của tác nhân sẽ lãng phí token vào các cấu trúc lặp lại và các trường mà tác nhân sẽ không bao giờ sử dụng.
Cách thức hoạt động: Một tác nhân truy vấn cơ sở dữ liệu hoặc API của bên thứ ba và nhận lại một tải trọng JSON khổng lồ. Thay vì đưa JSON thô đó vào lời nhắc, hãy định tuyến nó qua một lớp trích xuất xác định (jq, bộ lọc biểu thức chính quy hoặc trình phân tích cú pháp chuyên dụng) để loại bỏ siêu dữ liệu, các trường null và các cấu trúc lặp lại. Những gì được đưa vào ngữ cảnh chỉ nên là các cặp khóa-giá trị đã được xác thực theo lược đồ mà tác nhân thực sự cần để tiếp tục.
Lưu ý: Nếu lớp trích xuất âm thầm bỏ qua một trường mà tác nhân cần ở giai đoạn sau, nó sẽ âm thầm tạo ra một giá trị hợp lý để lấp đầy khoảng trống — và giá trị đó sẽ đi thẳng vào các bản ghi cơ sở dữ liệu của bạn.
Thời điểm áp dụng: Triển khai phần mềm trung gian lọc tải trọng bất cứ khi nào một tác nhân tích hợp với các hệ thống cũ, các API REST dài dòng hoặc web không có cấu trúc.




Nguồn tin: Machine Learning Mastery — Tác giả: Vinod Chugani. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.