Notícias
Notícias
5 min de leitura
9 de outubro de 2026

Postman escala agente IA pra 40M developers (lições reais)

Postman roda agentes de IA pra 40M developers em produção. Demo vs realidade: Como escalar agente sem quebrar. Lições práticas.

Equipe OpenClaw

Equipe OpenClaw · Time de Engenharia & Produto

A Equipe OpenClaw é formada por engenheiros, designers e especialistas em IA dedicados a construir a melhor plataforma de agentes conversacionais para negócios brasileiros. Combinamos expertise…


Postman escala agente IA pra 40M developers (lições reais)

Notícia: Postman (plataforma de API development usada por 40 milhões de developers) lançou Agent Mode: agente de IA integrado na plataforma. Problema: Não era só fazer demo funcionar — era escalar pra 40M users simultâneos, sem quebrar, sem custar R$ 10M/mês em tokens.

Implicação: Postman resolveu problemas que TODO founder com agente de IA em produção enfrenta. As lições deles? Ouro puro pra você.

**"Você é founder de SaaS com agente WhatsApp.

Cenário: Demo funciona perfeito

├─ Você testa com 10 users: Tudo bem ├─ Você escala pra 100 users: Latência aumenta (5s → 20s) ├─ Você tenta 1K users: Agente começa a alucinar (respostas piores) ├─ Você checa bill AWS: R$ 500K/mês (esperado: R$ 50K) ├─ Você tira agente do ar: Clientes furiosos └─ Realidade: Scaling é mais hard que build "**


O desafio: Demo ≠ Produção

Problema 1: Latência

Demo (10 users):

User pede: "Help me test this API"

Latência esperada: ~3-5 segundos Real: 3-5 segundos ✅

User experience: "Wow, AI assistant é rápido!"

Produção (40M users):

Milhões de users pedindo ajuda SIMULTANEAMENTE

Problema: ├─ LLM model tem limite de throughput (ex: 100 requests/second) ├─ Se 1M users acionam agente ao mesmo tempo ├─ Queue forma (fila de espera) ├─ Latência: 3s → 30s → 300s+ (inaceitável) └─ Users: "Agente tá morto" (churn)

Solução (Postman usou): ├─ Modelo sharding: Múltiplos models rodando em paralelo ├─ Request routing: Distribuir across servers ├─ Caching: Respostas similares são cached (não re-compute) └─ Async processing: Algumas requests rodam em background

Problema 2: Custo de tokens

Demo (100 requisições/dia):

Custo estimado: ~R$ 2/dia

Todos agentes = sucesso ✅

Produção (40M users, 10% usa agente/dia):

40M × 10% = 4M users/dia usando agente

Cada request = ~1000 tokens (média) ├─ Input: 500 tokens (contexto, história de chat) ├─ Output: 500 tokens (resposta)

Total/dia: 4M users × 1000 tokens = 4 bilhões tokens

Custo: ├─ Claude/GPT4: ~$0.01 per 1K tokens ├─ 4B tokens × $0.01 = $40K/dia ├─ $40K × 30 = $1.2M/mês └─ ❌ Insustentável (margin não suporta)

Solução (Postman usou): ├─ Usar modelo mais barato (ex: Bedrock with Llama) ├─ Prompt compression (remover contexto desnecessário) ├─ Caching agressivo (reuse responses) ├─ Rate-limiting (limitar requests por user) └─ Resultado: ~$50K-100K/mês (sustentável)

Problema 3: Qualidade degrada com escala

Demo (teste manual):

You: "How do I test this API?" Agent: "Here's how: [perfect response]"

Quality: ⭐⭐⭐⭐⭐ (100%)

Produção (automatizado, 40M users):

Problema: ├─ Agente ve 40M contextos diferentes ├─ Agente começa a hallucinate (alucinações) ├─ Respostas ficam genéricas (low quality) ├─ Alguns users recebem respostas completamente erradas └─ Quality degrada: 100% → 70%

Razão: ├─ LLM não é determinístico (mesmo prompt = outputs diferentes) ├─ Agente não tem memória (esquece contexto passado) ├─ Agente não consegue lidar com "ambiguidade" em escala └─ Resultado: Respostas piores quanto mais users

Solução (Postman usou): ├─ Fine-tuning: Treinar modelo especificamente pra Postman context ├─ Grounding: Conectar agente a database ("facts" checadas) ├─ Feedback loop: Usuários marcam respostas ruins (retraining) ├─ Human-in-the-loop: Respostas de alta-risco requerem human review └─ Monitoring: Detectar hallucinations automaticamente


Arquitetura de Postman: Como eles escalaram

1. Model sharding + Load balancing

O que fizeram:

Infra de Postman (antes): └─ 1 LLM model rodando (gargalo)

Infra de Postman (depois): ├─ Model 1: Bedrock Claude ├─ Model 2: Bedrock Llama (cheaper) ├─ Model 3: Local small model (on-device) └─ Load balancer: Roteia request pro model menos ocupado

