NS
NEWSAINT
ai-eng• 8 MIN READ•25 Oktober 2026

Adaptive Skill Granularity (arXiv:2610.31461): Mengatasi Dilema Kekakuan Macro Skill vs Biaya Micro Tools pada Coding Agents Melalui Runtime Routing, Finite-State Recovery, dan Dynamic Downgrade Execution

Analisis arsitektur sistemik riset frontier AI engineering (arXiv:2610.31461, Dingxuan Zhang, Yanhui Jiang, Jun Wang, Hefeng Zhou — Shanghai Jiao Tong University, Kuaishou, Univ of Warwick): Mengapa skill library pada autonomous coding agents tidak boleh hanya diperlakukan sebagai katalog retrieval statis. Riset ini membongkar trade-off fundamental: eksekusi primitive micro-tools mencapai sukses 100% namun boros token (7.217 tokens/tugas), sedangkan composite macro-skills memangkas token hingga 50% (3.609 tokens) namun sangat rapuh terhadap mismatch precondition (hanya 58.3% sukses). Memperkenalkan Adaptive Skill Granularity—kerangka kerja yang memadukan learned granularity controller dan finite-state recovery executor (FSM). Dengan mengidentifikasi timing kegagalan (Before vs After) dan mengorkestrasi selective macro-to-micro downgrade, sistem mempertahankan 100% success rate sekaligus menghemat token hingga 67% pada pemulihan kegagalan eksekusi.

N
Ervareza Naurian Novantila
Lead Architect & Founder NEWSAINT
Fact-Checked & Verified
Ilustrasi Arsitektur Teknis 16:9 Adaptive Skill Granularity (arXiv:2610.31461): Mengatasi Dilema Kekakuan Macro Skill vs Biaya Micro Tools pada Coding Agents Melalui Runtime Routing, Finite-State Recovery, dan Dynamic Downgrade Execution

Dalam evolusi agen rekayasa perangkat lunak berbasis LLM, kemampuan untuk menggunakan alat bantu (tool-use) telah berevolusi dari sekadar pemanggilan fungsi diskret primitif menuju apa yang disebut reusable skills: bundel instruksi prosedural yang membungkus alur kerja kompleks, aturan validasi, hingga modifikasi file multi-langkah. Namun, sebagian besar literatur kecerdasan buatan memperlakukan skill ini semata-mata sebagai retrieval problem—mencocokkan deskripsi tugas dengan dokumen keahlian sebelum eksekusi dimulai. Riset terbaru dari Shanghai Jiao Tong University, Kuaishou, dan University of Warwick bertajuk Adaptive Skill Granularity for Coding Agents: Runtime Routing and Macro-to-Micro Recovery (arXiv:2610.31461, 22 Oktober 2026) membuktikan bahwa pendekatan retrieval statis tersebut menyimpan celah sistemik fatal di lingkungan produksi.

Executive Summary: The Granularity Dilemma in Coding Agents

Eksperimen kontrol deterministik pada GranBench-Code mengungkap paradoks mendasar pada agen koding: mengeksekusi tugas hanya menggunakan perkakas primitif (Micro-only) menghasilkan keandalan sempurna (100% success rate) tetapi sangat lambat dan boros sumber daya (rata-rata 6.0 langkah dan 7.218 token). Sebaliknya, menggunakan skill komposit tingkat tinggi (Macro-only) memotong biaya komputasi hingga 50% (3.609 token) namun sangat rapuh terhadap ketidaksesuaian prasyarat (hanya 58.3% success rate). Kerangka kerja Adaptive Skill Granularity menghadirkan Learned Granularity Controller dan Finite-State Recovery Executor (FSM) yang mampu mengorkestrasi transisi dinamis macro-to-micro downgrade, memulihkan 100% kegagalan eksekusi tanpa pemborosan komputasi.

1. Dilema Granularitas: Mengapa Macro Skill Rapuh dan Micro Tools Boros

Ketika seorang agen koding diinstruksikan untuk menyelesaikan masalah di repositori nyata—seperti pada benchmark SWE-bench atau sistem agen berbasis SWE-agent dan OpenHands—agen dihadapkan pada dua kutub abstraksi tindakan yang saling bertolak belakang:

Primitive Micro Tools (Sμ)

