Agenten-Webhooks
Mit Agenten-Webhooks kann ein externes System einen konfigurierten Agenten starten. Erstelle einen per Webhook ausgelösten Agenten, sende ihm eine Anfrage und Almirant erstellt dafür einen einzigen kanonischen Job.
Schnelleinstieg
- Öffne Agents und wähle Create agent.
- Fülle die Schritte Base, Prompt und gegebenenfalls MCP aus.
- Wähle unter Trigger die Option Webhook und speichere den Agenten. Almirant zeigt eine Produktions- und eine Test-URL an.
- Speichere die Produktions-URL im aufrufenden System als Secret und sende eine
POST-Anfrage mitIdempotency-Key.
Die Produktions-URL hat diese Form:
https://<your-almirant-host>/webhooks/agents/<agent-id>?token=<webhook-token>
Das Token ist Teil der Zugangsdaten. Nimm es nicht in Versionskontrolle, Logs oder öffentliche Tickets auf.
POST-Anfrage senden
POST startet einen Agentenjob mit dem gespeicherten System-Prompt sowie einem optionalen Prompt und Metadaten des Aufrufenden.
curl --request POST \
--url 'https://almirant.example.com/webhooks/agents/agent_123?token=replace-with-secret-token' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: order-9182-import-v1' \
--data '{
"prompt": "Importa el pedido e informa de cualquier error de validación.",
"metadata": {
"orderId": "9182",
"source": "warehouse"
}
}'
Die erste erfolgreiche Übermittlung gibt den erstellten Job zurück:
{
"success": true,
"data": {
"jobId": "job_123",
"status": "queued",
"created": true,
"replayed": false
}
}
Sende denselben Idempotency-Key erneut, wenn ein Netzwerkfehler Zweifel daran lässt, ob Almirant die Anfrage empfangen hat. Eine Wiederholung gibt denselben kanonischen Job zurück, statt einen weiteren zu starten:
{
"success": true,
"data": {
"jobId": "job_123",
"status": "queued",
"created": false,
"replayed": true
}
}
Anfragevertrag
| Teil | Anforderung |
|---|---|
| URL | agent-id und der Abfrageparameter token sind erforderlich. Ungültige oder fehlende Zugangsdaten geben 401 zurück. |
Idempotency-Key | In POST optional; verwende pro logischem Ereignis einen undurchsichtigen, stabilen Wert. Er muss 1 bis 255 UTF-8-Bytes lang sein, darf nicht leer sein und keine Steuerzeichen enthalten. Ungültige Werte geben 400 mit invalid_idempotency_key zurück. |
prompt | Optionale Zeichenfolge, die bei dieser Ausführung als Eingabe des Aufrufenden hinzugefügt wird. |
metadata | Optionales Objekt. Gespeicherte Agenten-Prompts können Metadatenwerte wie {{metadata.orderId}} interpolieren. |
outputBinding | Optionale Zeichenfolgenwerte für ein bereits im Agenten konfiguriertes Ausgabeziel. Es kann keine neue Zustell-URL auswählen. |
Der Body akzeptiert nur prompt, metadata und outputBinding. Ein vom Aufrufenden gesteuertes deliveryUrl wird abgelehnt.
Verhalten von Test, GET und POST
Der Test-Endpunkt prüft, ob die URL erreichbar ist. Er reiht keinen Job ein:
POST https://<your-almirant-host>/webhook-test/agents/<agent-id>?token=<webhook-token>
Der Produktionsendpunkt GET startet einen Job mit dem gespeicherten System-Prompt. GET akzeptiert keine Eingabe des Aufrufenden und bietet nicht die idempotente Antwortsemantik von POST. Verwende POST in Integrationen, die Wiederholungen ausführen können.
Webhook-ausgelöste Agenten verwenden eine manuelle Planung, da eingehende Anfragen sie starten, nicht der Planer. Ein Webhook-Agent muss aktiviert und für diesen Auslöser konfiguriert bleiben, andernfalls gibt der Endpunkt 409 zurück.
Fehlerbehebung
| Antwort | Bedeutung | Aktion |
|---|---|---|
400 invalid_idempotency_key | Der POST-Schlüssel ist leer, zu lang oder enthält ein Steuerzeichen. | Erzeuge eine kurze, stabile Ereignis-ID. |
400 invalid_output_binding | Die bereitgestellte Bindung stimmt nicht mit der Ausgabekonfiguration des Agenten überein. | Prüfe das konfigurierte Ausgabeziel und die Namen der Bindungsfelder. |
401 invalid_webhook_credentials | Das URL-Token fehlt, ist falsch oder nicht mehr gültig. | Kopiere die aktuelle URL des Agenten und ersetze das gespeicherte Secret. |
409 | Der Agent kann nicht als Webhook-Agent ausgeführt werden. | Aktiviere ihn erneut und bestätige, dass sein Auslöser Webhook ist. |