RESEARCH · ZUR AUSGABE

FORSCHUNGSIMPULS · 15. Juli 2026

Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models

Funktionsbewusstes Fill-in-the-Middle-Mid-Training soll Code-Agenten besser auf die Verarbeitung von Tool-Ergebnissen vorbereiten.

WARUM DAS WICHTIG IST

Die Arbeit verbindet eine in gewöhnlichem Code vorhandene Aufrufstruktur mit dem Tool-Loop von Coding Agents und zeigt damit einen praktisch prüfbaren Trainingshebel vor dem agentischen Post-Training.

AI THOR · VISUELLE EINORDNUNG

Vom Forschungsproblem zur praktischen Bedeutung

Aus der vorliegenden Paper-Analyse abgeleitet

01

Ausgangslage

Funktionsbewusstes Fill-in-the-Middle-Mid-Training soll Code-Agenten besser auf die Verarbeitung von Tool-Ergebnissen vorbereiten.

02

Methode

Function-Aware Fill-in-the-Middle

03

Befund

Ganze Funktionen werden anhand von Programmabhängigkeitsgraphen und Komplexitätskriterien maskiert.

04

Anwendung

Funktionsmaskierung in einer bestehenden Mid-Training-Pipeline prototypisch ergänzen.

05

Grenze

Das Mid-Training verwendet ausschließlich Python-Code.

Redaktionelle Strukturvisualisierung von AI THOR; keine Originalabbildung des Papers.

DIE ANALYSE IM DETAIL

Was das Paper Kapitel für Kapitel zeigt.

Die folgenden Abschnitte verdichten die vollständige Paper-Analyse auf Deutsch, ohne die zentralen Argumentationsschritte auszulassen.

01

Abstract

Beschreibt das zentrale Problem, dass Standard-Links-nach-Rechts-Pretraining nur lineare Codefolge abbildet, jedoch nicht die bidirektionale Natur von Funktionsaufrufen und Rückgaben berücksichtigt. Führt die Beobachtung ein, dass die Aktion-Beobachtung-Fortsetzungsschleife eines Coding-Agenten funktional einem Funktionsaufruf entspricht, der durch Programmabhängigkeitsgraphen identifiziert werden kann. Beschreibt die FIM Mid-Training Methode mit Funktion-Maskierung basierend auf doppelter Komplexitäts- und Inferierbarkeitskriterien.

02

Coding-agent step

Erläutert die 4-stufige Zerlegung des Agent-Schritts: Kontext, Funktionsaufruf, Rückgabe, Fortsetzung. Diese Struktur bildet das Grundgerüst für das Mid-Training, indem sie den Codefluss in caller, callee und downstream Konsumenten modelliert.

03

Function-level FIM mid-training (SFT)

Erklärt die Methode der Funktion-Ebene FIM Midtrainings, bei der Funktionen mithilfe eines Programmabhängigkeitsgraphen und zusätzlicher Komplexitätsfilter maskiert werden. Dadurch wird das Modell gezwungen, den maskierten Funktionskörper vorherzusagen, was zu einem besseren Verständnis der Funktionslogik führt.

04

B selected via

Details zur Auswahl der Funktionen B für die Maskierung über ein Verfahren, das Programmabhängigkeitsgraph, Komplexitäts- und Inferierbarkeitskriterien kombiniert, um relevante Funktionssegmente zu identifizieren und als Trainingsziel festzulegen.

05

Iterate over x, delegate per-element

Beschreibt exemplarisch, wie Funktionen iterativ bearbeitet und Teilergebnisse aggregiert werden, was die modellseitige Generalisierung auf komplexe Funktionshierarchien unterstützt.

06

SFT target

Präsentiert die quantitativen Verbesserungen durch das Mid-Training auf den SWE-Bench Benchmarks für verschiedene Modellgrößen (7B, 14B, 8B), mit Zuwächsen von +2.8 bis +5.4 Punkten, was die Effektivität der Methode belegt.

07

SWE-Bench gains across models

Zeigt, dass die Leistungssteigerungen konsistent über verschiedene Modelle und Post-Training-Pipelines hinweg auftreten und dass das Mid-Training die Leistungsabnahme bei nachfolgenden Trainingsphasen mindert.

08

Ping Nie1

Enthält Autoren- und Institutionenangaben sowie Verweise auf die GitHub-Implementierung und Projektseite, um Reproduzierbarkeit und Zugänglichkeit zu gewährleisten.

ABSTRACT IM ORIGINAL LESEN

Coding agents must integrate external tool returns into ongoing reasoning - a capability that standard left-to-right pretraining on code exposes only in its forward direction. We observe that the action-observation-continuation loop of a coding agent is structurally isomorphic to a function call site, where a caller binds arguments, a callee returns a value computed elsewhere, and downstream code consumes that value. This conditioning structure exists at internet scale in ordinary code. We exploit it through function-aware fill-in-the-middle (FIM) mid-training: a self-supervised objective that masks functions selected via program dependency graph analysis and a complexity-inferability double criterion. We mid-train Qwen2.5-Coder-Instruct (7B/14B) and Qwen3-8B on a 2.6B-token decontaminated corpus drawn from 968 GitHub repositories, then apply existing agentic post-training pipelines. Mid-training improves SWE-Bench-Verified by +2.8/+3.0 at 7B/14B and by +3.2 on Qwen3-8B; SWE-Bench-Lite gains are +3.7/+4.0/+5.4 on the same models. The improvement holds across two post-training pipelines (R2E-Gym, SWE-Smith) and on a non-Qwen2.5 base (Qwen3-8B with SWE-Lego). Beyond in-domain gains, mid-training also mitigates the capability erosion that agentic post-training otherwise inflicts on non-agent coding (e.g., LiveCodeBench) and non-coding tool-use benchmarks (tau-bench, BFCL): although the mid-training corpus contains Python code only, the function-call inductive bias survives post-training and yields consistent gains.

DIE KERNPUNKTE

  1. 01

    Ganze Funktionen werden anhand von Programmabhängigkeitsgraphen und Komplexitätskriterien maskiert.

  2. 02

    Die Methode verbessert die Ergebnisse auf SWE-Bench-Verified und SWE-Bench-Lite über mehrere Modellgrößen hinweg.

  3. 03

    Die Verbesserungen treten in mehreren agentischen Post-Training-Pipelines auf.

  4. 04

    Das Mid-Training mindert laut Analyse auch den Fähigkeitsverlust auf nicht-agentischen Code- und Tool-Use-Aufgaben.

  5. 05

    Der zentrale Bias ist die Struktur von Funktionsaufruf, Rückgabewert und nachfolgender Nutzung.

VORGEHEN

  • Function-Aware Fill-in-the-Middle
  • Programmabhängigkeitsgraph-Analyse
  • Self-Supervised Mid-Training
  • Agentisches Post-Training

PRAKTISCHE ANKNÜPFUNGSPUNKTE

  • Funktionsmaskierung in einer bestehenden Mid-Training-Pipeline prototypisch ergänzen.
  • Die Selektion mit Abhängigkeitsgraph und Komplexitätskriterien umsetzen.
  • Vor und nach dem Post-Training mit SWE-Bench sowie nicht-agentischen Code-Aufgaben vergleichen.
  • Die Methode zunächst auf Python validieren und Sprachübertragbarkeit separat testen.

VON DER EINORDNUNG ZUR UMSETZUNG

Was bedeutet das für Ihr Unternehmen?