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

CodeMidas 2026: Arsitektur Penskalaan Lingkungan RL Coding Agent Langsung dari Kode Sumber (Code Itself), 6-Container Verification, dan Analisis Perilaku Eksplorasi Multi-Turn

Bedah arsitektur riset frontier Xiaomi LLM Core, Peking University & HKU arXiv:2609.22068 (Bowen Ye, Lei Li, Shicheng Li, Tong Yang, Fuli Luo, September 2026): Mengapa post-training RL untuk AI coding agent selama ini mengalami hambatan penskalaan akibat ketergantungan pada issue dan PR GitHub yang bising? CodeMidas merevolusi paradigma sintesis lingkungan eksekusi dengan mengubah implementasi fungsional repositori open-source langsung menjadi executable RL environments hanya bermodalkan source code. Dilengkapi pipeline agentic 4 tahap, relaksasi asersi anti-overspecification, protokol 6-container execution consistency check, dan adversarial leakage probing. Dataset 5.545 tugas dari 3.185 repositori di 23 bahasa pemrograman terbukti mendongkrak skor MiMo-V2.5 via GRPO: DeepSWE (+11.7 pp), ProgramBench (+17.0 pp), dan Terminal-Bench v2.1 (+8.5 pp), sekaligus memicu pergeseran perilaku eksplorasi dan verifikasi mandiri yang adaptif.

N
Ervareza Naurian Novantila
Lead Architect & Founder NEWSAINT
Fact-Checked & Verified
Ilustrasi Arsitektur Teknis 16:9 CodeMidas 2026: Arsitektur Penskalaan Lingkungan RL Coding Agent Langsung dari Kode Sumber (Code Itself), 6-Container Verification, dan Analisis Perilaku Eksplorasi Multi-Turn

Reinforcement Learning (RL) berbasis reward hasil eksekusi (seperti GRPO dan PPO) telah menjadi pilar utama peningkatan kecerdasan model penalaran frontier (OpenAI o-series, DeepSeek-R1, Gemini 2.5 Flash Thinking). Namun, ketika RL diterapkan pada ranah Coding Agents yang harus menyelesaikan pekerjaan rekayasa perangkat lunak multi-turn berskala repositori nyata (SWE), komunitas riset menghadapi bottleneck struktural: kelangkaan lingkungan latihan yang beragam, reliabel, dan terisolasi dari kebocoran.

TEMUAN UTAMA FRONTIER AI (ARXIV:2609.22068)

Makalah terbaru dari Xiaomi LLM Core berkolaborasi dengan Peking University dan The University of Hong Kong (HKU) memperkenalkan CodeMidas. Mengabaikan dogma lama yang mengandalkan riwayat Pull Request dan issue GitHub (seperti SWE-bench dan SWE-smith), CodeMidas mampu menyintesis lingkungan latihan RL yang dapat dieksekusi langsung dari kode sumber terbuka yang sudah ada (Code Itself). Dengan dataset 5.545 tugas dari 3.185 repositori lintas 23 bahasa pemrograman, model MiMo-V2.5 yang dilatih dengan GRPO mencatat lonjakan performa dramatis: DeepSWE +11.7 pp (dari 10.0% ke 21.7%), ProgramBench +17.0 pp, dan Terminal-Bench v2.1 +8.5 pp, didukung oleh protokol validasi 6-Container Execution Consistency dan Adversarial Leakage Probing.

1. Kegagalan Paradigma Konvensional: Mengapa GitHub Issues & PR Menjadi Jebakan?

Hingga pertengahan 2026, hampir seluruh lingkungan benchmark dan dataset latihan coding agent (misalnya SWE-bench, SWE-fixer, SWE-rebench) dibangun berdasarkan relik pengembangan perangkat lunak (development artifacts), yaitu pasangan Issue Description dan Merged Pull Request. Paradigma ini memiliki 4 cacat fatal:

  • Skalabilitas Terbatas (Low Yield Rate): Dari jutaan repositori GitHub, hanya sebagian kecil yang memiliki issue terdefinisi rapi dengan reproduksi bug deterministik dan unit test terisolasi. Upaya otomatisasi scraping PR sering menghasilkan tingkat kegagalan lingkungan di atas 70%.
  • Distribusi Domain & Bahasa yang Sangat Bias: Repositori yang ramah otomasi issue didominasi oleh ekosistem Python (data science & web backend). Repositori sistem berkinerja tinggi (Rust, C++, Go, Zig) dan bahasa enterprise (Java, Kotlin, Swift) hampir tidak terwakili.
  • Asersi Pengujian yang Terlalu Rapuh (Brittle Assertions): Unit test bawaan PR sering kali memeriksa struktur internal privat yang tidak esensial bagi fungsi sistem, atau mengandalkan string pesan kesalahan yang sangat spesifik (incidental overspecification).
  • Pencemaran Data & Pretraining Memorization: Model frontier telah melihat jutaan PR publik selama fase pretraining, sehingga skor tinggi sering kali merupakan cerminan hafalan (memorization) commit diff alih-alih penalaran agen yang sesungguhnya.

