Dưới đây là bản dịch tiếng Việt cho nội dung bạn cung cấp, tuân thủ tất cả các quy tắc và hướng dẫn về định dạng, bản địa hóa và thuật ngữ.
Viết cùng với @VaishShrivas
Chúng tôi đã dạy các tác nhân CLI dự đoán phản hồi của terminal trong quá trình RL, song song với hàm mất mát GRPO thông thường trên các hành động. Sự thay đổi rất nhỏ: cùng một rollout và forward pass, nhưng ngừng che (mask) các token đầu ra của terminal. Tác động lại rất lớn: tất cả các chỉ số đánh giá đều được cải thiện, và các mô hình kết quả có thể đo lường được việc chúng đã học cách terminal hoạt động.
Các tác nhân CLI có thể học một mô hình terminal miễn phí — và sử dụng nó để hành động tốt hơn!
Đây là ECHO: một hàm mục tiêu kết hợp (hybrid objective) huấn luyện trên cả hai phía của tương tác: những gì tác nhân viết ra và những gì terminal phản hồi lại.
Hãy xem toàn bộ bài báo và mã nguồn dựa trên SkyRL.
Nếu bạn quá bận để đọc toàn bộ bài viết, thì đây là những gì chúng tôi đã tìm ra:
- RL tác nhân tiêu chuẩn vứt bỏ phản hồi của môi trường. GRPO huấn luyện trên các token hành động và che đi các phản hồi của terminal, mặc dù chúng đã có trong ngữ cảnh, đã đi qua mô hình và là các tín hiệu ground truth về cách hành động của tác nhân ảnh hưởng đến môi trường.
- ECHO khắc phục điều này bằng cách huấn luyện trên cả hai phía của tương tác. Nó giữ lại hàm mất mát GRPO thông thường trên các token hành động và thêm một hàm mất mát entropy chéo đơn giản của môi trường trên các token đầu ra của terminal. Đó chỉ là một vài dòng mã (LoCs) trên bất kỳ trình huấn luyện GRPO nào. Cùng một rollout và forward pass, chỉ khác một mask trên logits.
- ECHO hoạt động và hoàn toàn miễn phí! ECHO cải thiện Qwen3-8B, OpenThinker-Agent-v1-SFT và Qwen3-14B trên mọi benchmark chúng tôi đã thử nghiệm. ECHO cũng huấn luyện nhanh hơn tới 2.3 lần để đạt được cùng một hiệu suất. TerminalBench-2.0 pass@1 gần như tăng gấp đôi ở cả quy mô 8B (2.7 → 5.2) và 14B (5.2 → 10.8).
- ECHO dạy về động lực học của terminal (terminal dynamics)! Trên các quỹ đạo dữ liệu riêng (held-out), entropy chéo của token môi trường giảm mạnh với ECHO và hầu như không thay đổi với GRPO thuần túy. Bằng chứng trực tiếp rằng ECHO dạy cho mô hình cách terminal thực sự phản hồi. Cùng một checkpoint dự đoán đầu ra terminal tốt hơn cũng giải quyết được nhiều tác vụ hơn.
- ECHO có thể thay thế cho một giáo viên chuyên gia. Từ một mô hình Qwen3-8B cơ sở không có các trình diễn chuyên gia, ECHO gần như đạt được kết quả mà GRPO sau SFT trên các trình diễn chuyên gia đạt được.
- ECHO cho phép các tác nhân tự cải thiện mà không cần phần thưởng từ verifier! Mà không có bất kỳ phần thưởng nào từ verifier, ECHO (không có bất kỳ GRPO nào) cho phép tác nhân tiếp tục cải thiện chỉ bằng cách hành động trong môi trường và dự đoán những gì sẽ xảy ra.
Mọi chuyện bắt đầu từ một câu hỏi đơn giản: nếu mọi lệnh đều tạo ra một phản hồi từ terminal, tại sao RL chỉ huấn luyện trên mỗi lệnh?
Vaish đã làm tất cả công việc để tìm ra câu trả lời. Tôi đã đóng góp một thí nghiệm mê cung ngớ ngẩn*, một ý kiến mạnh mẽ về tiêu đề và nói "chết tiệt" khi cô ấy cho tôi xem kết quả đầu tiên. Cảm ơn Ahmed Awadallah đã cho chúng tôi không gian — và GPU — để theo đuổi những ý tưởng như thế này, ngay cả khi chúng chỉ bắt đầu như một sự ngứa ngáy trong nghiên cứu.
Đáng chú ý: lần chạy cụm (cluster run) đầu tiên cho ECHO được khởi chạy vào ngày 29 tháng 3 😊
Công trình này được thực hiện tại AI Frontiers, một phòng thí nghiệm nghiên cứu chuyên biệt (boutique research lab) trong Microsoft Research.
Làm thế nào để bạn học hỏi liên tục?
Lần đầu tiên ý tưởng này xuất hiện, nó được thúc đẩy bởi một câu hỏi đơn giản về sự tự cải thiện và học tập liên tục. Làm thế nào để một tác nhân trở nên tốt hơn chỉ từ việc hành động trong thế giới?
Vaish và tôi đã nói chuyện từ mùa thu năm ngoái về sự tự cải thiện trong các tác nhân CLI, tức là, việc trở nên tốt hơn từ tương tác với môi trường (aka terminal) sẽ có ý nghĩa như thế nào, đặc biệt là không có một verifier.
RL không có verifier là một vấn đề mà mọi người đã nghiên cứu trong nhiều năm và hầu hết các nỗ lực giải quyết nó đều gặp phải cùng một vấn đề: sự giám sát đến từ đâu, nếu không có phần thưởng?
Cùng khoảng thời gian đó, một bài đăng ngớ ngẩn trên Twitter của tôi đã dẫn đến một cuộc gọi với @willccbb để thảo luận lại về học tập liên tục. Trong cuộc trò chuyện này, tôi nhớ mình đã nói một điều ngớ ngẩn như thế này:
Có lẽ học tập liên tục là huấn luyện trên bất cứ thứ gì môi trường trả lại cho bạn như một phản hồi cho hành động của bạn.

