В дизайне агентов есть контринтуитивная истина: чем больше контролов, тем меньше контроля.
Ловушка конфигурации
Когда агент ведёт себя не так — инстинкт добавить настройку. Каждая настройка кажется усилением. В реальности — комбинаторный взрыв.
5 булевых настроек = 32 конфигурации. Кто тестировал все 32? Эффекты взаимодействия? Точно нет.
Дашборд, который всё сломал
Код-ревью агент. V1: одна настройка — репозиторий. Работал.
Потом: строгость (3), типы файлов (6), стиль комментариев (4), окно контекста (1-100), фокус (5 чекбоксов). V2: 2000+ конфигураций. Тикеты утроились.
Альтернатива: ограничения
| Контрол | Ограничение |
|---|---|
| «Температура 0.3» | «Вывод детерминирован» |
| «Только .ts» | «Фокус на изменённых в PR файлах» |
| «Строгость: высокая» | «Помечать код без тестов» |
Контролы — как. Ограничения — что. Агент сам решает как.
// На контролах (хрупко)
agent.configure({
temperature: 0.3,
maxTokens: 4000,
strictness: 'high',
});
// На ограничениях (устойчиво)
agent.constrain({
deterministic: true,
scope: 'changed-files-with-dependencies',
requirements: ['all-flagged-code-must-have-tests'],
});
Почему ограничения побеждают
1. Тестируемы
«Детерминированный вывод» — запусти дважды, сравни. «Температура 0.3» — нетестируемо.
2. Чисто компонуются
Новое ограничение не ломает существующие.
3. Модель-агностичны
Смена модели ломает настройки. Ограничения остаются.
4. Снижают нагрузку на поддержку
Нельзя неправильно настроить то, что нельзя настроить.
V3: самая простая версия
Один вход: URL пулл-реквеста. Всё из ограничений. Удовлетворённость: 62% → 91%. Тикеты -80%.
«Лучший интерфейс — тот, где неправильная конфигурация невозможна.»
Меньше контролов. Лучше контроль.
