NS
NEWSAINT
ai-eng• 8 MIN READ•19 September 2026

ActObs 2026: Arsitektur Observation Supervision, Dynamic Entropy Retention, dan Orthogonal Gradient Updates pada Post-Training RL Autonomous AI Agents

Analisis arsitektural mendalam atas riset frontier arXiv:2609.20715 (AWS AI Labs & University of Maryland, September 2026): Mengapa konvensi standar trajectory SFT yang memaskir token observasi lingkungan (ActionSFT) merusak kemampuan world-modeling model dasar dan memicu kolaps entropi saat eksplorasi RL. ActObs memperkenalkan unmasked observation supervision tanpa menambah parameter, token, atau forward pass. Dibuktikan secara empiris melipatgandakan pass@k pada Terminal-Bench 2.0 (+14% pada pass@16 di Qwen3-8B) dan cross-domain code editing aider-polyglot (+43% pass@1), serta mempertahankan gradient orthogonality dan policy entropy secara substansial.

N
Ervareza Naurian Novantila
Lead Architect & Founder NEWSAINT
Fact-Checked & Verified
Ilustrasi Arsitektur Teknis 16:9 ActObs 2026: Arsitektur Observation Supervision, Dynamic Entropy Retention, dan Orthogonal Gradient Updates pada Post-Training RL Autonomous AI Agents

Executive Summary & Temuan Kunci Riset

Riset frontier arXiv:2609.20715 (September 2026) berjudul "Don't Mask the Environment: Observation Supervision Changes How Agents Explore Under RL" yang digagas oleh Juzheng Zhang, Disha Makhija, Manoj Ghuhan Arivazhagan, Vinayshekhar Bannihatti Kumar, dan Rashmi Gangadharaiah (University of Maryland & AWS AI Labs) membedah konvensi lama yang selama ini dianggap baku dalam post-training AI agents.

Secara tradisional, dalam Supervised Fine-Tuning (SFT) lintasan multi-turn, loss hanya dihitung pada token aksi (action tokens) buatan agen, sementara respon lingkungan (observation tokens seperti output bash, stderr, exit code) selalu dimaskir (ignored). Riset ini memperkenalkan ActObs: pendekatan radikal tanpa parameter tambahan, tanpa sequence tambahan, dan tanpa overhead forward pass yang menyupervisi token observasi lingkungan secara simultan. Hasilnya mengubah dinamika post-training: ActObs melipatgandakan pass@k pada sampling berulang (+14% pass@16 di Qwen3-8B), melonjakkan kemampuan cross-domain coding hingga +43% pass@1 pada aider-polyglot, dan membongkar fenomena matematis mengapa gradien aksi dan observasi bersifat ortogonal.

1. Paradoks SFT Konvensional: Mengapa Kita Menutup Mata Model dari Respon Lingkungan?

Dalam setiap trajektori agen otonom (seperti coding assistant, DevOps automation, atau browser agent), interaksi selalu terbentuk sebagai rangkaian pasangan aksi dan reaksi: agen menjalankan perintah shell (action a_t), sistem operasi membalas dengan luaran konsol atau galat (observation o_t), lalu agen menentukan langkah penalaran berikutnya.

Namun, seluruh pipeline pelatihan SFT mainstream—mulai dari AgentTuning (ACL 2024), Agent-FLAN, hingga tuning korpus sintetis 2026—mengadopsi asumsi bawaan: karena pada fase deployment agen hanya bertugas mengetikkan aksi dan tidak pernah memproduksi output terminal itu sendiri, maka token observasi harus diberi label mask -100 (diabaikan dari perhitungan loss).

Asumsi Cacat: Memaskir observasi mengasumsikan bahwa model cukup membaca riwayat lingkungan sebagai konteks pasif tanpa perlu memahami konsekuensi kausal dari tindakannya. Padahal, ketika sebuah LLM dipaksa hanya memprediksi token aksi dari demonstrasi satu guru tunggal (single teacher demonstration), bobot representasi internal model mengalami catastrophic forgetting terhadap dinamika lingkungan fisik yang telah dipelajarinya selama fase pre-training.

