Agent intent
Before an AI agent pays, transfers or subscribes, send what it intends to do. Ward checks it against the agent's mandate and its session behaviour and answers whether it may proceed, needs a human, or must stop.
Type: intent · Endpoint: POST /api/v1/orchestration/intent · Real-time
The agent never sees the mandate's limits; it only gets the answer (the oracle is opaque), so it cannot probe its way around them.
Request
curl https://api.mandatelabs.ai/api/v1/decide \
-H "X-API-Key: $WARD_API_KEY" -H "Content-Type: application/json" \
-d '{"type": "intent", "input": {"session_id": "ses_9f2", "agent_id": "agt_shopper_01", "intent_type": "PURCHASE",
"amount": 89.00, "currency": "USD", "merchant_name": "Acme Office", "mcc": "5943",
"reasoning": "User asked to reorder the printer toner from last month.", "agent_confidence": 0.86}}'
d = client.decide("intent", {"session_id": "ses_9f2", "agent_id": "agt_shopper_01", "intent_type": "PURCHASE",
"amount": 89.00, "merchant_name": "Acme Office", "mcc": "5943",
"reasoning": "User asked to reorder the printer toner from last month."})
const d = await client.decide("intent", { session_id: "ses_9f2", agent_id: "agt_shopper_01", intent_type: "PURCHASE",
amount: 89, merchant_name: "Acme Office", mcc: "5943", reasoning: "User asked to reorder the printer toner from last month." });
Input
| Field | Required | Description |
|---|---|---|
session_id |
yes | The agent's active session (POST /api/v1/orchestration/sessions) |
agent_id |
yes | agt_… |
amount |
yes | Requested amount |
intent_type |
PURCHASE (default), SUBSCRIPTION, TRANSFER, REFUND_REQUEST |
|
currency, merchant_name, merchant_id, mcc, country |
Target | |
reasoning, reasoning_hash |
The agent's reasoning trace (read by the behavioral overlay; never executed) | |
agent_confidence, interaction_depth |
Self-reported confidence; tool-call depth |
Result and decision
| Field | Meaning |
|---|---|
approved |
May proceed → APPROVE |
requires_step_up |
A human must confirm → STEP_UP |
denial_category |
Why it was refused → DECLINE (the envelope's signals) |
session_health, interactions_remaining |
Session state |
directive |
What the agent should do next |
The behavioral overlay (EDQS-B) watches the session for confidence inflation, collapsing alternatives and reasoning drift against the agent's own baseline; a degraded session tightens the agent's limits within the session.