Pular para o conteúdo principal
Procure uma função ou um tipo do Agent SDK pelo que ele faz e depois encontre o nome na sua linguagem. Uso mostra como as peças se encaixam. TypeScript é o design de referência; quando falta algo em uma linguagem, a célula correspondente indica isso.

Crie um agente

Cria um agente a partir de uma definição. O limite de etapas da definição vale para cada chamada de run ou de continuação.

Campos da definição

O Rust monta a definição com métodos em vez de campos: AgentDefinition::new(id, model), depois .instructions(text), .tool(tool) (uma vez por ferramenta), .max_steps(limit), .model_retries(count, backoff) e .human_review(callback). O AgentDefinition do Java é um record com construtores de 10, 13 e 19 argumentos. No TypeScript, model, instructions e os valores de amostragem podem ser fixos ou dinâmicos.

Defina uma ferramenta

Ferramentas lista todos os campos de ferramenta.

Conecte-se ao Phaseo Gateway

Saídas e novas tentativas lista as opções do cliente em cada linguagem.

Capture execuções localmente

Veja DevTools.

Condições de parada

Go e Java retornam um StopCondition; C# retorna um Func<StopState, (bool Stop, string Reason)>; PHP retorna um callable; Ruby retorna uma lambda. O Rust não tem condições de parada, só o limite de etapas. Veja Condições de parada.

Execute e continue

Executar e continuar retornam um resultado de execução: uma Promise<AgentRunResult> no TypeScript, (RunResult, error) no Go, Task<RunResult> no C#, Result<RunResult, AgentError> no Rust e o próprio resultado da execução nas demais. Os métodos de stream retornam um resultado de stream imediatamente.

Opções de execução

PHP e Ruby as recebem como argumentos nomeados; o RunOptions do Java é um record posicional na ordem input, client, context, model, preset, maxSteps, modelRetry, toolExecution, onEvent, devtools, seguido de um state opcional. O run() do Python também aceita stop_when, mas o ignora; defina as condições de parada na definição. O stream() do PHP e o stream do Ruby só recebem input, client, context e state. O Rust cria os padrões com RunOptions::new(input).

Opções de continuação

As opções de continuação aceitam as substituições de execução acima, mais: A ordem do ContinueOptions do Java é run, client, context, model, preset, maxSteps, humanInput, modelRetry, toolExecution, onEvent, devtools, depois approvals, rejections, toolOutputs e depois runId, state. Além dessa forma de 16 argumentos, há construtores que recebem só os 11 primeiros ou os 14 primeiros argumentos; o restante assume listas vazias ou null por padrão. O Rust cria os padrões com ContinueOptions::new(result).

Resultado do stream

Os consumidores reproduzem desde o início, então vários podem ler a mesma execução. O comportamento deles varia:

Resultado da execução

O tipo é AgentRunResult no TypeScript e no Python e RunResult nas demais. O TypeScript adiciona stepResults (resultados normalizados das etapas) e items (mensagens, raciocínio, atividade de ferramentas, erros e saída final em ordem; veja Itens). No Rust, output é um serde_json::Value, e RunResult, RunRecord, RunStep, Message, ToolCall, HumanPause, PendingToolCall, ToolDecision, ToolOutput e UsageSummary são serializados com Serde.

Registro da execução

O RunRecord do Rust também guarda o modelo efetivo e o limite de etapas. O TypeScript adiciona errorDetails com os detalhes do erro do gateway. Os status de execução são queued, running, waiting_for_tools, waiting_for_human, completed, stopped e failed. O TypeScript adiciona cancelled.

Registro da etapa

O tipo é RunStep em todas as linguagens, exceto TypeScript e Python (AgentStepRecord).

Resumo de uso

inputTokens, outputTokens, cachedTokens, totalTokens, cost (TypeScript, Java); input_tokens, output_tokens, cached_tokens, total_tokens, cost (chaves no Python, PHP e Ruby, e Rust); InputTokens, OutputTokens, CachedTokens, TotalTokens, Cost (Go, C#). O tipo é AgentUsageSummary no TypeScript e no Python e UsageSummary no Go, C#, Java e Rust. PHP e Ruby usam um array ou um Hash. Veja em Observabilidade as ressalvas sobre cost.

Pausas e decisões

Os nomes dos campos seguem o estilo de cada linguagem: toolCallId (TypeScript, PHP, Java), tool_call_id (Python, Ruby, Rust), ToolCallID (Go) e ToolCallId (C#). O ToolDecision do Rust serve só para aprovação. Veja Estado e aprovação.

Contexto de runtime passado às ferramentas

Acessor de estado

Clientes de modelo

Implemente um cliente de modelo para enviar os turnos do modelo por outro transporte ou para envolver o cliente de gateway. No Rust, ModelRequest guarda o ID do agente, o modelo efetivo, as instruções, as mensagens atuais, as especificações das ferramentas (ToolSpec: id, description, parameters em JSON Schema) e o contexto do aplicativo. ModelResponse guarda message, usage, request_id, provider, model e finish_reason. Message tem role, content, tool_calls, tool_call_id, name e is_error, com os construtores Message::user(content) e Message::assistant(content); ToolCall tem id, name e input em JSON.

Eventos e erros

O TypeScript também exporta agentErrorIsRetryable(), agentRetryAfterMs() e agentErrorIsContextOverflow() para classificar erros, repairToolHistory(messages) para responder a chamadas de ferramenta que ficaram sem resultado e descartar resultados que não respondem a nenhuma chamada, e truncateToolOutput(text, limit) para manter o início e o fim de um texto longo com um aviso do que foi cortado. Veja Hooks do ciclo de vida e Eventos e erros.
Última modificação em 5 de novembro de 2026