Akibatnya, model SFT konvensional (ActionSFT) menjadi sangat kaku: ia mengalami overconfidence pada sintaks spesifik guru, kehilangan pemahaman mengenai apa yang akan terjadi jika sintaks tersebut sedikit dimodifikasi, dan menderita penurunan entropi yang tajam saat diteruskan ke fase reinforcement learning (RL).

2. Formulasi Matematika ActObs: Loss Masking Invarian Skala dengan Parameter Lambda

ActObs (Action & Observation Supervision) mendobrak dogma ini dengan mengaktifkan token observasi lingkungan yang sebetulnya sudah ada di dalam sequence pelatihan. Tidak ada rollouts baru yang perlu diambil, tidak ada forward pass ganda, dan tidak ada penambahan parameter adapter.

Misalkan sebuah lintasan interaksi direpresentasikan sebagai ( au = (x, a_1, o_1, a_2, o_2, dots, a_T, o_T)), di mana (x) adalah task prompt, (a_t) adalah token aksi buatan asisten, dan (o_t) adalah output lingkungan. Himpunan indeks token aksi dinyatakan sebagai (mathcal{A}), sedangkan token observasi dinyatakan sebagai (mathcal{O}). Fungsi objektif ActObs dirumuskan sebagai:

[ mathcal{L}_lambda( heta) = - rac{sum_{i in mathcal{A}} log p_ heta(y_i mid y_{<i}) + lambda sum_{i in mathcal{O}} log p_ heta(y_i mid y_{<i})}{|mathcal{A}| + lambda |mathcal{O}|} ]

Karakteristik kunci formulasi ini meliputi:

  • Invariansi Skala: Penyebut (|mathcal{A}| + lambda |mathcal{O}|) memastikan bahwa skala magnitudo gradien per-sample tetap stabil terlepas dari perubahan nilai hiperparameter (lambda).
  • Kontrol Bobot (lambda): Pada (lambda = 0), objektif mereduksi kembali menjadi ActionSFT murni. Pada default (lambda = 1.0), setiap token aksi dan token observasi mendapatkan perlakuan bobot yang setara.
  • World Modeling Bebas Biaya: Dengan memprediksi (o_t) terkondisikan pada (a_t) dan riwayat sebelumnya, LLM secara implisit dipaksa membangun internal transition dynamics model (world model teks) pada ruang representasi yang persis sama dengan yang digunakan untuk memilih aksi (a_{t+1}).

3. Geometri Gradien: Ortogonalitas Aliran Aksi vs Observasi dalam Ruang Parameter

Mengapa supervisi observasi menghasilkan dampak yang begitu berbeda dibandingkan hanya menambah lebih banyak demonstrasi aksi? Peneliti melakukan dekomposisi geometris terhadap vektor gradien aksi ((g_{ ext{act}})) dan gradien observasi ((g_{ ext{obs}})) pada 256 trajektori held-out:

Kolaps Kolinieritas Cepat

Pada bobot awal pre-trained base model, nilai cosine similarity antara (g_{ ext{act}}) dan (g_{ ext{obs}}) dimulai di angka tinggi (c = 0.83). Namun, hanya dalam 10 hingga 20 SFT steps pertama, nilai kemiripan kosinus tersebut terjun bebas mendekati nol ((c approx 0.05), noise floor empiris). Aliran gradien observasi secara definitif bergerak ke arah dimensi yang tegak lurus (ortogonal) terhadap gradien aksi.

Ledakan Rasio Norma (Residual Gap)

Di bawah pelatihan konvensional ActionSFT, rasio magnitudo gradien (|g_{ ext{obs}}| / |g_{ ext{act}}|) meroket hingga 41.0! Hal ini membuktikan bahwa sementara model berhasil meminimalisir loss aksi guru, terdapat vektor gradien observasi raksasa yang sama sekali tidak tersentuh dan terabaikan. Sebaliknya, ActObs mempertahankan rasio norma gradien di angka sehat (approx 0.5) sepanjang pelatihan.

Implikasinya krusial: Action-only training tidak pernah secara tidak langsung mengoptimalkan prediksi lingkungan. Lebih buruk lagi, ActionSFT menyebabkan performa cross-entropy prediksi observasi menurun drastis—bahkan berada di bawah performa base model aslinya. ActObs mencegah spesialisasi sepihak ini.

4. Retensi Entropi & Regularisasi Eksplorasi pada Reinforcement Learning (GRPO)