Điều đó sẽ dạy cho mô hình một điều gì đó, phải không?
Hóa ra, đúng vậy!
Thế giới là một hàm mất mát (loss function)!
Khi một tác nhân hành động trong một môi trường, phản hồi của môi trường đối với hành động đó luôn luôn đúng.
Một ví dụ từ thế giới vật lý: nếu bạn bật công tắc đèn, đèn sẽ sáng lên hoặc không. Nếu nó không sáng, đó là một phản hồi hợp lệ: nó cho bạn biết điều gì đó về bóng đèn, hoặc hệ thống dây điện, hoặc cầu dao, v.v. Dù bằng cách nào, những gì quay trở lại là một mảnh thông tin nhỏ về cách thế giới thay đổi do hành động của bạn lên nó. Bạn không tiếp xúc với toàn bộ cơ chế hoạt động của điện, công tắc và bóng đèn, nhưng bạn thấy kết quả. Đèn có sáng không? Và điều đó là đủ để bạn bắt đầu xây dựng một mô hình tinh thần về cách bật công tắc làm đèn sáng lên.
Terminal hoạt động theo cùng một cách.
Đầu ra sau một lệnh bash là một bản tóm tắt nhỏ về cách trạng thái của máy tính/container thay đổi sau khi lệnh được chạy. Bạn thấy stdout, stderr, mã thoát, danh sách tệp, v.v. Bạn không thấy trạng thái kernel hoặc cây tiến trình hoặc bất cứ thứ gì siêu chi tiết.

