Defence

Guardrails for agents on a closed network.

In defence, language models summarise design documents, search procurement and maintenance records and interpret test data. Each of these tasks touches classified information. No request may leave the facility. Law 5202 and Circular 2019/12 require records for the life of the programme. Thulpar installs as an air-gap bundle, with the models in a signed tar. The defence template denies every egress, stops classified-labelled content at every sink and writes each decision to a ledger retained for ten years.

Policy template

tr-defence

Recommended install

Air-gap bundle on the Recommended tier, with the image guard. The tr-defence template. 3650-day retention.

Surfaces
OpenAI-compatible gatewayMCP proxyCheck API
Regulatory basis
  • Defence Industry Security Law 5202 and its Regulation
  • Presidential Circular 2019/12 · Information and Communication Security Guide
  • KVKK 6698 Art. 12 (personnel data)
  • NATO / allied programme security instructions
Policy template

Tools that need the internet

Most guardrail products call a cloud service or a licence server. They do not run on the facility network.

Watch the runs →
Runs

The scenarios below are derived from the product’s real rules.

Every scenario is an agent run written to the product’s real rules. It shows the stage, the rails, the decision, the finding, the approval and the ledger entry step by step.

4 scenarios →
Defence

What comes up in practice

Tools that need the internet

Most guardrail products call a cloud service or a licence server. They do not run on the facility network.

Classification levels

A classified document an agent reads must not reach an e-mail or an external tool. The label has to travel with the content.

The evidence duty

Law 5202 and Circular 2019/12 require records for the life of the programme. Plain logs do not meet that duty. A hash-chained ledger does.

Runs

4 scenarios

The player opens on the flagship scenario. Pick the others below.

Classified design-document review · Engineering knowledge assistant (closed network)gatewaytr-defenceonerilen
Decision trailDesign Assistant · qwen3-32b · vLLM · on-site
U
01inputuser
“Summarise the SS-7 power distribution subsystem test report and list the risks.”
R
02retrievalretrieval
docs:search returns 4 chunks; two carry a “CLASSIFIED” marking.
M
03output_chunkmodel
The stream starts; every sentence passes content safety and the exfiltration rail.
A
04tool_callagent
The agent calls mail:send: it wants to e-mail the summary to the supplier’s engineer.
A
05tool_callagent
The agent opens an internal tracking ticket with tickets:create; the arguments fit the schema.
M
06outputmodel
The full answer: six risks, cited to the source chunks; groundedness on every sentence.
A
07memory_writeagent
The agent wants to write the conversation summary to long-term memory.
Thulpar · Rails

An engineer asks for a summary of a classified subsystem report; the “classified” label travels with the content and never reaches e-mail.

docs:searchdocs:readmail:sendtickets:create
Controls: GR-IFC-01 · GR-EXF-01 · GR-MEM-01 · GR-INJ-02 · GR-LOG-01
Evidence ledger0000…0000
Simulation · runs in your browser · no request leaves the pageadded latency: 0 ms · 7 steps · SHA-256 chain
Controls exercised in these scenarios

12 GR-*

idcontrolOWASPrails
GR-IFC-01Information-flow labels (integrity, confidentiality, tenant, PII class) enforced at sensitive sinksLLM02 / ASI01, ASI03 / MCP10labels.sink, pii.detect
GR-EXF-01Tenant egress allowlist; no remote images in chat; no PII in URLs; SSRFLLM02, LLM05 / ASI02 / MCP06exfil, tool.args, file.qr
GR-MEM-01Memory-poisoning policy + provenance— / ASI06 / MCP10memory.write
GR-INJ-02Indirect injection from tool/RAG output: untrusted label, no new tool call without policyLLM01, LLM08 / ASI01, ASI06 / MCP06, MCP10injection.indirect, file.hidden_text
GR-LOG-01Tamper-evident event log (model/tool/policy/approval/hit), ≥ 6 months, auditor export— / — / MCP08
GR-OUT-01Output handling: no raw HTML, code sandbox, schema validationLLM05 / ASI05 / MCP05code, schema, regex, secrets, file.analyze, file.type, file.active_content, yara
GR-TOOL-02Durable human approval on high-impact actions, four eyesLLM06 / ASI02, ASI09labels.sink
GR-PII-01PII and special-category detection + masking (TCKN, IBAN, phone, health) on input/tool/output/logLLM02 / — / MCP10pii.detect, pii.redact, file.metadata_pii
GR-TOOL-03Tool schema pinning / diff / quarantine (rug-pull)LLM03 / ASI04 / MCP03, MCP04tool.schema_pin
GR-TOOL-04Tool description hygieneLLM03 / ASI04 / MCP03
GR-TOOL-01Tool-call privilege policy (default deny)LLM06 / ASI02, ASI03 / MCP02tool.authz, tool.args
GR-RES-01Per-run rate/cost/loop limits, circuit breakerLLM10 / ASI08budget

The full catalogue and evidence packs →

See it in your own environment.

A one-hour technical demo: your scenario, your policy pack, on a closed-circuit install. Then the install kit and a trial licence for a pilot.