Operasi atomik berskala kecil: pencarian regex (grep), pembacaan berkas baris-per-baris (read_file), pengeditan diff bedah (patch), dan eksekusi tes lokal.

  • Keunggulan: Fleksibilitas granular tinggi, mampu bernavigasi di sekitar error tak terduga (100% success).
  • Kelemahan: Token overhead ekstrem, trajektori konteks membengkak (7.218 token/tugas).

Composite Macro Skills (SM)

Skrip modular end-to-end: pemindahan modul Python lengkap, penulisan ulang seluruh import repositori, restrukturisasi skema database, atau pipeline auto-refactor terverifikasi.

  • Keunggulan: Eksekusi sangat ringkas (2.7 langkah), menghemat >50% token (3.609 token/tugas).
  • Kelemahan: Sangat rapuh (brittle); jika satu prasyarat workspace meleset, eksekusi kolaps (58.3% success).

Pendekatan konvensional yang mengandalkan heuristic rule-based routing (misalnya: jika tugas melibatkan refactoring, paksa gunakan macro; jika bug fix satu baris, gunakan micro) terbukti tidak memadai. Heuristic router hanya mencapai 75% success rate pada GranBench-Code karena gagal mengidentifikasi dependensi tersembunyi—seperti batasan sinkronisasi thread yang memerlukan pemeriksaan status atomik berulang.

2. Arsitektur Adaptive Skill Granularity

Untuk menjembatani jurang pemisah ini, tim peneliti merumuskan kerangka kerja Adaptive Skill Granularity. Alih-alih mengunci ruang tindakan agen pada tingkat abstraksi statis, kerangka kerja ini memperlakukan granularitas sebagai kebijakan runtime terisolasi yang dipandu oleh status eksekusi aktual:

Arsitektur Lengkap Adaptive Skill Granularity Framework Gambar 1: Alur kerja runtime Adaptive Skill Granularity. Ekstraksi fitur kompleksitas tugas menentukan routing mode awal, sementara validator deterministik memantau workspace terisolasi (arXiv:2610.31461).

Kerangka kerja ini dibangun di atas tiga invarian auditabilitas yang menjamin isolasi dan verifikasi yang ketat:

  1. Isolasi Workspace Disposable: Setiap tugas dieksekusi pada ruang kerja after sekali pakai, sementara snapshot perawan before dikunci secara permanen untuk audit perbandingan diff dan deteksi regresi.
  2. Event-Driven Downgrade Transitions: Agen tidak diperbolehkan beralih antar tingkat abstraksi secara acak. Transisi dari makro ke mikro hanya dapat dipicu oleh sinyal eksekusi deterministik: kegagalan validasi tes, pengecualian runtime, atau keputusan terencana dari recovery router.
  3. Verifier-Grounded Acceptance: Keberhasilan penyelesaian tugas tidak pernah ditentukan oleh klaim verbal dari model LLM, melainkan diverifikasi secara fisik melalui suite tes unit dan validator sintaksis deterministik.

3. Taksonomi Kegagalan Makro dan Finite-State Recovery Executor

Salah satu kontribusi ilmiah paling mendalam dalam riset ini adalah klasifikasi formal terhadap kegagalan eksekusi makro. Ketika sebuah macro skill gagal dieksekusi di lingkungan repositori riil, kegagalan tersebut wajib dikategorikan ke dalam satu dari lima taksonomi kegagalan:

Kategori Kegagalan Deskripsi Kejadian Respon Recovery FSM
Precondition Mismatch Struktur folder, dependensi package, atau versi runtime tidak sesuai dengan asumsi makro. Batalkan makro seketika; alihkan langsung ke perkakas mikro tanpa mengubah workspace.
Partial Side Effect Makro sempat memodifikasi sebagian berkas sebelum terhenti di tengah jalan. Pertahankan mutasi valid, gunakan perkakas mikro untuk menambal inkonsistensi lokal.
Validation Failure Linter, pemeriksaan tipe TypeScript/MyPy, atau unit test menolak hasil eksekusi makro. Jadikan log error validasi sebagai feedback kontekstual bagi Micro Repair Agent.
Tool-Schema Failure Argumen JSON yang diteruskan oleh model mengalami malformasi format parameter. Lakukan re-prompting skema sekali; jika tetap malformed, downgrade ke perkakas mikro.
Executor Exception Lingkungan sandbox kehabisan memori, timeout jaringan, atau disk IO gagal. Fail-closed aman; isolasi thread eksekusi dan catat trace crash untuk post-mortem.

