Функционально-осознанное заполнение середины как промежуточное обучение для фундаментальных моделей агентов кодирования
Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models
July 14, 2026
Авторы: Yubo Wang, Jiarong Liang, Yuxuan Zhang, Xuye Liu, Cong Wei, Yuyu Zhang, Ping Nie, Wenhu Chen
cs.AI
Аннотация
Кодирующие агенты должны интегрировать результаты внешних инструментов в текущий процесс рассуждений — способность, которую стандартное предварительное обучение на коде слева направо раскрывает только в прямом направлении. Мы наблюдаем, что цикл «действие-наблюдение-продолжение» кодирующего агента структурно изоморфен месту вызова функции, где вызывающий связывает аргументы, вызываемый возвращает значение, вычисленное в другом месте, а последующий код потребляет это значение. Эта структура обусловленности существует в обычном коде в масштабе интернета. Мы используем её через промежуточное обучение с заполнением середины, учитывающее функции (FIM): это самообучаемая цель, которая маскирует функции, отобранные с помощью анализа графа зависимостей программы и двойного критерия сложности и выводимости. Мы проводим промежуточное обучение Qwen2.5-Coder-Instruct (7B/14B) и Qwen3-8B на очищенном корпусе из 2,6 миллиарда токенов, полученном из 968 репозиториев GitHub, а затем применяем существующие конвейеры постагентного обучения. Промежуточное обучение улучшает показатели SWE-Bench-Verified на +2,8/+3,0 для моделей 7B/14B и на +3,2 для Qwen3-8B; прирост на SWE-Bench-Lite составляет +3,7/+4,0/+5,4 для тех же моделей. Улучшение сохраняется на двух конвейерах постагентного обучения (R2E-Gym, SWE-Smith) и на базе, отличной от Qwen2.5 (Qwen3-8B с SWE-Lego). Помимо прироста внутри домена, промежуточное обучение также смягчает эрозию способностей, которую в противном случае агентное постагентное обучение вызывает в неагентском кодировании (например, LiveCodeBench) и не связанных с кодированием тестах на использование инструментов (tau-bench, BFCL): хотя корпус промежуточного обучения содержит только код Python, индуктивное смещение вызовов функций сохраняется после постагентного обучения и даёт последовательный прирост.
English
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.