Claude Platform Docs
  • Mensagens
  • Agentes Gerenciados
  • Administração

Search...
⌘K
Primeiros passos
Visão geralInício rápidoPrototipar no Console
Defina seu agente
Configuração do agenteFerramentasConector MCPPolíticas de permissãoHabilidades de Agente
Configurar ambiente do agente
Configuração do ambiente de nuvemReferência de sandbox na nuvem
Delegar trabalho ao seu agente
Iniciar uma sessãoOperações de sessãoFluxo de eventos da sessãoAssinar webhooksDefinir resultadosAutenticar com cofres
Gerenciar contexto do agente
Acessar o GitHubAnexar e baixar arquivos
Orquestração avançada
Sessões multiagenteImplantações agendadas
Referência
Referência de Agentes Gerenciados
Trabalhando com arquivos
API de ArquivosSuporte a PDF
Habilidades
Visão geralPráticas recomendadasHabilidades para empresas
MCP
Servidores MCP remotos
Claude em plataformas de nuvem
Claude Platform na AWS

Log in
Definir resultados
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Agentes Gerenciados/Delegar trabalho ao seu agente

Definir resultados

Diga ao agente como é o estado de 'concluído' e deixe-o iterar até chegar lá.

O outcome eleva uma sessão de conversa para trabalho. Você define como o resultado final deve ser e como medir a qualidade. O agente trabalha em direção a esse objetivo, autoavaliando-se e iterando até que o resultado seja alcançado.

Quando você define um resultado, o harness provisiona automaticamente um grader (avaliador) para avaliar o artefato em relação a uma rubrica. O grader usa uma "context window" (janela de contexto) separada para evitar ser influenciado pelas escolhas de implementação do agente principal.

O grader retorna uma explicação resumindo quais critérios foram aprovados ou reprovados, ou confirmando que o artefato satisfaz a rubrica. Esse feedback é devolvido ao agente para a próxima iteração.



Todas as requisições à Managed Agents API exigem o cabeçalho beta managed-agents-2026-04-01. O SDK define o cabeçalho beta automaticamente.

Criar uma rubrica

Uma rubrica é um documento markdown que descreve a pontuação por critério. A rubrica é obrigatória.

Exemplo de rubrica:

# DCF Model Rubric

## Revenue Projections
- Uses historical revenue data from the last 5 fiscal years
- Projects revenue for at least 5 years forward
- Growth rate assumptions are explicitly stated and reasonable

## Cost Structure
- COGS and operating expenses are modeled separately
- Margins are consistent with historical trends or deviations are justified

## Discount Rate
- WACC is calculated with stated assumptions for cost of equity and cost of debt
- Beta, risk-free rate, and equity risk premium are sourced or justified

## Terminal Value
- Uses either perpetuity growth or exit multiple method (stated which)
- Terminal growth rate does not exceed long-term GDP growth

## Output Quality
- All figures are in a single .xlsx file with clearly labeled sheets
- Key assumptions are on a separate "Assumptions" sheet
- Sensitivity analysis on WACC and terminal growth rate is included

Passe a rubrica como texto inline em user.define_outcome (veja a próxima seção), ou faça upload dela através da Files API para reutilização entre sessões.



Fazer upload através da Files API requer ambos os cabeçalhos beta managed-agents-2026-04-01 e files-api-2025-04-14.

rubric = client.beta.files.upload(file=Path("/tmp/rubric.md"))
print(f"Uploaded rubric: {rubric.id}")

Criar uma sessão com um resultado

Após criar uma sessão, envie um evento user.define_outcome. O agente começa a trabalhar imediatamente; nenhum evento adicional de mensagem do usuário é necessário.

# Criar uma sessão
session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    title="Financial analysis on Costco",
)

# Definir o resultado — o agente começa a trabalhar ao recebê-lo
client.beta.sessions.events.send(
    session_id=session.id,
    events=[
        {
            "type": "user.define_outcome",
            "description": "Build a DCF model for Costco in .xlsx",
            "rubric": {"type": "text", "content": RUBRIC},
            # ou: "rubric": {"type": "file", "file_id": rubric.id},
            "max_iterations": 5,  # optional; default 3, max 20
        }
    ],
)

Eventos de resultado

