Um guardrail de PII filtra o texto de prompts e respostas. Para governar
as ações que um agente toma com dados — ferramentas de fetch, hosts de
egress — veja Exfiltração de dados.
Os dois planos se compõem; a maioria das equipes roda ambos.
1. Como a exposição acontece
PII chega a um provedor upstream através de tráfego comum e bem-intencionado:- Um usuário cola seus próprios dados de contato em um chat e sua app encaminha a mensagem inteira textualmente.
- Um pipeline RAG recupera um documento contendo registros de clientes e o enfia no prompt como contexto.
- Um agente lê uma linha de banco de dados e inclui campos brutos em um argumento de ferramenta ou em um prompt subsequente.
- A resposta do modelo reafirma ou infere PII, que sua app então escreve em seus próprios logs.
2. Defenda o llm pii leak com um guardrail de PII
Um guardrail é uma política de conteúdo nomeada e com escopo de workspace. Uma regrapii dentro dele detecta entidades
sensíveis e aplica uma ação a cada correspondência:
| Ação | Efeito |
|---|---|
mask | Substitui cada correspondência por uma tag tipada — jane@acme.com → [EMAIL] — e encaminha o texto limpo. O modelo nunca vê o original. |
block | Rejeita a requisição inteira com HTTP 400 guardrail_blocked. Use quando PII nunca deve chegar ao provedor de forma alguma. |
flag | Não muda nada no tráfego; registra uma correspondência. Meça a exposição antes de aplicar enforcement. |
email, phone, credit_card, ssn, ip, iban, mac_address, jwt,
aws_access_key, api_key_openai, bitcoin_address, mais os
identificadores regionais com gate de checksum jp_mynumber, kr_rrn e
cn_resident_id.
Em uma ação mask, cada correspondência é renderizada como sua tag tipada —
[EMAIL], [SSN], [CREDIT_CARD], e assim por diante — de modo que a
estrutura do prompt sobrevive enquanto o valor desaparece.
3. Exemplo concreto — mascarar PII na requisição
O começo mais rápido é o preset PII Shield: uma única regrapii que
mascara email, phone, ssn, credit_card e ip. Configure-o no
console — sem mudanças de código, sem chave nesta etapa.
Crie o guardrail
No console, abra Guardrails e clique em New guardrail. Escolha o
preset PII Shield da categoria pii, ou crie à mão uma regra
pii
com ação mask sobre as entidades acima. Salve. (Escritas exigem o
papel de Developer ou superior.)Comprove no sandbox
Abra a aba Test, cole “reply to jane@acme.com”, escolha o estágio
input e execute. O sandbox retorna reply to [EMAIL] — localmente, sem
chamada upstream e sem cota gasta.Anexe-o a uma chave
Em API Keys, edite uma chave e selecione o guardrail no dropdown
Guardrail, ou defina o guardrail como padrão do workspace para que
toda chave não anexada o herde. O vínculo vive na chave dentro do
gateway.
4. Mascarar a maioria, bloquear o pior — overrides por entidade
Uma única regra pode aplicar ações diferentes a entidades diferentes viaentity_actions. Mascare identificadores de baixo risco mas bloqueie
duramente as entidades que você nunca quer encaminhar — uma regra em vez de
três sobrepostas:
guardrail_blocked. Uma requisição bloqueada não custa cota — um block
de estágio de input dispara antes da metragem — e é marcada skip-retry. Cada
chave de entity_actions deve ser uma entidade declarada na regra (embutida
ou customizada); sua ação é validada contra o conjunto de ações da regra.
5. O que funciona em streaming hoje
Ação e estágio interagem com streaming de formas diferentes — conheça a matriz antes de depender dela:Mask ou block de estágio de input (qualquer modo de resposta)
Mask ou block de estágio de input (qualquer modo de resposta)
Totalmente ao vivo. O prompt é filtrado antes da chamada upstream, de
modo que mascaramento e bloqueio funcionam de forma idêntica quer a
resposta seja em stream ou não. Esta é a superfície que o PII Shield
aplica hoje.
Block de estágio de output
Block de estágio de output
Aplicado tanto em respostas em streaming quanto não-streaming. Em um
stream, um scanner corta o stream em pleno voo e emite uma mensagem de
substituição antes que qualquer conteúdo bloqueado chegue ao cliente; um
block de output reembolsa a cota pré-consumida.
Mask de estágio de output
Mask de estágio de output
Atualmente apenas não-streaming. Em uma resposta em stream, o chunk
original passa sem mascaramento — a reescrita in-band do stream é um
aprimoramento planejado. Para mascaramento de resposta hoje, use
requisições não-streaming, ou apoie-se no mascaramento de estágio de
input. Comprove primeiro a sua combinação exata de estágio/stream na aba
Test.
6. Veja o que foi capturado
Toda regra que dispara registra uma correspondência — seu tipo, ação, estágio e uma string de detalhe — visível no feed Matches do workspace (GET /api/guardrail/match, aberto a qualquer membro). A partir dali você
pode agrupar, filtrar, exportar para CSV e marcar falsos positivos.
Valores brutos não são registrados por padrão. O interruptor Log raw
content de um guardrail está desligado — a postura conservadora de
privacidade — então o feed Matches registra que uma regra de PII disparou e
qual entidade, mas não a substring correspondente (o próprio endereço de
e-mail). Ligue-o por guardrail apenas quando você precisar do valor para
triagem; a configuração é não-retroativa. Capturar PII na sua própria trilha
de auditoria para depurar um vazamento de PII seria autodestrutivo.
7. Vá além
Para controles completos de residência, retenção e direito ao apagamento — incluindo instalar um pacote de compliance que materializa estes guardrails para GDPR, HIPAA ou PCI DSS — comece pelas páginas de referência abaixo.Referência de Guardrails
Cada tipo de regra, estágio, ação, entidades customizadas, versionamento
e o eval harness — a referência profunda por trás desta página.
Vazamento de segredos
O irmão em formato de credencial — tokens AWS, OpenAI, GitHub — capturado
pelo guardrail Secrets Blocker.
Saída insegura
Filtrar o que o modelo envia de volta, não apenas o que ele recebe.
Guardrails vs Firewall
Quando filtrar texto e quando governar ações — e por que você geralmente
quer ambos.
