Pular para o conteúdo
Skillpedia
Automações48 mil · #4037

runaway-guard

Controla os custos de uso de APIs de IA, definindo limites claros. Garante que o agente não gaste mais do que o planejado em suas tarefas.

O que ela faz

Este guia ajuda a evitar gastos inesperados ao usar serviços de inteligência artificial pagos. Ele garante que você defina limites de gastos antes de executar qualquer código que chame essas APIs.

Quando usar

  • ✓Ao usar APIs de IA que cobram por uso.
  • ✓Ao criar ou revisar código que faz muitas chamadas a essas APIs.
  • ✓Para evitar surpresas na conta no final do mês.

Exemplo do que pedir para a IA

“Como posso garantir que não vou gastar muito dinheiro usando a API da OpenAI?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/runaway-guard/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/runaway-guard/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele funciona definindo limites claros de quanto você pode gastar por chamada, por dia e por execução. Esses limites são definidos tanto no código quanto na plataforma do provedor do serviço de IA.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill runaway-guard

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/runaway-guard/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

runaway-guard — Custo é a Terceira Dimensão da Complexidade

Todo loop tem complexidade de tempo e complexidade de espaço. Um loop que chama uma API paga tem uma terceira: dólares por execução. O modelo rastreia as duas primeiras automaticamente. Ele não rastreia a terceira, então entrega código onde um único bug — uma nova tentativa sem limite, uma tempestade de reconexão de stream, um agente que se reenfileira, um webhook que dispara o mesmo job duas vezes — gasta silenciosamente dinheiro real.

O incidente canônico: um desenvolvedor escreve um loop de geração de imagem Fal.ai. O loop "termina obviamente" porque itera sobre uma lista fixa. A lista vem de um callback que dispara em cada nova tentativa do Inngest. Cada nova tentativa dobra a lista. Pela manhã, a conta é de $200. Testes passam. Revisão de código passou. O bug não está no corpo do loop. O bug é que ninguém declarou o invariante da carteira.

runaway-guard corrige isso. Declare as chamadas máximas. Declare os dólares máximos por execução. Declare os dólares máximos por dia. Defina os mesmos limites no painel do provedor para que um bug de código não possa contorná-los. Então escreva o código.

Violar a letra destas regras é violar o espírito da habilidade. "Estou apenas testando localmente" é a exata racionalização que entrega a conta de $200 — o código local atinge a mesma API paga que a produção.

Quando Usar Esta Habilidade

Use runaway-guard quando:

  • Escrever ou revisar código que chama uma API paga de IA / inferência em um loop, fila, caminho de nova tentativa, etapa de agente, manipulador de webhook ou job em segundo plano.
  • Importar ou encapsular qualquer SDK de inferência paga: @fal-ai/*, fal-client, @anthropic-ai/sdk, anthropic, openai, replicate, elevenlabs, together-ai, groq-sdk, cohere-ai, @mistralai/*.
  • Projetar um loop de agente, pipeline fan-out, wrapper de nova tentativa, job de polling, reconexão de stream ou job de auto-reagendamento que possa chamar um endpoint cobrado.
  • Auditar uma base de código / PR para fan-out ilimitado, novas tentativas ilimitadas, chaves de idempotência ausentes ou limites de gastos do provedor ausentes.
  • Diagnosticar uma conta inesperada, incidente de loop descontrolado ou excedente surpresa.

A Lei de Ferro

NO CALL TO A PAID API WITHOUT A WRITTEN $-CAP AT BOTH THE CODE AND PROVIDER LEVEL

Um limite apenas no código pode ser contornado por um bug nesse código. Um limite apenas no provedor pode ser atingido durante o uso normal e degradar o produto. Você precisa de ambos. Se você não consegue declarar ambos em uma frase cada, você não projetou o local da chamada — você escreveu um desejo.

Regras Inegociáveis

  1. Cada local de chamada recebe um contrato de custo de uma linha. Antes de escrever qualquer chamada de API paga, declare em uma frase:

    • Máx. chamadas por execução: o limite superior estrito de invocações em uma única execução deste caminho de código.
    • Máx. $ por execução: max_calls × unit_cost — calcule, não estime.
    • Máx. $ por dia: o limite rígido do lado do provedor que garante o limite do lado do código.

    Exemplos:

    • "Fal flux-pro a $0.05/imagem; máx. 20 imagens por job; máx. $1 por job; Limite de Gastos do provedor $50/dia."
    • "Anthropic Sonnet a ~$0.015 por solicitação (em cache); máx. 50 solicitações por execução de agente; máx. $0.75 por execução; Orçamento de Espaço de Trabalho limite rígido $30/dia."

    Se você não consegue preencher todos os três números, você não projetou o local da chamada.

  2. Todo loop que chama uma API paga recebe um limite de iteração explícito, não apenas um argumento de terminação. invariant-guard requer uma medida de terminação. runaway-guard requer que o limite seja um inteiro concreto em código, não apenas "termina eventualmente":

    // ❌ Terminates in theory. Bills $200 in practice.
    while (job.status !== 'done') {
      await fal.run(...);
    }
    
    // ✅ Concrete bound — wallet invariant explicit.
    const MAX_CALLS = 20;
    for (let i = 0; i < MAX_CALLS && job.status !== 'done'; i++) {
      await fal.run(...);
    }
    if (job.status !== 'done') throw new Error('exceeded MAX_CALLS budget');
    
  3. Todo caminho de nova tentativa é limitado por tentativas E custo total decorrido, não apenas por tempo. Backoff exponencial sem limite de tentativas é um ataque à carteira contra você mesmo.

    • Máx. tentativas: um inteiro pequeno (3–5 para erros transitórios, 1 para 4xx).
    • Limite as contagens em todo o pipeline, não apenas em uma biblioteca — novas tentativas do Inngest × novas tentativas do SDK × seu próprio wrapper de nova tentativa se multiplicam.
    • Erros 4xx não tentam novamente. Ponto final. Eles não se tornarão 2xx; eles apenas cobrarão novamente.
  4. Todo caminho fan-out declara um limite de concorrência. Chamadas paralelas multiplicam o custo por segundo de relógio de parede. Declare o limite em código, na fila (Inngest concurrency) e no provedor onde suportado:

…

Perguntas frequentes

Por que preciso definir limites?

APIs de IA pagas podem gerar custos rapidamente se houver um erro no código, como um loop que não para. Definir limites evita que um pequeno erro se torne uma conta alta.

O que é um 'custo por execução'?

É o gasto máximo permitido em uma única vez que seu código é executado. Por exemplo, se você tem um limite de 10 chamadas e cada uma custa $0.01, o custo por execução é $0.10.

Por que preciso definir o limite no código E na plataforma do provedor?

Definir no código é uma primeira linha de defesa. Definir na plataforma do provedor garante que, mesmo que o código falhe, o gasto será interrompido externamente, como uma rede de segurança.

Detalhes

Descrição original do autor

Cost-safety discipline for paid AI / inference APIs: treat $-cost as a third complexity dimension alongside time and space. Forces a written per-run $-cap, per-day $-cap, max-iterations bound, concurrency limit, and a matching provider-dashboard hard cap BEFORE any call site is written.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4037
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas