Skip to content
NERC CIP · FERC · IEC 62443

AI safety + compliance for the grid

AI that reads outage tickets, SCADA summaries, or switching procedures sits next to critical infrastructure. EvalGuard keeps grid data inside your boundary with air-gapped self-hosting, gates operational answers on runbook faithfulness, and logs every interaction for CIP-style audit review.

216
Scorers
77
LLM providers
324
Red-team plugins
2.57ms
Firewall p95
Wind turbines on a plain at sunset
Energy & utilitiesNERC CIP · FERC · IEC 62443

What ships today

Honest posture, not roadmap promises

Every checked item is in production today. In-progress items are flagged explicitly — no overclaiming, no vapor.

Self-hosted / air-gapped deploy for OT-adjacent workloads
Data firewall with block mode across 18+ PII + asset-data types
Faithfulness scorers for procedure-grounded generation
Tamper-evident audit log (integrity_hash + advisory-lock concurrency)
BYOK provider keys via Vault — credentials never logged
Per-tenant RBAC + evidence bundles for compliance review
CIP-mapped control documentation pack

Built for buyer reality

Energy & utilities AI use cases we ship for

Switching-procedure and runbook copilot

Field crews and control-room operators query an assistant grounded in switching orders and O&M runbooks. A hallucinated isolation step is a safety event — every answer must be faithful to the current procedure revision.

EvalGuard features

  • Faithfulness scorer checks each step against the source procedure
  • Hallucination gate blocks answers that drift from the runbook
  • Audit log ties every answer to procedure revision for post-event review
  • Self-hosted deploy keeps switching data inside the ESP boundary

Outage-communications drafting

AI drafts customer notifications and regulator updates during outages. Estimates must match the OMS record — an invented restoration time becomes a regulatory complaint at scale.

EvalGuard features

  • Faithfulness scorer checks restoration estimates against the OMS record
  • Toxicity scorers + brand-voice guardrails keep mass notifications on-script
  • Output guardrails in block mode reject regulator updates that introduce un-cited claims
  • Gateway cost ledger caps spend during high-volume outage events

Customer-service assistant with account access

The support bot reads billing, usage, and payment-plan records. Usage data reveals occupancy patterns — it must be redacted from third-party model logs and protected from cross-account extraction.

EvalGuard features

  • Data firewall redacts account numbers, addresses, and service identifiers
  • Prompt-injection defense: 300+ attack plugins cover cross-account extraction
  • Per-route rate limits blunt enumeration against account-lookup flows
  • Consent gates honor customer data-sharing preferences before generation

Regulatory-filing summarization

Rate-case teams summarize dockets, testimony, and precedent into filing drafts. Citations must point at real docket entries — a fabricated citation in a FERC filing is a credibility disaster.

EvalGuard features

  • Citation-format scorer verifies every reference against the source corpus
  • Faithfulness gate rejects summaries introducing un-cited claims
  • Per-project BYOK isolation separates rate-case workspaces
  • Evidence-bundle export documents the AI-assist trail for counsel

Wire it in 60 seconds

Wrap your OpenAI client. Keep grid data in the perimeter.

Redaction rules + faithfulness thresholds + audit retention are configured once in the EvalGuard control plane. Your code only wraps the client.

typescript
import OpenAI from "openai";
import { wrapOpenAI, EvalGuardViolationError } from "@evalguard/openai";

const openai = wrapOpenAI(new OpenAI(), {
  apiKey: process.env.EVALGUARD_API_KEY!,
  projectId: "ops-runbook-copilot",
  metadata: { vertical: "utilities", nercCip: true },
  blockOnViolation: true,                  // refuse asset-data leaks
  evalOnResponse: { failOnScore: 0.8 },    // procedure-faithfulness gate
  onViolation: (r) => alertGridSecOps(r.violations),
});

try {
  await openai.chat.completions.create({
    model: "gpt-4o",
    messages: [{ role: "user", content: switchingQuery }],
  });
} catch (err) {
  if (err instanceof EvalGuardViolationError) {
    // Block recorded in the audit trail. Replay via audit ID.
  }
}
Procedure corpus + thresholds + retention live in the EvalGuard control plane — set once per project, no SDK calls needed.
Same integration for Anthropic, Gemini, and 91+ providers — swap wrapOpenAI for wrapAnthropic.

Ready to ship grid-adjacent AI you can defend?

Free trial includes the data firewall, faithfulness scorers, and the tamper-evident audit trail. Air-gapped self-host available for OT-adjacent workloads.

Apache-2.0 source · SOC 2 evidence engine live · full trust center