Những gì bạn thấy lại là một hình chiếu có chiều thấp (low-dimensional projection) của những gì đã xảy ra trong nền, đó cũng là thứ mà tác nhân CLI sẽ sử dụng để chọn hành động tiếp theo hướng tới bất kỳ tác vụ nào chúng đang cố gắng hoàn thành. Và cũng như với công tắc đèn, đó là đủ tín hiệu để xây dựng một mô hình tinh thần — hay nếu bạn muốn, một mô hình thế giới (world model) — về cách hệ thống hoạt động.
Phần hay nhất là đầu ra của terminal, một lần nữa, là sự phản ánh cách trạng thái hệ thống thay đổi, là một tín hiệu giám sát, được tính toán cho bạn, trong mỗi lượt, hoàn toàn miễn phí.
Tuyệt vời!
Vấn đề là RL tác nhân tiêu chuẩn (ví dụ: GRPO trong SkyRL) chỉ truyền gradient qua các token hành động và bỏ qua các token đầu ra của terminal. Mặc dù đầu ra của terminal đã có trong ngữ cảnh. Mô hình chú ý đến nó, forward pass tính logits cho nó, nhưng trình huấn luyện lại che nó ra khỏi hàm mất mát.
Thật lãng phí những token tốt 😊
Vậy, điều gì sẽ xảy ra nếu chúng ta không làm vậy?
Mô hình đã được điều kiện hóa trên những token đó. Nó đã tạo ra một phân phối xác suất trên chúng. Việc thêm một hàm mất mát entropy chéo hầu như không tốn kém gì.
Và nếu chúng ta làm vậy… mô hình có lý do để học cách terminal thực sự hoạt động và do đó có thể xây dựng, bên trong nó, một mô hình ngầm (implicit model) của hệ thống mà nó đang tác động. Để dự đoán ls sẽ trả về gì, mô hình phải theo dõi những tệp tin nào nó vừa tạo, cái gì nằm ở đâu, v.v.
Như Ilya đã nói:
Dự đoán tốt token tiếp theo có nghĩa là bạn hiểu được thực tế cơ bản (underlying reality) dẫn đến việc tạo ra token đó.
Trong bối cảnh của chúng tôi, điều đó có nghĩa là: một tác nhân giỏi dự đoán đầu ra terminal, theo một nghĩa nhỏ nhưng có thật, đã xây dựng một mô hình ngầm về terminal.
Vậy làm thế nào để chúng ta làm cho tác nhân dự đoán đầu ra terminal?
ECHO: Học một mô hình thế giới mà không phải trả giá
Một rollout của tác nhân terminal đã xen kẽ hai luồng token: các token hành động của tác nhân và các token quan sát (observation) của môi trường. GRPO tiêu chuẩn chỉ áp dụng mất mát trên các token hành động.
Điều này đặc biệt lãng phí vì phần thưởng của terminal rất thưa thớt (sparse), chậm trễ (delayed) và nhị phân (binary). Trong thiết lập Qwen3-8B của chúng tôi, đối với nhiều tác vụ, ít hơn 15% số rollout on-policy là thành công. Nhưng các quỹ đạo thất bại không phải là dữ liệu thất bại: chúng vẫn chứa danh sách tệp, lỗi, nhật ký, dấu vết ngăn xếp (stack traces), đầu ra grep và các hậu quả khác từ lệnh của tác nhân.
Phương pháp của chúng tôi là cách đơn giản nhất có thể để học từ những hậu quả đó 😊
Chúng tôi thêm một hàm mất mát entropy chéo được chuẩn hóa độ dài (length-normalized) trên các token quan sát môi trường, cùng với hàm mất mát GRPO tiêu chuẩn trên các token hành động. ECHO là hàm mục tiêu kết hợp:
trong đó Actions là các vị trí hành động của tác nhân và Observations là các vị trí đầu ra của terminal.
Một vài chi tiết kỹ thuật:
- ECHO học on-policy. Thay vì huấn luyện trên một tập hợp cố định các bảng điểm terminal từ mô hình cơ sở hoặc một giáo viên, ECHO học từ các phản hồi terminal được tạo ra bởi mô hình hiện tại trong quá trình RL. Khi tác nhân trở nên tốt hơn, nó khám phá các phần mới của môi trường và nhận được sự giám sát mới từ các chuyển đổi (hành động → quan sát) mới. Các chính sách tốt hơn tạo ra phản hồi tốt hơn; dự đoán phản hồi tốt hơn giúp chính sách có các tiên nghiệm (priors) hành động tốt hơn. Một vòng lặp! Thú vị làm sao?
- Trong hàm mục tiêu kết hợp, λ rất quan trọng. Nếu nó quá nhỏ, hàm mất mát môi trường không định hình mô hình nhiều. Nếu quá lớn, chính sách có thể tối ưu hóa cho các đầu ra có thể dự đoán được thay vì tiến triển nhiệm vụ. Phải cân bằng nó!
- Các token mục tiêu rất quan trọng. Chúng tôi huấn luyện trên đầu ra terminal thực tế, không phải các cảnh báo (warnings) của harness. Các cảnh báo rất dễ ghi nhớ; tín hiệu hữu ích là phản hồi terminal thực tế — tên tệp, dấu vết ngăn xếp và thông báo lỗi.
Vậy điều này tốn kém bao nhiêu?
Một độc giả tinh ý có thể hỏi:
chẳng phải backward pass sẽ đắt hơn nếu bạn lan truyền ngược gradient tại nhiều vị trí token hơn sao?
Hầu như là không. Phần đắt đỏ của lan truyền ngược (backprop) là các phép nhân ma trận (matmuls) qua các lớp attention và MLP, và chúng chạy trên cùng một chuỗi token bất kể vị trí đầu ra nào đóng góp vào mất mát. Các logits tại mọi vị trí phản hồi đã được tính toán cho GRPO. Mask hành động và mask quan sát chỉ việc tập hợp các tập hợp con khác nhau của chúng cho các điều khoản mất mát khác nhau.
Hãy dừng lại ở đây một chút: Chúng tôi đã thêm một hàm mất mát mô hình hóa thế giới (world modeling loss), và chi phí là gần như BẰNG KHÔNG! Không cần rollout bổ sung, mô hình giáo viên và không cần forward pass bổ sung.
Liệu ECHO có giúp huấn luyện Tác nhân CLI tốt hơn không?
Chúng tôi đã thực hiện so sánh sạch nhất có thể trên các tác vụ terminal đa lượt: cùng mô hình, cùng công thức GRPO, cùng tác vụ, cùng rollout và ngân sách lượt (turn budget), cùng số bước huấn luyện. Phần thưởng=1 nếu tác nhân vượt qua các test case sau n lượt, 0 nếu thất bại.
Sự khác biệt duy nhất là liệu các token đầu ra terminal cũng đi vào hàm mất mát hay không.
Các đường cong màu hồng là ECHO và màu xanh ngọc là GRPO. Trên các kích thước mô hình và lát cắt đánh giá khác nhau, câu trả lời đều giống nhau: thêm dự đoán môi trường làm cho tác nhân tốt hơn đáng kể.