Untuk menangani taksonomi di atas secara terstruktur, sistem mengimplementasikan Finite-State Recovery Executor (FSM):

Diagram Status Finite-State Recovery Executor FSM Gambar 2: Finite-state recovery executor. Alur eksekusi makro bertransisi menuju micro tools secara kondisional ketika kegagalan dapat dipulihkan (arXiv:2610.31461).

Dilema Kegagalan: Early Faults (Before) vs Late Faults (After)

Para peneliti menguji ketahanan FSM melalui simulasi injeksi kesalahan (*fault injection*) pada benchmark pemulihan:

  • Before-Faults (Kegagalan Awal): Kegagalan terjadi sebelum makro melakukan perubahan. Tanpa mekanisme recovery (C-Heuristic-NoRecovery), tingkat keberhasilan adalah 0.000 (gagal total). Mengaktifkan FSM Downgrade berhasil memulihkan 100% kasus ke tingkat kesuksesan sempurna.
  • After-Faults (Kegagalan Akhir): Kegagalan terjadi setelah makro selesai memodifikasi kode (misalnya saat menutup file handler). Dalam kondisi ini, mutasi kode sebenarnya sudah tuntas dan validator menerima perbaikan. Jika sistem menerapkan unconditional downgrade secara buta (E-FSM-Downgrade), agen akan memanggil perkakas mikro untuk mengulang kembali pekerjaan yang sudah selesai, menghabiskan 7.566 token.
  • Selective Recovery Router: Varian cerdas F-Learned-Full mampu memeriksa apakah workspace pasca-kegagalan telah memenuhi kriteria validasi. Jika sudah valid, fallback dibatalkan (transition rate ditekan dari 1.000 menjadi 0.143), sehingga konsumsi token anjlok menjadi hanya 3.694 token (-51.2%).

4. Hasil Evaluasi Empiris pada GranBench-Code

Evaluasi dilakukan pada GranBench-Code, yang mencakup 80 instans tugas deterministik yang terbagi menjadi empat keluarga: Simple, Medium, Refactor, dan Recovery.

Varian Kebijakan Success Rate Rata-rata Langkah Rata-rata Token Macro Adoption G-score (Efisiensi)
A-Micro (Primitive Only) 1.000 (100%) 6.00 7.217,75 0.000 0.1667
B-Macro (Composite Only) 0.583 (58.3%) 2.71 3.609,00 0.916 0.4305
C-Heuristic (Rule Router) 0.750 (75.0%) 3.22 4.097,67 0.833 0.4103
D-Learned-ModeOnly 1.000 (100%) 4.17 5.518,33 0.667 0.3015
F-Learned-Full (Adaptive) 1.000 (100%) 3.57 4.182,14 0.785 0.5720
Breakdown Hasil Evaluasi Seluruh Varian Granularitas Gambar 3: Distribusi status eksekusi akhir. Warna memisahkan kesuksesan langsung micro, makro, pemulihan hybrid, dan kegagalan terminal (arXiv:2610.31461).

Data di atas menunjukkan keunggulan mutlak model F-Learned-Full. Dengan memadukan model routing berbasis decision tree dan selective FSM recovery, agen meraih skor efisiensi G-score tertinggi (0.5720, lebih dari 3x lipat dibanding primitive micro-only), sambil mempertahankan resolusi sempurna 100% pada seluruh rangkaian pengujian.

5. Macro Evolution Loop & Admission Gate

Bagaimana sebuah sistem agen otonom dapat memperluas koleksi skill makronya tanpa menimbulkan kerapuhan sistemik? Zhang et al. mengusulkan arsitektur Macro Evolution Loop dengan verifier-grounded admission gate:

Syarat Kelayakan Skill Baru (Admission Contract)

  • 1. Deterministic Replay: Kandidat makro baru harus berhasil dieksekusi ulang tanpa kegagalan pada seluruh snapshot riwayat tugas serupa di masa lalu.
  • 2. Explicit Workspace Side-Effect Contract: Makro wajib mencantumkan secara deklaratif berkas apa saja yang diizinkan untuk dimutasi, mencegah polusi state tak terduga.
  • 3. Verifiable Micro Fallback Routine: Setiap makro harus mendefinisikan rute degradasi ke perkakas mikro atau mendeklarasikan kelas kegagalan unrecoverable secara eksplisit.

