Разработка пользовательской политики
- Dashboard
- CLI
- Перейдите в Admin → policy editor, выберите New policy и опишите сбой, который вы хотите предотвратить.
- Добавьте исходный код политики, затем протестируйте ожидаемые совпадения и безопасные несовпадения в редакторе. Исправьте все ошибки валидации.
- Сохраните черновик и выберите Publish version, чтобы создать неизменяемую версию.
-
Перейдите в Admin → enforcement, развертните версию на тестовой машине в режиме observe и проверьте её решения в Observe → policy перед её применением.

Начните с узкого правила
Эта политика блокирует деструктивные команды Kubernetes только когда команда нацелена на production. Все остальное вне этого точного паттерна сбоя возвращаетallow().
allow() как только правило не применяется.
Выберите решение
Напишите причину для агента, который должен восстановиться. Объясните, что было обнаружено и что он должен делать вместо этого.
Объект политики
Фильтруйте инструменты внутри
fn. match.toolNames не является частью публичного типа custom-policy.
Контекст политики
Каждая политика получаетPolicyContext.
Рассматривайте каждое необязательное значение как действительно необязательное. Версии агентов и типы событий не предоставляют одинаковые поля.
Общие входы инструментов
Failproof AI нормализует общие инструменты в поддерживаемых harnesses, поэтому политика обычно может использовать одну форму ввода.
Используйте оборонительное приведение типов, потому что значения входа инструмента типизированы как
unknown:
Выберите событие
Доступность события и поведение блокировки зависят от harness агента. Смотрите Agent harnesses перед использованием события в смешанном парке.
Все имена событий политики
Все имена событий политики
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatch и Setup.Разработка общих паттернов политик
Блокируйте записи в защищённые пути
Дайте неблокирующие рекомендации
Контролируйте завершение сессии
Загрузка файлов политик
Файлы соглашений
Файлы соглашений загружаются автоматически:- Загружаются как проектные, так и пользовательские директории политик.
- Файлы загружаются в алфавитном порядке в каждой директории.
- Файл должен заканчиваться на
policies.js,policies.mjsилиpolicies.ts. - Поддерживаются множественные вызовы
customPolicies.add()в одном файле. - Поддерживаются относительные импорты из локальных модулей.
- Проектные политики могут быть закомиченты, так что одинаковые правила следуют репозиторию.
Явные файлы
Используйте явные пути когда валидация или конфигурация должны назвать файл входа напрямую:Валидируйте и тестируйте
Валидация выполняет модуль через продакшн-загрузчик и подтверждает, что он регистрирует по крайней мере одну политику.- Одно действие, которое должно совпасть и произвести предполагаемую причину политики.
- Одно близкое но безопасное действие, которое должно вернуть
allow(). - Отсутствующие или неправильно сформированные поля инструментов.
- Альтернативный синтаксис команд, пути, кавычки, регистр и пробелы.
- Недоступная зависимость подпроцесса или сети.
Поведение при выполнении
- Встроенные политики оцениваются перед пользовательскими политиками.
- Первый
denyостанавливает дальнейшую оценку политики. - Множественные результаты
instructмогут быть объединены, когда ни одна политика не отклоняет событие. - Функция политики имеет дедлайн выполнения 10 секунд.
- Выброшенное исключение или таймаут логируется и рассматривается как
allow(). - Файл соглашений, который не загружается, пропускается; другие пользовательские файлы и встроенные политики продолжаются.
- Загрузка модуля верхнего уровня также имеет дедлайн 10 секунд.
- Режим облачного наблюдения выполняет политику но записывает решение, не относящееся к allow, без применения его.
fn, ловите сбои зависимостей и сознательно выбирайте должно ли это разрешение или отказ выполнить операцию.
Экспорты API
TypeScript экспортирует
PolicyContext, PolicyResult, CustomHook, PolicyDecision и PolicyFunction.
Разверните пользовательские политики
Опубликуйте версию, разверните её в режиме наблюдения, проверьте решения и переходите к применению.