2. Arsitektur 4-Tahap CodeMidas: Membedah Sumber Kode Menjadi Sandbox RL

CodeMidas menyelesaikan dilema ini dengan mengambil pendekatan terbalik: kode sumber fungsional yang sudah matang adalah spesifikasi kebenaran (ground truth) terbaik. Tanpa memerlukan issue tertulis atau commit lama, agen pembangun CodeMidas mengalokasikan agentic compute pada 4 fase terstruktur:

Fase Pipeline Mekanisme Kerja Inti Kriteria Kelulusan (Gate Invariant)
§ 3.1 Task Design & Adaptation Menganalisis AST dan metadata build untuk mengisolasi fungsionalitas ber-entrypoint publik (CLI, Pure Library, Stateful API). Menghapus modul implementasi inti sambil menjaga shared scaffolding. Pemisahan bersih antara target implementation dan context runtime. Reference solution disimpan terpisah sebagai ground truth oracle.
§ 3.2 Execution-Grounded Tests Menjalankan public entry points pada reference solution untuk mencatat output nyata. Mengaudit asersi untuk menghapus batasan incidental (urutan kamus, kata pesan error) menjadi pure behavioral assertions. Tidak ada ketergantungan pada private symbols. Semua test cases lulus 100% pada reference solution.
§ 3.3 6-Container Consistency Check Menjalankan runtime bersih pada 6 container terisolasi: 2 container pada starting codebase (kode yang dihapus) dan 4 container pada reference solution. Deterministic Fail-to-Pass: 2 Starting Runs WAJIB Gagal (0/2 pass), 4 Reference Runs WAJIB Lulus (4/4 pass). Flaky tests dibuang seketika.
§ 3.4 Post-Rollout Filtering Adversarial agent menyisir disk sandbox untuk mengeksploitasi residual artifacts (.pyc, cache, build temp). Reviewer agent memvalidasi false-positives/negatives pada 4 percobaan rollout model solver. Zero exploitable leakage. Membuang tugas yang trivial (all-pass) atau mustahil (all-fail) untuk menjaga gradien informatif saat RL.

3. Implementasi Kode: CodeMidas Environment Synthesizer & Verifier

Berikut adalah arsitektur verifier dan harness evaluasi deterministik yang mengimplementasikan protokol konsistensi 6-container dan audit adversarial leakage:

python / codemidas_harness.py 6-CONTAINER CONSISTENCY VERIFIER
"""
CodeMidas Architecture: Agentic Synthesis of Coding RL Environments Directly from Source Code.
Berdasarkan Makalah Frontier arXiv:2609.22068 (Xiaomi LLM Core, PKU, HKU, September 2026).

Komponen Inti:
1. Codebase Scope Slicer: Memisahkan fungsionalitas publik & dependensi internal.
2. Anti-Overspecification Test Reviewer: Menghapus pengecekan incidental (string formatting/order) 
   menjadi murni behavioral assertion.
3. 6-Container Execution Consistency Validator: Menjalankan 2x starting-state (keduanya WAJIB gagal) 
   dan 4x reference-state (keempatnya WAJIB lulus).
4. Adversarial Leakage Prober: Mengecek residual artifact pada disk/cache yang berpotensi 
   dieksploitasi solver agent untuk bypass coding.
"""

import os
import shutil
import subprocess
from dataclasses import dataclass, field
from enum import Enum
from typing import Dict, List, Optional, Tuple

class TaskInterfaceType(Enum):
    CLI_TOOL = "cli_tool"
    PURE_FUNCTION = "pure_function"
    STATEFUL_API = "stateful_api"

@dataclass
class CodeMidasTaskSpecification:
    task_id: str
    codebase_name: str
    language: str
    domain: str
    interface_type: TaskInterfaceType
    task_statement: str
    public_entry_points: List[str]
    reference_solution_diff: str
    starting_codebase_path: str
    reference_codebase_path: str
    generated_test_suite_path: str

@dataclass
class ExecutionConsistencyResult:
    starting_runs_passed: int # Target: 0 (Semua 2 run harus gagal)
    starting_runs_failed: int # Target: 2
    reference_runs_passed: int # Target: 4 (Semua 4 run harus lulus)
    reference_runs_failed: int # Target: 0
    is_deterministic: bool

