Criando uma política personalizada
- Dashboard
- CLI
- Acesse Admin → editor de políticas, selecione Nova política e descreva a falha que deseja prevenir.
- Adicione o código da política e teste correspondências esperadas e não correspondências seguras no editor. Resolva todos os erros de validação.
- Salve o rascunho e selecione Publicar versão para criar uma versão imutável.
-
Acesse Admin → enforcement, implante a versão em uma máquina de teste no modo observe e verifique as decisões em Observe → policy antes de aplicá-la.

Comece com uma regra restrita
Esta política bloqueia comandos Kubernetes destrutivos apenas quando o comando tem como alvo a produção. Tudo fora desse modo de falha específico retornaallow().
allow() assim que a regra não se aplicar.
Escolhendo uma decisão
Escreva o motivo para o agente que precisará se recuperar. Explique o que foi detectado e o que ele deve fazer em vez disso.
Objeto de política
Filtre ferramentas dentro de
fn. match.toolNames não faz parte do tipo público de política personalizada.
Contexto da política
Toda política recebe umPolicyContext.
Trate todo valor opcional como genuinamente opcional. Versões de agentes e tipos de eventos nem sempre fornecem os mesmos campos.
Entradas comuns de ferramentas
O Failproof AI normaliza ferramentas comuns entre os harnesses suportados para que uma política geralmente possa usar um único formato de entrada.
Use coerção defensiva, pois os valores de entrada de ferramenta são tipados como
unknown:
Escolhendo o evento
A disponibilidade de eventos e o comportamento de bloqueio dependem do harness do agente. Consulte Harnesses de agentes antes de depender de um evento em uma frota mista.
Todos os nomes de eventos de política
Todos os nomes de eventos de política
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 e Setup.Padrões comuns de políticas
Bloquear escritas em caminhos protegidos
Fornecer orientação sem bloqueio
Controlar a conclusão de sessão
Carregando arquivos de política
Arquivos de convenção
Arquivos de convenção são carregados automaticamente:- Os diretórios de políticas do projeto e do usuário são carregados.
- Os arquivos são carregados em ordem alfabética dentro de cada diretório.
- Um arquivo deve terminar em
policies.js,policies.mjsoupolicies.ts. - Múltiplas chamadas
customPolicies.add()em um arquivo são suportadas. - Importações relativas de módulos locais são suportadas.
- As políticas do projeto podem ser versionadas para que as mesmas regras acompanhem o repositório.
Arquivos explícitos
Use caminhos explícitos quando a validação ou configuração deve nomear diretamente o arquivo de entrada:Validar e testar
A validação executa o módulo pelo carregador de produção e confirma que ele registra pelo menos uma política.- Uma ação que deve corresponder e produzir o motivo de política pretendido.
- Uma ação próxima, mas segura, que deve retornar
allow(). - Campos de ferramenta ausentes ou malformados.
- Sintaxe de comando alternativa, caminhos, aspas, capitalização e espaços em branco.
- Um subprocesso ou dependência de rede indisponível.
Comportamento em tempo de execução
- Políticas integradas são avaliadas antes das políticas personalizadas.
- O primeiro
denyinterrompe a avaliação de políticas subsequentes. - Múltiplos resultados
instructpodem ser combinados quando nenhuma política nega o evento. - Uma função de política tem um prazo de execução de 10 segundos.
- Uma exceção lançada ou timeout é registrado e tratado como
allow(). - Um arquivo de convenção que falha ao carregar é ignorado; outros arquivos personalizados e políticas integradas continuam.
- O carregamento de módulo de nível superior também tem um prazo de 10 segundos.
- O modo observe em nuvem executa a política, mas registra uma decisão diferente de allow sem aplicá-la.
fn, trate falhas de dependências e escolha deliberadamente se essa falha deve permitir ou bloquear a operação.
Exportações da API
TypeScript exporta
PolicyContext, PolicyResult, CustomHook, PolicyDecision e PolicyFunction.
Implantar políticas personalizadas
Publique uma versão, implante-a no modo observe, verifique as decisões e avance para o enforcement.

