Evaluate your first agent action
Early access. Evaluation requires a workspace with an active execution entitlement. Without a matching policy the workspace default applies, which is BLOCK unless you change it.
1. Get an API key
Create a workspace, then open API keys in the dashboard. Keys look like aeg_live_ followed by 48 hex characters and are shown once.
2. Send an action
curl -s -X POST https://YOUR-AEGISORA-HOST/api/v1/evaluate \
-H "Authorization: Bearer $AEGISORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"agent":"my-agent","action":"payments.transfer","resource":"acct:123","risk":80}'3. Read the decision
{
"decision_id": "...",
"effect": "BLOCK",
"reason": "...",
"policy_id": null,
"approval_id": null,
"execution_id": null,
"trace_id": "...",
"evidence_hash": "...",
"agent_registered": true
}effect is ALLOW, BLOCK or ESCALATE. ESCALATE creates an approval and returns approval_id. Every decision returns an evidence_hash you can verify later.
4. Optional: Node helper (no dependencies)
Download aegisora.mjs. Fail-closed by default: if the API cannot be reached, the decision is BLOCK. Pass failMode: "open" to change that.
import { Aegisora } from "./aegisora.mjs";
const aegisora = new Aegisora({ baseUrl: process.env.AEGISORA_BASE_URL });
// The callback runs only when the decision is ALLOW.
// BLOCK and ESCALATE throw AegisoraDecisionError.
const result = await aegisora.guard(
{ agent: "my-agent", action: "payments.transfer", resource: "acct:123", risk: 80 },
async (decision) => doTransfer(decision.decision_id)
);Limits
Requests are rate limited per IP (120 per minute) and per API key (60 per minute). Request bodies are limited to 64 KB. The agent field must be an identifier, not personal data or a credential.