3,583 papers
arXiv:2607.21674 71 23 июля 2026 г. FREE

Формат ответа × модель: почему «перепиши всё» и «покажи только правку» дают разный результат у разных LLM

КЛЮЧЕВАЯ СУТЬ
Одна модель, одна задача — но 94% точности с одним форматом ответа и всего 27% с другим. Формат ответа (полная перезапись, список правок или diff) — не мелочь настройки, а рычаг, способный утроить шанс на успешную правку. Метод позволяет подобрать формат под конкретную модель и получать точные исправления без лишних изменений. Модель правильно понимает что чинить, но если формат разрешает переписать всё — она переписывает всё: правка одной строки превращается в переписанный файл на 271 строку.
Адаптировать под запрос

TL;DR

Когда вы просите LLM исправить что-то в коде или тексте, формат ответа, который вы требуете, — не мелочь, а рычаг, который может утроить шанс на успех. Исследователи прогнали три модели через три способа выдачи правки — полная перезапись файла, точечный патч (список конкретных изменений) и diff (построчные изменения) — и обнаружили: у каждой модели свой любимый формат, и универсального победителя нет.

Главная находка: модели правильно понимают, что нужно исправить, но при формате «перепиши всё целиком» иногда меняют слишком много — даже если требовалась правка одной строки, модель переписывает весь файл на 271 строку. Диагноз верный, масштаб исполнения — избыточный. Это классическая слабость LLM: если формат ответа разрешает «переписать всё», модель этим воспользуется, даже когда не нужно.

Решение простое: формат ответа нужно подбирать под конкретную модель и явно ограничивать масштаб правки в промпте — просить не «перепиши файл», а «покажи только изменённый фрагмент, не трогай остальное».


🔬

Схема метода

ШАГ 1: Определи тип задачи — точечная правка или масштабная переработка
ШАГ 2: Выбери формат ответа: полная замена / список конкретных изменений / diff-подобный текст
ШАГ 3 (опционально): протестируй 2-3 формата на одной задаче и сравни точность результата
ШАГ 4: Явно ограничь масштаб в промпте — "не переписывай остальное"

Все шаги — в одном промпте, без отдельных запросов.


🚀

Пример применения

Задача: У вас Python-скрипт для парсинга Excel-отчётов (часто пишут в Claude/ChatGPT для автоматизации отчётности). Скрипт падает с ошибкой на одной строке при обработке пустых ячеек.

Промпт (рискованный вариант — полная перезапись):

Вот скрипт: [код]
Ошибка: TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' в строке 47
Перепиши файл с исправлением.

Промпт (рекомендуемый вариант — ограничение масштаба):

Вот скрипт: [код]
Ошибка: TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' в строке 47

Не переписывай весь код. Покажи только строки, которые нужно изменить, 
в формате "было → стало". После каждой правки — одно предложение, 
почему это исправляет ошибку. Остальной код не трогай.

Результат: В первом варианте модель может «заодно» переписать соседние функции, поменять стиль кода или ввести случайные изменения в несвязанных местах — риск тем выше, чем крупнее файл. Во втором варианте вы получите короткий, сфокусированный ответ: 1-2 строки правки и объяснение, что резко снижает шанс незаметных побочных изменений.


🧠

Почему это работает

Слабость LLM: если формат ответа разрешает «переписать всё», модель охотно этим пользуется — даже когда правильно понимает, что менять нужно только маленький кусок. Диагноз точный, а масштаб исполнения — избыточный, потому что формат не ограничивает её "аппетит".

Сильная сторона LLM: модель хорошо следует явному формату, если вы его чётко задали. Попросите «только изменённые строки» — получите только их. Попросите «diff» — получите построчные +/- изменения.

Метод использует это простым способом: явное сужение формата в промпте заставляет модель фокусироваться на нужном фрагменте, а не «улучшать» всё вокруг заодно.

Рычаги управления: - Формат ответа (полная версия / список правок / diff) → для точечных задач сужай формат, для масштабной переработки — можно оставить полную версию. - Явное ограничение scope ("не трогай остальное") → снижает риск лишних изменений в несвязанных местах текста/кода. - Тестирование формата на конкретной модели → то, что хорошо работает в одной LLM, может провалиться в другой — стоит проверить 2-3 варианта перед тем как выбрать привычный формат для регулярных задач.


📋

Шаблон промпта

Вот текущий {текст/код}: {контент}