ECHO luôn cải thiện hiệu suất trên tất cả ba tập xác thực riêng biệt (held-out) — các đường màu hồng tách ra khỏi màu xanh ngọc từ sớm và thường duy trì ở phía trên.
ECHO cũng học nhanh hơn đáng kể: ECHO đạt hiệu suất của GRPO ở bước 500 trên Terminal-Bench Lite nhanh hơn tới 280 bước! Tốc độ nhanh gấp 2.3 lần và nó vẫn tiếp tục tăng 😊
Những kết quả này chứng thực trực giác đằng sau ECHO của chúng tôi. GRPO chỉ huấn luyện với phần thưởng kết quả nhị phân, thưa thớt. Đối với các lĩnh vực khó như tác vụ terminal, nơi tỷ lệ pass-rate thấp đối với các mô hình nhỏ, điều này đồng nghĩa với việc có rất ít hoặc không có tín hiệu cho nhiều tác vụ.
ECHO làm cho việc huấn luyện hiệu quả hơn nhiều về mặt mẫu (sample efficient) bằng cách biến các hành động thất bại thành sự giám sát. Ngay cả khi một hành động không giải quyết được tác vụ, phản hồi terminal vẫn dạy cho mô hình biết hành động đó đã gây ra điều gì! Và việc dự đoán hậu quả của các hành động thất bại có thể giúp tác nhân chọn những hành động tốt hơn.
Nếu bạn muốn xem các con số qua các bài đánh giá, thì câu chuyện cũng tương tự ở dạng bảng:

Hãy nhìn vào hàng cuối cùng trong mỗi khối: ECHO. TerminalBench-2.0 pass@1 gần như tăng gấp đôi ở quy mô 8B (2.7 → 5.2) và 14B (5.2 → 10.8). Và quan trọng là, điều này không đến từ dữ liệu bổ sung, rollout bổ sung, mô hình giáo viên hay một verifier khác. Rollout vốn đã chứa phản hồi terminal. ECHO chỉ đơn giản là học từ nó.
"Hiệu suất gần như tăng gấp đôi mà không tốn thêm chi phí" là một câu mà bạn rất hiếm khi đọc được trong suốt sự nghiệp nghiên cứu của mình 😊.
ECHO vượt trội hơn đáng kể so với hiệu suất của GRPO trên tất cả các benchmark và kích thước mô hình, hiệu quả hơn nhiều về mặt mẫu và hầu như không tốn kém gì. Bạn học được một mô hình thế giới trong khi chính sách của bạn được cải thiện, điều này giúp nó cải thiện nhanh hơn.
Tuy nhiên, những người hoài nghi có thể phản bác: liệu bạn có thực sự học được một mô hình thế giới không?
Hãy xem nào!
Liệu ECHO có thực sự học được động lực học của terminal?
Chúng tôi sẽ thận trọng một chút ở đây vì cộng đồng mô hình hóa thế giới (world modeling community) đôi khi có thể khá gay gắt.
Chúng tôi sẽ không khẳng định ECHO học một mô hình thế giới theo nghĩa mạnh nhất. Nhưng chúng tôi sẽ khẳng định rằng ECHO huấn luyện một chính sách mà các trạng thái ẩn (hidden states) của nó đã hấp thụ được điều gì đó về cách terminal hoạt động và khả năng dự đoán những gì terminal sẽ làm đã được cải thiện một cách có thể đo lường được.
Nếu bạn đảo ngược câu nói của Ilya, bạn sẽ có một phiên bản có thể kiểm chứng (falsifiable) hơn. Đối với bối cảnh của chúng tôi, nó sẽ giống như thế này:
Nếu mô hình đã học được động lực học của terminal, thì nó phải giỏi trong việc dự đoán đầu ra của terminal.
Bởi vì không có cách nào khác để luôn gán xác suất cao cho các token chính xác. Một mô hình dự đoán tốt hơn, theo nghĩa lý thuyết thông tin, là một máy nén (compressor) tốt hơn cho hệ thống mà nó đang dự đoán.
Vì vậy, câu hỏi trở nên mang tính thực nghiệm: liệu ECHO có thực sự làm cho mô hình trở thành một nhà dự đoán đầu ra terminal tốt hơn không?
Có. Rất nhiều.
Để làm cho thử nghiệm này trở nên sạch sẽ, chúng tôi sử dụng một mô hình giáo viên mạnh hơn, Qwen 3 32B (không được sử dụng trong bất kỳ lần huấn luyện nào của chúng tôi), để tạo ra các quỹ đạo cho mỗi tập xác thực của chúng tôi. Sau đó, chúng tôi đánh giá các chính sách khởi đầu, các chính sách được huấn luyện với GRPO và các chính sách được huấn luyện với ECHO, và đo lường mức độ "ngạc nhiên" (surprised) của mỗi mô hình đối với các token đầu ra terminal kết quả.
Mô hình giống nhau trên mọi bảng: GRPO hầu như không thay đổi entropy chéo của token môi trường so với chính sách khởi đầu. ECHO làm giảm nó một cách mạnh mẽ.

