раздел 02

Направляющие и датчики

Мартин Фаулер предложил простую рамку: компоненты обвязки делятся на два типа. Одни предотвращают ошибки до того, как агент написал код. Другие ловят ошибки уже после генерации. Первые - направляющие (guides), вторые - датчики (sensors).

Guides ведут агента в нужную сторону заранее. Sensors сообщают, когда он всё-таки свернул не туда. Хорошая обвязка использует и то, и другое.

Guides - направляющие (feedforward)

Guides работают на упреждение (feedforward): задают контекст и правила так, что ошибка просто не возникает. Что сюда входит:

  • файл инструкций - AGENTS.md, CLAUDE.md, rules: соглашения проекта, стек, чего не делать;
  • skills - готовые навыки и сценарии под повторяющиеся задачи;
  • reference-доки - примеры, схемы, описания API;
  • инструменты - language servers, скрипты, MCP-серверы, дающие агенту доступ к нужным данным;
  • сам контекст - что подано модели на этом шаге.

Sensors - датчики (feedback)

Sensors работают по факту (feedback): агент уже что-то сгенерировал, датчик проверяет результат и сообщает об ошибке. Что сюда входит:

  • линтеры и статический анализ - стиль, типичные дефекты;
  • тесты - проверяют, что код реально работает;
  • проверки покрытия - не забыты ли важные ветки;
  • AI-ревьюеры - LLM-судьи, которые ловят смысловые проблемы, не видные линтеру.
до кода
Guides / направляющие
Инструкции, AGENTS.md, rules, skills, доки, MCP, инструменты. Предотвращают ошибку заранее.
после кода
Sensors / датчики
Линтеры, тесты, покрытие, AI-ревью. Ловят ошибку после генерации и дают агенту обратную связь.

Вычислительные и семантические проверки

Сами проверки (sensors) бывают двух родов.

Вычислительные
Детерминированные и быстрые: линтеры, тесты, type-checkers. Работают за миллисекунды-секунды, дают однозначный ответ.
Семантические
На основе LLM: код-ревью-агенты, LLM-судьи. Медленнее, но ловят сложное - смысл, архитектуру, неочевидные баги.

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

Зачем агенту обратная связь

Датчик полезен не только вам, но и самому агенту. Понятное сообщение об ошибке - это сигнал, по которому агент исправляется сам, без вашего вмешательства. Если линтер написал внятно, что не так, агент чинит и идёт дальше. Поэтому проверки в обвязке - это не только контроль, но и топливо для самокоррекции.