cap_cost resolve, e por que audit é o padrão a partir
do qual você começa.
Para onde os vereditos vivem na gramática de regras veja
Regras do Firewall; para escolher um veredito
padrão ao criar uma política veja
Criar e vincular.
1. Os seis vereditos de regra
Uma regra produz exatamente um entre seis vereditos. Crie-os no editor de regras do console; o motor percorre as regras em ordem de prioridade e a primeira correspondência vence.allow — deixa a chamada passar, registrada
allow — deixa a chamada passar, registrada
allow, então
você mantém uma trilha de auditoria sem bloquear nada. Use-o como uma
permissão explícita em uma política default-deny.audit — permite, mas registra para revisão
audit — permite, mas registra para revisão
allow, mas a chamada é sinalizada como
algo que você queria observar. Este é também o valor em que o veredito
padrão aterrissa de fábrica — observe tudo, bloqueie nada, até você estar
pronto para aplicar.deny — bloqueia a chamada
deny — bloqueia a chamada
inbound o relay retorna
HTTP 400 com o código de erro firewall_blocked, nomeando a ferramenta
e o motivo; na superfície mcp ela volta como um erro de ferramenta para
que o modelo possa reagir. Veja
como é um block.sanitize — redige argumentos, depois encaminha
sanitize — redige argumentos, depois encaminha
command ou
body) e encaminha a chamada limpa. Ele redige apenas argumentos — nunca o
conteúdo que uma ferramenta retorna. Na superfície inbound ainda não há
argumentos em tempo de chamada, então o sanitize escala para um deny.
Veja sanitizar respostas.pending_approval — retém para um humano
pending_approval — retém para um humano
firewall_approval_pending e um id de aprovação; a
chamada não chega à ferramenta. Um revisor a resolve no console ou via
callback de webhook, e o agente reenvia com um header de aprovação de uso
único. Veja aprovações.cap_cost — nega assim que um teto de gasto é cruzado
cap_cost — nega assim que um teto de gasto é cruzado
allow ou
deny no momento da avaliação. Veja
§3 e
limite de custo.deny, sanitize, pending_approval e um cap_cost que resolveu para deny)
é rebaixado para audit e o motivo recebe o prefixo [shadow] would …. Faça o
rollout de uma política de enforcement desta forma e observe o feed de events
antes de ativá-la.2. O veredito padrão
O veredito padrão (default_verdict na política) é o que a política faz
quando nenhuma regra corresponde a uma chamada de ferramenta. É o piso da
sua postura, e ao contrário de um veredito de regra ele aceita apenas três
valores:
default_verdict | Quando nenhuma regra corresponde… |
|---|---|
audit (padrão) | Permite a chamada, mas a registra. O lugar seguro para começar. |
allow | Permite e registra, sem registro de revisão. |
deny | Bloqueia qualquer coisa que uma regra não permita explicitamente — uma postura default-deny. |
audit: ela observa cada chamada de
ferramenta e bloqueia nada até você adicionar regras de enforcement. Os três
vereditos exclusivos de regra — sanitize, pending_approval e cap_cost —
não podem ser um padrão; um veredito padrão é um fallback abrangente, e
esses vereditos só fazem sentido com escopo para uma correspondência
específica.
3. cap_cost resolve para allow ou deny
cap_cost é o único veredito que não é o que aparece nos seus events. Você
cria uma regra com um teto cap_cost_cents, mas no momento da avaliação o motor
o resolve para um allow ou deny concreto antes de o evento ser
registrado — então o feed de events nunca
carrega um veredito cap_cost literal, apenas o allow/deny que o agente de fato
viu.
O teto é por run de agente: o motor compara o gasto acumulado da run contra
seu limite.
- Abaixo do limite → resolve para
allow. (Internamente isso é tratado como não correspondente, então a avaliação continua para a próxima regra em vez de deixar ocap_costvencer na primeira correspondência como uma concessão.) - Acima do limite → resolve para
deny, com um motivo nomeando o total da run versus o limite. Este é o resultado terminal de disjuntor.
4. Como um veredito é escolhido
Para qualquer chamada de ferramenta, a resolução é a mesma independentemente de qual veredito vence:1. Resolve a política
1. Resolve a política
firewall_policy_id), ou o padrão do workspace — veja
resolução.2. Percorre as regras, a primeira correspondência vence
2. Percorre as regras, a primeira correspondência vence
priority ASC. A primeira regra cuja superfície,
glob de ferramenta, cláusulas de argumento opcionais e escopo de egress
opcional todos correspondem produz o veredito.3. Sem correspondência → o veredito padrão
3. Sem correspondência → o veredito padrão
default_verdict da política se aplica —
audit a menos que você o tenha mudado.4. O enforcement de skill anda por cima
4. O enforcement de skill anda por cima
block força um deny e uma skill em modo
quarantine escala qualquer coisa aquém de deny para pending_approval.5. Comportamento de custo e retry de um deny
Um veredito de firewall na superfícieinbound dispara antes da chamada ao
modelo upstream, então um deny ali não custa tokens de modelo. O erro é
marcado como skip-retry — reexecutar a mesma chamada bloqueada apenas
bloquearia de novo, então o gateway diz ao cliente para não fazer retry.
Isso é distinto de um block de
guardrail, que filtra o
texto de prompt/response (PII, segredos) em vez de ações de ferramenta, e
retorna seu próprio erro guardrail_blocked. Uma requisição pode passar por
ambos os planos.