class AntiOverspecificationVerifier:
    """
    Meninjau setiap asersi uji agar tidak memaksakan implementasi privat atau
    formatting teks incidental yang tidak tertuang pada spesifikasi tugas.
    """
    @staticmethod
    def audit_assertion(assertion_ast_node: dict, statement_spec: str) -> bool:
        forbidden_patterns = [
            "__private_member",
            "exact_error_string_match",
            "dict_keys_ordering_strict",
            "internal_cache_dict_inspect"
        ]
        for pattern in forbidden_patterns:
            if pattern in assertion_ast_node.get("source_code", ""):
                # Tolak jika asersi memeriksa internal privat repositori
                return False
        return True

class CodeMidasEnvironmentHarness:
    def __init__(self, task: CodeMidasTaskSpecification):
        self.task = task
        self.base_container_image = f"newsaint-rl-sandbox:{task.language.lower()}-v1"

    def run_isolated_container(self, codebase_path: str, test_path: str, container_idx: int) -> Tuple[bool, str]:
        """
        Menjalankan pengujian dalam isolated container runtime (gVisor/bwrap sandbox).
        Mengembalikan verdict sukses (True/False) dan stdout/stderr logs.
        """
        # Simulasi eksekusi sandboxed deterministic
        cmd = [
            "docker", "run", "--rm",
            "--network", "none",
            "--memory", "4g",
            "--cpus", "2.0",
            "-v", f"{os.path.abspath(codebase_path)}:/workspace/repo:ro",
            "-v", f"{os.path.abspath(test_path)}:/workspace/tests/verifier.py:ro",
            self.base_container_image,
            "python3", "-m", "pytest", "/workspace/tests/verifier.py"
        ]
        try:
            res = subprocess.run(cmd, capture_output=True, text=True, timeout=120)
            return (res.returncode == 0, res.stdout)
        except subprocess.TimeoutExpired:
            return (False, "EXECUTION_TIMEOUT_EXCEEDED")
        except Exception as e:
            return (False, str(e))

    def evaluate_six_container_consistency(self) -> ExecutionConsistencyResult:
        """
        Protokol 6-Container CodeMidas:
        - 2 Container dijalankan dengan kode awal (starting codebase). Keduanya WAJIB gagal.
        - 4 Container dijalankan dengan solusi referensi. Keempatnya WAJIB lulus.
        """
        starting_fails = 0
        starting_passes = 0
        for i in range(2):
            passed, _ = self.run_isolated_container(
                self.task.starting_codebase_path,
                self.task.generated_test_suite_path,
                container_idx=i
            )
            if passed:
                starting_passes += 1
            else:
                starting_fails += 1

        reference_passes = 0
        reference_fails = 0
        for i in range(4):
            passed, _ = self.run_isolated_container(
                self.task.reference_codebase_path,
                self.task.generated_test_suite_path,
                container_idx=i + 2
            )
            if passed:
                reference_passes += 1
            else:
                reference_fails += 1

        is_deterministic = (starting_fails == 2 and reference_passes == 4)
        return ExecutionConsistencyResult(
            starting_runs_passed=starting_passes,
            starting_runs_failed=starting_fails,
            reference_runs_passed=reference_passes,
            reference_runs_failed=reference_fails,
            is_deterministic=is_deterministic
        )

    def probe_adversarial_leakage(self, sandbox_workspace_path: str) -> bool:
        """
        Adversarial Leakage Audit: Memastikan tidak ada byte-compiled (.pyc), cache,
        atau sisa log konstruksi yang membeberkan kode solusi referensi kepada agen RL.
        """
        forbidden_leak_indicators = [
            ".git/logs",
            "__pycache__",
            ".pytest_cache",
            "dist/",
            "build/",
            ".reference_backup"
        ]
        for root, dirs, files in os.walk(sandbox_workspace_path):
            for d in dirs:
                full_dir = os.path.join(root, d)
                if any(ind in full_dir for ind in forbidden_leak_indicators):
                    return True # Kebocoran ditemukan!
            for f in files:
                if f.endswith((".pyc", ".so", ".o", ".dylib")):
                    return True # Residual binary ditemukan!
        return False

4. Evaluasi Benchmark Eksternal: Dari DeepSWE hingga Terminal-Bench

Tim peneliti mengevaluasi model pondasi MiMo-V2.5 yang dilatih menggunakan algoritma Group Relative Policy Optimization (GRPO) dengan binary execution reward pada 5.545 tugas CodeMidas (batch size 32, 32 rollout per tugas). Model diuji secara ketat pada 5 benchmark eksternal yang sepenuhnya terisolasi (disjoint) dari data latihan:

