Limpe e analise um CSV bagunçado com um agente de IA

Um agente analisa um CSV com comandos reais em um sandbox e relata duplicatas, valores ausentes, formatos inválidos e outliers.

  • Arquivos
  • Shell
  • 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.

Concluídarun_a95629e4250a32c985f2bd387bfe25f3$0.006427 de $0.05
  1. Na filaorçamento de $0.05 reservado
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell on · web off
  4. Arquivoread orders.csv
  5. Shell$ python3 - <<'PY' import csv p='/tmp/ephemeral-run-s2TPIy/bundle/orders.csv' with open(p,newline='')…
  6. Shell$ python3 - <<'PY' import csv,re,datetime,collections p='/tmp/ephemeral-run-s2TPIy/bundle/orders.csv'…
  7. MicroVMmicroVM destroyed
  8. Concluída3 chamadas ao modelo, 9,333 tokensSaída gravada (em inglês)

    Verdict: Found data-quality issues in missing values, duplicates, email, casing, dates, and quantity.

    IssueCountAffected data rowsSuggested fix
    Missing customer_email13Populate or explicitly mark unknown.
    Missing unit_price19Populate or explicitly mark unknown.
    Duplicate full rows27, 8Remove one duplicate.
    Duplicate order_id27, 8Confirm which order is valid; make IDs unique.
    Invalid email14Correct the address (e.g., add a valid domain).
    Inconsistent country casing12Normalize de to DE.
    Inconsistent status casing112Normalize Shipped to shipped.
    Date not in YYYY-MM-DD format15Convert to 2026-09-02.
    Nonexistent date114Correct 2026-09-31 to the intended valid date.
    Negative quantity16Verify and correct the quantity.
    Extreme quantity outlier (1000)115Verify against the source order.
  9. Worker destruído$0.006427 cobrados, $0.043573 liberados
Modelo $0.001027 · Web $0.00 · Computação $0.0054

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.05

Como funciona

O arquivo é somente leitura e o sandbox não tem rede, então os dados ficam onde estão. O agente conta os problemas com o shell em vez de conferir a olho e lista cada ocorrência com os números das linhas e uma sugestão de correção.

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õesNenhuma
WebDesativado
ShellAtivado, dentro da máquina isolada
Arquivosorders.csv (somente leitura)
Retenção zero de dadosDesativada: o registro é mantido por 30 dias
Orçamento$0.05, um limite rígido
Tempo limite120 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

Arquivos na requisição

Enviados inline, então nada é carregado antes. O agente vê cada um como um arquivo somente leitura.

orders.csv
orders.csv
order_id,customer_email,country,order_date,quantity,unit_price,status
1001,[email protected],DE,2026-09-01,2,19.90,shipped
1002,[email protected],de,2026-09-01,1,19.90,shipped
1003,,US,2026-09-02,3,9.50,shipped
1004,carla@example,US,2026-09-02,1,49.00,delivered
1005,[email protected],FR,02/09/2026,1,49.00,delivered
1006,[email protected],FR,2026-09-03,-1,19.90,refunded
1007,[email protected],US,2026-09-03,2,9.50,shipped
1007,[email protected],US,2026-09-03,2,9.50,shipped
1008,[email protected],GB,2026-09-04,1,,shipped
1009,[email protected],JP,2026-09-04,5,19.90,delivered
1010,[email protected],DE,2026-09-05,1,19.90,shipped
1011,[email protected],US,2026-09-05,1,9.50,Shipped
1012,[email protected],KR,2026-09-06,1,49.00,delivered
1013,[email protected],US,2026-09-31,2,9.50,shipped
1014,[email protected],DE,2026-09-07,1000,19.90,shipped
1015,[email protected],FR,2026-09-08,1,19.90,delivered
1016,[email protected],GB,2026-09-08,2,49.00,delivered
1017,[email protected],US,2026-09-09,1,9.50,cancelled
1018,[email protected],DE,2026-09-09,1,19.90,delivered
1019,[email protected],US,2026-09-10,2,9.50,shipped
1020,[email protected],JP,2026-09-10,1,49.00,delivered
Corpo completo da requisição request.json

O mesmo corpo, com os arquivos inline.

request.json
{
  "prompt": "Profile orders.csv (columns: order_id, customer_email, country, order_date, quantity, unit_price, status). Use the shell (python3, awk, sort, uniq, whatever is installed) to count the problems; do not count by eye. Check duplicate rows and duplicate order_ids, missing values per column, invalid emails, inconsistent country or status casing, dates that are not YYYY-MM-DD or do not exist, negative quantities and extreme outliers. Reply in Markdown, at most 220 words: a one-line verdict, then a table of issue, count, affected row numbers (data rows, header excluded) and a suggested fix. If a check finds nothing, omit it.",
  "files": [
    {
      "path": "orders.csv",
      "content": "order_id,customer_email,country,order_date,quantity,unit_price,status\n1001,[email protected],DE,2026-09-01,2,19.90,shipped\n1002,[email protected],de,2026-09-01,1,19.90,shipped\n1003,,US,2026-09-02,3,9.50,shipped\n1004,carla@example,US,2026-09-02,1,49.00,delivered\n1005,[email protected],FR,02/09/2026,1,49.00,delivered\n1006,[email protected],FR,2026-09-03,-1,19.90,refunded\n1007,[email protected],US,2026-09-03,2,9.50,shipped\n1007,[email protected],US,2026-09-03,2,9.50,shipped\n1008,[email protected],GB,2026-09-04,1,,shipped\n1009,[email protected],JP,2026-09-04,5,19.90,delivered\n1010,[email protected],DE,2026-09-05,1,19.90,shipped\n1011,[email protected],US,2026-09-05,1,9.50,Shipped\n1012,[email protected],KR,2026-09-06,1,49.00,delivered\n1013,[email protected],US,2026-09-31,2,9.50,shipped\n1014,[email protected],DE,2026-09-07,1000,19.90,shipped\n1015,[email protected],FR,2026-09-08,1,19.90,delivered\n1016,[email protected],GB,2026-09-08,2,49.00,delivered\n1017,[email protected],US,2026-09-09,1,9.50,cancelled\n1018,[email protected],DE,2026-09-09,1,19.90,delivered\n1019,[email protected],US,2026-09-10,2,9.50,shipped\n1020,[email protected],JP,2026-09-10,1,49.00,delivered\n"
    }
  ],
  "web": false,
  "shell": true,
  "timeout_seconds": 120,
  "max_cost_micros": 50000
}

Saiba mais

Exemplos relacionados

esc

Nada corresponde a “”.