Alignment

Simulate gateway evaluation against the alignment card

Pure-sync simulation: calls @mnemom/policy-engine twice (once with context: "gateway", once with context: "observer") using dryRun: true against the agent's current composed alignment card. Returns {allowed, conditions, suggestions, gateway_decision, observer_assessment}. Never crosses worker boundaries — no real gateway / observer state change.

The tools evaluated are the CALLER-supplied identifiers only — the union of candidate_tool_call.tool_name and every candidate_input.messages[].toolUses[].name, deduped. They are never read off the card (MNE-5820).

If that union is EMPTY, the request still returns 200 (unlike explain, which 400s), but it FAILS CLOSED: allowed is "false" with a no_tool_named: entry in conditions. The engine emits findings per tool, so a zero-length tool list would otherwise produce verdict pass with no violations — a green that checked nothing.

Note that gateway_decision.verdict and observer_assessment.verdict are the RAW engine output. On the zero-tool path they read "pass" with no violations, because the engine evaluated nothing. allowed — not the sub-verdicts — is this endpoint's decision field; read it.

post/alignment/agent/{agent_id}/simulate

Request

  • Base URL: https://api.mnemom.ai/v1
  • URL: https://api.mnemom.ai/v1/alignment/agent/{agent_id}/simulate
  • Auth: one of:
    • HTTP bearer
    • API key in header X-Mnemom-Api-Key
    • API key in cookie mnemom_session

Path parameters

agent_idstring required

Agent identifier (e.g. smolt-abc123)

Request body

Response

Simulation result.

oktrue required
resource'alignment' required
allowed'true' | 'false' | 'conditional' required
conditionsstring[] required
suggestionsstring[] required
evaluated_atstring date-time required

Changes

No recorded changes to this operation across all 1 revision of this API.