Dome calls return a ScanResult; your application or framework integration decides how to apply the result, such as stopping execution or returning blocked or sanitized content.
For tool-using Agents, Trust Runtime adds trust controls when you configure them. These controls include SPIFFE workload identity, Console or local constraints, tool-level mandatory access control, signed tool manifest support, tool attestation, structured audit events, and optional enforcement heartbeats. Use secure_agent() with LangGraph, Google ADK, or Strands, or use TrustRuntime directly for a custom integration.
Choose a Protection Interface
How Dome Works
A Guardrail contains one or more Guards, and each Guard invokes one or more Detectors. Input and output Guardrails run on opposite sides of Agent execution:Protection Types
Dome supports six Guard categories. The following table shows representative registered Detectors rather than the complete catalog:See Detection Methods for the full Detector catalog and configuration parameters.
Default Guardrails
Dome() creates input and output Guardrails with the following default checks:
The default prompt injection and moderation models require the
local extra when you run them locally, and Presidio PII detection requires the pii extra. You can instead set DOME_INFERENCE_URL to route supported Detectors, including the default model and PII Detectors, to an inference service.
Configuration Sources
Choose a configuration source that matches how you operate Dome:For the available settings, see Configure Guardrails.
Scan Results
Every input or output scan returns aScanResult with these key members:
Framework Integrations
You can callDome.guard_input() and Dome.guard_output() from any Agent framework. For the complete trust stack, secure_agent() provides built-in adapters for LangGraph, Google ADK, and Strands.
Tool enforcement depends on the integration points exposed by each framework. LangGraph tool access control is best-effort because the compiled graph must expose tool functions that the adapter can discover and wrap. LangGraph checks streaming output only after it yields the chunks, so an output Guard cannot retract delivered chunks.
See Trust Runtime for integration examples and constraints.
Execution and Failure Options
Early exit and parallel execution are independent options at both the Guardrail and Guard levels:
By default, Guards and Guardrails use early exit and do not use parallel execution. Disable early exit to run every configured check. You can also combine early exit with parallel execution; Dome cancels pending checks after one flags content.
When configuration omits
on-error settings, Dome(enforce=True) defaults to fail_closed, while Dome(enforce=False) defaults to fail_open. Explicit Guardrail-level or Guard-level on-error values override the inherited default. Failed methods remain available in errored_methods for inspection.
See Configure Guardrails for the settings at each level.
Next Steps
Trust Runtime
Add identity, tool access control, attestation, and audit events
Configure Guardrails
Configure Guards, Detectors, execution, and failure behavior
Use Guardrails
Apply Guardrails at runtime
Detection Methods
Review built-in Detectors and their parameters
Custom Detectors
Build your own detection methods
Observability
Track Guardrail decisions and traces