Sensible Tool-Aufrufe anhalten.
Erst nach Freigabe ausführen.
Der Run wartet mit den exakten Parametern, bis jemand freigibt oder ablehnt. Danach macht der Agent genau dort weiter, wo er angehalten hat.
Kleine Erstattungen laufen durch. Große warten auf Freigabe.
Freigabepflichtige Tools stehen unter approval in der Agentendatei. Eine Bedingung wie param.amount > 200 hält nur die passenden Aufrufe an.
- Bedingungen lesen den Aufruf
paramliest die Argumente des Tools,contextdie Werte aus der Middleware. Lässt sich eine Bedingung nicht auswerten, wartet der Aufruf auf Freigabe.- Standardmäßig eine Stunde
timeoutreicht von 30 Sekunden bis zu 7 Tagen.- Entscheidungen in der Testdatei
approval_decisionsgibt passende Anfragen frei, lehnt sie ab oder lässt sie ablaufen. So spieltconnic testbeide Ausgänge vor dem Deployment durch.
name: refund-agent
model: connic/gpt-5.6-luna
system_prompt: |
Resolve refund requests from the support inbox.
Look up the order before you refund or cancel anything.
tools:
- orders.lookup_order
- orders.cancel_order
- refunds.issue_refund
approval:
tools:
- orders.cancel_order
- refunds.issue_refund: param.amount > 200
timeout: 3600
message: Check the order history before you decide.
on_rejection: continuetests:
- name: approves_large_refund
payload: "ORD-48213 arrived broken. Please refund 349 EUR."
approval_decisions:
- tool: refunds.issue_refund
params: params.amount > 200
decision: approve
expected_result: status == "completed"
- name: adapts_after_rejection
payload: "ORD-48213 arrived broken. Please refund 349 EUR."
approval_decisions:
- tool: refunds.issue_refund
decision: reject
reason: Offer a replacement first
expected_result: status == "completed"Nach der Freigabe geht der Run genau dort weiter.
Solange die Anfrage offen ist, steht der Run auf Awaiting Approval. Beim Fortsetzen lädt connic den gespeicherten Zustand, und was schon gelaufen ist, läuft nicht noch einmal.
- Freigegeben
- Das Tool läuft mit genau den Parametern, die zur Prüfung vorlagen.
- Abgelehnt mit on_rejection: fail
- Der Standard. Der Run schlägt mit
Tool 'refunds.issue_refund' was rejectedund der Begründung fehl. - Abgelehnt mit on_rejection: continue
- Der Agent bekommt die Begründung und entscheidet selbst, wie es weitergeht.
- Abgelaufen
- Zählt wie eine Ablehnung und folgt der Einstellung
on_rejectiondes Agenten.
Alle Anfragen in einer Queue prüfen.
Offene Anfragen stehen oben. Jede Zeile öffnet den Run mit Trace, Parametern und denselben Buttons zum Freigeben und Ablehnen.
- Aus deinen eigenen Tools entscheiden
- REST API und connic MCP können Anfragen auflisten, freigeben und ablehnen.
- Zugriff über Berechtigungsgruppen
- Berechtigungsgruppen legen fest, wer Freigaben sehen, entscheiden oder konfigurieren darf.
- Jede Entscheidung dokumentiert
- Das Audit-Log hält fest, wer entschieden hat, welches Tool betroffen war und mit welchen Parametern.
Der Agent fragt. Ein Mensch antwortet.
approval.inputs gibt dem Agenten ein Tool, das einen Menschen fragt, etwa nach einem Einmalcode. Die Antwort wird zum Ergebnis des Tools.
- Kein Python nötig
- connic baut das Tool aus dem YAML-Eintrag. Die
params, die der Agent mitschickt, stehen über dem Eingabefeld. - Sensible Werte bleiben verdeckt
- Mit
sensitive: trueist das Feld maskiert und die Antwort verschlüsselt gespeichert. In Logs und Traces ist sie geschwärzt, das KI-Modell bekommt den Wert trotzdem.
approval:
tools:
- orders.cancel_order
- refunds.issue_refund: param.amount > 200
inputs:
- get_payment_code:
prompt: Ask for the payment provider's one-time code.
label: Payment provider code
sensitive: true
params:
- order_id: str
timeout: 3600
message: Check the order history before you decide.
on_rejection: continueJede Anfrage an dein eigenes Review-Tool schicken.
Standardmäßig bekommt dein Team eine E-Mail und eine Benachrichtigung in der App. Bei Enterprise leiten Webhook-Kanäle die Anfragen je Agent an deinen eigenen Endpunkt.
- Content-Type:
- application/json
- X-Connic-Signature:
- 3f9a1c07e2b4...
- X-Connic-Timestamp:
- 1791884467
{
"project_id": "b4c3d2e1-...",
"channel_id": "c5d4e3f2-...",
"channel_name": "Support leads",
"type": "approval_requested",
"approval_id": "a1b2c3d4-...",
"run_id": "e5f6a7b8-...",
"agent_name": "refund-agent",
"tool_name": "refunds.issue_refund",
"tool_params": {
"order_id": "ORD-48213",
"amount": 349,
"currency": "EUR",
"reason": "Damaged on arrival"
},
"message": "Check the order history before you decide.",
"timeout": 3600,
"environment_id": "f9e8d7c6-...",
"environment_name": "Production",
"created_at": "2026-10-13T09:41:07.512033"
}