waiting_for_human y todo lo necesario para continuar. Guarda el resultado completo, recoge la decisión en tu aplicación y después pasa el resultado guardado y la decisión al método de continuación del agente.
Phaseo no guarda las ejecuciones del Agent SDK. Guarda el estado reanudable en tu propia aplicación cuando deba sobrevivir a una solicitud o a un reinicio del proceso.
Aprueba o rechaza llamadas a herramientas
Las herramientas con aprobación, las manuales y las que requieren intervención humana ponen la ejecución en pausa antes de ejecutarse. Cada llamada pendiente tiene lacall del modelo (con su id) y un kind: approval, manual o hitl. Responde a cada llamada por su ID exacto de llamada, no por el nombre de la herramienta, para que dos llamadas a la misma herramienta se mantengan separadas.
Una llamada aprobada ejecuta su herramienta. Una llamada rechazada envía {"error": "<reason>"} al modelo como resultado de la herramienta, con el motivo predeterminado Tool call rejected.
La propia pausa también tiene un
kind. Go y C# lo establecen en tool_approval para cualquier pausa de herramienta. PHP, Ruby y Java establecen tool_approval cuando alguna llamada pendiente necesita aprobación y, si no, el kind de la primera llamada. Rust usa tool_approval para las llamadas que requieren aprobación, external_output cuando todas las llamadas pendientes necesitan un resultado externo y tool_input cuando hay una mezcla de ambas.
Para exigir aprobación en todas las llamadas a herramientas en lugar de herramienta por herramienta, establece requireApproval en la definición del agente (require_approval en Python y Ruby, RequireApproval en Go y C#). En TypeScript es una función requireApproval(call, context). Rust solo admite aprobación por herramienta, con Tool::require_approval(). En Herramientas se muestra cómo se define cada tipo de herramienta.
Proporciona resultados para herramientas manuales y con intervención humana
Para las llamadasmanual y hitl, pasa el resultado que produjo tu aplicación, asociado al ID de la llamada. En Rust, son las herramientas creadas con Tool::external(...).
Missing output for tool call <id> (missing en minúsculas en Go, un ValueError en Python, un AgentError en Rust). Un mensaje de entrada humana no sustituye a la salida de una herramienta.
Pon la ejecución en pausa para una revisión humana
Define un callback de revisión humana en la definición del agente para comprobar cada respuesta del modelo antes de que continúe la ejecución. Devuelve una solicitud de revisión con unreason (y, si quieres, un payload) para poner la ejecución en pausa, o nada para seguir. El kind de la pausa es human_review. El callback recibe el ID de la ejecución, el índice del paso, los mensajes, la respuesta del modelo y la salida analizada (Rust: los IDs de la ejecución y del agente, el índice del paso, los mensajes, la respuesta y el contexto de la aplicación).
Run <id> is waiting for human input (Go: run <id> is waiting for human input; Java: Run is waiting for human input). Rust exige un human_input no vacío. TypeScript también acepta humanMessages estructurados.
Guarda el estado de la ejecución entre solicitudes
El resultado de la ejecución son datos simples: guárdalo en tu base de datos, en tu almacén de objetos o en el registro del trabajo, y mantén serializable elcontext de la aplicación. Una ejecución solo puede continuarla un agente con el mismo ID. El recetario del bucle de agente duradero muestra un flujo completo de guardado y reanudación.
Para que el SDK guarde y cargue las ejecuciones por ti, pasa un accesor de estado con load(runId) y save(result). Así el SDK guarda después de cada ejecución y continuación, y puedes continuar por ID de ejecución en lugar de pasar el registro por todas las capas.
AgentDefinition no forman parte de la ejecución serializada. El modelo efectivo y el límite de pasos se guardan en RunRecord, así que las sustituciones por ejecución siguen activas después de continuar.
Guardes lo que guardes, tu aplicación se encarga del cifrado y la retención de las ejecuciones guardadas, de la autorización de las aprobaciones y de la entrada humana, y de la idempotencia de los efectos secundarios que se vuelven a ejecutar tras una reanudación.