Skip to main content
EgisAI is a runtime governance and observability layer for AI agents. We are not a fairness auditor. This page explains what that means for procurement reviewers asking about protected-class testing, and how to use our audit telemetry to run a fairness audit in a tool of your choice.

Our stance in one paragraph

EgisAI does not infer or store demographic attributes about your end users. We do not run protected-class proxy detection, disparate-impact testing, or statistical-parity analysis. The platform’s drift signals are operational (cadence, model affinity, geo, block-rate, latency distribution) rather than demographic. Where you need a fairness audit, we support you by exporting decision logs grouped by the identifiers you already attach to calls (agent_id, user_id, session_id) so you can run analytics in the fairness tool of your choice without ever sharing the underlying demographic data with us.

What we monitor at runtime

The SDK and dashboard surface three categories of behavioral signal. None of them are fairness signals; they are operational signals on which a fairness analysis can be layered offline. If an operator authors a pii_scan policy that detects names + emails, those redactions count toward sanitization metrics, but the platform does not classify the person the data refers to. Names and emails are masked and counted; demographics are never inferred or stored.

What we do support: content-level fairness controls

The policy engine has shipped controls that operators can use to enforce content fairness:
  • Slur / harassment denial. The policy library includes a curated policy that blocks slurs targeting protected classes and dehumanising language. Operators can enable it as-is or use it as a starting point for their own deny lists. See Policies.
  • Intent-based denials via semantic_guard. Operators describe prohibited intents in plain English (“incitement of discrimination against a protected class”, “harassment-as-a-service requests”); the LLM-backed judge applies those intents on the prompt and the response.
  • Output regex filters. Pattern-based blocks for known problematic surface forms.
These controls are operator-authored policies, not platform-imposed fairness verdicts. Each rule’s match is recorded with its verdict, reason_code, and message on the audit row, so you can review which fairness-related policy fired on which call.

What we do not do

To be unambiguous for procurement:
  • We do not infer race, ethnicity, gender, age, religion, disability, sexual orientation, immigration status, or any other protected attribute about end users from prompt content.
  • We do not run statistical-parity, equal-opportunity, calibration, or any other fairness metric internally and serve it to operators as a finding.
  • We do not flag agents as “biased” or “fair.” The trust score is operational risk, not a fairness verdict.
  • We do not train models on customer data under any plan.
If a future feature changes any of these statements, we will publish it on this page before shipping it.

Supporting your fairness audit

The supported path is to export the per-call decision log and run fairness analysis in your own pipeline. The Audit-evidence export ZIP includes a request_logs.csv that carries every call’s verdict, agent_id, api_key_id, prompt_verdict, response_verdict, matched_policy, and the user_id you attached to the call via set_context(). Operators typically group these by:
  1. Per-agent. Slice block-rate and sanitization-rate by agent_id to see whether one agent is disproportionately refusing or redacting traffic relative to its peers.
  2. Per-customer-cohort. Group by your own customer cohort attribute (the value you put in set_context(user_id=…) or set_context(session_id=…)) to compare verdict distributions across the cohorts you defined.
  3. Per-policy. Group by matched_policy to see whether a specific rule has uneven impact across cohorts.
Once exported, the analysis runs in your environment — typically Pandas or your data warehouse — against the customer cohort metadata that lives in your systems, not ours.

Example: cohort block-rate comparison

The cohort attribute never reaches EgisAI — only the opaque user_id identifier you chose to attach to the call does. The fairness join happens in your environment against data we never see.

What a fairness-conscious operator should do

  1. Author the fairness policies you need. Use the slur policy, write intent-based semantic_guard rules for the harms your product cannot produce, and review the matched-policies audit trail.
  2. Tag traffic with cohort-stable opaque identifiers. Attach an internal user_id or session_id you can later join against your own cohort tables.
  3. Export the audit log on the cadence your governance committee requires (typically monthly or quarterly).
  4. Run fairness analytics offline in the tool your team already uses. The export is designed for direct ingest into Pandas, Snowflake, Databricks, or any SIEM.
  5. Treat any positive finding as a policy or product change, not as an EgisAI ticket. The audit log is evidence; the fix lives in your policies or in your product.

What a regulator usually asks for

Regulator-grade fairness reviews under the EU AI Act (Articles 9 / 10 / 14 / 15) or NIST AI RMF (MAP 2.3, MEASURE 2.11) usually need three artefacts:
  1. The policy inventory at the moment in question — which rules were enabled, with what configuration. policies.csv from the audit-evidence export delivers this.
  2. The operator-action audit trail — who changed which policy when. audit_log.csv delivers this.
  3. The per-call decision log — which call hit which policy, with verdict and matched-policy id. request_logs.csv delivers this.
EgisAI emits all three at procurement-grade granularity with timestamps, operator labels, and stable policy ids preserved across renames. The inference about whether your overall AI system is “fair” is a customer exercise on top of those artefacts.

What’s next

Decision explainability

The four surfaces that explain why a call hit a verdict — at the level an EU AI Act Article 13 review expects.

Audit-evidence export

The CSV-of-ZIPs your fairness pipeline ingests.

Policies

The policy library, including the protected-class content rules.

Privacy and security

The privacy contract that prevents demographic inference at the SDK boundary.