Herramientas locales
UsaTool::new(...) cuando el proceso de Rust pueda ejecutar la operación:
parameters se envía al modelo como JSON Schema. La entrada y la salida de la herramienta usan serde_json::Value; valida los argumentos no confiables dentro del ejecutor si necesitas garantías más estrictas durante la ejecución.
Herramientas que requieren aprobación
Añaderequire_approval() para pausar antes de ejecutar la operación:
run.status == "waiting_for_human" y run.pause.kind == "tool_approval".
Reanuda la ejecución con el ID exacto de la llamada:
0.1 no ofrece un tipo de rechazo independiente. Deja en pausa las llamadas no aprobadas o aplica la política de rechazo de tu aplicación antes de reanudar.
Herramientas externas
UsaTool::external(...) cuando otro proceso realice la operación:
external_output cuando todas las llamadas pendientes necesitan un resultado externo. Proporciona cada resultado usando el ID de la llamada:
Errores de herramientas
UnAgentError devuelto por un ejecutor local se convierte en un mensaje de error estructurado de la herramienta y se envía al modelo. Un nombre de herramienta desconocido o la falta de aprobación o de resultados hacen que la continuación falle con AgentError.