Benchmark Eksternal Domain Evaluasi MiMo-V2.5 (Initial Policy) MiMo-V2.5 (CodeMidas RL) Peningkatan Absolut
DeepSWE v1.1 Real-World Repository Issue Repair 10.00% 21.70% +11.70 pp (> 2.1x Lipat)
ProgramBench Whole-Program Multi-Module Construction 4.50% (Almost Solved) 21.50% +17.00 pp (> 4.7x Lipat)
Terminal-Bench v2.1 Autonomous Bash & System CLI Administration 63.70% 72.20% +8.50 pp
RepoZero C2Rust Cross-Language Compilation & Translation Baseline Rate Enhanced Policy +6.40 pp
SWE-bench Pro Production Hard SWE Tasks Baseline Rate Enhanced Policy +4.80 pp

5. Analisis Ablasi: Mengapa 5.000 Tugas Berkualitas Mengalahkan 8.000 Tugas Vanilla?

Salah satu eksperimen paling mencerahkan dari makalah ini adalah perbandingan antara volume mentah (raw quantity) versus rigoritas verifikasi lingkungan (verification quality). Peneliti membandingkan 4 kelompok data:

  • Vanilla 8k (Unfiltered): ~8.000 tugas yang diekstrak tanpa pembersihan lingkungan (environment cleaning), tanpa protokol 6-container consistency, dan tanpa penyaringan adversarial leakage.
  • CodeMidas 1k (Cleaned): 1.000 tugas acak berfilter penuh.
  • CodeMidas 3k (Cleaned): 3.000 tugas acak berfilter penuh.
  • CodeMidas 5k (Full Dataset): 5.545 tugas berfilter penuh.

Hasilnya sangat tegas: CodeMidas 3k yang bersih berhasil mengalahkan Vanilla 8k di seluruh benchmark. Terlebih lagi, CodeMidas 5k melampaui Vanilla 8k dengan selisih +4.59 pp pada DeepSWE dan +4.49 pp pada CodeMidas Val. Ini membuktikan bahwa dalam RL coding agent, noise pada reward verifier dan residual leakage merusak gradien optimasi secara permanen, sehingga sanitasi lingkungan jauh lebih penting daripada sekadar menambah jumlah repositori mentah.

6. Analisis Trajectory: Bagaimana Perilaku Agen Berubah Selama Pelatihan RL?

Analisis log interaksi agen antara checkpoint awal (early rollouts) dan checkpoint akhir (late rollouts) mengungkap 3 pergeseran perilaku fundamental:

Codebase Exploration
27.2 → 40.1 (+12.9 calls)

Panggilan tool read_file dan search_files sebelum agen melakukan modifikasi kode pertama meningkat sebesar 47.4%. Agen belajar untuk memetakan dependensi sistem terlebih dahulu sebelum tergesa-gesa menulis kode.

Pre-Edit Drafting Ratio
0.358 → 0.629 (+75.7%)

Proporsi cuplikan kode yang telah dirancang terlebih dahulu di dalam Chain-of-Thought (CoT) sebelum dieksekusi melalui tool write_file/patch melonjak signifikan. Agen berpikir lebih mendalam sebelum memanipulasi disk.

Verification Diversity
2.03 → 2.53 (+24.6%)

Jumlah perintah verifikasi mandiri yang berbeda (unit test custom, assertion script temporer, CLI flag check) setelah edit kode terakhir meningkat, menurunkan tingkat submit prematur secara drastis.

7. Cetak Biru untuk Platform Engineering & Autonomous Agent Harness

Bagi tim rekayasa platform yang mengembangkan autonomous coding agent (misalnya Hermes Agent, OpenCode, Claude Code, atau internal AI coding sandbox), CodeMidas menawarkan prinsip-prinsip operasional krusial:

  1. Gunakan Kode Sumber sebagai Basis Task Synthesis: Jangan membatasi pipeline data pada GitHub issues. Sintesis lingkungan dari fungsionalitas publik repositori internal perusahaan untuk menghasilkan ribuan skenario latihan berorientasi bisnis yang spesifik.
  2. Wajibkan Multi-Container Verification: Sebelum memasukkan environment ke dalam antrean RL atau evaluasi agen, jalankan cek determinisme: run awal harus gagal secara konsisten, dan solusi referensi harus lulus 100% tanpa flakiness.
  3. Audit Kebocoran Residu Secara Adversarial: Bersihkan seluruh artifact kompilasi, build cache, dan file temporer. Agen RL memiliki kecenderungan tajam untuk mengeksploitasi celah disk (reward hacking) daripada mempelajari logika algoritma yang diharapkan.

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.