Про любовь к "лучшим инструментам" и "лучшим моделям" вместо того, чтобы разобраться в инструментах. Can Bölük (security researcher, автор oh-my-pi) за один день улучшил результаты 15 LLM в кодинге. Не менял модель. Не менял промпт. Поменял только edit tool — инструмент, через который модель вносит изменения в файлы. Мне кажется большинство срачей живет потому, что люди до сих пор живут в "магическом мышлении" по поводу ИИ (вот сыну вчера объяснял, как с логами и примерами пофиксить его плагин, сегодня выложил, довольный как слон). Мало кто говорит про harness — обвязку вокруг модели, которая отвечает за то, как модель читает файлы и записывает изменения. А именно там ломается большинство реальных задач. Что сейчас используется: 1) apply_patch (Codex/OpenAI) — модель генерирует diff в специальном формате. Проблема: другие модели этот формат не знают. У Grok 4 failure rate патчей — 50.7%, у GLM-4.7 — 46.2%. Модели нормальные, просто "не говорят на этом языке". 2) str_replace (Claude Code и большинство остальных) — найди точную строку, замени на новую. Модель должна воспроизвести каждый символ включая пробелы. Ошибка "String to replace not found in file" настолько частая, что у неё свой мегатред на GitHub. 3) Cursor вообще обучил отдельную 70B модель, чья единственная задача — правильно применять правки. И даже при этом для файлов до 400 строк полная перезапись файла работает лучше. Что предложил автор — Hashline: Каждая строка файла при чтении получает короткий хеш (2-3 символа): 11:a3|function hello() { 22:f1| return "world"; 33:0e|} Модель ссылается на эти теги при редактировании — "замени строку 2:f1", "вставь после 3:0e". Не нужно воспроизводить старый текст. Если файл изменился — хеши не совпадут, правка отклоняется до того, как что-то сломается. Результаты бенчмарка (16 моделей, 180 задач, 3 прогона): — Grok Code Fast 1: с 6.7% до 68.3% (десятикратный рост!) — MiniMax: больше чем удвоение — Grok 4 Fast: output tokens упали на 61% (перестал сжигать токены на retry loops) — Gemini: +8% к success rate — это больше, чем дают большинство апгрейдов самих моделей — Общий вывод: patch — худший формат почти для всех моделей, hashline матчит или бьёт str_replace А общем, прежде чем менять модель на более дорогую — посмотрите, как устроены инструменты. Часто модель прекрасно понимает задачу, но не может нормально выразить правки через инструмент, который ей дали. https://blog.can.ac/2026/02/12/the-harness-problem/