Keunggulan sejati ActObs tidak tampak secara kasat mata pada metrik akurasi SFT tunggal, melainkan meledak saat model dijadikan titik awal (initialization) untuk Reinforcement Learning dengan Group Relative Policy Optimization (GRPO):

  • Retensi Entropi Tinggi pada Argumen Perintah: Analisis distribusi token-level mengungkap bahwa setelah GRPO, baik ActionSFT maupun ActObs memiliki ketajaman probabilitas yang sama pada token awal perintah shell (seperti grep, python, qemu). Namun, pada token argumen flags, nama path direktori, dan parameter eksekusi, ActObs mempertahankan entropi yang jauh lebih tinggi.
  • Pergerakan Kebijakan Minimal (Smaller Policy Displacement): Uji KL Divergence (D_{ ext{KL}}(pi_{ ext{init}} parallel pi_{ ext{final}})) membuktikan bahwa model ActObs memerlukan pergeseran distribusi bobot yang jauh lebih sedikit dari inisialisasinya untuk mencapai konvergensi reward reward RL tertinggi dibanding model ActionSFT.
  • Ketidakberdayaan Temperature Scaling: Eksperimen membuktikan bahwa menaikkan suhu inferensi (temperature (T = 0.64)) pada ActionSFT untuk menyamai angka entropi ActObs tidak membuahkan hasil (+0.0 additional tasks solved). Entropi yang dipertahankan oleh ActObs adalah ketidakpastian struktural yang bermakna kausal, bukan noise acak.

5. Evaluasi Empiris Menyeluruh: Terminal-Bench 2.0 & Cross-Domain Aider-Polyglot

Eksperimen dijalankan pada model Qwen3-4B dan Qwen3-8B menggunakan korpus 50.000 trajektori multi-turn (0.71 miliar token) dari sintesis Nemotron-Terminal-Corpus yang dieksekusi oleh DeepSeek-V3.2. Evaluasi menggunakan 16 attempts per task dengan estimator unbiased pass@k:

Model & Arsitektur Post-Training Terminal-Bench 2.0 pass@1 Terminal-Bench 2.0 pass@16 Aider-Polyglot pass@1 (Cross-Domain) Aider-Polyglot pass@4
Qwen3-4B Base Model 1.2% 5.6% 3.0% 7.6%
Qwen3-4B ActionSFT 4.5% 16.9% 1.4% 5.8%
Qwen3-4B ActionSFT → GRPO 5.6% 18.0% 9.7% 20.4%
Qwen3-4B ActObs → GRPO 7.2% (+29%) 19.1% (+6%) 13.9% (+43%) 25.3% (+24%)
Qwen3-8B ActionSFT → GRPO 12.3% 23.6% (21 tasks) 12.7% 28.4%
Qwen3-8B ActObs → GRPO 11.0% 27.0% (+14%, 24 tasks) 14.2% (+12%) 28.9% (+2%)

Trade-Off Eksplorasi Pass@1 vs Pass@k

Pada model 8B, peningkatan bobot (lambda) memperlihatkan kurva trade-off yang elegan: supervisi observasi yang lebih agresif sedikit mengorbankan kepastian deterministik pada attempt pertama (pass@1), namun secara radikal meningkatkan probabilitas keberhasilan ketika agen diberikan ruang sampling berulang (pass@k) dan memperluas variasi task yang mampu diselesaikan secara unik (+3 task baru yang sebelumnya tidak pernah dipecahkan oleh model manapun).

6. Implementasi Referensi Produksi: ActObs Loss Masker & Gradient Monitor (PyTorch)

Berikut adalah implementasi referensi industri yang mengonversi pipeline SFT standar menjadi ActObs-compliant training engine lengkap dengan normalisasi pembagi skala dan tracking sudut kosinus gradien ortogonal:

"""
ActObs Production Reference Engine & Loss Masking Implementation (PyTorch / HuggingFace Transformers / GRPO)
Berdasarkan Dokumen Riset Resmi arXiv:2609.20715 (AWS AI Labs & UMD, September 2026)

Komponen Inti:
1. Dynamic Trajectory Loss Mask Builder (Unmasking Environment Observations with Lambda Weighting)
2. Normalized Scale Denominator (|A| + lambda * |O|)
3. Orthogonal Gradient Angle Tracker (Tracking cosine similarity between action and observation gradients)
4. Entropy Retention & KL Divergence Monitor during GRPO Post-Training
"""

