Paper 2607.12463
Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models
- Published
- Jul 2026
- Research lab
- Independent
- Citations
- 0
- GitHub
- 18 stars
01 In brief
Summary
This paper introduces function-aware fill-in-the-middle (FIM) mid-training to improve coding agent foundation models.
The authors observe that a coding agent's action-observation-continuation loop is structurally similar to a function call site, and they exploit this by masking functions selected via program dependency graph analysis and a complexity-inferability double criterion.
They mid-train Qwen2.5-Coder-Instruct (7B/14B) and Qwen3-8B on a 2.6B-token decontaminated corpus 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 +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).
Mid-training also mitigates capability erosion on non-agent coding (e.g., LiveCodeBench) and non-coding tool-use benchmarks (τ-bench, BFCL), despite the corpus containing only Python code.
Ablations show the function-selection algorithm is the dominant lever, and multi-function masking helps.
The authors release the corpus, selection pipeline, and checkpoints.
02 From the paper
Abstract
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.