Нужно исправить: {проблема}

Важно: не переписывай {текст/код} целиком. Покажи только конкретные 
изменения в формате "было → стало" для каждого фрагмента. 
Остальные части не трогай.

Подставь: {текст/код} — что редактируешь, {контент} — сам материал, {проблема} — что не так и что нужно исправить.


⚠️

Ограничения

⚠️ Формат-специфичность зависит от модели: нет универсального совета "всегда проси diff" или "всегда проси список правок" — то, что даёт 94% точности у одной модели, у другой даёт 27%. Нужно проверять формат под конкретную модель, которой вы пользуетесь.

⚠️ Успех — это "прошло тесты", не "качественно": в исследовании успех означал, что код прошёл автоматическую проверку. Это не гарантирует, что результат идеально хорош — для текстов и документов аналог "проверки" у вас не автоматизирован, придётся проверять глазами.

⚠️ Структура материала важнее формата: если текст/код — монолитный, сильно связанный кусок (как один большой файл без разделения на модули), даже правильный формат ответа может не спасти — модель склонна переписывать всё целиком.


🔍

Как исследовали

Исследователи взяли три языковые модели (DeepSeek, Doubao, Qwen) и прогнали их через три формата вывода на реальных open-source проектах — больше 4000 попыток правки кода. Сравнивали, сколько попыток заканчивались успехом (код проходил тесты), и проверяли результат строгими статистическими тестами.

Любопытная деталь: из четырёх протестированных проектов только один вообще давал успешные решения — на остальных трёх (2551 попыток) успех был нулевым, независимо от модели и формата. Это говорит, что структура проекта — насколько код разбит на независимые модули — важнее формата ответа модели.

На проекте, где успех был, разница между форматами оказалась огромной: одна модель показала рост с 27% до 94% успеха просто от смены формата вывода — без единого изменения в самой модели или задаче. Это и есть главный вывод: формат ответа — это скрытый переключатель качества, который стоит проверить перед тем как доверять модели рутинную правку.


🔗

Ресурсы

Yang Yang, «Output Format × Model Identity: Interaction Effects in Single-Round Coding Agent Performance», июль 2026. Данные и шаблоны опубликованы авторами для воспроизводимости.


📋 Дайджест исследования

Ключевая суть

Одна модель, одна задача — но 94% точности с одним форматом ответа и всего 27% с другим. Формат ответа (полная перезапись, список правок или diff) — не мелочь настройки, а рычаг, способный утроить шанс на успешную правку. Метод позволяет подобрать формат под конкретную модель и получать точные исправления без лишних изменений. Модель правильно понимает что чинить, но если формат разрешает переписать всё — она переписывает всё: правка одной строки превращается в переписанный файл на 271 строку.

Принцип работы

Правило простое: для точечной правки сужай формат до списка изменений или diff. Для масштабной переработки можно оставить полную перезапись. У модели нет тормозов на аппетит — если формат разрешает переписать всё, она перепишет всё, даже если просили исправить одну строку. Формат ответа работает как ограничитель зоны действия, а не как стиль оформления.

Почему работает

Диагноз у модели точный — она верно видит, что и где чинить. Проблема в масштабе исполнения: без явного ограничения модель заодно трогает соседние функции, меняет стиль, вносит случайные правки в других местах. Зато у LLM есть сильная сторона — она хорошо следует чётко заданному формату. Попросишь diff — получишь построчные плюс-минус изменения. Попросишь только правки — получишь только их. Проблема не в понимании задачи, а в отсутствии рамок для исполнения — и эти рамки задаёт именно формат ответа.

Когда применять

Правки кода и текста → конкретно для точечных исправлений (один баг, одна ошибка), особенно когда файл большой и есть риск случайных побочных изменений в несвязанных местах. НЕ подходит для монолитных файлов без разделения на модули — там даже правильный формат не спасёт от переписывания всего целиком.

Мини-рецепт

1. Определи масштаб задачи: точечная правка одной строки или полная переработка файла
2. Выбери формат ответа: полная замена, список правок "было → стало" или diff с построчными изменениями
3. Протестируй на новой модели: прогони 2-3 формата на одной задаче, сравни точность — то что работает у одной LLM, может провалиться у другой
4. Ограничь масштаб прямо в тексте промпта: добавь фразу "не переписывай остальное, покажи только изменённый фрагмент"

Примеры