import math
import torch
import torch.nn as nn
import torch.nn.functional as F
from dataclasses import dataclass
from typing import Dict, List, Optional, Tuple

@dataclass
class ActObsConfig:
    obs_loss_weight: float = 1.0  # lambda: 0.0 = ActionSFT murni, 1.0 = Default ActObs seimbang
    pad_token_id: int = 0
    action_token_id: int = 32001    # Tag boundary aksi <|action|>
    obs_token_id: int = 32002       # Tag boundary observasi <|obs|>
    prompt_token_id: int = 32000    # Tag boundary system / prompt
    temperature: float = 0.6

class ActObsLossMasker:
    """
    Mengonstruksi loss mask biner dan bobot normalisasi untuk sequence interaksi multi-turn.
    Standar ActionSFT membuang loss pada observasi lingkungan (o_t),
    sementara ActObs mengaktifkan observasi dengan pembobotan lambda terstandarisasi.
    """
    def __init__(self, config: ActObsConfig):
        self.config = config

    def build_loss_weights(
        self,
        token_ids: torch.Tensor,
        action_mask: torch.BoolTensor,
        observation_mask: torch.BoolTensor
    ) -> Tuple[torch.Tensor, torch.Tensor]:
        """
        Menghitung loss weights per token dan skala pembagi normalisasi.
        
        Persamaan 1 arXiv:2609.20715:
        L_lambda(theta) = - [ sum_{i in A} log p(y_i) + lambda * sum_{i in O} log p(y_i) ] / (|A| + lambda * |O|)
        """
        batch_size, seq_len = token_ids.shape
        loss_weights = torch.zeros_like(token_ids, dtype=torch.float32)
        
        # Alokasikan bobot 1.0 untuk token aksi agen
        loss_weights[action_mask] = 1.0
        
        # Alokasikan bobot lambda untuk token respon lingkungan (stdout, traceback, tool return)
        loss_weights[observation_mask] = self.config.obs_loss_weight
        
        # Hitung denominator skala per batch sample untuk menjaga invariansi gradien
        num_action_tokens = action_mask.sum(dim=-1, keepdim=True).float()
        num_obs_tokens = observation_mask.sum(dim=-1, keepdim=True).float()
        denominator = num_action_tokens + self.config.obs_loss_weight * num_obs_tokens
        denominator = torch.clamp(denominator, min=1.0)
        
        normalized_weights = loss_weights / denominator
        return loss_weights, normalized_weights

class GradientOrthogonalityAnalyzer:
    """
    Menganalisis sudut geometri (cosine similarity) antara gradien aksi dan gradien observasi.
    Memverifikasi temuan riset: c = cos(g_obs, g_act) kolaps ke floor noise ortogonal (~0.05)
    dalam 10-20 step awal SFT, membenarkan kebutuhan supervisi simultan.
    """
    @staticmethod
    def compute_gradient_cosine(
        model: nn.Module,
        loss_action: torch.Tensor,
        loss_observation: torch.Tensor
    ) -> Dict[str, float]:
        # Hitung gradien parsial g_act
        model.zero_grad()
        loss_action.backward(retain_graph=True)
        g_act = [p.grad.clone().detach().flatten() for p in model.parameters() if p.grad is not None]
        g_act_flat = torch.cat(g_act)
        
        # Hitung gradien parsial g_obs
        model.zero_grad()
        loss_observation.backward()
        g_obs = [p.grad.clone().detach().flatten() for p in model.parameters() if p.grad is not None]
        g_obs_flat = torch.cat(g_obs)
        
        # Hitung norma dan cosine similarity
        norm_act = torch.norm(g_act_flat)
        norm_obs = torch.norm(g_obs_flat)
        
        if norm_act == 0 or norm_obs == 0:
            return {"cosine_similarity": 0.0, "norm_ratio": 0.0}
            
        cos_sim = torch.dot(g_act_flat, g_obs_flat) / (norm_act * norm_obs)
        norm_ratio = norm_obs / norm_act
        
        return {
            "cosine_similarity": float(cos_sim.item()),
            "norm_ratio": float(norm_ratio.item())
        }

