Глава 2

Сначала сузьте границу задачи

Название "ассистент магазина" звучит солидно, но для агента оно бесполезно - оно не говорит, что агент делает, а главное, чего не делает. Рабочий контракт перечисляет поддержанные намерения, допустимые данные, возможные исходы и действия, которые агент принципиально не выполняет. Это не бюрократия, а граница, внутри которой систему можно проверить.

Для нашего примера контракт умещается в короткий YAML, и его стоит написать раньше любого кода.

agent: commerce_support_v1
goal: решить вопрос о политике или конкретном заказе
supports:
  - ответ по действующим правилам магазина
  - проверка статуса заказа текущего пользователя
  - подготовка расчета возврата
  - подготовка передачи оператору
never:
  - читать чужой заказ
  - менять адрес, платеж или заказ
  - выполнять возврат без явного подтверждения
done_when:
  - answer
  - clarification_required
  - approval_required
  - handoff_required
  - blocked

Обратите внимание на две вещи. Список never - это не пожелание модели, а то, что физически не должно быть ей доступно: читать чужой заказ, менять платёж, выполнять возврат без подтверждения. А done_when перечисляет ВСЕ допустимые финалы, включая безопасные выходы - уточнение, запрос подтверждения, передачу оператору, блокировку. Агент всегда заканчивает одним из них, а не "свободным текстом".

За этим стоит простая экономика ошибки. Там, где цена ошибки высока - деньги, персональные данные, договорные обещания, необратимые изменения - нужны код, audit trail и явное подтверждение. Там, где низка, лишний вопрос или передача оператору почти всегда дешевле уверенной выдумки; поэтому безопасные выходы должны быть частью контракта, а не аварийным случаем.

Чтобы почувствовать, какой уровень системы под задачу вообще нужен, прогоните её через конструктор - он подскажет, хватит ли одного вызова, workflow или нужен полноценный loop.

Интерактивная лаборатория 1

Выберите минимальную архитектуру

Один model call со structured output. Дорогое действие вынесите в отдельный approval и commit service.

Контракт сужен - теперь стоит увидеть, куда он ложится целиком. Вся архитектура помещается в несколько блоков.

Проверка знаний

Что означает список never в контракте агента?

Ссылки