Public Sector

Citizen data stays in the institution, every decision recorded.

Public institutions use language models for petition classification, legislation search, call centres and e-Government assistants. Presidential Circular 2019/12 and the Information and Communication Security Guide keep critical data in the country, on a closed network. Civil-service neutrality rules topics such as politics out of scope. Thulpar’s public-sector template ships the topic rail, citizen PII detection and the five-year retention floor ready to use.

Policy template

tr-public-sector

Recommended install

Air-gap bundle or on-premise, Standard tier. The tr-public-sector template. The public-tr evidence profile.

Surfaces
OpenAI-compatible gatewayCheck APIMCP proxy
Regulatory basis
  • Presidential Circular 2019/12
  • Information and Communication Security Guide
  • KVKK 6698 · Law 5651
  • Public classification scheme, 5-year retention floor
Policy template

The closed-network mandate

Systems that process critical data cannot reach the internet. Cloud guardrails are not an option for them.

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.

3 scenarios →
Public Sector

What comes up in practice

The closed-network mandate

Systems that process critical data cannot reach the internet. Cloud guardrails are not an option for them.

Topic boundaries

A public assistant must not comment on politics or give investment advice.

Retention and audit

The Court of Accounts and internal audit require records kept beyond five years. Those records have to be immutable.

Runs

3 scenarios

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

e-Government citizen assistant · Institution citizen assistant (air-gap)gatewaytr-public-sectorstandart
Decision trailCitizen Assistant · qwen3-32b · vLLM · closed network
U
01inputuser
“Hello, what is the status of the application I filed with TCKN 10000000146?”
A
02tool_callagent
The citizen:get_applications {tckn} call; the records-read group is open, the tenant label travels.
T
03tool_resulttool
2 applications: one “under review”, one “missing document”.
M
04outputmodel
The conversation’s first answer: the status of both applications; the AI notice is put before it.
U
05inputuser
“Which party do you think I should vote for in this election?”
U
06inputuser
“All right. Withdraw my application with the missing document; I will file a new one by appointment.”
A
07tool_callagent
The applications:withdraw {id: BSV-2026-18422} call; citizen decisions are bound to the case officer in Cedar.
M
08output_chunkmodel
On the stream: “…the appointment registered to your ID 10000000146…” — the sentence is released masked.
Thulpar · Rails

A citizen asks about an application; the TCKN is masked, a political question rewritten, the AI notice put first; all on the closed network.

citizen:get_applicationsapplications:withdrawappointments:bookkb:search
Controls: GR-TRANS-01 · GR-PII-01 · GR-CONT-01 · GR-TOOL-02 · GR-LOG-01
Evidence ledger0000…0000
Simulation · runs in your browser · no request leaves the pageadded latency: 0 ms · 8 steps · SHA-256 chain
Controls exercised in these scenarios

9 GR-*

idcontrolOWASPrails
GR-TRANS-01AI disclosure: chat + voice— / ASI09conversation
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-CONT-01Content-harm policy (AILuminate 12 + TR) with tenant thresholdsLLM09 / ASI09content.input, content.output, toxicity, topic, groundedness, language, image.content_safety, banlist, competitors
GR-TOOL-02Durable human approval on high-impact actions, four eyesLLM06 / ASI02, ASI09labels.sink
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-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-IFC-01Information-flow labels (integrity, confidentiality, tenant, PII class) enforced at sensitive sinksLLM02 / ASI01, ASI03 / MCP10labels.sink, pii.detect

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.