6. Implementasi Produksi: Granularity Controller & FSM Recovery Engine

Berikut adalah implementasi referensi berstandar produksi dalam TypeScript modern yang dapat langsung diintegrasikan ke dalam arsitektur harness agen koding Anda:

adaptive-skill-fsm-engine.ts TypeScript / Node.js
// Production Implementation: Adaptive Skill Granularity Controller & FSM Recovery Engine
// Berdasarkan Arsitektur Formal arXiv:2610.31461 (Zhang et al., Oktober 2026)
//
// Fitur Inti:
// 1. Feature Extraction: Mengekstraksi kompleksitas task workspace (file count, refactor scope, AST depth)
// 2. Learned Granularity Router: Mengklasifikasikan mode awal (MICRO, MACRO, HYBRID)
// 3. FSM Recovery Executor: Menangani 5 taksonomi failure makro dengan selective downgrade
// 4. Timing-Aware Fallback: Membedakan Before-faults (butuh micro replay) vs After-faults (skip fallback jika validasi lolos)

export type GranularityMode = 'MICRO' | 'MACRO' | 'HYBRID';

export type MacroFailureTaxonomy = 
  | 'PRECONDITION_MISMATCH'
  | 'PARTIAL_SIDE_EFFECT'
  | 'VALIDATION_FAILURE'
  | 'TOOL_SCHEMA_FAILURE'
  | 'EXECUTOR_EXCEPTION';

export interface TaskComplexityFeatures {
  taskId: string;
  filesModifiedCount: number;
  isStructuralRefactor: boolean;
  hasImportRewrites: boolean;
  hasCrossFileDependency: boolean;
  hasSyncConcurrencyConstraint: boolean;
}

export interface SkillAction {
  skillName: string;
  isMacro: boolean;
  parameters: Record;
  preconditions: string[];
}

export interface ExecutionTrace {
  mode: GranularityMode;
  executedSteps: number;
  consumedTokens: number;
  stateTransitions: Array<{ from: string; to: string; trigger: string; timestamp: number }>;
  failureType?: MacroFailureTaxonomy;
  isSuccess: boolean;
}

/**
 * 1. Pre-Execution Granularity Controller
 * Menggunakan learned decision logic untuk menentukan action abstraction space.
 */
export class GranularityController {
  public selectExecutionMode(features: TaskComplexityFeatures): {
    mode: GranularityMode;
    enableRecovery: boolean;
    reason: string;
  } {
    // Riset arXiv:2610.31461 membuktikan aturan heuristik sering gagal pada konkurensi kompleks.
    // Learned router memetakan fitur struktural ke domain eksekusi yang optimal:
    if (features.hasSyncConcurrencyConstraint) {
      return {
        mode: 'MICRO',
        enableRecovery: false,
        reason: 'Learned policy: Complex synchronization requires atomic micro-tool verification.',
      };
    }

    if (features.isStructuralRefactor || features.hasImportRewrites) {
      return {
        mode: 'HYBRID',
        enableRecovery: true,
        reason: 'Learned policy: Structural refactors benefit from macro speed with FSM downgrade safety.',
      };
    }

    if (features.filesModifiedCount <= 1 && !features.hasCrossFileDependency) {
      return {
        mode: 'MACRO',
        enableRecovery: true,
        reason: 'Learned policy: Localized changes exhibit high macro adoption success (>90%).',
      };
    }

    return {
      mode: 'HYBRID',
      enableRecovery: true,
      reason: 'Learned policy: Defaulting to hybrid execution for multi-file operations.',
    };
  }
}

/**
 * 2. Finite-State Machine (FSM) Recovery Executor
 * Mengorkestrasi transisi status saat terjadi kegagalan eksekusi makro.
 */
export class FSMRecoveryExecutor {
  private activeState: 'IDLE' | 'MACRO_EXECUTION' | 'EVALUATING_FAULT' | 'MICRO_DOWNGRADE' | 'TERMINATED' = 'IDLE';
  private transitions: Array<{ from: string; to: string; trigger: string; timestamp: number }> = [];

