Trong tháng vừa qua, các tác nhân viết mã (coding agents) mà tôi đang xây dựng đã xử lý 13 tỷ token (cả đầu vào và đầu ra), với tỷ lệ cache hit 97,24% và chi phí hiệu quả khoảng R$ 0,04 cho mỗi triệu token.
Khi tôi đề cập đến những con số này, phản ứng đầu tiên thường là sự hoài nghi—và điều đó là tốt. Chi phí là lý do số một khiến các công ty từ bỏ các tác nhân tự động: pilot chạy tốt, hóa đơn đến, dự án chết. Vì vậy, bài viết này sẽ giải thích cách những con số này đạt được. Không có một thủ thuật đơn lẻ nào; có một kiến trúc nơi mọi token đi vào và đi ra đều được nén, định tuyến và đo lường.
Đây là Velua Code, tác nhân mà chúng tôi đang xây dựng tại một startup mới tôi quyết định thành lập, Velua AI (https://velua.aihttps://velua.ai/)). Trước khi nói về kiến trúc, hãy bắt đầu với luận điểm.
Luận điểm: Ba vấn đề, giải quyết cùng nhau
Các tác nhân viết mã hỏng ở ba điểm, và chỉ giải quyết một điểm là không đủ.
Chi phí. Một tác nhân tự động tiêu thụ token ở quy mô khiến bất kỳ CFO nào cũng khiếp sợ. Nếu mỗi lần lặp đều đắt đỏ, không ai cho phép tác nhân lặp—và một tác nhân không lặp thì không thực sự giải quyết được vấn đề gì.
Ngữ cảnh. Cửa sổ ngữ cảnh có hạn và đắt đỏ. Các triển khai điển hình nhồi nhét prompt với toàn bộ file và kết quả grep, trả tiền cho hàng nghìn token không liên quan trong mỗi lần gọi.
Bộ nhớ. Mỗi phiên đều bắt đầu từ đầu. Tác nhân khám phá lại vào thứ Ba những gì nó đã học được vào thứ Hai—và phải trả (bằng token và lỗi) để khám phá lại.
Ba vấn đề này tương tác lẫn nhau: ngữ cảnh phình to làm tăng chi phí, thiếu bộ nhớ làm phình to ngữ cảnh. Đó là lý do Velua Code tấn công cả ba cùng lúc.
Chi phí: Nén nguồn + Định tuyến chủ động
Quyết định kiến trúc đầu tiên: nén ngữ cảnh tại nguồn, không phải ở đầu ra. Mọi đầu ra của công cụ—đọc file, kết quả tìm kiếm, log build—đều đi qua một pipeline nén trước khi vào lịch sử phiên. Cốt lõi là một mô hình nén độc quyền chạy cục bộ trong ONNX, trên máy của dev hoặc trong container của tác nhân. Không có cuộc gọi mạng để nén: tiết kiệm mà không tốn token.
Xung quanh nó, các lớp đơn giản hơn làm công việc nặng nhọc: khử trùng lặp các lần đọc (tác nhân có đọc lại cùng một file không? phiên bản cũ bị loại khỏi ngữ cảnh), nén JSON cấu trúc, lược bỏ phần thân mã trong khi giữ lại chữ ký, và một ngưỡng thích ứng thắt chặt nén khi ngữ cảnh phát triển. Mọi thứ được đo bằng tokenizer thực tế của mô hình đích—tiết kiệm được tính bằng token thực, không phải ước tính.
Và có một quyết định về việc không làm gì: chúng tôi không bao giờ động đến system prompt khi chạy. Một prompt ổn định là thứ duy trì tỷ lệ cache hit 97,24%—và cache hit là đòn bẩy chi phí rẻ nhất hiện có, vì một token được cache chỉ tốn một phần nhỏ so với token đầy đủ.
Quyết định thứ hai: tác nhân không chọn mô hình. Một bộ phân loại cục bộ phân loại trước mỗi tác vụ theo danh mục và độ phức tạp, và Velua Gateway—có khả năng nhìn thấy 50+ mô hình với giá cả và hiệu suất thời gian thực—định tuyến đến mô hình có khả năng nhất trong phạm vi cần thiết, ngoài ra còn áp dụng guardrails và bổ sung RAG. Đổi tên một biến không cần mô hình frontier; thiết kế một schema migration thì có. Với định tuyến chủ động, hầu hết các cuộc gọi đều đến các mô hình nhỏ hơn, và mô hình đắt tiền chỉ xuất hiện khi độ phức tạp yêu cầu.
Gateway cũng đo chi phí thực tế của mỗi yêu cầu. Điều này cho phép một điều tôi coi là bất di bất dịch cho các tác nhân trong sản xuất: ngân sách như một điều kiện dừng. Vòng lặp tự động chạy với trần chi phí bằng tiền tệ, chứ không phải bằng hy vọng.
Chính sự kết hợp—nén nguồn, cache cao, định tuyến giữa các mô hình nhỏ hơn—mới tạo ra mức R$ 0,04 cho mỗi triệu. Không một mảnh ghép nào trong ba mảnh ghép đó có thể đạt được một mình.
Ngữ cảnh: Một đồ thị thay vì Grep
Cách tiêu chuẩn để một tác nhân "hiểu" một cơ sở mã là grep và đọc file—tốn kém và mù quáng. Velua Code duy trì một đồ thị tri thức mã: các hàm, lớp, route, và mối quan hệ giữa chúng (ai gọi ai, ai triển khai cái gì).
Điều này thay đổi cả hai đầu của vòng lặp. Ở đầu vào, tác nhân tập hợp một gói ngữ cảnh tinh gọn bằng cách tham khảo đồ thị—góc nhìn kiến trúc của dự án và các nút liên quan đến tác vụ—thay vì đổ file vào prompt. Ở đầu ra, nó thay đổi xác minh: khi tác nhân sửa đổi một hàm, đồ thị liệt kê chính xác các điểm gọi bị ảnh hưởng, và một tác nhân đánh giá—với ngữ cảnh sạch, không có thiên kiến của người viết mã—kiểm tra từng điểm đó, ngoài việc chạy test, lint, và build. "Bạn đã thay đổi chữ ký của processOrder; bảy nơi gọi nó" là một loại xác minh mà grep không thể cung cấp.
Bộ nhớ: Vòng lặp học hỏi
Mảnh ghép khép kín hệ thống. Cuối mỗi lần lặp đã được xác minh, tác nhân ghi lại các quyết định kỹ thuật: quyết định gì, tại sao, những phương án thay thế nào đã được cân nhắc, điều gì đã thất bại. Và mỗi quyết định được liên kết với các nút mã mà nó giải thích, trong chính đồ thị.
Trong lần lặp tiếp theo, giai đoạn thu thập ngữ cảnh truy xuất các quyết định này—bao gồm cả các cách tiếp cận đã thất bại, để không lặp lại chúng. Vòng lặp không còn là một trình thực thi lặp lại các tác vụ nữa mà trở thành một hệ thống tích lũy kiến thức về cơ sở mã. Đây cũng là công cụ khấu hao chi phí tốt nhất hiện có: bộ nhớ rẻ thay thế cho việc khám phá lại đắt đỏ.
Vòng lặp hoàn chỉnh, sau đó: thu thập ngữ cảnh (đồ thị + bộ nhớ + RAG), lập kế hoạch với mô hình phù hợp cho quy mô vấn đề, hành động với các tác nhân phụ, xác minh với người đánh giá ngữ cảnh sạch và nhận thức đồ thị, học hỏi bằng cách ghi lại quyết định—và lặp lại, với trần chi phí. Đó là vòng lặp tác nhân chuẩn, với mỗi giai đoạn chung được thay thế bằng khả năng riêng của nó.
Tại sao khách hàng đầu tiên là chúng tôi
Chiến lược sản phẩm cố tình đi ngược trực giác: trước khi bán cho bất kỳ khách hàng nào, Velua Code chạy nội bộ tại SIGE Cloud. Dogfooding thực sự—một ERP trong sản xuất, với các đội thực sự vận hành tác nhân trên mã thực, mỗi ngày.
Chính việc sử dụng nội bộ này đã tạo ra 13 tỷ token, và nó đang định hình sản phẩm. Các tác nhân tự động trong sản xuất phơi bày những vấn đề mà không benchmark nào phơi bày: quyền hạn, chi phí tích lũy, tác vụ bị đình trệ, ngữ cảnh mục nát. Tôi thích nó trưởng thành ở nơi nỗi đau là của chúng tôi.
Điều tiếp theo: Bộ nhớ hợp nhất cho doanh nghiệp
Hiện tại, bộ nhớ quyết định tồn tại theo từng dự án. Bước tiếp theo là điều khiến tôi hào hứng nhất: nâng nó lên thành một lớp bộ nhớ kỹ thuật hợp nhất cho các doanh nghiệp.
Hãy tưởng tượng quyết định được ghi lại bởi tác nhân của đội A—"chúng tôi đã chuyển sang X vì Y; chúng tôi đã tránh Z vì nó làm hỏng W"—có thể truy xuất được bởi tác nhân của đội B, và bởi các dev con người vận hành các tác nhân này, với kiểm soát truy cập, nguồn gốc, và kiểm toán. Câu hỏi "tại sao mã này lại như thế này?" được trả lời bằng quyết định gốc, liên kết với mã, cho bất kỳ ai hoặc bất kỳ tác nhân nào trong tổ chức. Onboarding nhanh hơn, nhất quán giữa các đội, và kiến thức kỹ thuật của công ty không còn chỉ nằm trong đầu mọi người.
Được phục vụ bởi gateway, bộ nhớ này trở thành cơ sở hạ tầng: bất kỳ tác nhân nào trong công ty, trong bất kỳ công cụ nào, đều kế thừa kiến thức tích lũy.
Các tác nhân tự động sẽ trở thành hàng hóa. Kiến thức chúng tích lũy về
của bạn
hệ thống sẽ không.
Đó là canh bạc.
Nếu bạn đang xây dựng với các tác nhân trong sản xuất—hoặc đang đau đầu với chi phí ngữ cảnh—DM của tôi luôn mở.





