Перейти к тексту

Claude Code: работа с coding-агентом2. Как устроен coding-агент

Модель, harness, агент и окружение

Засчитывается, когда отвечены все вопросы квиза

Зачем это нужно

Агент неделю подряд пишет в вашем проекте неудачный код. Первое желание — переключиться на самую сильную модель и ждать, что всё наладится. Иногда помогает, чаще нет: модель — только одна из четырёх частей агента, и обычно проблема в другой.

Чтобы понять, что именно чинить, нужна простая карта: model, harness, agent и environment. Дальше весь курс опирается на эти четыре слова.

Как это устроено

Model — это двигатель. Она принимает текст и возвращает текст, больше ничего. Модель живёт на сервере провайдера, и за каждый запрос к ней платят. Сама по себе она не умеет открыть файл или запустить тесты.

Environment — внешний мир, с которым работает агент. Для coding-агента это ваш проект: файлы, терминал, git. У чат-интерфейса окружение другое: документы, веб-поиск.

Harness — слой между моделью и окружением. Он даёт модели tools, через которые она действует, и решает, какой контекст модель увидит. Claude Code — это именно harness: документация называет его слоем вокруг модели, который предоставляет tools и управляет контекстом, и прямо использует термин agentic harness.

Agent — не отдельная сущность, а имя для связки: модель, запряжённая в harness и работающая в окружении. Claude Code с моделью Claude в вашем репозитории — это агент.

Агент — это модель в harness, работающая в окруженииСверху вниз: модель получает текст от harness и возвращает текст; harness через tools читает и меняет окружение — файлы, терминал, git — и возвращает результат модели. Вместе модель и harness в окружении образуют агента.текстtoolsModel: ClaudeHarness: ClaudeCodeEnvironment:файлы, git

Чем Claude Code снабжает модель, видно по категориям встроенных tools: операции с файлами, поиск, выполнение команд, веб и code intelligence. Без tools, как сказано в документации, Claude может только отвечать текстом; с ними — читать код, править файлы, запускать команды.

Когда вы запускаете claude в каталоге, окружение агента — это ваш проект, терминал (любая команда, которую могли бы запустить вы), состояние git, ваш CLAUDE.md и подключённые расширения.

Границы между частями размыты. Скрипт test в package.json — это часть harness или окружения? Скорее окружения: harness его только вызывает. Но спорить об этом не нужно; карта нужна, чтобы искать рычаг, а не чтобы раскладывать всё по полочкам.

Главный вывод карты: качество агента зависит от трёх частей, а не от одной. Обучить свою модель — дорого и недоступно почти никому. А вот улучшить harness (настроить Claude Code, дать ему правила и skills) и окружение (тесты, линтер, понятная структура проекта) может любой разработчик. Там и лежит основная работа этого курса.

Практика

Откройте учебный проект Cadence в терминале и запустите claude. Попросите агента: «Перечисли tools, которые тебе доступны в этой сессии, и сгруппируй их по назначению».

Посмотрите на ответ через нашу карту:

  • что из списка — способы дотянуться до окружения (файлы, shell, поиск);
  • что — служебные tools самого harness, например запуск subagents или вопросы к вам;
  • какую модель использует сессия: её можно увидеть и сменить командой /model.

Обратите внимание: модель знает о tools только потому, что harness рассказал ей о них. Сама модель по-прежнему лишь получает и выдаёт текст.

Подводные камни

  • «Сменю модель — станет лучше». Новая модель меняет только двигатель. Если в проекте нет тестов, которые агент может запустить, он так же будет останавливаться, когда работа «выглядит готовой».
  • Агент — не тот же чат. В чате окружение — переписка. У Claude Code окружение — ваша машина и всё, что на ней может запустить терминал. Поэтому права, которые вы даёте агенту, важнее, чем кажется.

Проверь себя

Источники

Текст подготовлен с помощью LLM и может содержать неточности.