раздел 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-судьи, которые ловят смысловые проблемы, не видные линтеру.
Вычислительные и семантические проверки
Сами проверки (sensors) бывают двух родов.
Вычислительные дёшевы - гоняйте их часто и рано. Семантические дороже и медленнее - применяйте на более позднем этапе, где нужна оценка смысла.
Зачем агенту обратная связь
Датчик полезен не только вам, но и самому агенту. Понятное сообщение об ошибке - это сигнал, по которому агент исправляется сам, без вашего вмешательства. Если линтер написал внятно, что не так, агент чинит и идёт дальше. Поэтому проверки в обвязке - это не только контроль, но и топливо для самокоррекции.