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.
- Na filaorçamento de $0.05 reservado
- MicroVMmicroVM ready
- MicroVMworker started · shell on · web off
- Arquivo
read orders.csv - Shell
$ python3 - <<'PY' import csv p='/tmp/ephemeral-run-s2TPIy/bundle/orders.csv' with open(p,newline='')… - Shell
$ python3 - <<'PY' import csv,re,datetime,collections p='/tmp/ephemeral-run-s2TPIy/bundle/orders.csv'… - MicroVMmicroVM destroyed
- 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.
Issue Count Affected data rows Suggested fix Missing customer_email1 3 Populate or explicitly mark unknown. Missing unit_price1 9 Populate or explicitly mark unknown. Duplicate full rows 2 7, 8 Remove one duplicate. Duplicate order_id2 7, 8 Confirm which order is valid; make IDs unique. Invalid email 1 4 Correct the address (e.g., add a valid domain). Inconsistent country casing 1 2 Normalize detoDE.Inconsistent status casing 1 12 Normalize Shippedtoshipped.Date not in YYYY-MM-DDformat1 5 Convert to 2026-09-02.Nonexistent date 1 14 Correct 2026-09-31to the intended valid date.Negative quantity 1 6 Verify and correct the quantity. Extreme quantity outlier ( 1000)1 15 Verify against the source order. - Worker destruído$0.006427 cobrados, $0.043573 liberados
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ção | Permitido |
|---|---|
| Conexões | Nenhuma |
| Web | Desativado |
| Shell | Ativado, dentro da máquina isolada |
| Arquivos | orders.csv (somente leitura) |
| Retenção zero de dados | Desativada: o registro é mantido por 30 dias |
| Orçamento | $0.05, um limite rígido |
| Tempo limite | 120 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.jsonArquivos na requisição
Enviados inline, então nada é carregado antes. O agente vê cada um como um arquivo somente leitura.
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.
{
"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
}