Model router hiện đang xuất hiện ở khắp mọi nơi, nhưng chúng có một hạn chế cốt lõi. Dù dựa trên các thuật toán heuristic nâng cao hay một model nhỏ đọc từng lượt và chọn LLM để sử dụng, router sẽ luôn kém năng lực hơn chính model mà nó đang lựa chọn. Replit Agent để model tự quyết định thay.
Agent chính, hay vòng lặp cốt lõi (core loop), sẽ chọn tier và mức nỗ lực (effort) cho các subagent của nó, đồng thời tự điều chỉnh mức độ của chính mình khi tác vụ diễn ra. Với sự tự do đó, GPT-6 Astra giao phần triển khai thông thường cho các subagent ít tốn kém hơn và tự quyết định nên dùng token của mình vào đâu cho đáng giá. Trên cả DeepSWE và Terminal-Bench, Replit Agent đạt hiệu quả Pareto so với việc chỉ dùng Astra đơn thuần: không có baseline Astra công khai nào vừa rẻ hơn vừa ghi điểm cao hơn. Nó cũng vượt qua kiến trúc sidekick — cùng một thiết lập nhưng chỉ dùng một worker chạy xuyên suốt — với khoảng cách 11 và 16 điểm.

Để xem bài viết đầy đủ kèm hình động và chú thích, hãy truy cập https://replit.com/blog/free-the-models
Vì sao chúng tôi giảm bớt scaffolding
Mỗi lần phát hành model mới lại làm sai lệch những giả định vốn đã được tích hợp sẵn vào harness.
Khi các model ngày càng mạnh hơn trong những tác vụ dài hơi, chúng không cần quá nhiều scaffolding ở tầng harness nữa. Thực tế cho thấy chúng có xu hướng tự chủ động ủy quyền nhiều hơn: dùng subagent để quản lý ngữ cảnh và xử lý song song. Những đột phá gần đây, bao gồm cả Navier–Stokes, một phần đến từ việc phối hợp các bầy agent được vận hành bởi frontier model [[1]](https://openai.com/index/navier-stokes-solution/).
Nhưng ranh giới frontier không hề bằng phẳng. Model code giỏi nhất chưa chắc đã giỏi nhất trong việc thiết kế UI hay tạo Slides, cũng chẳng phải kẻ xuất sắc nhất khi soạn email.
Vì vậy, chúng tôi thiết kế harness để mỗi model được làm việc theo cách riêng của nó, với những rào chắn an toàn vẫn còn cần thiết, và mục tiêu là đạt chất lượng tối đa với chi phí tối thiểu.
Mỗi model mới lại buộc chúng tôi phải kiểm tra lại những gì mình từng tin tưởng tuyệt đối, và thử nghiệm thật nhanh các kỹ thuật xây dựng dựa trên những hành vi mới nổi. Giải phóng model, vì thế, nghĩa là để nó tự quyết định nên suy nghĩ sâu đến đâu, khi nào thì giao việc và giao cho ai.

Hình 1: ba quyết định mà vòng lặp cốt lõi đưa ra ở mỗi bước.
Các primitive có thể kết hợp để ủy quyền
Khi bắt đầu thử nghiệm với GPT-6 Astra [[2]](https://openai.com/index/gpt-6-astra), chúng tôi nhận thấy model này ủy quyền rất tốt. Dòng GPT-6 cũng là thế hệ đầu tiên của OpenAI hỗ trợ thay đổi effort giữa chừng mà không làm hỏng cache.
Để tận dụng những khả năng này, chúng tôi đã tinh chỉnh bốn primitive của harness. Chúng mang lại cho vòng lặp cốt lõi một tập lựa chọn nhỏ ở mỗi bước: nên gọi loại subagent nào, kích thước và effort ra sao, có quay lại một subagent đã brief trước đó không, và cần suy nghĩ sâu đến mức nào:
- Subagent hiểu rõ domain. Bên cạnh một worker đa năng, harness cung cấp thêm các chuyên gia: explorer chỉ đọc, browser tester, reviewer, và một design subagent dành cho Slides và UI, mỗi loại có model và bộ công cụ riêng. Hiện tại, harness vẫn quyết định có những chuyên gia nào; còn vòng lặp cốt lõi quyết định khi nào và dùng chúng ra sao.
- Tier và effort của subagent. Small, standard và large — mỗi bậc là một bước nhảy về chi phí lẫn năng lực, kèm theo một mức effort bên trong tier đó. Cả hai đều áp dụng cho mọi subagent, và vòng lặp cốt lõi sẽ chọn chúng mỗi lần dispatch. Ví dụ, một thao tác đổi tên máy móc sẽ giao cho tier small với effort thấp, còn việc đưa ra giả thuyết cho một bug cứng đầu sẽ chuyển sang tier large với effort cao.
- Subagent tái sử dụng được. Vòng lặp cốt lõi có thể quay lại một subagent đã brief thay vì làm lại từ đầu. Không có một sidekick duy nhất nào được giữ sống xuyên suốt phiên: bất kỳ số lượng subagent nào cũng có thể ở trạng thái chờ (warm) qua nhiều loại và tier khác nhau, và core loop sẽ chọn đánh thức ai. Thời gian sống của cache dài hơn trên các model mới của OpenAI giúp chi phí cho việc này được kiểm soát.
- Điều chỉnh effort động. Giờ đây, khi việc thay đổi effort giữa chừng vẫn giữ được cache trên một số model, chúng tôi đã huấn luyện một hệ thống leo thang (escalation) để kiểm tra tiến trình ở mỗi bước và khớp effort với độ khó của tác vụ. Khác với router, hệ thống này can thiệp ngay giữa lúc đang xử lý công việc, chứ không chỉ một lần duy nhất khi nhận request.
Chất lượng code của Astra và Fable 5.1 [[3]](https://www.anthropic.com/claude-fable-and-mythos-5-1) cũng cho phép chúng tôi dùng subagent review code ít hơn mà điểm eval không hề sụt giảm. Chúng tôi chưa từng thấy mức độ hoàn thiện kỹ thuật này ở bất kỳ model nào trước đây.
Các model mới tự biết cách ủy quyền
Những frontier model như Astra và Fable tốn nhiều tiền hơn cho mỗi token, khiến chúng trông có vẻ kém kinh tế so với các model nhỏ. Nhưng chúng tôi quan sát thấy chúng tự nhiên ủy quyền cho các subagent rẻ hơn, dành token của mình cho những quyết định thực sự cần đến.
Replit Agent không bao giờ ép vòng lặp cốt lõi phải sinh ra subagent. Bảng 1 cho thấy cách ba model xử lý quyết định đó trong môi trường production:

Bảng 1: Tỷ lệ ủy quyền trong production của Replit Agent, mỗi model ở mức reasoning effort trung bình.
Cả ba model đều ủy quyền, nhưng mỗi model một kiểu. Ở mức effort trung bình, dòng Fable hiếm khi giao việc cho worker đa năng: chúng cử explorer chỉ đọc và reviewer đi làm, còn phần triển khai thì giữ lại cho mình. Astra là model đầu tiên chúng tôi thấy thường xuyên tự giao việc cho worker đa năng mà không cần nhắc, và một khi đã brief xong, nó có xu hướng quay lại worker đó thay vì bắt đầu lại từ đầu. Tỷ lệ quay lại này tăng lên qua mỗi thế hệ model.

Hình 2: Một lượt xử lý trong production ngày 17 tháng 9 năm 2026, trích xuất từ trace. Vòng lặp cốt lõi đã dispatch một explorer, hai worker và một tester; trong năm lần gọi worker, có ba lần là quay lại một worker đã được brief trước đó.
Kết quả
Chúng tôi đánh giá Replit Agent ở chế độ Max — thiết lập chất lượng cao nhất với Astra làm vòng lặp cốt lõi — trên hai benchmark kỹ thuật phần mềm: DeepSWE và Terminal-Bench. Chúng tôi so sánh với hai baseline: Astra chạy độc lập trong mini-swe-agent (theo công bố trên từng bảng xếp hạng), và kiến trúc sidekick (cùng cấu hình nhưng thay các primitive subagent bằng một worker chạy xuyên suốt). Mỗi biểu đồ vẽ điểm số theo chi phí trên mỗi tác vụ, nên những cấu hình hiệu quả nhất sẽ nằm ở góc trên bên trái.
Trên DeepSWE v1.1 [[4]](https://deepswe.datacurve.ai/), benchmark kiểm tra các thay đổi dài hơi trên những repository mã nguồn mở đang hoạt động, Replit Agent đạt 72% với chi phí $2.11 mỗi tác vụ. Astra trong mini-swe-agent ở mức effort thấp đạt 67% với $1.60, còn ở mức xhigh đạt 74% với $4.43; kiến trúc sidekick đạt 61% với $1.34. Terminal-Bench 4.0 [[5]](https://www.tbench.ai/) kiểm tra các tác vụ nhiều bước được thực hiện hoàn toàn qua shell. Replit Agent chạm mốc 49% với $2.53 mỗi tác vụ, so với 42% ở mức $2.25 của Astra (effort thấp) và 60% ở mức $5.86 (effort xhigh). Kiến trúc sidekick đạt 33% với $1.84.

Replit Agent vượt qua kiến trúc sidekick trên cả hai benchmark, với khoảng cách lần lượt là 11 và 16 điểm. Sidekick rẻ hơn, nhưng phải đánh đổi từ một phần sáu đến một phần ba điểm số. Astra chạy độc lập chỉ ghi điểm cao hơn bằng cách tiêu nhiều tiền hơn: thiết lập tốt nhất của nó nằm trên Replit Agent 2 và 11 điểm nhưng chi phí lại gấp đôi. Không baseline nào thắng được trên cả hai tiêu chí chi phí lẫn điểm số. Chúng tôi chạy Replit Agent y hệt phiên bản cung cấp cho người dùng, không thay đổi gì về prompt hay harness.
Bài học đắng về thiết kế harness
Chúng tôi xem những kết quả này là một minh chứng cho "bài học đắng" (bitter lesson) của Sutton [[6]](http://www.incompleteideas.net/IncIdeas/BitterLesson.html). Việc nhồi nhét kiến thức con người vào agent có ích trong ngắn hạn, nhưng sẽ chững lại về dài hạn, và cuối cùng bị các phương pháp tổng quát có khả năng scale theo sức mạnh tính toán vượt mặt. Một harness cứng nhắc ép model làm việc theo một khuôn mẫu; một harness linh hoạt để nó tự chọn. Model càng thông minh, harness càng nên nhường quyền quyết định cho chúng.
So với một kiến trúc mang tính áp đặt hơn, cách tiếp cận này mang lại cho chúng tôi ba lợi thế:
- Nó đặt cược vào scaling law của model. Khả năng ủy quyền dựa trên "gu" của model sẽ tốt hơn sau mỗi bản phát hành. Các bản preview sớm của thế hệ model tiếp theo vẫn đang tiếp nối xu hướng này.
- Nó vừa vặn với tác vụ. Tác vụ nhỏ thì model không sinh ra gì cả, cần tìm kiếm thì gọi một explorer, còn khi bản build chia thành các phần độc lập thì triệu tập cả một đội.
- Tái sử dụng mà không lưu trữ dai dẳng. Subagent giữ lại ngữ cảnh phòng khi model muốn gọi lại, và chẳng có gì được lưu trừ khi điều đó xảy ra.
Theo ngôn ngữ của Sutton, harness nên để model tự khám phá cách thực thi công việc, thay vì áp đặt cách mà chúng ta sẽ làm. Hãy giải phóng các model.
Lời cảm ơn
Được viết bởi Daniel Furman, Jacky Zhao, Vaibhav Kumar, Ed Sioufi và Michele Catasta. Cảm ơn James Austin, Toby Ho, Preeya Kirani, Zhen Li, Robin Newhouse, Devanshu Sen Pandey, Ibrahim Sheikh, Samuel Spitz, Peter Zhong cùng toàn bộ đội ngũ AI tại Replit đã đóng góp cho công trình này. Nếu bạn muốn làm việc về AI tại Replit, team của tôi đang tuyển dụng; hãy liên hệ qua pirroh@repl.it.





