jev-pii-guardrail
UiPath prior-authorisation triage agent with a Jev guardrail that measures and records PII crossing the model boundary without masking.
Overview
This project is a UiPath coded agent that triages prior-authorisation requests, with a custom guardrail on the model boundary. Unlike a variant that masks identifiers before calling the model, this one sends requests in the clear and measures what crosses the boundary. For each boundary, the guardrail asks Jev one narrow question per identifier type plus a score for how identifiable the patient is, all in one parallel request.
Because Jev returns probabilities rather than offsets, the guardrail cannot redact; it logs and records, never masks and never blocks. Detection is fail-open so a detector outage does not stop the agent, and a status field shows whether each boundary was actually checked, so a clean run cannot be confused with an unchecked one. The graph includes an escalation path to a UiPath Action Center review app; reviewer notes sent back to the model are also scored, as the README notes they are the likeliest cleartext PHI. Tests run offline, and evaluation sets are included.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this boundary payload contain this identifier type (name, date of birth, member ID, etc.)?(inferred) | yes · no |
| Score | How identifiable is the patient from this payload? | — |
How it works
- The agent triages a request and calls the model
- The guardrail sends the boundary payload to Jev with identifier questions
- Probabilities above the threshold (default 0.60) are recorded as detections
- Results and check status are written to the output record
- Exceptions escalate to human review and loop back
Strengths
- Measures PHI exposure rather than assuming masking works
- Fail-open with explicit unchecked status
- Offline tests for guardrail and return loop
Caveats
- Cannot redact; only records
- Requires UiPath tooling for live runs
- Sends cleartext data to the model and to Jev by design
Getting started
uv sync, then uv run python tests/test_jev_pii.py; for a live case, uv run uipath run agent --file tests/inputs/PA-1017.json --output-file out.jsonAt a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- UiPath coded agent
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
A UiPath coded agent with a custom PII detection guardrail on the LLM boundary…
wh000wh000/awesome-jev-live
Frequently asked questions
Does the guardrail mask PII?
No. Jev gives probabilities, not offsets, so it records detections without masking or blocking.
What happens without a TypeSafe key?
The agent still runs and every boundary reports unchecked.
Why score reviewer notes?
The README notes they are the most likely place for cleartext PHI.
Related projects
Example of using Jev as a webhook guardrail inside the agentgateway proxy to inspect model requests and responses.
ProxyproductionRustPython/TypeScript/Go chatbot safety library checking user input and bot replies with Jev and returning one actionable verdict per message.
LibraryproductionPythonLocal desktop pal that verifies what a coding agent really did, with optional Laya or Jev double-checks of unclear test results.
ProjectbetaTypeScriptDeepSeek Harness plugin checking whether an agent's 'done' claim is true, using deterministic evidence plus one batched Jev assessment.
PluginbetaTypeScriptSupervisor for unattended coding agents: one batched Jev Choice over the trajectory decides continue, pause or escalate.
ProjectbetaPythonLocal guard layer for coding agents that blocks dangerous tool calls by deterministic rules, with optional Jev judgments.
CLIbetaTypeScript