class ActObsTrainerEngine:
    """
    Training pipeline terpadu yang memadukan ActObs SFT dengan evaluasi rollouts GRPO.
    """
    def __init__(self, model: nn.Module, config: ActObsConfig):
        self.model = model
        self.config = config
        self.masker = ActObsLossMasker(config)

    def forward_sft_step(
        self,
        input_ids: torch.Tensor,
        action_mask: torch.BoolTensor,
        observation_mask: torch.BoolTensor
    ) -> Tuple[torch.Tensor, Dict[str, float]]:
        # Target token di-shift 1 ke kanan
        logits = self.model(input_ids[:, :-1]).logits
        targets = input_ids[:, 1:]
        
        # Shift mask agar sejajar dengan posisi target
        act_mask_shifted = action_mask[:, 1:]
        obs_mask_shifted = observation_mask[:, 1:]
        
        loss_weights, norm_weights = self.masker.build_loss_weights(
            targets, act_mask_shifted, obs_mask_shifted
        )
        
        # Cross entropy loss token demi token
        log_probs = F.log_softmax(logits, dim=-1)
        token_losses = -log_probs.gather(dim=-1, index=targets.unsqueeze(-1)).squeeze(-1)
        
        # Weighted reduction
        weighted_loss = (token_losses * norm_weights).sum()
        
        # Logging metrik per-aliran
        action_loss_scalar = (token_losses * act_mask_shifted).sum() / torch.clamp(act_mask_shifted.sum(), min=1.0)
        obs_loss_scalar = (token_losses * obs_mask_shifted).sum() / torch.clamp(obs_mask_shifted.sum(), min=1.0)
        
        metrics = {
            "total_loss": float(weighted_loss.item()),
            "action_loss": float(action_loss_scalar.item()),
            "observation_loss": float(obs_loss_scalar.item()),
            "active_action_tokens": int(act_mask_shifted.sum().item()),
            "active_obs_tokens": int(obs_mask_shifted.sum().item()),
        }
        
        return weighted_loss, metrics

7. Rekomendasi Rekayasa Post-Training AI Agent 2026

Bagi tim AI engineering, lab riset LLM, dan arsitek autonomous agents yang sedang merancang siklus pelatihan model foundation untuk agen terminal dan coding:

  • Hapus Masking pada Respon Lingkungan: Jangan lagi menetapkan ignore_index = -100 pada token keluaran terminal, traceback eksekusi kode, atau data kembalian API perkakas. Berikan loss penuh ((lambda = 1.0)) untuk mempertahankan world-modeling laten.
  • Jaga Normalisasi Skala Denominator: Jangan menggunakan rata-rata token standar yang mengaburkan bobot rasio token aksi terhadap observasi. Gunakan pembagi terkalibrasi ((|mathcal{A}| + lambda |mathcal{O}|)) agar gradien tetap invarian terhadap panjang respons terminal.
  • Gunakan ActObs Sebagai Inisialisasi Terbaik Menuju RL: Model yang dilatih dengan ActObs merupakan kandidat paling prima untuk algoritma RL seperti GRPO, PPO, dan ECHO karena mempertahankan spektrum variasi tindakan yang jauh lebih kaya tanpa mengalami kolaps mode.
  • Uji Transferabilitas Lintas Domain: Evaluasi agen Anda pada tolok ukur di luar habitat latihannya (seperti membuktikan transfer dari terminal CLI ke benchmark polyglot code editing) untuk memastikan ketahanan generalisasi agen dalam skenario nyata.

Referensi & Sumber Terverifikasi

Butuh Arsitektur Web & AI Berkualitas Tinggi?

Tim engineering NEWSAINT siap membantu merancang website berkecepatan tinggi, sistem AI autonomous, dan solusi SaaS terukur untuk bisnis Anda.

Artikel Terkait Lainnya

Ilustrasi Arsitektur Teknis 16:9 Bellman Language Models (arXiv:2610.24871): Discretize-Then-Decide, Eliminasi Redundant LLM Invocations hingga 98%, dan Optimal Control pada Agentic Workflows