Vì vậy, chúng tôi sẽ không nói mô hình thế giới với chữ W hoa. Nhưng chúng tôi sẽ nói điều này:
ECHO tạo ra các chính sách tốt hơn một cách có thể đo lường được trong việc nén động lực học của terminal, trên các quỹ đạo mà chúng không tự tạo ra.
Đó là phiên bản hoạt động (operational version) của tuyên bố mà tiêu đề đang đưa ra và là phiên bản hoàn toàn có thể bảo vệ được.
Phát hiện đáng ngạc nhiên 1: ECHO giảm sự phụ thuộc vào SFT chuyên gia
Một công thức phổ biến cho RL tác nhân là: đầu tiên sao chép hành vi (behavior-clone) từ các quỹ đạo chuyên gia của một mô hình mạnh hơn, sau đó chạy RL. Điều này đặc biệt phổ biến đối với các tác nhân terminal, nơi phần thưởng thưa thớt và không gian hành động rất lớn.
Trong thiết lập của chúng tôi, đường cơ sở (baseline) SFT chuyên gia là OpenThoughts-Agent-v1-SFT (OT-SFT): Qwen3-8B được tinh chỉnh trên các trình diễn tác nhân terminal được tạo ra bởi một giáo viên GLM-4.6 mạnh hơn.
Vì vậy, chúng tôi đã hỏi: ECHO có thể phục hồi bao nhiêu lợi ích từ SFT chuyên gia mà không cần sao chép hành vi (behavior-cloning) từ giáo viên?
Liệu ECHO có thể giúp bạn bỏ qua SFT chuyên gia không? Trong thiết lập của chúng tôi, gần như là có!

