Saltar al contenido principal

Invocar agente

POST /v1/agent/invoke Envía un mensaje a un agente desde tu propia app o servicio.

Autenticación

Envía tu clave de API del espacio de trabajo en el encabezado Authorization.
Los disparadores webhook de agente usan el secreto webhook del agente en lugar de una clave de API. Consulta Disparador webhook.

Cuerpo de la solicitud

Abre un agente en el editor y haz clic en Code Snippet para ver la forma actual de la solicitud pública en Fetch Hive.

Disparador webhook

POST /v1/agent/webhooks/{agent_id} Usa un disparador webhook de agente cuando un servicio externo deba iniciar la ejecución de un agente sin una clave de API del espacio de trabajo. La solicitud debe incluir el secreto webhook del agente en X-Fetch-Hive-Webhook-Secret. Si una herramienta de terceros no puede establecer encabezados personalizados, usa ?secret=YOUR_WEBHOOK_SECRET como alternativa. Los disparadores webhook de agente siempre usan entrega por callback. Incluye async.callback_url; Fetch Hive devuelve 202 con request_id y run_status: "running", y luego entrega agent.completed, agent.failed o agent.awaiting_approval a la URL de callback.
message es obligatorio. thread_id es opcional y puede reutilizarse para reanudar un hilo administrado por el llamador. metadata sigue la misma regla plana de solo escalares que las invocaciones normales de agente y aparece en el filtrado de registros. Añade response_format al cuerpo del webhook para recibir JSON. Es el mismo objeto que el campo de Salida JSON en invoke y se aplica solo a esta llamada. Si lo omites, el callback contiene texto.
agent.completed mantiene data.response como el texto JSON y añade data.output_json, el objeto ya interpretado. output_json no se envía en agent.awaiting_approval ni en agent.failed.
Si el esquema no es válido, el modelo no puede devolver JSON Schema, o la respuesta sigue sin coincidir tras un reintento, la ejecución falla y Fetch Hive entrega agent.failed con el error en data.error. Fetch Hive firma el callback saliente con el mismo secreto webhook usado para la autenticación del disparador entrante. El data del callback contiene response en agent.completed y error en agent.failed; usa el event_type y el request_id de nivel superior para el estado terminal y la correlación. agent.awaiting_approval incluye pending_tool_approvals y un review_url del panel. Un agent.completed posterior incluye resumed_from_run_id cuando la ejecución continuó tras la aprobación. Consulta Aprobaciones de herramientas. metadata debe ser un objeto plano. Las claves deben ser cadenas no vacías y los valores deben ser cadenas, números, booleanos o null. Los arreglos y objetos anidados se rechazan antes de iniciar la ejecución. Los elementos de attachments pueden ser cadenas de URL simples:
También pueden usar esta forma de objeto cuando deseas proporcionar metadatos:
Solo se aceptan URLs https://. Se permiten hasta cinco adjuntos por mensaje. Los adjuntos de documento se exponen al agente a través de la herramienta del sistema read_file como un manifiesto <available_files>; el agente llama a read_file antes de confiar en el contenido del documento. Si una URL o tipo de adjunto es inválido, Fetch Hive devuelve 422 Unprocessable Entity en lugar de abrir el flujo. Adjuntos de documento admitidos:
  • CSV: text/csv, .csv
  • XLSX: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, .xlsx
  • PDF: application/pdf, .pdf
  • DOCX: application/vnd.openxmlformats-officedocument.wordprocessingml.document, .docx
  • Texto y Markdown por extensión: .txt, .md, .markdown
Para URLs sin extensión, como las URLs de la Biblioteca de Medios de Fetch Hive, pasa la URL directamente. Fetch Hive incluye la URL en la lista de permitidos para read_file, y la herramienta de archivos detecta el tipo real cuando obtiene el archivo. Válido:
Inválido:
El diálogo de fragmento de código usa esta forma de cuerpo:
Cuando uses thread_id para conversaciones persistentes:
Cuando uses messages para historial administrado por el llamador (sin estado):
Si un turno previo del asistente generó un archivo, pasa ese archivo de vuelta en el mensaje del historial correspondiente a través de messages[].attachments. Fetch Hive usa las URLs de adjuntos estructurados en los mensajes actuales e históricos para autorizar el acceso de read_file en turnos posteriores; las URLs mencionadas solo en texto plano no se tratan como adjuntos de la herramienta de archivos.