Benefício: ├─ Throughput aumenta 3x (3 models em paralelo) ├─ Se 1 model fica lento, outros pegam overflow ├─ Custo reduz (Llama é 5x mais barato que Claude) └─ Latência reduz: 30s → 10s

2. Prompt compression + Caching

O que fizeram:

Prompt antes (verboso): ├─ Full context: 2000+ tokens ├─ Chat history: 1000+ tokens ├─ System instructions: 500+ tokens └─ Total: ~3500 tokens/request

Prompt depois (otimizado): ├─ Essencial context: 300 tokens (removeu redundância) ├─ Summarized history: 200 tokens (resumiu convo anterior) ├─ Instructions: 100 tokens (simplificou) └─ Total: ~600 tokens/request

Benefício: ├─ Token cost reduz 5x (3500 → 600) ├─ Latência reduz (menos processamento) ├─ Acurácia melhora (menos "noise") └─ Resultado: Produção fica viável

Caching: ├─ Mesma pergunta? Use resposta cached ├─ "How do I set headers?" → já respondemos 100K vezes ├─ Cache hit: Retorna em <100ms (vs 5s LLM call) ├─ Cache hit rate: ~40% (Postman estima) └─ Resultado: 40% de requests economizam 95% de tempo/cost

3. Asynchronous processing

O que fizeram:

Fluxo antes (síncrono): ├─ User solicita: "Help me debug this" ├─ Sistema: Aguarda LLM responder (bloqueia) ├─ Latência: ~5s (síncrono) └─ User: Aguarda

Fluxo depois (assincrônico): ├─ User solicita: "Help me debug this" ├─ Sistema: Enqueue job (retorna imediatamente) ├─ User: Vê mensagem "Processing your request..." ├─ Background job: Roda LLM call (não bloqueia user) ├─ Response: Notifica user quando pronto (em vez de esperar) └─ Latência percebida: <100ms (vs 5s)

Benefício: ├─ User experience melhora (não trava) ├─ Throughput aumenta (backend não fica bloqueado) ├─ Escalabilidade aumenta (request processing é paralelo) └─ Resultado: 10x mais users com mesma infra

4. Observability + Monitoring

O que fizeram:

Metricas que monitoram (real-time): ├─ Latency: P50, P95, P99 (percentis) ├─ Token usage: Total tokens/hour, cost/hour ├─ Error rate: % de requests que falharam ├─ Hallucination rate: % de respostas incorretas (detectado via user feedback) ├─ Cache hit rate: % de requests servidos por cache ├─ Model performance: Qual model performou melhor? ├─ User satisfaction: Thumbs up/down feedback └─ Infrastructure: CPU, memory, database latency

Alerts automáticos: ├─ P99 latency > 10s → Escala mais servers ├─ Error rate > 5% → Rollback agente ├─ Cost/hour > $500 → Rate-limit users ├─ Hallucination rate > 10% → Retrain modelo └─ Cache hit rate < 30% → Otimizar prompts

Benefício: ├─ Detecta problema antes de usuario reclamar ├─ Reagem em minutos (não horas) ├─ Data-driven decisions (não guessing) └─ Resultado: SLA de 99.9% uptime


Lições práticas pra seu agente

Lição 1: Não comece com LLM premium

Erro comum:

Startup thinking: "Vou usar GPT-4 (melhor model)"

Realidade: ├─ GPT-4: $0.03-0.06 per 1K tokens ├─ Llama 2: $0.001 per 1K tokens (30x mais barato) ├─ Local model: $0 (roda on-device) └─ Margem: Se usar GPT-4, unit economics quebra

Estrategia de Postman: ├─ Comece com Llama/Bedrock (barato) ├─ Se não funciona bem: Use GPT-4 pra casos específicos ├─ Resultado: 90% de requests com Llama, 10% com GPT-4 └─ Custo: 5x mais barato que all-GPT-4

Ação:

python

model_selector.py

class AdaptiveModelRouter: """ Escolhe modelo baseado em request complexity """

def select_model(self, query: str) -> str:
    complexity = estimate_complexity(query)
    
    if complexity < 3:  # Fácil (ex: "What is REST API?")
        return "llama-7b"  # Barato, rápido
    elif complexity < 6:  # Médio (ex: "Debug my code")
        return "llama-70b"  # Mais caro, melhor
    else:  # Difícil (ex: "Solve complex architecture problem")
        return "gpt-4"  # Premium (últimas tentativas)

def estimate_complexity(query: str) -> int:
    # Heurística simples
    length = len(query.split())
    has_code = "" in query
    has_error = "error" in query.lower()
    
    score = length // 5  # +1 per 5 words
    score += 2 if has_code else 0
    score += 1 if has_error else 0
    
    return min(score, 10)  # Cap at 10

Lição 2: Caching é seu melhor amigo

Dado que 40% de requests são repetidos:

python

cache_strategy.py

class SmartCache: def init(self): self.cache = {} # {question_hash: response} self.ttl = 86400 # 24 hours

