Добавить в корзинуПозвонить
Найти в Дзене

Claude Code /goals: почему ИИ-агент сам решает, что задача выполнена — и почему это проблема

Агент по миграции кода завершает работу. Пайплайн зелёный, всё выглядит чисто. Только через несколько дней выясняется, что часть кода просто не была скомпилирована. Не потому что модель плохая — просто агент сам решил, что сделал всё. Агент — плохой судья своей работы Любой агент работает в цикле: читает файлы, запускает команды, вносит изменения — и после каждого шага спрашивает себя: «Я закончил?» Проблема в том, что модель, которая только что что-то сделала, видит это как прогресс. И когда она смотрит на задачу в целом, она уже мысленно отмечает её выполненной — даже если остались незакрытые хвосты. Это не баг конкретной модели, это системная история. Разработчику, который сидит рядом, очевидно, что тест не прошёл. Агенту — нет, потому что он только что закончил что-то другое, и это «что-то» ощущается как финиш. Anthropic выкатили решение в Claude Code — команду /goals. И идея там неожиданно простая. Разделить того, кто делает, и того, кто оценивает /goals добавляет в рабочий цикл а

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

Агент — плохой судья своей работы

Любой агент работает в цикле: читает файлы, запускает команды, вносит изменения — и после каждого шага спрашивает себя: «Я закончил?» Проблема в том, что модель, которая только что что-то сделала, видит это как прогресс. И когда она смотрит на задачу в целом, она уже мысленно отмечает её выполненной — даже если остались незакрытые хвосты.

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

Anthropic выкатили решение в Claude Code — команду /goals. И идея там неожиданно простая.

Разделить того, кто делает, и того, кто оценивает

/goals добавляет в рабочий цикл агента второй слой. Разработчик задаёт условие завершения в виде промпта — например: «все тесты в папке test/auth проходят, lint чистый». После этого Claude Code запускается в обычном режиме, но каждый раз, когда агент пытается завершить работу, в дело вступает отдельная модель-оценщик.

Оценщик — это Haiku по умолчанию — делает ровно одно: проверяет, выполнено ли условие. Да или нет. Если нет — агент продолжает. Если да — условие логируется в транскрипт, цель закрывается.

Haiku здесь не случайно: задача у него бинарная, никакого творчества не нужно. Зато основная модель не тратит внимание на самооценку — она просто работает. Небольшая, но важная разгрузка.

Ключевой момент: оценщик работает независимо от агента и не знает, что тот «думает» о своём прогрессе. Это убирает главную ловушку — когда модель путает то, что уже сделано, с тем, что ещё нужно сделать.

А как у конкурентов?

OpenAI тоже выкатили /goal — в Codex CLI, буквально в те же дни. Но пришли к другому выводу о том, что здесь главное.

Codex сделал ставку на долгосрочность: можно поставить цель на паузу, закрыть ноутбук, вернуться через несколько часов — агент продолжит с того места. Состояние сохраняется между сессиями. Anthropic же сосредоточились на другом: кто решает, что задача выполнена. Их ответ — не сам агент, а отдельная модель-оценщик.

Google ADK поддерживает похожую логику разделения задачи и оценки, но там всё это нужно настраивать вручную — описать условие завершения, прописать логику, подключить мониторинг.

Получается, все трое увидели одну и ту же проблему. Но OpenAI спросили «как сделать, чтобы агент работал дольше», а Anthropic — «как сделать, чтобы агент не соврал, что закончил».

Для каких задач это реально работает

Лучше всего /goals подходит там, где результат можно проверить однозначно: тесты прошли или нет, файл создан или нет, очередь пустая или нет. Миграции, исправление сломанных тест-сьютов, автоматизация рутинных задач — вот где это имеет смысл.

Для задач с дизайн-решениями или там, где «готово» — это суждение, а не факт, человек в цикле всё равно нужен. Haiku не скажет тебе, хорошо ли выглядит интерфейс.

Условие завершения, которое реально работает, обычно выглядит так: одно измеримое состояние, понятный способ проверки и ограничения, которые не должны нарушаться по пути. «npm test выходит с кодом 0, и никакие другие тестовые файлы не изменены» — это рабочее условие. «Всё хорошо» — нет.

Сам помогаю бизнесу разобраться с ИИ-инструментами и внедрить нужное — без лишних систем и переусложнённых стеков. Если интересно — больше в телеграме @dmitra_ai или ВКонтакте.

Агент, который не может адекватно оценить собственную работу — это примерно как попросить подрядчика самому подписать акт приёмки. Технически возможно. Но лучше, когда кто-то другой смотрит на результат свежим взглядом.