Skip to main content
Alignment Cards are structured declarations of your agent’s values, boundaries, and behavioral commitments. Every agent connected via the Mnemom Gateway gets a default card automatically — but that default card uses generic values and minimal autonomy. It does not represent what your agent actually does or cares about. Customizing your card is how you make alignment verification meaningful. A card that accurately reflects your agent’s real values and tools produces useful integrity scores. A generic card produces noise.
Templates use the unified card shape. The JSON/YAML templates on this page use the unified card format — the shape mnemom card validate and PUT /v1/alignment/agent/{id} both expect. A card copied verbatim from any template below will validate and publish without modification. See Alignment Card Schema for the full normative spec.For protocol-level interop with external agents (A2A, MCP), the same unified shape is also the AAP protocol-level card specified at /concepts/alignment-cards. Production cards you manage here are a superset that adds conscience, capabilities, enforcement, and integrity_config on top of that protocol surface.

Creating a card

An alignment card is a structured document that follows the AAP specification. You can author cards in JSON or YAML — the API accepts both formats and stores cards as JSON internally.

Start from the template

Every card requires five blocks: identity, principal, values, autonomy, and audit — plus two top-level master switches (autonomy_mode and integrity_mode) that control action-policing and values verification independently.

Choose values

values.declared accepts any value identifier — validation is shape-only (a non-empty string or {id, ...params}), so nothing stops you from inventing one. What actually belongs there, the recommended baseline, and the distinction between a value and a role/capability descriptor are covered in Alignment Cards § What belongs in values.declared — read that before picking your list. For a value outside that baseline, add a definitions entry so it’s self-documenting:
Only declare values your agent actually applies. Declaring fairness but never referencing it in decisions produces verification warnings.

Define the autonomy block

List the actions your agent actually takes as bounded_actions. These should match your agent’s real tools and capabilities:
Escalation triggers use evaluable conditions — single-token identifiers or simple comparisons that the condition evaluator can process. Examples: named_entity_critical, purchase_value > 100, shares_personal_data. Forbidden actions are semantic identifiers, not prose descriptions. Use concrete action names like delete_without_confirmation, not vague phrases like “harmful behavior”.

Set audit commitment

Declare how your agent logs decisions and whether external parties can query traces:

Full example: Customer support agent

Publishing via CLI

Publishing via dashboard

For paste-from-file workflows, use the JSON or YAML editor. Copy your local card file and paste it directly into the corresponding editor tab, then save. This is faster than manually filling in the visual editor for complex cards.

Publishing via API

Update your agent’s alignment card directly with a PUT request to /v1/alignment/agent/{agent_id} — the canonical Resources × Scope × Verb URL. The body is the unified alignment card in YAML (canonical) or JSON. Publishing triggers composition — the server regenerates the agent’s canonical card against platform + org scopes before the response returns.
The older /v1/agents/{agent_id}/alignment-card URL still works but only 308-redirects here (sunset 2027-01-15). Use the canonical /v1/alignment/agent/{agent_id} directly.
Authenticate with either an API key or a Bearer JWT. Send Idempotency-Key so retries are safe to replay.
Who can publish. Publishing is authorized by organization membership, not by who originally claimed the agent. Any member of the organization that governs the agent — role owner, admin, or member — can publish its cards, so teammates can manage shared agents without re-claiming them. You never pass an organization id: the server derives it from the agent. A caller who is not a member of the agent’s org receives 403 Forbidden with code agent_org_forbidden, naming both the org and the agent.
The response is the canonical card — your agent-scope input composed with platform + org scopes. Pass ?include_composition=true to include the _composition metadata block showing which scope contributed which fields.

Organization card templates

Your card composes with your org’s alignment template (if one is set) and the platform floor to produce your agent’s canonical card — org values and forbidden actions always apply on top of what you declare here. For setting up an org template, granting per-agent exemptions from it, and debugging why a composed field has a value you didn’t set, see Managing Card Composition.

Validation rules

mnemom card validate runs every check below; any failure exits non-zero (there’s no separate warning tier — a failed check blocks validation): When you’re online with an agent to validate against, mnemom card validate runs the same check server-side (composed against your org/platform floor) instead of this offline check set — pass --offline to force the local rules.

Policy integration

Policy is now part of the alignment card itself. The unified schema includes capability mappings, forbidden rules, and enforcement defaults directly in the card:
  1. Card defines capabilities: Your card’s autonomy.bounded_actions lists semantic categories like web_fetch, read, write
  2. Card maps tools: The capabilities section maps concrete tool names (like mcp__browser__*) to those card categories
  3. Card defines enforcement: The enforcement section sets the mode (observe/warn/enforce) and defaults for unmapped tools
  4. Evaluation bridges all three: mnemom card evaluate checks that every tool maps to a declared bounded action
When adding new tools, update the card to add both the capability to bounded_actions and the tool-to-capability mapping in capabilities. The enforcement section’s grace_period_hours field, if you set one, gives you time to make these updates after new tools are first observed before its default_unmapped_severity starts applying.

Amendment tracking

Every card update creates a formal amendment with version history and diffs. Amendments can be linked to reclassification requests — proving that a violation was caused by a card gap rather than agent misbehavior. See Card Lifecycle for details.

Best practices

Version control your cards

Keep alignment card files (JSON or YAML) in your repository alongside your agent code. Use mnemom card validate in CI to catch issues before deploy.

Match bounded actions to real tools

Your bounded_actions list should reflect your agent’s actual tools and capabilities. Adding actions the agent never takes produces noise; missing actions the agent does take produces false violations.

Set meaningful expiry dates

A 6-month expiration is typical. Shorter lifetimes increase operational overhead; longer lifetimes risk the card becoming stale relative to actual behavior.

Use escalation triggers for real decisions

Escalation triggers are the card’s most actionable component. Define triggers for situations where your agent genuinely needs human approval, not aspirational conditions.

Define custom values precisely

Every custom value needs a clear description in the definitions block. Vague definitions lead to inconsistent verification results.

Review cards after capability changes

When you add or remove tools from your agent, update the alignment card and policy to match. Stale cards produce misleading integrity scores.

See also