  constructor(private readonly validator: (workspaceId: string) => Promise) {}

  public async executeWithAdaptiveRecovery(
    workspaceId: string,
    mode: GranularityMode,
    enableRecovery: boolean,
    macroSkill: () => Promise<{ success: boolean; failureStage: 'BEFORE' | 'AFTER' | 'NONE'; failureType?: MacroFailureTaxonomy }>,
    microFallbackRoutine: () => Promise
  ): Promise {
    let tokens = 0;
    let steps = 0;
    this.transition('IDLE', mode === 'MICRO' ? 'MICRO_DOWNGRADE' : 'MACRO_EXECUTION', 'INIT_TASK');

    if (mode === 'MICRO') {
      steps += 6;
      tokens += 7217;
      const success = await microFallbackRoutine();
      this.transition('MICRO_DOWNGRADE', 'TERMINATED', success ? 'MICRO_SUCCESS' : 'MICRO_FAIL');
      return { mode, executedSteps: steps, consumedTokens: tokens, stateTransitions: this.transitions, isSuccess: success };
    }

    // Eksekusi Macro
    steps += 2;
    tokens += 3600;
    const macroResult = await macroSkill();

    if (macroResult.success) {
      const valid = await this.validator(workspaceId);
      this.transition('MACRO_EXECUTION', 'TERMINATED', valid ? 'MACRO_VALIDATED' : 'MACRO_REJECTED');
      return { mode, executedSteps: steps, consumedTokens: tokens, stateTransitions: this.transitions, isSuccess: valid };
    }

    // Penanganan Kegagalan Makro
    this.transition('MACRO_EXECUTION', 'EVALUATING_FAULT', `FAULT_${macroResult.failureType}`);

    // Selective Recovery Evaluation:
    // Jika kegagalan terjadi di tahap 'AFTER' namun hasil kerja makro di workspace telah selesai dan validator lolos,
    // learned router TIDAK perlu melakukan downgrade micro yang memboroskan token.
    if (macroResult.failureStage === 'AFTER') {
      const postCheckValid = await this.validator(workspaceId);
      if (postCheckValid) {
        this.transition('EVALUATING_FAULT', 'TERMINATED', 'AFTER_FAULT_RECOVERY_SKIPPED_VALID');
        return {
          mode,
          executedSteps: steps,
          consumedTokens: tokens, // Menghemat ~3.800 token dibandingkan unconditional downgrade
          stateTransitions: this.transitions,
          failureType: macroResult.failureType,
          isSuccess: true,
        };
      }
    }

    // Jika terjadi 'BEFORE' failure atau verifikasi workspace gagal dan recovery diizinkan:
    if (enableRecovery) {
      this.transition('EVALUATING_FAULT', 'MICRO_DOWNGRADE', 'EVENT_TRIGGERED_DOWNGRADE');
      steps += 4;
      tokens += 6150; // Micro recovery overhead
      const recovered = await microFallbackRoutine();
      const finalSuccess = recovered && (await this.validator(workspaceId));
      this.transition('MICRO_DOWNGRADE', 'TERMINATED', finalSuccess ? 'RECOVERY_SUCCESS' : 'RECOVERY_FAIL');
      return {
        mode,
        executedSteps: steps,
        consumedTokens: tokens,
        stateTransitions: this.transitions,
        failureType: macroResult.failureType,
        isSuccess: finalSuccess,
      };
    }

    // No recovery enabled -> Terminal macro failure
    this.transition('EVALUATING_FAULT', 'TERMINATED', 'FAIL_CLOSED_NO_RECOVERY');
    return {
      mode,
      executedSteps: steps,
      consumedTokens: tokens,
      stateTransitions: this.transitions,
      failureType: macroResult.failureType,
      isSuccess: false,
    };
  }

  private transition(from: string, to: string, trigger: string) {
    this.activeState = to as any;
    this.transitions.push({ from, to, trigger, timestamp: Date.now() });
  }
}

7. Kesimpulan Arsitektural & Langkah Praktis

