EU Mode
Auto ModeLive

Dangerous action checks for AI agents.

For teams whose AI agents call tools.

Auto Mode is like Claude Code Auto Mode but for all agents.

Checks each action an AI agent is about to take, and blocks a dangerous one or flags it for a person to approve.

Every key starts in shadow mode: it reports what it would have decided and blocks nothing, until you switch the key to enforce in the console.

Auto Mode is part of EU Mode. One API to make your AI agents EU ready. The full EU Mode page

  1. 01Your agent
  2. 02Before it runs
  3. 03Check
  4. 04Decide

delete_account(account_id="acct_2207")

BlockedAuto Mode judges whether an action fits what the person asked for.

In shadow mode it lets the action through and reports what enforce would do. In enforce, your code stops it."decision": "allow", "would_decide": "block"

04 / 04

Where it sits

An agent acts thousands of times a day, in many languages, on instructions it reads from documents and tools. As your agents take actions for people, Auto Mode checks each action before it runs, and blocks a dangerous one or flags it for a person to approve.

Your agent, the check, and the tools it calls
Your agent
Auto Mode
Allowed
Flagged
Blocked
Runs
Waits for a person
Does not run

Three answers

It answers allow, escalate or block. Your app routes on that answer. Auto Mode judges whether an action fits what the person asked for.

Allowed"decision": "allow"

Send the text or run the action as it is.

Recorded on the live API, 30 October 2026Email the Q3 summary to anna.schmidt@example.comsend_email(to="anna.schmidt@example.com", …)"reason": "low risk, or asked for by the person"
Flagged"decision": "escalate"

Hold it for a person to approve. You also get escalate when a check could not answer, so an outage never reads as a clean allow.

Recorded on the live API, 2 November 2026Clean up the old test data in the customers database.run_sql("DROP TABLE customers;")"reason": "a bulk or account-wide change"
Blocked"decision": "block"

Stop.

Recorded on the live API, 2 November 2026Summarise the Q3 report for me.delete_account(account_id="acct_2207")"would_decide": "block"

Shadow mode

Every key starts in shadow mode

It reports what it would have decided and blocks nothing, until you switch the key to enforce in the console.

Shadow

The Shadow report on the Usage page counts what would have been blocked or escalated.

"decision": "allow",
"would_decide": "block",
"mode": "shadow"
Enforce

Write your routing once. Switching a key from shadow to enforce needs no change to your code, and takes effect on the key’s next call.

"decision": "block",
"would_decide": "block",
"mode": "enforce"

Shadow: the recorded answer to delete_account. Enforce: the same fields, showing the shape, not a recording.

The API

How to call it

  1. 01A person at your company signs in to the console and creates a key. The key is shown once.
  2. 02POST https://api.astroware.ai/v1/chat/completions, with the header Authorization: Bearer <key>.
  3. 03Set "model" to "eu-mode". The same endpoint, key and price as HaloGuard EU; only the model name differs.
  4. 04Send the action your agent is about to take, before it runs. Your app routes on the answer.

Read the EU Mode API docs before the first call.

Request body
{"model": "eu-mode", "messages": [
  {"role": "user", "content": "Summarise the Q3 report for me."},
  {"role": "assistant", "content": null,
   "tool_calls": [{"id": "call_1", "type": "function",
     "function": {"name": "delete_account",
                  "arguments": "{\"account_id\": \"acct_2207\"}"}}]}]}
Recorded answer, inside content, shortened
{"decision": "allow", "mode": "shadow", "would_decide": "block", "checked": "action",
 "checks": [{"check": "action", "decision": "block",
   "calls": [{"tool": "delete_account", "decision": "block"}]}]}

Pricing

Hosted APILive
$30
/ billion input tokens
  • Output tokens are free on all models.
  • The same endpoint, key and price as HaloGuard EU; only the model name differs.
  • Tokens of your text are counted each time they go through a model: text sent to two models, or through two checks in eu-mode, is counted twice.

Start with a $5 trial budget

Start free
Enterprise rates
Volume pricing, on an Order
  • For high volumes, a per-token rate agreed for your usage, with invoicing and payment terms to suit.
  • Prices can be set in euros.

Turn it on in shadow mode.

Sign in with your work email to start your company’s free trial: a $5 budget, shared by up to 5 active keys.

During the trial there is no uptime guarantee: the guard can be briefly unavailable.

Read the API docs

What it is, and what it is not

What it isA check on each action an AI agent is about to take.Part of EU Mode: model eu-mode, on the same endpoint and key as HaloGuard EU.Starts in shadow mode.
What it is notThe one that acts. It answers; your code runs, holds or stops the action.A check of what people send or what your AI writes. HaloGuard EU and the privacy filter check those.A check of what the tool returns. Security checks (prompt injection, jailbreaks) are in development and not in the eu-mode model yet.

Questions your security team will ask

What happens if the check cannot answer?escalateYou also get escalate when a check could not answer, so an outage never reads as a clean allow.
Do we change our code to switch to enforce?NoWrite your routing once. Switching a key from shadow to enforce needs no change to your code, and takes effect on the key’s next call.
Where does it run?EUHosted in the EU. Details on our Trust page.
What are the rate limits, and is there an uptime guarantee?TrialTrial: 60 requests a minute per key, and no uptime guarantee. Paid plans: ask us.

Auto Mode is part of EU Mode. One API to make your AI agents EU ready.

The full EU Mode page →