Skip to content

briefcase.guardrails

Terminal window
pip install briefcase-ai[guardrails]

GuardrailEnv is a protocol. Subclass BaseGuardrailEnv and implement evaluate.

BaseGuardrailEnv, EvalRequest, EvalResult, Effect

from briefcase.guardrails import BaseGuardrailEnv, EvalRequest, EvalResult, Effect
class QueueGuardrail(BaseGuardrailEnv):
@property
def name(self) -> str:
return "queue_access"
@property
def request_space(self):
return {}
def evaluate(self, request: EvalRequest) -> EvalResult:
effect = Effect.ALLOW if request.context.get("priority") == "high" else Effect.DENY
return EvalResult(effect=effect, guardrail_name=self.name, reason="priority check")
guardrail = QueueGuardrail()
request = EvalRequest(
agent="triage-bot",
action="route",
resource="queue:billing",
context={"priority": "high"},
)
result = guardrail.evaluate(request)
print(result.effect, result.is_allowed)
EvalRequest(agent, action, resource, context={}, request_id=None)
EvalResult(effect, guardrail_name, reason=None, policy_id=None,
lakefs_sha=None, eval_time_ms=0.0, metadata={})
.is_allowed
Effect.ALLOW / Effect.DENY

make()

from briefcase.guardrails import make
# env = make("registered-guardrail-id", **kwargs)

GuardrailPipeline

from briefcase.guardrails import GuardrailPipeline
pipeline = GuardrailPipeline(stages=[guardrail])
pipeline_result = pipeline.evaluate(request)
print(pipeline.name, pipeline.check_compatibility())
GuardrailPipeline(stages, mode=PipelineMode.FIRST_DENY, name="pipeline")
.evaluate(request) -> PipelineResult
.check_compatibility()
.stages