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.

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.
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:
"""
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:
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.
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.
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:
- 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.
- 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.
- 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
- [1]CodeMidas: Scaling Agentic Coding RL Environments from Code Itself(arXiv:2609.22068 [cs.AI] — Bowen Ye, Lei Li, Shicheng Li, Zihao Yue, Linghao Zhang, Hanglong Lv, Yuanxin Liu, Wenhan Ma, Hao Tian, Rang Li, Jinhao Dong, Yikai Zhao, Xiangwei Deng, Hailin Zhang, Liang Zhao, Qi Liu, Lingpeng Kong, Tong Yang, Fuli Luo (Xiaomi LLM Core, PKU, HKU, RUC))
- [2]DeepSWE: Evaluating and Training Coding Agents on Real-World Software Engineering(arXiv / Tsinghua University & ModelBest (Huang & Jiang, 2026))
- [3]ProgramBench: Benchmarking Program Synthesis and Whole-Program Construction for LLM Agents(arXiv / Peking University & Shanghai AI Lab (Yang et al., 2026))
- [4]Terminal-Bench v2.1: Benchmarking Autonomous Agents in Realistic Terminal Environments(arXiv / Stanford University & UC Berkeley (Merrill et al., 2026))
- [5]SWE-bench Pro: Can Language Model Agents Solve Difficult Production Software Engineering Issues?(arXiv / Princeton University & Scale AI (Deng et al., 2026))
- [6]Harness Engineering 2026: Anatomi Sumber Kode 11 Production Coding Agents(arXiv:2609.00006 / NEWSAINT Systems Architecture Review)
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

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.

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.

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.