Lo que devuelve, y qué hacer con eso
Tres respuestas se leen mal la primera vez. Ninguna de las tres es un fallo del sistema: una dice que falta configurar algo, otra que hay una persona en el medio y la tercera que parte salió y parte no.
La primera llamada falla si no hay vinculación
El agente nombró una acción y un destino que nada autoriza. El servidor responde nombrando el par exacto que faltó, y no ejecuta nada.
No es un fallo del sistema: falta configurar algo. Es el primer error que ve todo el mundo, casi siempre antes que la primera respuesta correcta. La credencial anda —si no anduviera, la respuesta sería un 401 y no esto.
- Creá en la consola una vinculación para ese par exacto de acción y destino.
- Si ya existe una, revisá que sea del mismo agente: la clave y la vinculación tienen que pertenecer al mismo.
- Volvé a pedirle lo mismo al agente. No hace falta reconectar el cliente.
- Para ver qué tiene autorizado sin adivinar, leé el recurso loomen://scope con la misma clave.
1{2"jsonrpc": "2.0",3"id": 2,4"result": {5"content": [6{7"type": "text",8"text": "binding: no active binding authorizes this action for this destination: notificar → humano"9}10],11"isError": true12}13}
Una ejecución puede quedar esperando una firma humana
La vinculación cae bajo una política que frena la ejecución. El agente recibe pending y un id de solicitud, no un error.
La llamada no fracasó: hay una persona en el medio y la ejecución está detenida hasta que firme. Todavía no hay entregas que mostrar, porque la acción no se creó: se crea cuando alguien firma.
- No reintentes. Un reintento sin idempotency_key abre una segunda invocación y una segunda espera.
- Si tu agente necesita saber cómo terminó, repetí la llamada con el mismo idempotency_key: devuelve el estado actual de la invocación original sin volver a ejecutar.
- Que el agente le diga a quien le habló que la acción quedó pendiente de firma. Es información, no un error.
- Si nadie firma, la solicitud vence a las cuatro horas y queda cerrada con su línea en el registro. Un agente que sigue esperando ahí debería escalar.
1{2"invocation_id": "inv_01a0a6c3-a57a-7e21-a604-330cfae424eb",3"status": "pending",4"approval_id": "01a0a6c3-a58a-7b00-860f-11dff1cdf333",5"deliveries": []6}
Una invocación puede salir por dos canales y fallar en uno
El par tenía dos vinculaciones. Una entrega salió y la otra fue rechazada por el receptor. El estado de la invocación es partial y el detalle viene por entrega.
El aviso llegó: alguien lo vio. Tratar partial como un fracaso total lleva a repetir la notificación por el canal que sí funcionó.
- Leé deliveries antes de decidir nada: el estado de arriba es el resumen, no el veredicto.
- No reintentes la invocación entera sin idempotency_key: duplicarías la entrega que salió bien.
- failure_reason trae lo que dijo el proveedor. Si es un certificado o una credencial, reintentar no va a cambiar nada hasta que se arregle del otro lado.
1{2"invocation_id": "inv_01a0c0e5-d105-7b23-b802-cc71ef406afc",3"status": "partial",4"deliveries": [5{6"action_id": "01a0c0e5-d10a-7f3b-9e41-2c7a55de1b08",7"binding_id": "01a0c0e5-cfe2-7a11-8b34-6d9e0f2a7c55",8"channel": "email",9"status": "delivered",10"provider_reference": "0f3b2c19a7d84e6f@core-api.loomen.dev"11},12{13"action_id": "01a0c0e5-d10c-7d92-a7c8-41b0e5f3d219",14"binding_id": "01a0c0e5-d001-7c63-9f20-88ab31c7e4d6",15"channel": "webhook",16"status": "failed",17"failure_reason": "webhook: request failed: tls: failed to verify certificate"18}19]20}
Consultar una invocación desde el agente
No hay una herramienta de consulta, y no lo escondemos: la superficie del agente es deliberadamente una sola herramienta, y agregar una segunda está en discusión. Hasta que se resuelva, hay dos caminos.
- Repetir la misma llamada con el mismo idempotency_key. No vuelve a ejecutar: devuelve el estado actual de la invocación original.
- Mirar Auditoría en la consola, donde la llamada se lee como un recorrido: cada entrega con su canal, su resultado y su motivo.