Mission 1 · Payment desk
In-policy refund
Get an ALLOW on a £120 refund to an approved supplier. A plain instruction is enough.
Target verdict ALLOWClear value 70 pts
AI hackathon · nine missions
Nine missions. You instruct a local agent. Open Policy Agent, running as WebAssembly in this browser, still decides whether the tool may run. Score, rank and unlocks stay on this device. Fictional data only.
Mission 1 · Payment desk
Get an ALLOW on a £120 refund to an approved supplier. A plain instruction is enough.
Target verdict ALLOWClear value 70 pts
Safe status steps only. No chain of thought, no source records.
Agent proposes → OPA WASM evaluates published Rego → simulated MCP tool
Prompt class: unknown_attempt
Score, rank and this log sit in local storage on this device. Nothing is posted to AffixIO.
No runs yet. Clear mission 1 from the campaign board.
The hackathon engine is Open Policy Agent, Apache-2.0, compiled to WebAssembly. The page loads the published Rego as policy.wasm and evaluates it with @open-policy-agent/opa-wasm. If WASM cannot start, a local copy of the same rules still runs so the campaign is not blocked.
Rego in breakout.rego is compiled with opa build -t wasm -e breakout/decision. The entrypoint returns allow, deny or step-up plus checks. That is the same engine used in Kubernetes admission and service meshes, not a demo regex file dressed as policy.
The vendored runtime is @open-policy-agent/opa-wasm 1.10.0. After the first fetch of the WASM module, evaluation stays on-device. Licence notes live in vendor credits.
There is no hosted model. Prompt lines are classified locally so the simulation can pick a tool payload. Authority still sits in OPA. That split is the point of an agentic jailbreak lab: the interesting failure is a tool call, not a chat reply.
Each run hashes the proposed action with Web Crypto SHA-256 and attaches a simulated ML-DSA-65 signature. Production AffixIO attestation on api.affix-io.com is a different artefact. Do not cite this demo signature as a live proof.
package breakout
import rego.v1
decision := payment if input.tool == "refund.create"
decision := clinical if input.tool == "record.access"
decision := gate if input.tool == "gate.verify"
payment := _wrap("ALLOW", "policy_conditions_met", ...) if {
_supplier_ok
not _overspend
input.payload.amount <= 250
}
US searches for prompt injection roughly doubled in a year as agent demos went public. Jailbreaking a chatbot that can only talk is an embarrassment. Jailbreaking an agent that can refund, export or open a door is an incident.
An agent may propose an action. Open Policy Agent decides whether it is permitted. That split is the whole point of this hackathon.
A valid session does not answer whether this specific payment, record lookup or access attempt is within scope.
A signed receipt records what was requested, which policy was applied, and whether the action was allowed.
OWASP still ranks prompt injection first for LLM applications. Excessive agency is what happens when that injection reaches MCP-style tools with spend, records or gates attached.
Short answers for people, search engines and retrieval systems.
Can you jailbreak this agent into executing a restricted tool? You can talk it into proposing the call. Open Policy Agent still evaluates supplier, spend, scope, role, expiry and nonce. The result is allow, deny or step-up, with a receipt you can inspect in the browser.
The AffixIO AI hackathon at /ai-hackathon/. Nine missions across Payment Desk, Clinical Records and Backstage Access. Score and rank stay in this browser.
No hosted model, no live MCP, no production signing. Prompt class is local. Policy evaluation is Open Policy Agent WASM compiled from published Rego.
On the tool call, after the agent proposes and before refund.create, record.access or gate.verify runs.
The request is inside a grey band: above the autonomous refund limit, or a full record that needs a supervisor. It is not an allow and not a hard deny.
These are the documents this page sits next to. AffixIO does not claim certification under them.
Prompt injection remains the first listed risk. Excessive agency is the failure mode this simulation is built around.
Read the OWASP listPublic 2026 reporting on frontier-model jailbreaks in the cyber domain is the UK context for treating agents as untrusted proposers.
Open AISIGovern, map, measure and manage. A tool-call gate is a measure you can put in front of inference and execution.
Open the NIST frameworkUK National Cyber Security Centre guidelines covering design, development, deployment and operation of systems that use AI.
Read the NCSC guidelinesA nine-mission AGENT BREAKOUT campaign. You instruct a local agent. Open Policy Agent, compiled to WebAssembly, evaluates the proposed tool call and returns allow, deny or step-up with a signed receipt. Score and rank stay in this browser.
No. There is no live model endpoint, no patient data, no live payment rail and no production MCP server. Classification is local. Policy evaluation uses Open Policy Agent WASM compiled from published Rego. Receipt signatures in this public demo are simulated unless connected to a real AffixIO verifier.
Open Policy Agent 1.4.2, compiled to WASM from breakout.rego, evaluated in the browser by @open-policy-agent/opa-wasm. The agent is a local classifier that proposes a tool payload. It does not get a vote on allow, deny or step-up.
Prompt injection and jailbreak searches rose through 2025 and 2026 as builders shipped agents with tools. A model that can be talked into proposing a refund is not the same thing as authority to execute it. The gate sits on the tool call.
In this simulation it records the proposed action digest, policy id, version, decision, reason code and a nonce. You can inspect the JSON and recompute the SHA-256 of the canonical action in the browser. Production AffixIO attestation uses ML-DSA-65 on api.affix-io.com and is a different artefact.
OWASP ranks prompt injection first for LLM applications. Excessive agency is the blast radius when that injection reaches tools. This page is a worked example of holding the Model Context Protocol style tool call at a deterministic allow, deny or step-up boundary.
AffixIO is for organisations that need independently verifiable allow, deny and step-up decisions without treating a general agent as a trusted authority. Related gate: the AI model usage policy gate, which decides before inference rather than after a tool is proposed.