Aprobación automática para una llamada

tool_approval: "auto_approve" solo se acepta desde una clave de API cuyo propietario o administrador activó “Permitir que esta clave apruebe acciones automáticamente” en Configuración → Claves de API. La llamada no cambia el ajuste guardado del agente ni escribe una política. Una clave sin ese permiso, un token del editor con sesión iniciada y un webhook devuelven 403 antes de cualquier llamada al modelo, comprobación previa o facturación:
Cuando la aprobación automática está desactivada para el workspace, se devuelve el mismo error_code con el mensaje Auto-approve is not available for this workspace. Las acciones destructivas siguen pidiendo aprobación. Las reglas de denegación siguen bloqueando la acción. Un subagente iniciado por esta llamada recibe el mismo tool_approval y la misma clave de API. Un flujo de trabajo que inicia el agente no lo recibe. Una respuesta correcta repite tool_approval como auto_approve o policy. Cuando una acción se ejecutó por una excepción, el cuerpo también incluye auto_approved_tool_calls: [{ "summary": string, "tool_name": string }]. Una llamada con streaming pone ambos campos en el evento usage final.

Salida JSON

response_format pertenece a esta llamada. Si lo omites, el agente devuelve texto. Si envías un esquema, el mismo agente devuelve JSON.
type es json_schema o text. La raíz del esquema debe ser un objeto. El documento no puede superar 100000 bytes. Si strict se omite o es true, cada objeto queda con additionalProperties: false. strict: false deja el esquema tal como lo enviaste. Los clientes anteriores pueden enviar is_json_schema_response_format: true y json_schema. Si llegan ambas formas, gana response_format. Un modelo que no admite JSON Schema responde 422 json_schema_unsupported antes de empezar. Un esquema que no es un objeto, o que supera 100000 bytes, responde 422 json_schema_invalid. El esquema se aplica a la respuesta final. Las herramientas siguen ejecutándose. Si la respuesta no coincide, Fetch Hive pide la respuesta una vez más. Un segundo fallo responde 422 json_schema_output_invalid. El mensaje guardado en el hilo es el texto JSON. Una respuesta sin streaming mantiene response como ese texto y añade output_json, el objeto analizado. Una llamada en streaming sigue enviando deltas de texto. El evento final usage incluye output_json. Usa output_json si una reparación cambió el texto después de esos deltas. response_format también funciona en los disparadores webhook de agente. El callback incluye entonces output_json en agent.completed.

Respuesta

Si streaming es true, Fetch Hive devuelve un flujo de eventos. Si el proveedor falla después de que se haya abierto el flujo, Fetch Hive envía un evento error final antes de cerrar el flujo. Si el cliente se desconecta primero, Fetch Hive lo trata como una cancelación silenciosa y no crea una ejecución fallida del agente, no factura uso ni reporta un evento de error del proveedor, salvo que el proveedor ya haya completado y confirmado el uso. Evento de razonamiento de ejemplo:
Evento de respuesta de ejemplo:
Evento de herramienta de ejemplo:
Evento final de uso de ejemplo:
Evento de aprobación de herramienta:
Evento final de uso mientras espera una aprobación:
status y run_id siempre están presentes. thread_id es el valor que enviaste, o null. pending_tool_approvals solo está presente cuando status es awaiting_approval. denied_tool_calls solo está presente cuando una política denegó una llamada en el turno. stop_reason conserva el valor del proveedor. Consulta Aprobaciones de herramientas. Evento de error de ejemplo:
Si streaming es false, Fetch Hive devuelve una sola respuesta JSON. Los fallos de ejecución del proveedor devuelven 502 Bad Gateway con un mensaje error.
Una respuesta sin streaming en pausa usa la misma forma de pending_tool_approvals que el evento de uso de arriba, y el texto de response incluye [Waiting for approval: …].

Ejemplo

Relacionado

  • Consulta Autenticación para configurar la clave de API
  • Consulta Agentes para la configuración del agente y el contexto de runtime
  • Consulta Pruebas con Chat para el flujo de pruebas dentro del editor
  • Consulta Ejecutar con API para una guía centrada en el agente