Hình này so sánh ba lần chạy: GRPO trên mô hình cơ sở, ECHO trên mô hình cơ sở và GRPO trên mô hình đã SFT (SFT + GRPO). So với khoảng cách giữa GRPO và SFT+GRPO (ví dụ: mức tăng khi bắt đầu từ SFT), ECHO phục hồi 104% mức tăng trên ITD, 89% trên Terminal Bench Lite (TBLite) và 50% trên TerminalBench-2.0 (TB2) pass@1.
Kết quả cho thấy một phần lớn giá trị của SFT chuyên gia có thể đến từ việc dạy cho mô hình một tiên nghiệm (prior) về tương tác (interaction prior), không chỉ là một tiên nghiệm về chiến lược chuyên gia (expert strategy prior). Các trình diễn chuyên gia cho thấy cả cách hành xử như một tác nhân terminal — kiểm tra tệp, chạy thử nghiệm, theo dõi dấu vết ngăn xếp (tracebacks), v.v. — và những gì một chuyên gia sẽ làm trong các trạng thái cụ thể. ECHO không bắt chước các lựa chọn của chuyên gia đó. Thay vào đó, nó huấn luyện mô hình dự đoán hậu quả terminal của các hành động của chính nó, do đó nó học được lệnh nào phơi bày trạng thái hữu ích, lỗi nào mang tính chẩn đoán và token đầu ra terminal nào báo hiệu sự tiến triển. Các chiến lược tốt hơn sau đó có thể xuất hiện thông qua tương tác chứ không phải bắt chước.
Điều này cũng giúp giải thích sự khác biệt giữa các benchmark. Trên ITD và TBLite, ECHO gần như ngang bằng với SFT chuyên gia, cho thấy phần lớn lợi thế của SFT ở đó đến từ một mô hình tương tác terminal tốt hơn. Trên TB2, ECHO vẫn phục hồi một phần đáng kể (50%) khoảng cách mà không có trình diễn. Khoảng cách còn lại phù hợp với việc TB2 khó hơn và phân bố xa hơn so với tập huấn luyện.
Chúng tôi sẽ không coi đây là một giới hạn cố định: việc huấn luyện rộng hơn hoặc dài hơn trên các tác vụ giống TB2 sẽ cải thiện tác nhân hơn nữa.
Vì vậy, kết luận không phải là SFT chuyên gia đã lỗi thời, mà là phần lớn những gì SFT chuyên gia mang lại có thể là một mô hình tương tác terminal tốt hơn và phần đó có thể được học trực tiếp từ môi trường.
Kết luận: Terminal chính là giáo viên!
Phát hiện đáng ngạc nhiên 2: Dấu hiệu của Sự tự cải thiện mà không cần Phần thưởng
Cho đến nay, ECHO là GRPO với một hàm mất mát môi trường phụ trợ. Verifier vẫn cho tác nhân biết liệu nó đã giải quyết được tác vụ chưa và GRPO cập nhật mô hình trên các token hành động. Vậy đó là thiết lập RL tiêu chuẩn, với một phần bổ sung nhỏ.
Nhưng nếu ECHO thực sự đang dạy chính sách điều gì đó về cách terminal hoạt động, thì có lẽ chúng ta không cần tín hiệu từ verifier nữa.
Chúng tôi hỏi: Điều gì xảy ra nếu chúng ta tắt verifier? Không có phần thưởng để học hỏi, chỉ có điều này:
Đó là mô hình hành động, quan sát, chỉ cập nhật bằng cách dự đoán đầu ra terminal như một hệ quả của các hành động của chính nó.
Điều này nghe có vẻ như không nên cải thiện hiệu suất tác vụ. Không có nhãn nào cho biết hành động nào là tốt. Nếu chính sách trở nên tốt hơn, thì đó phải là do việc học cách dự đoán terminal gián tiếp định hình lại các tiên nghiệm hành động (action priors) của chính sách.
Vì vậy, chúng tôi đã thử!
Chúng tôi đã lấy checkpoint Qwen3-8B+ECHO mạnh nhất của mình, loại bỏ hoàn toàn thành phần GRPO và huấn luyện thêm 100 bước trên các tác vụ riêng biệt (held-out) chỉ sử dụng hàm mất mát entropy chéo của môi trường. Câu hỏi đặt ra là liệu mô hình có thể cải thiện trên các tác vụ OOD (out-of-distribution) mà nó chưa từng thấy trước đây hay không, hoàn toàn bằng cách tương tác với môi trường và dự đoán những gì quay trở lại.
Liệu ý tưởng điên rồ này có hiệu quả không? Có phần nào!

