Saltar para o conteúdo principal
Um prompt descontrolado é uma conta descontrolada. Um agente que cola um transcript de 400KB no contexto, um loop de retry que continua reenviando a mesma requisição inchada, um modelo que transmite uma parede de texto de 50.000 caracteres — cada um cobra tokens que você nunca pretendeu gastar. A categoria de preset cost coloca um teto rígido na frente dessas requisições para que o gateway as detenha antes que cheguem ao modelo upstream e à medição. Este é um destino focado no caso de uso de controle de custo. Para o motor de guardrail completo — cada tipo de regra, campo e rota — veja a referência de Guardrails.

1. O caso de uso de llm cost guardrail

A alavanca é um tipo de regra embutido: max_chars. Ele limita a contagem de caracteres do texto em um estágio. Sem chamada a modelo, sem salto de rede — uma verificação de tamanho determinística que roda na requisição antes da medição, ou na resposta depois que o modelo retorna. Duas formas, escolhidas pela ação da regra:

Bloquear requisições grandes demais

Em uma regra max_chars de requisição com ação block, qualquer prompt acima do limite é rejeitado com HTTP 400 guardrail_blocked — e uma requisição bloqueada não custa cota, porque o block dispara antes de o uso ser medido.

Cortar respostas grandes demais

Em uma regra max_chars com ação mask, o texto é truncado para o limite em vez de rejeitado — o chamador ainda recebe uma resposta utilizável, apenas limitada. Útil no estágio de resposta para limitar egress.
O limite conta caracteres (ciente de runes — 日本語 são três, não nove), não tokens. O preset orientado a tokens entregue traduz um orçamento de tokens em um teto de caracteres na proporção padrão char→token; aperte o campo max_chars da regra diretamente para um orçamento mais estrito.

2. Os presets de cost entregues

Abra o split-button New guardrail no console e escolha na categoria de template cost. Três presets semeiam uma única regra max_chars cada:
PresetEstágio · açãoLimite
Prompt-Size Capinput · block50.000 chars
Token Cost Cap (prompt)input · block200.000 chars (~50K tokens)
Response Size Capoutput · block32.000 chars
Cada preset é uma semente, não uma trava — aplique-o, depois edite o valor max_chars, o estágio ou a ação para se ajustar ao seu orçamento. Escrever e editar guardrails exige Developer+ no workspace.
O Response Size Cap é um limite no estágio de output. Para cortar uma resposta longa em vez de rejeitá-la, mude sua ação para mask — o gateway apara a resposta para o limite e o usuário ainda recebe uma resposta truncada mas utilizável em vez de um erro.

3. Escreva seu próprio limite

Uma regra de custo é a regra mais simples do motor — um estágio, uma ação e um inteiro. Para limitar requisições em 20.000 caracteres e rejeitar qualquer coisa maior:
{
  "type": "max_chars",
  "stage": "input",
  "action": "block",
  "max_chars": 20000
}
Adicione-a a qualquer guardrail no console. max_chars deve ser um inteiro positivo; o validador rejeita 0 ou valores negativos.

4. Teste antes de vincular

Prove que o limite dispara onde você espera antes que qualquer chave aponte para ele. Abra a aba Test dentro do editor de guardrail, cole uma amostra, escolha o estágio input e rode a política atual localmente — sem chamada upstream, sem cota. Uma amostra acima do limite retorna um veredito bloqueado; uma amostra abaixo do limite passa intacta. Para uma regra de corte, o sandbox mostra o texto renderizado truncado, para que você possa confirmar que o limite cai em um limite de rune antes de depender dele.

5. Vincule o limite a uma chave

Um guardrail de custo resolve exatamente como qualquer outro — vincule-o a uma chave de API, ou defina-o como o padrão do workspace. Cada passo aqui é uma ação de console sob sua própria sessão.
1

Salve o guardrail

Crie ou abra um guardrail no console, adicione uma regra max_chars (ou aplique um preset de cost) e salve.
2

Vincule uma chave

Edite uma chave de API e escolha o guardrail no menu Guardrail (define guardrail_id na chave), ou marque o guardrail como padrão do workspace. Veja Vincular a uma chave e Padrão de conta.
3

Envie uma requisição

Usando essa chave, chame o OrcaRouter exatamente como antes — sem novos headers, sem mudança de SDK:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "...a very long prompt..."}
    ]
  }'
Se o prompt estiver acima do limite, a chamada retorna HTTP 400 guardrail_blocked e nada é cobrado.

6. O que uma requisição bloqueada custa

Um limite no estágio de requisição é o guardrail mais barato de aplicar: ele roda antes de o uso ser medido, então um prompt grande demais é rejeitado a custo zero de cota.
Não. Um block no estágio de input dispara antes da medição. Um block no estágio de output reembolsa a cota pré-consumida depois que a resposta é rejeitada. De qualquer forma o chamador não paga cota, recebe HTTP 400 guardrail_blocked, e a requisição é marcada como skip-retry — reexecutar o mesmo prompt grande demais apenas bloquearia de novo. Veja o erro guardrail_blocked.
Um block max_chars no estágio de output é aplicado nos dois casos: em uma resposta não-streaming a resposta é filtrada antes de retornar, e em uma resposta streaming um scanner corta o stream em pleno voo assim que o buffer cruza o limite. Um mask (corte) no output atualmente se aplica apenas a respostas não-streaming. Veja Cobertura de streaming.
Não. Uma regra max_chars não tem conceito de substring, então o feed de Matches registra que o limite disparou — seu tipo, ação e estágio — mas nunca uma substring correspondente, mesmo com Log raw content ligado. Você recebe o sinal de que disparou sem recapturar o payload grande demais.

7. Onde isto se encaixa

Um limite max_chars é uma alavanca de custo bruta — um teto rígido, não um orçamento de gasto por chave. Para limitar dólares em vez de caracteres, defina credit_limit_usd na própria chave de API (0 = ilimitado), que o gateway aplica independentemente de qualquer guardrail. Os dois se empilham: o orçamento da chave limita o gasto total, o guardrail de custo limita o tamanho de qualquer requisição ou resposta única.
Um guardrail de custo filtra o tamanho do conteúdo, não a escolha do modelo ou a decisão de roteamento. Ele rejeita um prompt grande demais independentemente de qual modelo o atende. Para governar as chamadas de ferramenta de um agente — negar ações destrutivas ou retê-las para aprovação — use o Firewall, que decide na superfície de chamada de ferramenta (allow / deny / pending_approval), não na superfície de conteúdo.

8. Para onde ir a seguir

Regras de estágio de input

Como a filtragem de requisição roda antes da chamada upstream e antes da medição.

Regras de estágio de output

Filtragem e corte da resposta do modelo, em streaming e não.

O erro guardrail_blocked

O formato do HTTP 400, a garantia de não-cota e o skip-retry.

Teste e eval

Prove um limite contra um corpus antes de vincular uma chave.
Limites de custo limitam tamanho. Para limitar conteúdo — PII, segredos, prompts inseguros — comece com a Visão geral dos guardrails ou leia a referência de Guardrails para o motor completo.