Протоколы автономности
Автономность задаётся правами, средой, правилами подтверждения и проверками вокруг модели. Текстовая просьба «будь осторожен» не является контролем доступа.
Классы действий
| Класс | Примеры | Базовый контроль |
|---|---|---|
| Чтение | поиск, просмотр файла | ограничить область и журналировать |
| Обратимое локальное изменение | новый черновик, отдельная ветка | preview, diff, понятный откат |
| Изменение существующего состояния | перезапись файла, обновление записи | точная область, checkpoint, валидация |
| Внешняя коммуникация | письмо, публикация, событие | показать получателя и полный payload |
| Финансовое или необратимое | платёж, удаление без корзины | отдельная авторизация; по умолчанию запрещено |
| Изменение полномочий | новый токен, роль, доступ | отдельное подтверждение и аудит |
Риск определяется не названием инструмента, а конкретными аргументами и последствиями вызова.
Минимальные привилегии
- разрешай только нужные инструменты, методы, пути, домены и аккаунты;
- разделяй read и write;
- используй короткоживущие credentials и узкие scopes;
- не передавай модели секрет, если вызов может выполнить доверенный proxy;
- ограничивай сеть и файловую систему на уровне sandbox.
Подтверждение действия
Перед рискованным действием покажи:
- точного получателя или объект изменения;
- итоговый payload, а не абстрактное описание;
- необратимые последствия;
- что уже выполнено;
- варианты «разрешить», «изменить», «отклонить».
Согласие на план не всегда означает согласие на каждый будущий внешний side effect.
Защита исполнения
Валидация
Проверяй типы, диапазоны, allowlist и бизнес-правила до tool call. Structured Output обеспечивает форму данных, но не доказывает безопасность их смысла.
Idempotency
Присваивай внешнему действию ключ и сохраняй подтверждённый результат. После сетевого сбоя сначала проверь состояние, затем решай, нужен ли retry.
Dry run и preview
Где возможно, сначала вычисляй diff или предварительный результат без применения. Preview должен соответствовать фактическому payload.
Checkpoint и откат
Используй commit, версию записи, транзакцию или резервную копию. Контекст модели не является механизмом отката.
Недоверенные входы
Веб-страницы, письма, документы, память и ответы инструментов могут содержать вредоносные инструкции. Отделяй данные от политики, минимизируй права и не позволяй содержимому источника расширять доступ. См. Indirect Prompt Injection.
Условия остановки
Ограничь:
- число шагов и повторов одной ошибки;
- время и денежный бюджет;
- объём изменяемых объектов;
- число внешних side effects;
- допустимую неопределённость результата.
При остановке агент должен вернуть подтверждённо выполненное, незавершённое и безопасный следующий шаг.
Частичный сбой
Не называй задачу проваленной или завершённой целиком, если часть действий уже прошла. Зафиксируй состояние каждого шага, не повторяй успешные операции и предложи компенсацию только там, где она действительно возможна.