Communitygithub.com

Pipeline LLM com Consciência de Custos

Padrões de otimização de custos para uso de APIs LLM — roteamento de modelos por complexidade da tarefa, rastreamento de orçamento, lógica de repetição e cache de prompts. Use quando os gastos com LLM precisam ser reduzidos ou ao rotear tarefas entre níveis de modelo e orçamentos.

O que é Pipeline LLM com Consciência de Custos?

Este skill fornece padrões práticos para controlar custos de APIs LLM sem sacrificar a qualidade. Ele combina quatro técnicas principais: roteamento automático de modelos com base na complexidade da tarefa (enviando tarefas simples para modelos mais baratos), rastreamento imutável de custos com dataclasses congeladas, lógica de repetição com backoff exponencial apenas para erros transitórios, e cache de prompts usando o parâmetro `cache_control` das APIs. O resultado é um pipeline componível que pode ser integrado em aplicações que chamam Claude, GPT ou APIs similares, garantindo que o orçamento não seja ultrapassado e que os custos sejam mantidos baixos para tarefas rotineiras. Inclui referências de preços para 2026, boas práticas e antipadrões para evitar, sendo ideal para sistemas de produção que precisam de limites de gastos e roteamento inteligente.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/cost-aware-llm-pipeline

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Pipeline LLM com Consciência de Custos faz?

Padrões para controlar custos de APIs LLM mantendo a qualidade. Combina roteamento de modelos, rastreamento de orçamento, lógica de repetição e cache de prompts em um pipeline componível.

Quando Ativar

  • Construindo aplicações que chamam APIs LLM (Claude, GPT, etc.)
  • Processando lotes de itens com complexidade variável
  • Necessidade de permanecer dentro de um orçamento para gastos com API
  • Otimizando custos sem sacrificar a qualidade em tarefas complexas

Conceitos Principais

1. Roteamento de Modelos por Complexidade da Tarefa

Selecionar automaticamente modelos mais baratos para tarefas simples, reservando modelos caros para as complexas.

MODEL_SONNET = "claude-sonnet-5"
MODEL_HAIKU = "claude-haiku-4-5-20251001"

_SONNET_TEXT_THRESHOLD = 10_000  # caracteres
_SONNET_ITEM_THRESHOLD = 30      # itens

def select_model(
    text_length: int,
    item_count: int,
    force_model: str | None = None,
) -> str:
    """Seleciona modelo baseado na complexidade da tarefa."""
    if force_model is not None:
        return force_model
    if text_length >= _SONNET_TEXT_THRESHOLD or item_count >= _SONNET_ITEM_THRESHOLD:
        return MODEL_SONNET  # Tarefa complexa
    return MODEL_HAIKU  # Tarefa simples (3-4x mais barato)

2. Rastreamento Imutável de Custos

Rastrear gastos acumulados com dataclasses congeladas. Cada chamada de API retorna um novo rastreador — nunca muta o estado.

from dataclasses import dataclass

@dataclass(frozen=True, slots=True)
class CostRecord:
    model: str
    input_tokens: int
    output_tokens: int
    cost_usd: float

@dataclass(frozen=True, slots=True)
class CostTracker:
    budget_limit: float = 1.00
    records: tuple[CostRecord, ...] = ()

    def add(self, record: CostRecord) -> "CostTracker":
        """Retorna novo rastreador com o registro adicionado (nunca muta self)."""
        return CostTracker(
            budget_limit=self.budget_limit,
            records=(*self.records, record),
        )

    @property
    def total_cost(self) -> float:
        return sum(r.cost_usd for r in self.records)

    @property
    def over_budget(self) -> bool:
        return self.total_cost > self.budget_limit

3. Lógica de Repetição Restrita

Repetir apenas em erros transitórios. Falhar rapidamente em erros de autenticação ou requisição inválida.

from anthropic import (
    APIConnectionError,
    InternalServerError,
    RateLimitError,
)

_RETRYABLE_ERRORS = (APIConnectionError, RateLimitError, InternalServerError)
_MAX_RETRIES = 3

def call_with_retry(func, *, max_retries: int = _MAX_RETRIES):
    """Repetir apenas em erros transitórios, falhar rapidamente nos outros."""
    for attempt in range(max_retries):
        try:
            return func()
        except _RETRYABLE_ERRORS:
            if attempt == max_retries - 1:
                raise
            time.sleep(2 ** attempt)  # Backoff exponencial
    # AuthenticationError, BadRequestError etc. → levanta imediatamente

4. Cache de Prompts

Armazenar em cache prompts de sistema longos para evitar reenviá-los em cada requisição.

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": system_prompt,
                "cache_control": {"type": "ephemeral"},  # Armazenar em cache
            },
            {
                "type": "text",
                "text": user_input,  # Parte variável
            },
        ],
    }
]

Composição

Combinar todas as quatro técnicas em uma única função de pipeline:

def process(text: str, config: Config, tracker: CostTracker) -> tuple[Result, CostTracker]:
    # 1. Roteamento do modelo
    model = select_model(len(text), estimated_items, config.force_model)

    # 2. Verificar orçamento
    if tracker.over_budget:
        raise BudgetExceededError(tracker.total_cost, tracker.budget_limit)

    # 3. Chamada com repetição + cache
    response = call_with_retry(lambda: client.messages.create(
        model=model,
        messages=build_cached_messages(system_prompt, text),
    ))

    # 4. Rastrear custo (imutável)
    record = CostRecord(model=model, input_tokens=..., output_tokens=..., cost_usd=...)
    tracker = tracker.add(record)

    return parse_result(response), tracker

Referência de Preços (2026)

ModeloEntrada ($/1M tokens)Saída ($/1M tokens)Custo Relativo
Haiku 3.5 (legado)$0.80$4.000.8x
Haiku 4.5$1.00$5.001x
Sonnet 5$2.00$10.002x
Sonnet 4.6$3.00$15.003x
Opus 4.8$5.00$25.005x
Fable 5 / Mythos 5$10.00$50.0010x
Opus 4.0 / 4.1 (legado)$15.00$75.0015x

Melhores Práticas

  • Comece com o modelo mais barato e só roteie para modelos caros quando os limites de complexidade forem atingidos
  • Defina limites de orçamento explícitos antes de processar lotes — falhe cedo em vez de gastar demais
  • Registre as decisões de seleção de modelo para poder ajustar os limites com base em dados reais
  • Use cache de prompts para prompts de sistema com mais de 1024 tokens — economiza custo e latência
  • Nunca repita em erros de autenticação ou validação — apenas em falhas transitórias (rede, limite de taxa, erro de servidor)

Antipadrões a Evitar

  • Usar o modelo mais caro para todas as requisições, independentemente da complexidade
  • Repetir em todos os erros (desperdiça orçamento em falhas permanentes)
  • Mutar o estado de rastreamento de custos (dificulta depuração e auditoria)
  • Codificar nomes de modelos diretamente no código (use constantes ou configuração)
  • Ignorar cache de prompts para prompts de sistema repetitivos

Quando Usar

  • Qualquer aplicação que chame Claude, OpenAI ou APIs LLM similares
  • Pipelines de processamento em lote onde o custo se acumula rapidamente
  • Arquiteturas com múltiplos modelos que precisam de roteamento inteligente
  • Sistemas de produção que precisam de limites de orçamento

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Habilidades Relacionadas