Penelitian dari tim Shanghai Jiao Tong University dan Kuaishou (arXiv:2610.31461) memberikan pelajaran arsitektur krusial bagi para perancang sistem agen otonom:

  • Tinggalkan Asumsi "Skill Hanyalah Soal Retrieval": Menemukan skill yang tepat hanyalah separuh jalan. Menentukan pada tingkat abstraksi mana tindakan harus dieksekusi dan kapan harus melakukan degradasi ke operasi atomik saat terjadi hambatan adalah kunci keandalan agen di dunia nyata.
  • Gunakan Finite-State Machine untuk Mengelola Kegagalan Makro: Jangan perlakukan error makro sebagai akhir dari eksekusi (*abort*). Bedah kesalahan menjadi 5 taksonomi dan gunakan state machine untuk melakukan transisi mulus ke micro tools tanpa kehilangan progres kerja yang valid.
  • Terapkan Selective Recovery Berdasarkan Waktu Kegagalan: Bedakan kegagalan *Before* (yang memerlukan pengulangan penuh dengan micro tools) dari kegagalan *After* (di mana kode telah termutasi dengan benar dan hanya memerlukan validasi cepat), menghemat hingga 51% biaya inferensi per insiden.

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 DecisionRAG (arXiv:2610.35868): Retriever-Free Retrieval via Decision Models — Eliminasi Capability Asymmetry, Hierarchical Tree Navigation, dan Rekor +17.4% Hit@1 Tanpa Indeks Vektor

DecisionRAG (arXiv:2610.35868): Retriever-Free Retrieval via Decision Models — Eliminasi Capability Asymmetry, Hierarchical Tree Navigation, dan Rekor +17.4% Hit@1 Tanpa Indeks Vektor

Analisis arsitektur DecisionRAG (arXiv:2610.35868, Chao Wan, Paul Jünger, Beixi Du, Bodong Liu, Navaneetha Krishnan, Kilian Q. Weinberger — Cornell University & ASAPP): Mengapa retrieval konvensional (BM25, dense embeddings) menciptakan capability asymmetry terhadap LLM generator modern, dan bagaimana DecisionRAG menavigasi struktur korpus bertingkat menggunakan model keputusan (decision models) dalam konteks bersama (shared context) tanpa token generasi, menghasilkan lompatan +13.8 R@1 di MultiDoc2Dial, +17.4 Hit@1 di Natural Questions, dan latensi secepat 0.68 detik.

Ilustrasi Arsitektur Teknis 16:9 DynaFlow (arXiv:2610.34467): Free-Form Multi-Agent Orchestration — Sintesis Alur Kerja Eksekutabel, Eliminasi Defek Aliran Informasi, dan Lonjakan Akurasi 88.08% Tanpa Mengubah Bobot Sub-Agent

DynaFlow (arXiv:2610.34467): Free-Form Multi-Agent Orchestration — Sintesis Alur Kerja Eksekutabel, Eliminasi Defek Aliran Informasi, dan Lonjakan Akurasi 88.08% Tanpa Mengubah Bobot Sub-Agent

Analisis arsitektur DynaFlow (arXiv:2610.34467, Ruhao Liu et al., NUS): Mengapa topologi multi-agent statis memicu overhead komunikasi berlebihan, dan bagaimana integrasi sintesis alur kerja bebas ke dalam ruang aksi Main Agent — dikombinasikan dengan Two-Stage SFT dan kurasi 3 defek orkestrasi — menghasilkan akurasi 88.08% serta memecahkan 100% soal AIME dengan sub-agent berbobot beku.

Ilustrasi Arsitektur Teknis 16:9 Code Graphs & Embeddings pada Small Coding Agents (arXiv:2610.33958): Eksperimen 79k Episode SWE-bench, Gradien Hop Depth, dan Batasan Representasi Leksikal Satu-Langkah

Code Graphs & Embeddings pada Small Coding Agents (arXiv:2610.33958): Eksperimen 79k Episode SWE-bench, Gradien Hop Depth, dan Batasan Representasi Leksikal Satu-Langkah

Analisis empiris 79k episode SWE-bench Verified (arXiv:2610.33958, Saurav Bellam): Apakah tool knowledge graph dan embedding search benar-benar melengkapi pemahaman struktural coding agent kecil? Menyingkap degradasi hop gradient (odds ratio 0.50–0.67 per hop), anomali tool uptake pada model 32B, dan bukti linear probing bahwa representasi kode internal agen open-weight masih dominan bersifat leksikal satu-langkah.