O progresso em uma sessão orientada a resultados é exibido no stream de eventos.

  • Eventos agent.* (como mensagens e uso de ferramentas) mostram o progresso em direção ao resultado.
  • Eventos span.outcome_evaluation_* são emitidos apenas para sessões orientadas a resultados e mostram o número de loops de iteração e o processo de feedback do grader.
  • Você também pode enviar eventos user.message para uma sessão orientada a resultados para direcionar o trabalho do agente conforme ele progride, mas isso não é obrigatório: o agente trabalha em direção ao resultado por conta própria, iterando até ter sucesso ou esgotar as iterações.
  • Um evento user.interrupt pausa o trabalho no resultado atual e marca o span.outcome_evaluation_end.result como interrupted, permitindo que você inicie um novo resultado.
  • Após a avaliação final do resultado, a sessão pode ser continuada como uma sessão conversacional, ou um novo resultado pode ser iniciado. A sessão retém o histórico do resultado anterior.

Evento de usuário para definir resultado



Apenas um resultado é suportado por vez, mas você pode encadear resultados em sequência. Para fazer isso, envie um novo evento user.define_outcome após o evento terminal do resultado anterior.

Este é o evento que você envia para iniciar um resultado. Ele é ecoado de volta no recebimento, incluindo um timestamp processed_at e um outcome_id.

{
  "type": "user.define_outcome",
  "description": "Build a DCF model for Costco in .xlsx",
  "rubric": { "type": "file", "file_id": "file_01..." },
  "max_iterations": 5
}

Início da avaliação de resultado

Emitido quando o grader inicia uma avaliação sobre um loop de iteração. O campo iteration é um contador de revisão indexado em 0: 0 é a primeira avaliação, 1 é a reavaliação após a primeira revisão, e assim por diante.

{
  "type": "span.outcome_evaluation_start",
  "id": "sevt_01def...",
  "outcome_id": "outc_01a...",
  "iteration": 0,
  "processed_at": "2026-03-25T14:01:45Z"
}

Avaliação de resultado em andamento

Heartbeat emitido enquanto o grader está em execução. O raciocínio interno do grader é opaco: você vê que ele está trabalhando, não o que ele está pensando.

{
  "type": "span.outcome_evaluation_ongoing",
  "id": "sevt_01ghi...",
  "outcome_id": "outc_01a...",
  "processed_at": "2026-03-25T14:02:10Z"
}

Fim da avaliação de resultado

Emitido após o grader terminar de avaliar uma iteração. O campo result indica o que acontece a seguir.

ResultPróximo passo
satisfiedA sessão transiciona para idle.
needs_revisionO agente inicia um novo ciclo de iteração.
max_iterations_reachedNenhum ciclo de avaliação adicional. O agente pode executar uma revisão final antes de a sessão transicionar para idle.
failedA sessão transiciona para idle. Retornado quando a rubrica fundamentalmente não corresponde à tarefa, por exemplo, se a descrição e a rubrica se contradizem.
interruptedEmitido apenas se outcome_evaluation_start já tiver sido disparado antes da interrupção.
{
  "type": "span.outcome_evaluation_end",
  "id": "sevt_01jkl...",
  "outcome_evaluation_start_id": "sevt_01def...",
  "outcome_id": "outc_01a...",
  "result": "satisfied",
  "explanation": "All 12 criteria met: revenue projections use 5 years of historical data, WACC assumptions are stated, sensitivity table is included...",
  "iteration": 0,
  "usage": {
    "input_tokens": 2400,
    "output_tokens": 350,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 1800
  },
  "processed_at": "2026-03-25T14:03:00Z"
}

Verificando o status do resultado

Você pode escutar no stream de eventos por span.outcome_evaluation_end, ou fazer polling em GET /v1/sessions/:id e ler outcome_evaluations[].result:

session = client.beta.sessions.retrieve(session.id)

for outcome in session.outcome_evaluations:
    print(f"{outcome.outcome_id}: {outcome.result}")
    # outc_01a...: satisfied

Recuperando entregáveis

O agente grava arquivos de saída em /mnt/session/outputs/ dentro do sandbox. Quando a sessão estiver em idle, busque-os através da Files API com escopo para a sessão:

# Listar arquivos produzidos por esta sessão
files = client.beta.files.list(scope_id=session.id)
for f in files:
    print(f.id, f.filename)

# Baixar um arquivo
if files.data:
    content = client.beta.files.download(files.data[0].id)
    content.write_to_file("/tmp/output.txt")

Was this page helpful?

  • Criar uma rubrica
  • Criar uma sessão com um resultado
  • Eventos de resultado
  • Evento de usuário para definir resultado
  • Início da avaliação de resultado
  • Avaliação de resultado em andamento
  • Fim da avaliação de resultado
  • Verificando o status do resultado
  • Recuperando entregáveis