[ПЛОХО] : Вот скрипт: [код]. Ошибка TypeError в строке 47. Перепиши файл с исправлением.
[ХОРОШО] : Вот скрипт: [код]. Ошибка TypeError в строке 47. Не переписывай весь код. Покажи только строки для изменения в формате "было → стало", после каждой правки — одно предложение почему это чинит ошибку. Остальной код не трогай.
Источник: Output Format x Model Identity: Interaction Effects in Single-Round Coding Agent Performance
ArXiv ID: 2607.21674 | Сгенерировано: 2026-07-27 08:22

Проблемы LLM

ПроблемаСутьКак обойти
Модель переписывает лишнее, если формат это разрешаетПросишь исправить одну строку. Формат ответа — "перепиши весь файл". Модель меняет и соседний код, стиль, вносит случайные правки в несвязанных местах. Диагноз верный — модель знает что не так. Но масштаб исполнения избыточный — трогает то, что не просили. Работает и для кода, и для текстов, документов, любой правкиЯвно ограничивай масштаб в запросе: "покажи только изменённые строки в формате 'было стало', остальное не трогай". Не давай формат, который разрешает переписать всё целиком

Методы

МетодСуть
Сужение формата ответа под точечную задачуВместо "перепиши файл целиком" проси конкретный узкий формат: список правок "было стало" или построчные изменения. Не переписывай весь текст. Покажи только фрагменты, которые меняются. Остальное не трогай. Почему работает: модель хорошо следует явно заданному формату. Если формат сам себя ограничивает (только правки, не полный текст) — у модели физически нет "разрешения" менять остальное. Работает: точечные правки, баг-фиксы, короткие изменения. Не работает: материал сильно связан внутри и правку нельзя выделить отдельно от контекста — тогда модель всё равно переписывает много
📖 Простыми словами

Output Format xModelIdentity: Interaction Effects in Single-Round CodingAgentPerformance

arXiv: 2607.21674

Когда ты просишь нейронку поправить баг в коде, ты подсознательно ждешь, что она просто «сделает нормально». Но на деле результат на 70% зависит не от того, насколько умная модель, а в какую форму ты заставляешь её упаковать ответ. Исследователи выяснили, что формат вывода — это не просто обертка, а жесткий ограничитель когнитивных способностей AI. Если заставить модель переписывать весь файл целиком, она начинает «плыть» и плодить новые ошибки там, где всё работало, просто потому что её внимание размазывается по огромному полотну текста.

Это как если бы ты попросил соседа поправить одну покосившуюся штакетину в заборе, а он в ответ снес бы весь забор и начал строить его заново из тех же досок. Вроде работа сделана, но пока он пересобирал конструкцию, он забыл прибить пару других досок или поставил их криво. В программировании это называется избыточностью: когда формат позволяет модели «болтать» лишнее, она неизбежно лажает. Точечный патч или diff-формат работают как хирургический скальпель — они заставляют AI сфокусироваться на больном месте, не трогая здоровые ткани.

В ходе тестов прогнали три разных подхода: полная перезапись, точечный патч (список конкретных правок) и diff (построчное сравнение «было-стало»). Выяснилось, что универсальной таблетки нет: у каждой модели свой «фетиш». Одна модель расцветает на лаконичных патчах, другая — тупит, если не видит контекста всей функции. Главный инсайт в том, что формат ответа может утроить шансы на успех, если угадать с предпочтениями конкретной «мозговитой» железки.

Представь, что у тебя есть Python-скрипт для парсинга отчетов, который падает на пустых ячейках. Ты можешь просто сказать «исправь ошибку», и модель вывалит тебе 200 строк кода, в которых легко потерять нить. Но если внедрить строгий формат вывода, например, требовать только блок изменений, вероятность того, что скрипт заработает с первого раза, взлетает до небес. Этот принцип GEO для кода работает везде: от простых скриптов до сложных систем, где цена ошибки — упавший сервер.

Короче: хватит надеяться на «авось поймет» — нужно жестко диктовать формат правки под конкретную модель. 10 из 15 провалов случаются не из-за тупости AI, а из-за того, что формат ответа позволил ей уйти в самодеятельность. Если хочешь чистый код без галлюцинаций, заставляй модель работать хирургически, ограничивая её аппетит к переписыванию всего подряд. Кто научится подбирать правильный «ключ» к формату вывода, тот перестанет тратить часы на дебаг помощи от нейронки.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с