phaseo-agent 0.1.
Definición del agente
Ejecutar y continuar
Campos de
RunOptions:
input: Valuecontext: Valuemodel: Option<String>max_steps: Option<usize>
RunOptions::new(input).
Campos de ContinueOptions:
result: RunResulthuman_input: Option<String>approvals: Vec<ToolDecision>tool_outputs: Vec<ToolOutput>
ContinueOptions::new(result).
Herramientas
La firma del ejecutor es:
Tool expone id, description, parameters, execute y require_approval. Prioriza sus constructores y su método builder para mantener coherentes los tipos del ejecutor y los valores predeterminados.
El RuntimeContext que recibe el ejecutor contiene:
run_idagent_idstep_indexcontexttool_call
Mensajes y llamadas a herramientas
Message contiene role, content, tool_calls, tool_call_id opcional, name opcional e is_error. Crea mensajes normales con:
Message::user(content)Message::assistant(content)
ToolCall contiene el ID de la llamada id, el nombre de la herramienta name y la entrada JSON input.
ToolSpec contiene el ID de la herramienta id, su descripción description y el JSON Schema parameters que se envía al cliente del modelo.
Clientes de modelo
ImplementaModelClient para usar otro transporte de modelo:
GatewayAgentClient::new(phaseo_client, model)GatewayAgentClient::from_env(model)create_gateway_agent_client(model)
ModelRequest a POST /responses y normaliza el texto de salida, las llamadas a funciones, los metadatos de la solicitud y el uso.
ModelRequest contiene el ID del agente, el modelo efectivo, las instrucciones, los mensajes actuales, las especificaciones de herramientas y el contexto de la aplicación.
ModelResponse contiene:
message: Messageusage: UsageSummaryrequest_id: Option<String>provider: Option<String>model: Option<String>finish_reason: Option<String>
Tipos de revisión y pausa
HumanReviewContext contiene los ID de ejecución y agente, el índice del paso, los mensajes actuales, la respuesta normalizada del modelo y el contexto de la aplicación.
Devuelve HumanReviewRequest { reason, payload } desde la función de revisión para pausar una ejecución.
HumanPause contiene:
reason- la carga útil JSON
payload kindpending_tool_calls
PendingToolCall contiene la llamada ToolCall original, el tipo de entrada requerido kind y un motivo legible.
ToolDecision proporciona el tool_call_id aprobado y un motivo opcional. ToolOutput proporciona un tool_call_id y una salida JSON.
Registros de ejecución
RunResult contiene:
run: RunRecordsteps: Vec<RunStep>output: Valuemessages: Vec<Message>usage: UsageSummary
RunRecord contiene los ID de ejecución y agente, el modelo efectivo y el límite de pasos, el estado, la entrada original, el contexto de la aplicación, el recuento de pasos, una pausa opcional, un motivo de detención opcional y marcas de tiempo.
RunStep contiene el índice, el estado, el número de intentos del modelo, las llamadas a herramientas, el ID de solicitud, el proveedor, el modelo, el motivo de finalización, un error opcional y el uso.
UsageSummary contiene input_tokens, output_tokens, cached_tokens, total_tokens y cost.
El cliente del modelo proporciona cost. El adaptador integrado de Gateway 0.1 no asigna actualmente cost_nanos ni cost_cents de Gateway a este campo.
RunResult, RunRecord, RunStep, Message, ToolCall, HumanPause, PendingToolCall, ToolDecision, ToolOutput y UsageSummary admiten la serialización de Serde cuando sus definiciones derivan Serialize y Deserialize.
Eventos y errores
Campos deAgentEvent:
event_typerun_idagent_idtimestamp_msdetails
AgentError implementa std::error::Error y Display. Usa AgentError::new(...) para crear uno y message() para leer su mensaje.