Trên val100 (cùng phân phối - in-distribution): +3.8 điểm phần trăm. Trên ITD: +5.2 điểm phần trăm. Trên PyTerm (một tập OOD riêng biệt (held-out) gồm các tác vụ terminal nặng về Python): +10.0 điểm phần trăm sau khi lọc để có các quỹ đạo sử dụng công cụ (tool-call trajectories) sạch sẽ.
Huấn luyện chỉ trên môi trường (Env-only) cải thiện chính sách khi đầu ra terminal là sự giám sát hữu ích. Không có tín hiệu phần thưởng, mô hình chỉ huấn luyện để dự đoán các đầu ra do chính hành động của nó gây ra, vì vậy mức tăng phụ thuộc vào việc liệu các đầu ra đó có phơi bày các động lực học hữu ích hay không.
Trên val100, gần với hỗn hợp huấn luyện, mức tăng là có thật nhưng nhỏ: +3.8 điểm phần trăm trước khi bão hòa. Chính sách đã học được hầu hết các động lực học địa phương trong quá trình huấn luyện ECHO.
Trên ITD, chính sách khởi đầu yếu hơn tạo ra các quỹ đạo nhiễu — lệnh không hợp lệ, lỗi phân tích, vòng lặp vô tận. Lọc để có các rollout sạch sẽ giúp khử nhiễu tín hiệu và mang lại +5.2 điểm phần trăm.
Tuy nhiên, chỉ riêng các quỹ đạo sạch là chưa đủ. Việc lọc tương tự không cải thiện nhất quán TBLite, trong khi PyTerm bắt đầu từ tỷ lệ pass tương tự nhưng lại cải thiện dưới cùng một công thức — cho thấy nút thắt cổ chai không chỉ là sức mạnh của chính sách. Sự khác biệt chính là mức độ thông tin (informativeness) của các quan sát: các tác vụ Python cung cấp phản hồi dày đặc, liên kết hành động — code → dấu vết (traceback) → sửa lỗi — trong khi các tác vụ terminal rộng hơn phơi bày trạng thái một cách gián tiếp hơn thông qua các tệp tin, cấu hình và thiết lập nhiều bước.
Chúng tôi tin rằng sự thích ứng không có verifier (verifier-free adaptation) là khả thi: một khi RL đã tạo ra một mô hình khám phá (exploring model) tốt, tác nhân đôi khi có thể tiếp tục cải thiện chỉ từ các hậu quả — nhưng chỉ khi các rollout của nó sạch sẽ và phản hồi terminal có nhiều thông tin. Đó là phần đáng ngạc nhiên. Không phải là tác nhân tự cải thiện một cách hoàn hảo, mà là nó có thể tự cải thiện, từ việc không có gì ngoài hành động và dự đoán những gì quay trở lại.
Điều này để lại cho chúng ta điều gì
Bài học cốt lõi của ECHO rất đơn giản: các rollout của tác nhân chứa nhiều sự giám sát hơn chỉ là phần thưởng cuối cùng và chúng ta nên sử dụng nó.
Mọi lệnh mà tác nhân chạy đều tạo ra một phản hồi terminal — stdout, lỗi, dấu vết, tệp tin, nhật ký, v.v. — và RL tiêu chuẩn chỉ sử dụng các token đó làm ngữ cảnh cho hành động tiếp theo. ECHO biến chúng thành các mục tiêu huấn luyện. Không cần mô hình giáo viên, rollout bổ sung hay mô hình thế giới riêng biệt. Chúng tôi chỉ ngừng vứt bỏ các token môi trường vốn đã có trong bảng điểm.
Sự thay đổi nhỏ đó đã dẫn đến ba kết quả đáng ngạc nhiên: hiệu suất RL mạnh hơn, giảm đáng kể sự phụ thuộc vào SFT chuyên gia và trong một số thiết lập, khả năng tự cải thiện không có verifier chỉ từ tương tác môi trường. Chúng tôi không nghĩ điều này có nghĩa là phần thưởng hoặc trình diễn đã lỗi thời. Các quỹ đạo chuyên gia vẫn dạy chiến lược và verifier cung cấp tín hiệu cấp độ tác vụ rõ ràng nhất. Nhưng ECHO gợi ý rằng giữa "bắt chước chuyên gia" và "chờ phần thưởng thưa thớt", có một nguồn giám sát dày đặc, chưa được sử dụng đúng mức: hậu quả của chính các hành động của tác nhân.
Ý tưởng rộng hơn là sự tiếp nối của dự đoán phụ trợ (auxiliary prediction), vốn có một lịch sử lâu dài trong RL và các công trình gần đây đã hồi sinh các mục tiêu mô hình hóa thế giới (world-modeling objectives) cho các tác nhân LLM, ví dụ: Agent Learning via Early Experience sử dụng tín hiệu hành động-hậu quả (action-consequence signal) như một giai đoạn tiền RL, VAGEN thêm một phần thưởng mô hình hóa thế giới cho các tác nhân VLM, RWML tiền huấn luyện trên dự đoán trạng thái tiếp theo (next-state prediction) và CWM huấn luyện trung gian (mid-train) một mô hình code trên các quỹ đạo quan sát-hành động. ECHO là phiên bản trực tuyến, trong vòng lặp RL (online, in-the-RL-loop), dành riêng cho CLI (CLI-flavored version) của cùng một ý tưởng.
Ý tưởng này có thể đi xa đến đâu?
Bước tiếp theo là làm cho tín hiệu môi trường này mạnh mẽ hơn — và kiểm tra xem nó khái quát hóa (generalize) được bao xa. ECHO sử dụng đầu ra terminal thô vì chúng đã có trong rollout, nhưng mục tiêu học tập tốt nhất có thể là một biểu diễn sạch hơn và gọn hơn: các bản tóm tắt hoặc chế độ xem chỉ liên quan đến tác vụ của trạng thái. Ngoài ra: Chúng ta nên huấn luyện trên những quan sát nào? Khi nào chúng ta nên lọc các quỹ đạo? Làm thế nào để cân bằng dự đoán môi trường với tối ưu hóa chính sách? Liệu ý tưởng tương tự có thể hoạt động ngoài terminal: cho các tác nhân trình duyệt, hệ thống đa công cụ, tác nhân code có tầm nhìn dài hạn hoặc các trợ lý hướng đến người dùng, nơi các phản hồi theo dõi, chỉnh sửa và sở thích là một dạng phản hồi tương tác khác?
Chúng tôi đặt cược rằng ở bất cứ nơi nào một tác nhân hành động và thế giới phản hồi bằng các token, các token phản hồi đó — hoặc các biểu diễn tốt hơn của chúng — nên là một phần của tín hiệu học tập. ECHO là phiên bản đơn giản nhất của ý tưởng đó mà chúng tôi có thể nghĩ ra và chúng tôi nghi ngờ rằng một số dạng dự đoán token môi trường sẽ trở thành tiêu chuẩn trong các trình huấn luyện RL tác nhân vào cuối năm 2026.
Hãy xem toàn bộ bài báo và mã nguồn dựa trên SkyRL.
Hãy thử ECHO và cho chúng tôi biết tác nhân của bạn đã huấn luyện nhanh hơn bao nhiêu.
Chú thích: Huấn luyện một mô hình thế giới mê cung trên laptop của tôi… đại loại thế
Hãy nhớ khi tôi nói tôi "đã đóng góp một thí nghiệm mê cung ngớ ngẩn"? Đây là thí nghiệm mê cung ngớ ngẩn
Thiết lập là một phiên bản siêu nhỏ của ECHO: Một mê cung dạng lưới trong một terminal nhỏ xíu. Tác nhân (một transformer 10M trong một vòng lặp) đưa ra một hướng — lên, xuống, trái, phải — và terminal phản hồi với vị trí của tác nhân so với "các hàng xóm" của nó (về cơ bản nó là một bài toán tìm đường trong lưới 2D) và khoảng cách đến đích. Vì vậy, rollout trông giống hệt (với các giá trị nhỏ của từ "giống hệt") như một rollout của tác nhân CLI, chỉ đơn giản hơn nhiều 😊: hành động → phản hồi môi trường → hành động → phản hồi môi trường, v.v.
Tôi đã thử nghiệm hai điều kiện trên một transformer 10M tham số được huấn luyện từ đầu: 1) chỉ huấn luyện trên các token hành động 2) huấn luyện trên các token hành động và phản hồi của terminal (hàng xóm, khoảng cách, v.v.). Tất cả đều được huấn luyện trên các mê cung 6×6 / 7×7 / 8×8 mới.

