Alerta de estoque baixo com IA e sugestões de reposição

Um agente lê o estoque e oito semanas de vendas, sinaliza os SKUs que vão acabar em breve e sugere o que repor.

  • Conexão somente leitura
  • Agendado
  • Callback
  • Limite de orçamento

Veja uma execução real

Uma execução real em 7 de out. de 2026, reproduzida. Modelo: openai/gpt-6-luna.

Entrada
{
  "threshold_days": 14
}
Concluídarun_140400c56f2633ed9b2e58f2b62a6e23$0.004414 de $0.03
  1. Na filaorçamento de $0.03 reservado
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell off · web off
  4. Conexãoops GET /inventory
  5. Resultadoops GET → 200
  6. MicroVMmicroVM destroyed
  7. Concluída2 chamadas ao modelo, 4,167 tokensSaída gravada (em inglês)
    SKUStockDaily rate (units/day)Days of coverReorder quantity
    TEE-BLK-M645.8610.9230
    CAP-NVY-0191.297.070
    NTBK-A5-0103.540.00

    Human look:

    • NTBK-A5-01: Sales fell from 26 to 14 in the latest week while stock is 0; the data doesn’t establish the cause.
    • BAG-CNV-01: Sales declined across the last four weeks (8, 6, 5, 4) despite stock of 250.
  8. Worker destruído$0.004414 cobrados, $0.025586 liberados
Modelo $0.000814 · Web $0.00 · Computação $0.0036

Execute você mesmo

Abra o exemplo no playground com a requisição inteira preenchida. Ele roda na sua própria conta, dentro do orçamento indicado, contra os mesmos sistemas de exemplo somente leitura.

Orçamento deste exemplo: $0.03

Como funciona

Ele lê estoque, pedidos em aberto, prazos de entrega e vendas semanais em uma API de estoque somente leitura e aplica a regra que você definir. A resposta é uma tabela curta que um comprador pode usar, com os números à mostra para que possam ser conferidos.

O que o agente pode e não pode fazer

As permissões fazem parte da requisição. Tudo o que não está listado aqui não está disponível para a execução.

ConfiguraçãoPermitido
Conexões
ops: somente GET, em ephemer.al/api/samples/ops-api
WebDesativado
ShellDesativado
ArquivosNenhuma
Retenção zero de dadosDesativada: o registro é mantido por 30 dias
Orçamento$0.03, um limite rígido
Tempo limite60 segundos

As credenciais nunca entram na máquina: um broker as adiciona a cada chamada e aplica os métodos acima.

O código

Esta é a requisição exata que o exemplo envia. Defina EPHEMERAL_API_KEY com uma chave de membro da sua organização.

curl -X POST $EPHEMERAL_URL/v1/runs \
  -H "Authorization: Bearer $EPHEMERAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d @request.json
Corpo completo da requisição workflow.json

O mesmo corpo, com os arquivos inline.

workflow.json
{
  "prompt": "Read GET /inventory on the ops connection. For each SKU, daily_rate is the average of the last 4 values of weekly_sales divided by 7, and days_of_cover is stock divided by daily_rate (treat a daily_rate of 0 as unlimited cover). Flag every SKU whose days_of_cover is below input.threshold_days. For each flagged SKU suggest a reorder quantity: daily_rate times (lead_time_days plus 28), minus stock, minus on_order, rounded up to the next 10, and never below 0 (when stock plus on_order already covers it, the reorder quantity is 0). Reply in Markdown: a table with SKU, stock, daily_rate, days_of_cover and reorder quantity, then one line per SKU that deserves a human look (for example a sales dip caused by a stockout). Use only what the data returns and never guess; if a call fails or a field is missing, say so.",
  "connections": {
    "ops": {
      "type": "http",
      "url": "https://ephemer.al/api/samples/ops-api",
      "auth": {
        "type": "bearer",
        "token": "sample_read_key"
      },
      "allowed_methods": [
        "GET"
      ],
      "instructions": "GET /inventory returns as_of, the week start dates, and items with sku, name, stock, on_order, lead_time_days, unit_cost_usd and weekly_sales (units per week, oldest first, the last entry is the most recent week)."
    }
  },
  "shell": false,
  "timeout_seconds": 60
}

Este exemplo roda em um horário fixo: 0 8 * * 1-5 em Europe/Berlin. Um agendamento inicia um fluxo de trabalho salvo, então salve a requisição como fluxo de trabalho primeiro e depois crie o agendamento.

Saiba mais

Exemplos relacionados

esc

Nada corresponde a “”.