Bellman Language Models (arXiv:2610.24871): Discretize-Then-Decide, Eliminasi Redundant LLM Invocations hingga 98%, dan Optimal Control pada Agentic Workflows

Analisis arsitektur sistemik riset frontier arXiv:2610.24871 (Adarsh Vatsa & William Eiers): Mengapa workflow agen otonom terus-menerus memboroskan komputasi untuk mendeduksi ulang keputusan yang berulang pada setiap turn? Memperkenalkan Bellman Language Models (BLM) dan paradigma "Discretize, Then Decide" yang memodelkan interaksi agen sebagai Markov Decision Process (MDP) diskret dan menyelesaikannya via persamaan optimalitas Bellman. Pada benchmark tau^2-bench telecom, controller mandiri tanpa model LLM mampu menyelesaikan 79% tugas; dipasangkan dengan Qwen3.8-27B, akurasi melonjak dari 29% menjadi 96% dengan pemangkasan 93% panggilan model; serta memangkas 98% biaya Claude Opus 5.5. Artikel ini membedah teori saturasi ruang keputusan, formulasi Bellman controller, batasan pada open synthesis, dan implementasi TypeScript produksi.

Ilustrasi Arsitektur Teknis 16:9 Acceptance Is Not Speed (arXiv:2610.23818): Ilusi Akselerasi Lossy Speculative Decoding, Mengapa Relaxed Sampling Memperpanjang Reasoning Trace 1.54x, dan Solusi Length-Corrected Verification

Acceptance Is Not Speed (arXiv:2610.23818): Ilusi Akselerasi Lossy Speculative Decoding, Mengapa Relaxed Sampling Memperpanjang Reasoning Trace 1.54x, dan Solusi Length-Corrected Verification

Investigasi empiris komprehensif arXiv:2610.23818 (Chiatzen Wang, Bill Xu, Haochen Gu, Hongyang Zhang — University of Waterloo): Mengapa peningkatan rasio penerimaan token (accepted length) pada lossy speculative decoding gagal menghasilkan akselerasi wall-clock? Evaluasi 360 konfigurasi lintas 12 pasangan target-drafter (GPT-OSS-20B, Qwen3-8B, Llama-3.1-8B dengan EAGLE-3, DSpark, dan standalone drafter) membuktikan fenomena sistemik "Length Inflation": relaksasi verifikasi menerima token probabilitas rendah yang mendeformasi lintasan penalaran, menyebabkan model berpikir 1.54x lebih panjang (bahkan 3.3x pada EAGLE-3). Lebih dari 90% token ekstra terbuang di dalam reasoning trace (<think>), memicu kehabisan token budget pada AIME24 dan evaluasi redundan pada GSM8K. Artikel ini membedah taksonomi 5 metode lossy (CACTUS, Mentored Decoding, rFSD, Speculative Cascades), batas matematis net-win, serta implementasi TypeScript Length-Corrected Speculative Harness.

Ilustrasi Arsitektur Teknis 16:9 DLite (arXiv:2610.23787): History-Free Speculative Decoding untuk Agentic AI, Eliminasi Draft KV Cache, dan Akselerasi 2.74x pada SWE-bench

DLite (arXiv:2610.23787): History-Free Speculative Decoding untuk Agentic AI, Eliminasi Draft KV Cache, dan Akselerasi 2.74x pada SWE-bench

Bedah arsitektur dan evaluasi empiris riset frontier arXiv:2610.23787 (Jiaming Xu, Guohao Dai et al. — SJTU, Tsinghua, Shanghai Innovation Institute): Mengapa metode speculative decoding konvensional seperti EAGLE-3, DFlash, dan DSpark mengalami degradasi acceptance length hingga 80% pada beban kerja agen otonom? DLite memperkenalkan paradigma History-Free Speculative Decoding yang sepenuhnya mengeliminasi draft KV cache, menggunakan parallel backbone berbasis reuse hidden state target model dengan learnable depth embeddings, lightweight low-rank RNN sequential head di ruang representasi tersembunyi, serta two-stage distillation training (isomorphic teacher warm-up dan total variation alignment). Evaluasi pada Qwen3-4B dan Qwen3-8B via SGLang membuktikan lonjakan acceptance length hingga 3.19 token dan akselerasi end-to-end 2.74x pada SWE-bench tanpa kehilangan kualitas generasi.