def get_response(self, query: str):
    query_hash = hash_query(query)
    
    # Exact match?
    if query_hash in self.cache:
        return self.cache[query_hash]  # <100ms
    
    # Similar query?
    similar = find_similar_query(query)  # Embedding similarity
    if similar:
        return adapt_response(self.cache[similar], query)
    
    # No cache hit, call LLM
    response = llm.call(query)
    self.cache[query_hash] = response
    return response

Impact:

- Without cache: 4B tokens/day = $40K/day

- With 40% hit rate: 2.4B tokens/day = $24K/day

- Savings: $16K/day = $480K/month!

Lição 3: Monitoring desde dia 1

O que monitorar:

☐ Latency (P50, P95, P99) ☐ Cost per request (token usage) ☐ Error rate (failures) ☐ Hallucination rate (incorrect responses) ☐ Cache hit rate ☐ User satisfaction (thumbs up/down) ☐ Model performance (which model is best?) ☐ Infrastructure health (CPU, memory, DB)

Setup (simple): ├─ Use CloudWatch/Datadog (já integrado com AWS) ├─ Set alerts (quando métrica diverge de baseline) ├─ Dashboard: Visualize em tempo real └─ Weekly review: Compare semana anterior

Lição 4: Rate-limiting é obrigatório

Sem rate-limiting:

Um usuário maligno (ou bot): ├─ Faz 1M requests/hora ├─ Sua bill: +$10K/hora ├─ Seu serviço: Slow pra outros users └─ Você não sabe quem foi (até tarde)

Com rate-limiting: ├─ Max 100 requests/user/hora ├─ Exceder: "Rate limited, try again later" ├─ Sua bill: Controlada ├─ Seu serviço: Fair pra todos └─ Resultado: Sustentável

Implementação:

python

rate_limiter.py

class RateLimiter: def init(self, max_requests=100, window_seconds=3600): self.max_requests = max_requests self.window_seconds = window_seconds self.requests = {} # {user_id: [timestamps...]}

def is_allowed(self, user_id: str) -> bool:
    now = time.time()
    window_start = now - self.window_seconds
    
    # Clean old requests
    if user_id in self.requests:
        self.requests[user_id] = [
            ts for ts in self.requests[user_id]
            if ts > window_start
        ]
    else:
        self.requests[user_id] = []
    
    # Check limit
    if len(self.requests[user_id]) < self.max_requests:
        self.requests[user_id].append(now)
        return True
    else:
        return False  # Rate limited

Checklist: Preparar seu agente pra escala

☐ Escolher modelo barato (Llama, não GPT-4 default) ☐ Implementar caching (respostas similares) ☐ Async processing (não bloqueia user) ☐ Load balancing (múltiplos models, múltiplos replicas) ☐ Monitoring (latency, cost, error, satisfaction) ☐ Rate-limiting (por user, por IP) ☐ Prompt compression (remover contexto desnecessário) ☐ Feedback loop (users marcam respostas ruins) ☐ Grounding (conectar a database checado) ☐ Fallback strategy (se agente falha, retorna default)


Conclusão: Demo é fácil, produção é hard

Realidade:

Demo (10 users): ✅ Agente funciona ✅ Latência: <5s ✅ Custo: Negligível ✅ Qualidade: Ótima └─ Conclusão: "Sucesso! Ship it!"

Produção (1M users): ❌ Agente lento (30s+) ❌ Custo explode ($100K/mês) ❌ Qualidade degrade (mais erros) ❌ Uptime cai (overload) └─ Conclusão: "Por que não avisar antes?" (retro)

Postman (40M users): ✅ Agente rápido (<5s P99) ✅ Custo sustentável (~$100K/mês, margens positivas) ✅ Qualidade consistente (99%+ acurácia) ✅ Uptime 99.9%+ └─ Conclusão: "Engineering maturity" (years of work)

Implicação:

Você tem 2 opções:

  1. Learning the hard way └─ Build → Scale → Falha → Rebuild └─ Tempo: 1-2 anos └─ Custo: R$ 1M+ em infraestrutura └─ Oportunidade perdida: Meses de churn

  2. Learning de Postman └─ Implementar estratégias de Postman desde dia 1 └─ Tempo: 2-3 meses └─ Custo: R$ 100K em eng (uma vez) └─ Vantagem: 10x mais rápido, 10x mais barato

Ação:

  1. Comece com Llama (não GPT-4): Economia de custo imediata
  2. Implemente caching: 40% de requests economizam 95% de tempo/cost
  3. Setup monitoring: Veja problemas em tempo real
  4. Add rate-limiting: Proteja sua infraestrutura
  5. Test em 10K+ users: Descubra gargalos antes de produção

→ OpenClaw: Agentes otimizados pra escala (já pronto pra 1M+ users)

Sua demo funciona em 10 users. Consegue rodar em 1M? Postman aprendeu da forma difícil. Você pode aprender de graça. 🚀


Publicado em 9 de outubro de 2026

Leia também