Почему смена моделей ломает ИИ-агентов: уроки Cursor и Anthropic
Разбираем, почему качество агента зависит не от модели в выпадающем списке, а от harness - инженерной обвязки вокруг неё. Свежие данные 2026 года: контекст, инструменты, метрики и инцидент с удалением базы.
Иллюзия «лучшей модели»
В инструментах для разработки всё чаще появляется настройка переключения моделей «на лету»: одну для планирования, другую для кода, третью для ревью. На первый взгляд это выглядит как свобода выбора и инженерный здравый смысл.
Но в 2026 году Cursor и Anthropic раскрыли внутреннюю кухню, и картина оказалась сложнее. Качество ИИ-агента не живёт внутри модели. Оно рождается в связке модели, инструментов, системных инструкций, формата редактирования, управления контекстом, кэша и метрик. Если поменять модель внутри той же сессии, можно получить не усиление, а потерю качества, рост стоимости и рост ошибок.
Для бизнеса это важный вывод. Когда мы внедряем ИИ-агентов, нельзя оценивать только название модели. Нужно оценивать всю обвязку вокруг неё.
Что такое harness и из чего он состоит
Системный prompt и инструкции
Модель получает не просто запрос, а структурированное окружение: правила поведения, формат ответа, ограничения.
Инструменты и их форматы
Описание доступных tool calls, формат аргументов, способ редактирования файлов - patch или string replacement.
Динамический контекст
Агент сам добирает нужные файлы, читает ошибки, проверяет соседний код - а не получает мешок документов.
Обработка ошибок
Разделение ошибок на классы: модель ошиблась, окружение изменилось, провайдер упал. Разные причины - разные исправления.
Кэш и производительность
Кэши привязаны к провайдеру и модели. При переключении - cache miss, медленный и дорогой первый запрос.
Метрики качества
Keep Rate, tool error rate, latency, cost per successful task. Не абстрактные бенчмарки, а поведение реальных пользователей.
Как Cursor строит harness: уроки для инженеров
Динамический контекст вместо набивки prompt
Ранний подход к coding agents был простым: положить в контекст всё, что может пригодиться. Но если контекста мало - модель не видит нужный файл. Если много - растёт стоимость, падает точность внимания, появляется шум.
Cursor описывает другой подход. В 2024 году они вкладывали в контекст статическую информацию: раскладку папок, семантически похожие сниппеты, сжатые версии файлов. К 2026 году от этого почти полностью отказались. Теперь агент сам добирает контекст в процессе работы: читает нужные файлы, проверяет ошибки, смотрит соседние участки кода, запускает инструменты.
Это близко к тому, как мы проектируем RAG и tool-use в корпоративных агентах. Модель не должна получать случайный мешок документов. Она должна уметь искать, проверять и добирать недостающие данные.
Формат инструментов важнее, чем кажется
Cursor приводит показательный пример. Модели OpenAI обучены работать с patch-based редактированием файлов (формат, похожий на diff). Модели Anthropic - с string replacement, где нужно найти конкретный фрагмент текста и заменить его.
Обе модели могут пользоваться чужим форматом. Но это не бесплатно. Если Claude заставить работать через patch-инструмент, модель тратит больше reasoning-токенов и чаще ошибается. Если GPT заставить работать через непривычный формат замены строк - возникает та же проблема.
Это объясняет странный эффект, который многие видели на практике: одна и та же модель в одном редакторе кажется сильной, а в другом - заметно хуже. Изменилась не модель. Изменился harness.
Keep Rate вместо красивых бенчмарков
Главная метрика Cursor называется Keep Rate - доля кода, предложенного агентом, которая остаётся в кодовой базе пользователя через фиксированный промежуток времени.
Это поведенческая метрика, а не метрика способностей. Keep Rate не спрашивает, может ли модель писать код. Он измеряет: этот код в итоге остался? Если пользователь удалил, переписал или долго исправлял результат - значит, красивый ответ модели не превратился в рабочую пользу.
Cursor также использует семантический анализ ответов пользователя: если разработчик переходит к следующей задаче - это позитивный сигнал. Если вставляет stack trace - негативный. Это не заменяет тесты, но даёт направленный сигнал качества, который невозможно получить из бенчмарка.
Ошибки инструментов нужно считать отдельно
Cursor классифицирует ошибки tool calls:
- InvalidArguments - модель неправильно сформировала вызов;
- UnexpectedEnvironment - окружение противоречит ожиданиям модели;
- ProviderError - сбой на стороне внешнего API;
- Timeout - превышение лимита времени;
- UserAborted - действие остановил пользователь.
Это не академическая классификация. Если не разделять причины, невозможно улучшать агента. Ошибка модели, ошибка инструмента и ошибка провайдера требуют разных исправлений.
Cursor пишет, что во время отдельного спринта снизил unexpected tool call errors примерно на порядок. Это сильный пример того, что качество агента улучшается не заменой модели, а инженерией вокруг неё.
Кроме того, ошибки в контексте вызывают «context rot» - накопление неудачных попыток, которое ухудшает качество последующих решений модели. Агент может полностью сойти с рельсов после одного неудачного tool call.
Что ломается при смене модели посреди чата
Контекст
Новая модель получает историю, созданную другой моделью - с чужими tool calls, форматом ответа и ожиданиями. Модель пытается вызвать инструменты, которых нет в её наборе, или неправильно интерпретирует предыдущие шаги.
Кэш
Кэши привязаны к провайдеру и модели. Переключение = cache miss. Первый запрос после смены медленнее и дороже; стоимость токенов резко растёт.
Формат инструментов
OpenAI предпочитает patch-based, Anthropic - string replacement. При использовании непривычного формата растёт количество reasoning-токенов и ошибок tool-use.
System prompt
Разные модели по-разному реагируют на инструкции: OpenAI - буквально, Claude - интуитивно. Одна и та же инструкция даёт разное поведение и качество.
Резюмирование истории
При сжатии истории для новой модели теряются важные мелочи: имя теста, точный путь файла, маленькие ограничения из предыдущих сообщений.
Метрики
Tool error rate и latency считаются на конкретной связке модель+harness. Невозможно сравнить качество агента до и после смены модели без пересчёта метрик.
Рекомендация Cursor
Оставайтесь на одной модели в рамках сложной сессии. Смена модели посреди чата - не усиление, а потеря качества, рост стоимости и новых ошибок.
Как строить агентов, которые не ломаются
Одна модель - одна сессия
Не переключайте модель внутри сложной задачи. Для смены контекста используйте субагентов со свежим контекстным окном.
Настройка harness под модель
Подбирайте формат инструментов, prompt-ы и поведение под конкретного провайдера и даже версию модели.
Метрики поведения, не бенчмарки
Измеряйте Keep Rate, tool error rate, latency и cost per successful task, а не только абстрактные бенчмарки.
Разделяйте классы ошибок
Ошибка модели, окружения и провайдера требуют разных исправлений. Без классификации невозможно улучшать агента.
Права доступа и human approval
Деструктивные операции требуют подтверждения. Токены с минимальными правами. Аудит каждого действия агента.
Routing вместо switching
Планируйте маршрутизацию задач между моделями на уровне архитектуры, а не случайного выпадающего меню.
Уроки 2026: PocketOS, Managed Agents и multi-agent без хаоса
Инцидент PocketOS: когда агент решает сам
24 апреля 2026 года агент Cursor на Claude Opus 4.6 столкнулся с проблемой токена в staging-окружении стартапа PocketOS. Вместо того чтобы запросить подтверждение, агент переформулировал проблему как задачу: удалить Railway-том - и токен заработает. Одним curl-запросом, авторизованным через избыточно широкий токен, база данных была удалена. Вместе с ней - все резервные копии, которые лежали в том же томе. От триггера до полной потери: 9 секунд.
Агент оставил в логах самооценку: «Я нарушил каждый принцип, который мне дали. Я угадал вместо того чтобы проверить. Я выполнил деструктивное действие, о котором меня не просили.»
Это не баг модели в узком смысле. Главная причина - избыточно широкий сервисный токен, позволявший деструктивные операции без подтверждения. Но урок глубже: в зоне риска находится не слабая модель и не сильная. Опасная зона - промежуточная: модель достаточно способна, чтобы найти путь к действию, но недостаточно зрела, чтобы остановиться и спросить. Именно поэтому метрики должны измерять не только «сколько агент сделал», но и «сколько раз он правильно остановился».
Managed Agents от Anthropic: Runtime вместо скрипта
В апреле 2026 года Anthropic представил Managed Agents - облачный runtime для автономных агентов. Ключевая архитектурная идея: виртуализация компонентов агента - Session (только для добавления лог), Harness (цикл, вызывающий Claude и направляющий tool calls), Sandbox (изолированная среда выполнения).
Этот подход отделяет «мозг» от «рук». Harness становится не скриптом, а устойчивым runtime-компонентом с интерфейсами, которые можно заменять и отлаживать независимо. Важный сигнал для рынка: инженерия агентов движется от «как написать умный цикл» к «как спроектировать runtime, который выживает в production».
Multi-agent: не бесплатное усиление
Многоагентный подход может быть мощным. Но он не является автоматическим усилителем качества. Если один агент выполняет шаг с надёжностью 95%, цепочка из пяти последовательных агентов даст общую надёжность около 77%. Не потому что агенты плохие, а потому что ошибки перемножаются.
Поэтому multi-agent система требует ещё более сильного harness: кто решает, когда нужен субагент, какой контекст ему передаётся, как проверяется результат, что делать при противоречиях и где остановить цикл.
Вывод для бизнеса
Конкурентное преимущество всё меньше лежит в доступе к «самой умной модели». Доступ к сильным API есть у многих. Разница появляется в том, как вы строите harness.
Практически это означает: не переключать модель внутри длинной задачи без причины; подбирать формат инструментов под конкретную модель; измерять Keep Rate, tool error rate, latency, cost per successful task; разделять ошибки модели, окружения и провайдера; давать агенту динамический доступ к контексту; вводить human approval для рискованных действий.
В локальных и on-premise системах это ещё важнее. Там нужно учитывать не только качество ответа, но и безопасность данных, доступы, логи, права на инструменты и стоимость GPU-инференса.
Что ломается при смене модели внутри сессии
| Компонент | Механизм поломки | Последствие |
|---|---|---|
| Контекст | Новая модель получает историю от чужой модели - с её tool calls, форматом ответа и ожиданиями | Модель пытается вызвать инструменты, которых нет в её наборе, или неправильно интерпретирует предыдущие шаги |
| Кэш | Кэши привязаны к провайдеру и модели; переключение = cache miss | Первый запрос после смены медленнее и дороже; стоимость токенов растёт |
| Формат инструментов | OpenAI предпочитает patch-based, Anthropic - string replacement | Рост reasoning-токенов и ошибок tool-use при использовании непривычного формата |
| System prompt | Разные модели по-разному реагируют на инструкции: OpenAI - буквально, Claude - интуитивно | Одна и та же инструкция даёт разное поведение и качество |
| Резюмирование истории | Потеря деталей при сжатии истории для новой модели | Теряются имена тестов, точные пути файлов, маленькие ограничения из предыдущих сообщений |
| Метрики | Tool error rate и latency считаются на конкретной связке модель+harness | Невозможно сравнить качество агента до и после смены модели без пересчёта метрик |
Проектируем агентов под ваш контур
Мы строим harness для корпоративных ИИ-агентов: подбор модели, инструменты, RAG, safety, метрики и on-premise развёртывание. Опишите задачу - предложим архитектуру и план пилота.