Kontrollpunkte
A Kontrollpunkt bittet um Genehmigung einer Single Agent Action. Sie erstellen eine, bevor die Aktion ausgeführt wird; Maetra bewertet sie gegen Ihre aktive Politik und gibt eine Entscheidung zurück - sofort für Fast-Path-Ergebnisse oder nachdem ein Mensch reagiert.
Lebenszyklus#
create ─▶ evaluate ─┬─▶ approved / rejected / blocked (terminal, signed)
└─▶ pending ─▶ (human decides) ─▶ approved / rejected
└─▶ (timeout) ─▶ expired
| Status | Bedeutung |
|---|---|
anhängig | Warten auf eine menschliche Entscheidung. Umfrage für das Ergebnis. |
genehmigt | Zugelassen. A decision_token ausgestellt wird. |
rejected | Ein Rezensent lehnte ab. |
Blockiert | Eine Politik hat es automatisch blockiert (kein Mensch benötigt). |
expired | Keine Entscheidung vor dem Timeout. |
cancelled | Storniert vor Auflösung. |
Nur genehmigt Entscheidungen können bis zur Einwegausführungsberechtigung fortgesetzt werden.
Erstellen Sie einen Checkpoint#
POST /v1/checkpoints — erfordert Anwendungsbereich govern:checkpoints:write.
Bewertet synchron: Eine Fast-Pfad-Politik kann eine Terminal-Entscheidung in der gleichen Antwort zurückgeben; Andernfalls erhalten Sie eine anhängig Checkpoint zum Pollen.
Exakte Richtlinien und Entscheidungsintelligenz
/v1/checkpoints verwendet die in Govern konfigurierten aktiven Richtlinien. Eine Richtlinie kann exakt gespeicherte Bedingungen verwenden, oder sie kann Entscheidungsfindung von KI-Agenten zur Bewertung des Laufzeitrisikos.
Sie tun dies nicht senden a decision_intelligence Markierung auf der Checkpoint-Anfrage. Aktivieren Sie Decision Intelligence für die Policy im Dashboard. Der API-Aufruf bleibt gleich; Maetra wendet den Richtlinienmodus an und gibt die gleiche Checkpoint-Entscheidungsform zurück.
Anfordernde Stelle
| Feld | Typ | erforderlich | Beschreibung |
|---|---|---|---|
action | Schnurschnur | ✓ | Der Aktionsname, z.B. transfer_funds. |
payload | Objekt | Strukturierte Einzelheiten der Maßnahme. | |
agent_name | Schnurschnur | Menschenlesbarer anrufer (verwenden, wenn der agent nicht registriert ist). | |
agent_id | Schnurschnur | Registrierte Agent ID (siehe) Agenten). | |
context | Schnurschnur | Freitext-Kontext für Reviewer. | |
reasoning | Schnurschnur | Die Argumentation des Agenten. | |
autonomy_level | Schnurschnur | Ebene der Agentenautonomie, L0–L5. | |
policy_ids | string[ | Beschränken Sie die Bewertung auf diese genauen oder Entscheidungs-Intelligenz-Richtlinien. | |
policy_group_ids | string[ | Beschränken Sie die Bewertung auf diese Politikgruppen. | |
timeout_seconds | Ganzzahl | Wanduhr Decke für eine menschliche Entscheidung. | |
target | Objekt | Konto, Ressource oder Anbieter, die die Aktion beeinflussen wird. | |
task_authorization | Objekt | Aufgaben-, Revisions- und externe Aktions-IDs, die die Arbeit autorisiert haben. | |
runtime | Objekt | Werkzeug- und Modellnamen und Versionen, die für den Vorschlag der Aktion verwendet werden. | |
executor_audience | Schnurschnur | Service erlaubt, die zugelassene Fähigkeit zu nutzen. |
curl -X POST "https://api.maetra.io/v1/checkpoints" \
-H "Authorization: Bearer $MAETRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "delete_customer",
"agent_name": "ops-agent",
"payload": {
"customer_id": "cus_41ab"
},
"reasoning": "GDPR erasure request #8821."
}'
Mit einem registrierten Agenten
Der obige Call verwendet agent_name weil der Agent nicht registriert ist - der gemeinsame Fall. Wenn der Agent ist registriertÜbergeben Sie Ihre agent_id stattdessen (oder nebenbei) agent_name) so wird ihm der Checkpoint zugeschrieben:
{
"action": "delete_customer",
"agent_id": "agt_5Ab2",
"payload": { "customer_id": "cus_41ab" },
"reasoning": "GDPR erasure request #8821."
}
Richtlinienumfang mit optionaler Agent-Identität
agent_id ist optional für /v1/checkpoints. Wenn Sie nur senden agent_nameGovern bewertet immer noch die aktion.
Für die automatische aktive Politikauswertung:
| Name des Antrags | Berücksichtigte Strategien |
|---|---|
Registriert agent_id | Organisationsweite Richtlinien sowie Richtlinien, die diesem registrierten Agenten zugewiesen wurden. |
agent_name Abgleich mit einem registrierten Agenten | Organisationsweite Richtlinien sowie Richtlinien, die diesem registrierten Agenten zugewiesen wurden. |
Unbekannt oder nicht registriert agent_name | Nur organisationsweite Politik. Agentenspezifische Richtlinien laufen nicht versehentlich. |
| Keine Agentenidentität | Nur organisationsweite Politik. |
Verwendung agent_id für stabile Attribution. Verwendung agent_name nur für API-Agenten oder MCP-Agenten, die noch nicht registriert sind. Wenn Sie gehen policy_ids oder policy_group_idsMaetra bewertet diese explizite auswahl. Die Auswahl kann genaue Richtlinien oder Entscheidungsintelligenzrichtlinien umfassen.
Antwort
{
"checkpoint_id": "cp_7Yh2Qa",
"agent_id": null,
"agent_name": "ops-agent",
"status": "pending",
"reason": null,
"decision_token": null,
"expires_at": "2026-07-07T12:05:00.000Z",
"evals": [
{ "policy_name": "Destructive actions", "status": "pending", "quorum_required": 2, "quorum_met": 0, "pool_size": 4 }
]
}
| Feld | Typ | Beschreibung |
|---|---|---|
checkpoint_id | Schnurschnur | Die ID des Checkpoints. |
agent_id / agent_name | Schnurschnur | Null | Die Anruferidentität, die Sie angegeben haben. |
status | enum | anhängig, genehmigt, rejected, expired, Blockiert, cancelled. |
reason | Schnurschnur | Null | Menschliche oder politische Gründe, sofern verfügbar. |
decision_token | Schnurschnur | Null | Unterzeichnetes JWT, das eine Terminalentscheidung belegt — siehe Entscheidungsmarken. |
action_envelope / action_envelope_hash | Objekt / String | Genauer Vorschlag und kanonische SHA-256 Bindung. |
policy_versions / policy_digest | Array / String | Genaue Richtlinienversionen, die für die Entscheidung verwendet wurden. |
decision_token_expires_at | Schnurschnur | Null | Ablauf der unterzeichneten One-Use-Entscheidungsfähigkeit. |
execution_expected_at / effect_expected_at | Schnurschnur | Null | Fristen, die verwendet wurden, um fehlende Lifecycle-Beweise aufzudecken. |
expires_at | Schnurschnur | Null | Ablaufdatum nach ISO 8601. |
evals | Array | Detail der Bewertung nach Politik (unten). |
Evales Objekt: policy_id, policy_name, applicability, status, quorum_required, quorum_met, pool_size.
Holen Sie sich einen Checkpoint (kalte Umfrage)#
GET /v1/checkpoints/{id} — Anwendungsbereich govern:checkpoints:read. Gibt den aktuellen Zustand zurück, ohne zu warten. Halten Sie ≥ 1 Sekunde zwischen den Umfragen des gleichen Checkpoints; bevorzugen Sie die Long-Poll unten.
curl "https://api.maetra.io/v1/checkpoints/cp_7Yh2Qa" \
-H "Authorization: Bearer $MAETRA_API_KEY"
Warten auf eine Entscheidung (long-poll)#
GET /v1/checkpoints/{id}/wait — Anwendungsbereich govern:checkpoints:read. Hält die Verbindung offen, bis der Checkpoint den Zustand ändert oder der Haltevorgang abgelaufen ist. Der effiziente Weg, auf einen Menschen zu warten.
- Abfrage
timeout: Haltesekunden,1–55(Standard)50). 200- verändert; Körper ist der neue Zustand.202Keine Änderung; Reconnect.
curl "https://api.maetra.io/v1/checkpoints/cp_7Yh2Qa/wait?timeout=50" \
-H "Authorization: Bearer $MAETRA_API_KEY"
Empfohlener Fluss#
POST /v1/checkpoints.- Wenn
statusist bereits terminal, handeln Sie darauf (und überprüfen Sie das Token). - Wenn
anhängig, Long-Poll/waitbis zum Terminal. - am
genehmigt, Überprüfen Sie das Entscheidungs-Token, Dann konsumieren Sie es durch Ausführungsberechtigung unmittelbar vor dem Handeln. Notieren Sie jeden Versuch und überprüfen Sie den Effekt. Auf irgendetwas anderes, handeln Sie nicht.