briefcase.guardrails
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_allowedEffect.ALLOW / Effect.DENYmake()
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