
«Программы должны писаться, прежде всего, для того, чтобы их читали люди, и лишь во вторую очередь — для выполнения машинами», — Гарольд Абельсон
Курсор мигал в моем терминале, будто насмехался надо мной. Я только что потратил два часа на борьбу с коварным багом управления состоянием в приложении React Native, а мой ИИ-помощник по написанию кода галлюцинировал, выдавая ложные решения быстрее, чем я успевал набрать «git reset — hard». Именно тогда я заметил обновление в логе изменений: только что вышла версия Claude Code v2.1.68. Ultrathink вернулся.
Я напрягся, читая примечания к релизу. Дверь к истинному агентскому программированию снова приоткрылась. Я склонился над клавиатурой, сжимая кофейную чашку; сердце колотилось от знакомого гиковского предвкушения, сопротивлявшегося скептицизму разработчика. Сможет ли Ultrathink, возрожденный в Claude Code, наконец-то преодолеть разрыв между «полезным автозаполнением» и «автономным инженером-партнером»?
Опираясь на исследования больших моделей рассуждений (LRM) и собственные ночные сессии программирования, я решил подвергнуть Ultrathink суровому испытанию. То, что я обнаружил, кардинально изменило мое представление о том, как будет создаваться программное обеспечение в 2026 году.
Анатомия возвращенной возможности
Согласно недавнему исследованию компании Anthropic, возможности расширенного мышления — огромный скачок в решении задач с помощью искусственного интеллекта. Но отбросим академический жаргон. Что это означает для нас, работающих на передовой разработки ПО?
В режиме расширенного мышления Claude 3.7 Sonnet, по сути, применяет последовательные вычисления на этапе тестирования. Он не просто выдает первый найденный синтаксически правильный фрагмент кода. Он запускает последовательный процесс рассуждений, наслаивая вычислительные ресурсы по мере изучения возможных решений, оценки крайних случаев и отбраковки некорректной логики, прежде чем показать вам хотя бы одну строку кода.
В более ранних версиях этот режим «High Effort» был установлен по умолчанию, что привело к неожиданной проблеме: Claude все переусложнял. Стоило его попросить переименовать переменную, как он погружался в философские дебри, поглощая токены и терпение. Сообщество взбунтовалось, и Anthropic временно отключила эту возможность. Теперь она вернулась, но с важным усовершенствованием. Opus 4.6 по умолчанию работает в режиме средней интенсивности для подписчиков Max и Team. Но когда вы заходите в тупик, можете явно вызвать Ultrathink. Чтобы ощутить разницу, сравните две ситуации: одно дело — попросить младшего разработчика исправить опечатку, и совсем другое — попросить старшего архитектора переработать схему базы данных.
Столкновение в реальном мире: миграция устаревшего кода
Для тестирования этой возможности я не хотел брать простую задачу. Мне нужен был испытательный полигон в реальных условиях. Я был уверен: битву с долгом устаревшего кода можно выиграть, но только вооружившись инструментами, способными справиться с суровой реальностью корпоративных систем.
В качестве объекта для тестирования я взял монолитный, недокументированный Python-конвейер, отвечающий за агрегацию беспорядочных финансовых данных. Задача состояла в том, чтобы преобразовать этот неустойчивый скрипт в модульную, тестируемую архитектуру с использованием современных асинхронных шаблонов.
Я запустил Claude Code и подключил Ultrathink.
Вместо того чтобы сразу же генерировать код, Claude сделал паузу. Пользовательский интерфейс показывал, что он расходует токены на размышление. Он читал весь каталог, отслеживал зависимости и составлял карту потока данных. Когда он наконец ответил, выдал мне не скрипт, а стратегию. Он выявил в существующем коде условие гонки, которое я даже не заметил. Он предложил поэтапный план миграции с механизмами отката.
Вот небольшой фрагмент кода на Python, который он сгенерировал для основного асинхронного обработчика:
import asyncio
import logging
from typing import List, Dict, Any
logger = logging.getLogger(__name__)
async def process_batch_with_backoff(
batch: List[Dict[str, Any]],
semaphore: asyncio.Semaphore,
max_retries: int = 3
) -> List[Dict[str, Any]]:
results = []
for record in batch:
async with semaphore:
retries = 0
while retries < max_retries:
try:
processed = await process_record(record)
results.append(processed)
break
except RateLimitError:
wait_time = 2 ** retries
logger.warning(f"Rate limited. Backing off for {wait_time}s.")
await asyncio.sleep(wait_time)
retries += 1
except Exception as e:
logger.error(f"Failed to process record {record['id']}: {e}")
break
return results
Это не просто генерирование кода — это архитектурное сотрудничество. Как недавно отметил Эдди Османи в обзоре рабочего процесса 2026 года, мы переходим от роли дирижеров к роли оркестраторов. Мы предоставляем спецификацию и контекст, а ИИ берет на себя всю тяжелую работу.
Иллюзия мышления против истинной силы агентов
Недавняя статья Apple Machine Learning Research под названием «Иллюзия мышления» представляет собой отрезвляющую альтернативную точку зрения на большие модели рассуждений. Исследователи обнаружили, что при превышении определенного порога сложности у больших моделей рассуждений наблюдается полный сбой точности.
- Низкая сложность → Лучшие результаты показывают стандартные модели.
- Средняя сложность → Доминируют модели рассуждений.
- Высокая сложность → Оба типа моделей терпят неудачу, требуется участие человека.
Это объясняет, почему уровень усилий по умолчанию был снижен. Ultrathink — не панацея. Это специализированный инструмент для зоны средней сложности, где более глубокое рассуждение действительно окупается.
«Способность модели удерживать фокус на задаче и достигать целей без жесткой спецификации позволяет создавать широкий спектр передовых агентов ИИ», — Anthropic Research.
Смена парадигмы в рабочих процессах разработчиков
Адаптация к этим новым реалиям требует изменения нашего подхода к работе. Времена «создания кода по наитию» заканчиваются. Сегодня уже не достаточно давать ИИ нечеткие промпты.
Для эффективного использования Ultrathink необходимо включение в промпт контекста. Прежде чем просить модель решить сложную проблему, я предоставляю ей инварианты, примеры правильных результатов и явные предупреждения о том, чего не должно произойти. Часто помещаю в один текстовый файл релевантные части кодовой базы, чтобы модель могла рассуждать, имея представление обо всей системе.
Вы должны относиться к ИИ не как к оракулу, а как к блестящему, слегка педантичному коллеге, которому нужен полный брифинг до начала мозгового штурма у доски.
Размышления о будущем кода
Возвращение Ultrathink свидетельствует о зрелости агентного ИИ. Мы оставляем позади этап мгновенной генерации кода и вступаем в фазу устойчивого взаимодействия между намерениями человека и машинным мышлением.
Разработчики, которые сумеют адаптироваться к этому тренду, будут понимать, когда следует использовать облегченное автозаполнение, а когда — прибегать к глубокому анализу. Так что в следующий раз, столкнувшись с багом, который приведет вас в тупиковую ситуацию, не просите ИИ подсказать выход — требуйте от него размышлений.
(Примечание об использовании ИИ: эта статья основана на оригинальных размышлениях, обширном ручном исследовании, а также усилиях, затраченных на поиск, изучение и проверку источников. Инструменты искусственного интеллекта использовались для структурирования повествования и исправления грамматики, но не для генерации идей).
Читайте также:
- Claude Code: возможность персонального и командного развития
- Почему разработка ПО больше не радует?
- Как эффективно работать с кодом фронтенда и бэкенда
Читайте нас в Telegram, VK и Дзен
Перевод статьи R. Thompson (PhD): Ultrathink Is Back: Why Claude Code Just Changed Software Development Forever





