Saltar al contenido principal
Busca una función o un tipo del Agent SDK por lo que hace y encuentra su nombre en tu lenguaje. En Uso se ve cómo encajan las piezas. TypeScript es el diseño de referencia; cuando a un lenguaje le falta algo, su celda lo indica.

Crea un agente

Crea un agente a partir de una definición. El límite de pasos de la definición se aplica a cada llamada de ejecución o de continuación.

Campos de la definición

Rust construye la definición con métodos en lugar de campos: AgentDefinition::new(id, model) y después .instructions(text), .tool(tool) (una vez por herramienta), .max_steps(limit), .model_retries(count, backoff) y .human_review(callback). El AgentDefinition de Java es un record con constructores de 10, 13 y 19 argumentos. En TypeScript, model, instructions y los valores de muestreo pueden ser fijos o dinámicos.

Define una herramienta

En Herramientas se enumeran todos los campos de una herramienta.

Conéctate a Phaseo Gateway

En Salidas y reintentos se enumeran las opciones del cliente en cada lenguaje.

Captura ejecuciones en local

Consulta DevTools.

Condiciones de parada

Go y Java devuelven un StopCondition; C# devuelve un Func<StopState, (bool Stop, string Reason)>; PHP devuelve un callable; Ruby devuelve una lambda. Rust no tiene condiciones de parada, solo el límite de pasos. Consulta Condiciones de parada.

Ejecuta y continúa

Ejecutar y continuar devuelven un resultado de ejecución: un Promise<AgentRunResult> en TypeScript, (RunResult, error) en Go, Task<RunResult> en C#, Result<RunResult, AgentError> en Rust y el resultado de ejecución directamente en los demás. Los métodos de streaming devuelven un resultado de stream de inmediato.

Opciones de ejecución

PHP y Ruby las reciben como argumentos con nombre o con palabra clave; el RunOptions de Java es un record posicional en el orden input, client, context, model, preset, maxSteps, modelRetry, toolExecution, onEvent, devtools, seguido de un state opcional. El run() de Python también acepta stop_when, pero lo ignora; establece las condiciones de parada en la definición. El stream() de PHP y el stream de Ruby solo reciben input, client, context y state. Rust crea los valores predeterminados con RunOptions::new(input).

Opciones de continuación

Las opciones de continuación aceptan las sustituciones de ejecución anteriores, más: El orden del ContinueOptions de Java es run, client, context, model, preset, maxSteps, humanInput, modelRetry, toolExecution, onEvent, devtools, después approvals, rejections, toolOutputs y después runId, state. Además de esta forma de 16 argumentos, tiene constructores que reciben solo los 11 primeros o los 14 primeros; el resto toma listas vacías o null por defecto. Rust crea los valores predeterminados con ContinueOptions::new(result).

Resultado del stream

Los consumidores reproducen desde el principio, así que varios pueden leer la misma ejecución. Su comportamiento varía:

Resultado de la ejecución

El tipo es AgentRunResult en TypeScript y Python y RunResult en los demás. TypeScript añade stepResults (resultados de pasos normalizados) e items (mensajes, razonamiento, actividad de herramientas, errores y salida final, en orden; consulta Elementos). En Rust, output es un serde_json::Value, y RunResult, RunRecord, RunStep, Message, ToolCall, HumanPause, PendingToolCall, ToolDecision, ToolOutput y UsageSummary se serializan con Serde.

Registro de la ejecución

El RunRecord de Rust también guarda el modelo efectivo y el límite de pasos. TypeScript añade errorDetails con los detalles del error del gateway. Los estados de ejecución son queued, running, waiting_for_tools, waiting_for_human, completed, stopped y failed. TypeScript añade cancelled.

Registro de paso

El tipo es RunStep en todos los lenguajes salvo TypeScript y Python (AgentStepRecord).

Resumen de uso

inputTokens, outputTokens, cachedTokens, totalTokens, cost (TypeScript, Java); input_tokens, output_tokens, cached_tokens, total_tokens, cost (claves de Python, PHP y Ruby, Rust); InputTokens, OutputTokens, CachedTokens, TotalTokens, Cost (Go, C#). El tipo es AgentUsageSummary en TypeScript y Python y UsageSummary en Go, C#, Java y Rust. PHP y Ruby usan un array o un Hash. Consulta Observabilidad para ver las salvedades sobre cost.

Pausas y decisiones

Los nombres de los campos siguen el estilo de cada lenguaje: toolCallId (TypeScript, PHP, Java), tool_call_id (Python, Ruby, Rust), ToolCallID (Go) y ToolCallId (C#). El ToolDecision de Rust solo sirve para aprobar. Consulta Estado y aprobación.

Contexto de ejecución que reciben las herramientas

Accesor de estado

Clientes del modelo

Implementa un cliente del modelo para enviar los turnos del modelo por otro transporte o para envolver el cliente de gateway. En Rust, ModelRequest contiene el ID del agente, el modelo efectivo, las instrucciones, los mensajes actuales, las especificaciones de las herramientas (ToolSpec: id, description, parameters en JSON Schema) y el contexto de la aplicación. ModelResponse contiene message, usage, request_id, provider, model y finish_reason. Message tiene role, content, tool_calls, tool_call_id, name e is_error, con los constructores Message::user(content) y Message::assistant(content); ToolCall tiene id, name e input en JSON.

Eventos y errores

TypeScript también exporta agentErrorIsRetryable(), agentRetryAfterMs() y agentErrorIsContextOverflow() para clasificar errores, repairToolHistory(messages) para responder a las llamadas a herramientas que quedaron sin resultado y descartar los resultados que no responden a ninguna llamada, y truncateToolOutput(text, limit) para conservar el principio y el final de un texto largo con un aviso de lo que se ha recortado. Consulta Hooks del ciclo de vida y Eventos y errores.
Última modificación el 5 de noviembre de 2026