Cái trò mê cung này có phải là một bài báo Nature không? Không. Nhưng: Tôi nghĩ có một điểm mà tôi đã luôn đưa ra và nó vẫn tiếp tục được khái quát hóa.
Hầu như mọi ý tưởng rõ ràng đều có một thế giới thu nhỏ (microcosm): một phiên bản thu nhỏ mà bạn có thể chạy trên laptop trong một buổi tối và cho bạn biết liệu ý tưởng đó có đáng để mở rộng quy mô hay không.
Mê cung đã không chứng minh được ECHO sẽ hoạt động. Nó đã cho tôi đủ niềm tin để gửi cho Vaish một tin nhắn Teams thay vì quên đi ý tưởng đó. Hóa ra Vaish đã độc lập xoay quanh cùng một ý tưởng và khi lần chạy cụm đầu tiên của cô ấy quay trở lại với kết quả, tôi đã rất vui mừng và thực sự ngạc nhiên. Mê cung ECHO đã gợi ý rằng hướng đi đó là đúng, nhưng nó không thể dự đoán được việc tăng gấp đôi điểm số TerminalBench, phục hồi phần lớn SFT chuyên gia hoặc tự cải thiện mà không cần phần thưởng. Đó là những kết quả của Vaish. "Giải được một mê cung 6×6 kiểu gì đó" và "tăng gấp đôi trên TerminalBench" là những trạng thái nhận thức (epistemic states) rất khác nhau.
Nhưng mục đích của phần bổ sung này không phải là chiếc laptop thay thế thí nghiệm cụm. Mấu chốt là hầu hết ý tưởng của tôi đều sai và thí nghiệm trên laptop (với sự trợ giúp của Claude Code và Codex) cho tôi biết nên bỏ ý tưởng nào trước khi chúng làm tốn thời gian của người khác. Thỉnh thoảng, một ý tưởng sống sót, và khi đó nó có thể giành được quyền sử dụng thời gian và GPU của cộng tác viên.
ECHO là một trong số đó.





