Confira relatórios de despesas com a política da empresa usando IA

Um agente lê uma política e uma lista de despesas e sinaliza cada violação com a cláusula que ela infringe.

  • Arquivos
  • 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_ae931be673f63d34dfc866fd9f435b33$0.00491 de $0.03
  1. Na filaorçamento de $0.03 reservado
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell off · web off
  4. Arquivoread expense-policy.md
  5. Arquivoread expenses.csv
  6. MicroVMmicroVM destroyed
  7. Concluída2 chamadas ao modelo, 3,564 tokensSaída gravada (em inglês)
    json
    {
      "violations": [
        {
          "line": 2,
          "clause": 1,
          "reason": "The expense includes wine, and alcohol is never reimbursed."
        },
        {
          "line": 6,
          "clause": 2,
          "reason": "The $52 expense is missing a receipt."
        },
        {
          "line": 7,
          "clause": 5,
          "reason": "The Sunday ride has no note naming a business reason."
        },
        {
          "line": 9,
          "clause": 6,
          "reason": "This expense is an exact duplicate of line 10."
        },
        {
          "line": 10,
          "clause": 6,
          "reason": "This expense is an exact duplicate of line 9."
        },
        {
          "line": 5,
          "clause": 4,
          "reason": "$410 for two nights is $205 per night, exceeding the $180 limit."
        },
        {
          "line": 12,
          "clause": 4,
          "reason": "$205 for one night exceeds the $180 per-night limit."
        }
      ],
      "needs_human": [
        {
          "line": 2,
          "question": "How many people were covered by this meal, so the $60 per-person daily limit can be checked?"
        },
        {
          "line": 3,
          "question": "Was this 11-hour business-class flight approved in advance by a director?"
        },
        {
          "line": 6,
          "question": "Was the airport taxi taken for a business trip?"
        },
        {
          "line": 7,
          "question": "Was this ride part of a business trip?"
        }
      ],
      "compliant_lines": 4
    }
  8. Worker destruído$0.00491 cobrados, $0.02509 liberados
Modelo $0.00091 · Web $0.00 · Computação $0.004

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

Tanto a política quanto as linhas de despesa são arquivos somente leitura. A resposta cita o número da linha e o número da cláusula de cada sinalização, para que um revisor possa verificar em segundos. As linhas que estão em conformidade não são listadas.

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
ShellDesativado
Arquivosexpense-policy.md, expenses.csv (somente leitura)
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

Arquivos na requisição

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

expense-policy.md
expense-policy.md
# Expense policy

1. Meals: at most 60 USD per person per day. Alcohol is never reimbursed.
2. Every expense of 25 USD or more needs a receipt.
3. Flights: economy class only, unless the flight is longer than 8 hours and a director approved it in advance.
4. Hotels: at most 180 USD per night.
5. Taxis and rides: only for business trips; weekend rides need a note naming the business reason.
6. The same expense must not be claimed twice.
expenses.csv
expenses.csv
line,date,employee,category,description,amount_usd,receipt,approved_by
1,2026-09-14,a.nguyen,meal,Team lunch (4 people),88.00,yes,
2,2026-09-14,a.nguyen,meal,Wine with client dinner,64.00,yes,
3,2026-09-15,b.keller,flight,Frankfurt to Tokyo business class (11h),4210.00,yes,
4,2026-09-15,b.keller,flight,Tokyo to Frankfurt economy (11h),980.00,yes,
5,2026-09-16,c.ortiz,hotel,Hotel Osaka 2 nights,410.00,yes,
6,2026-09-17,c.ortiz,taxi,Airport taxi,52.00,no,
7,2026-09-20,d.smith,taxi,Sunday ride home,31.00,yes,
8,2026-09-21,a.nguyen,meal,Breakfast,14.50,no,
9,2026-09-22,e.rossi,flight,Milan to Berlin economy,210.00,yes,
10,2026-09-22,e.rossi,flight,Milan to Berlin economy,210.00,yes,
11,2026-09-23,f.hall,meal,Dinner (1 person),47.00,yes,
12,2026-09-24,c.ortiz,hotel,Hotel Kyoto 1 night,205.00,yes,
Corpo completo da requisição request.json

O mesmo corpo, com os arquivos inline.

request.json
{
  "prompt": "Check every line of expenses.csv against expense-policy.md. Reply with one JSON object and nothing else: {\"violations\": [{\"line\": number, \"clause\": number, \"reason\": string}], \"needs_human\": [{\"line\": number, \"question\": string}], \"compliant_lines\": number}. Report a violation only when the file proves it. When a rule cannot be checked from the data (for example advance approval), put the line in needs_human instead of guessing. A line can appear more than once if it breaks several clauses.",
  "files": [
    {
      "path": "expense-policy.md",
      "content": "# Expense policy\n\n1. Meals: at most 60 USD per person per day. Alcohol is never reimbursed.\n2. Every expense of 25 USD or more needs a receipt.\n3. Flights: economy class only, unless the flight is longer than 8 hours and a director approved it in advance.\n4. Hotels: at most 180 USD per night.\n5. Taxis and rides: only for business trips; weekend rides need a note naming the business reason.\n6. The same expense must not be claimed twice.\n"
    },
    {
      "path": "expenses.csv",
      "content": "line,date,employee,category,description,amount_usd,receipt,approved_by\n1,2026-09-14,a.nguyen,meal,Team lunch (4 people),88.00,yes,\n2,2026-09-14,a.nguyen,meal,Wine with client dinner,64.00,yes,\n3,2026-09-15,b.keller,flight,Frankfurt to Tokyo business class (11h),4210.00,yes,\n4,2026-09-15,b.keller,flight,Tokyo to Frankfurt economy (11h),980.00,yes,\n5,2026-09-16,c.ortiz,hotel,Hotel Osaka 2 nights,410.00,yes,\n6,2026-09-17,c.ortiz,taxi,Airport taxi,52.00,no,\n7,2026-09-20,d.smith,taxi,Sunday ride home,31.00,yes,\n8,2026-09-21,a.nguyen,meal,Breakfast,14.50,no,\n9,2026-09-22,e.rossi,flight,Milan to Berlin economy,210.00,yes,\n10,2026-09-22,e.rossi,flight,Milan to Berlin economy,210.00,yes,\n11,2026-09-23,f.hall,meal,Dinner (1 person),47.00,yes,\n12,2026-09-24,c.ortiz,hotel,Hotel Kyoto 1 night,205.00,yes,\n"
    }
  ],
  "shell": false,
  "timeout_seconds": 60,
  "max_cost_micros": 30000
}

Saiba mais

Exemplos relacionados

esc

Nada corresponde a “”.