Policy-Aligned Reasoning
AI cannot generate decisions outside approved boundaries
Trust is created not by controlling AI outputs, but by PROVING that systems behave consistently, safely, and transparently across scenarios.
Policy-Aligned Reasoning
AI cannot generate decisions outside approved boundaries
Data Sensitivity Awareness
Automatic adjustments based on data classification
Scenario-Aware Oversight
Context factors evaluated before every action
Transparent Decision Trails
Complete auditability of every AI decision
Ensure AI reasoning stays within approved boundaries:
from duragraph.governance import PolicyAlignedReasoning
aligned_reasoning = PolicyAlignedReasoning( # Embed policy constraints in prompts system_constraints=[ "You are a customer support agent for ACME Corp.", "You may only discuss ACME products and services.", "You cannot provide legal, medical, or financial advice.", "You must verify information before sharing.", ], # Constitutional AI-style constraints constitutional_principles=[ "Responses must be helpful and accurate.", "Responses must not cause harm.", "Responses must respect user privacy.", ], # Hard stops for policy violations hard_stops=[ "competitor_mention", "unauthorized_promise", "pii_disclosure", ],)# Embed policies in system promptsystem_prompt = """You are a support agent bound by these policies:- Only discuss authorized topics- Cannot make promises about refunds over $100- Must escalate legal questions to human agents
POLICY VIOLATION = IMMEDIATE STOP"""# Self-critique and revisionconstitutional = ConstitutionalAI( principles=[ "Is this response accurate?", "Does this stay within authorized scope?", "Could this cause harm to the user?", ], revision_rounds=2,)# Post-generation policy checkdef policy_check(response: str) -> bool: violations = detect_violations(response) if violations: log_violation(violations) return False # Block response return TrueAI automatically adjusts behavior based on data classification:
from duragraph.governance import DataSensitivityHandler
sensitivity_handler = DataSensitivityHandler( classification_actions={ "public": { "controls": ["basic_logging"], "processing": "standard", }, "internal": { "controls": ["access_logging", "basic_redaction"], "processing": "standard", }, "confidential": { "controls": ["strict_access", "full_audit", "encryption"], "processing": "restricted", "require_justification": True, }, "restricted": { "controls": ["approval_required", "encryption", "limited_retention"], "processing": "minimal", "require_approval": True, "max_retention_days": 30, }, },)from duragraph.governance import DataClassifier
classifier = DataClassifier( detection_rules={ "pii": { "patterns": ["ssn", "credit_card", "email", "phone"], "classification": "confidential", }, "financial": { "patterns": ["account_number", "balance", "transaction"], "classification": "confidential", }, "health": { "patterns": ["diagnosis", "medication", "treatment"], "classification": "restricted", }, },)
# Automatic classificationdata_class = await classifier.classify(input_data)# Returns: "confidential" with reasoningEvery AI decision is evaluated against contextual factors:
temporal_factors = { "time_of_day": "business_hours", # vs off-hours "deadline_pressure": "normal", # urgent, normal, relaxed "data_freshness": "current", # How recent is the data?}
# Different governance for off-hours requestsif temporal_factors["time_of_day"] == "off_hours": require_additional_verification = Truesource_factors = { "request_origin": "api", # internal, external, api "user_history": "established", # new, established, trusted "channel": "production", # dev, staging, production}
# Stricter controls for external sourcesif source_factors["request_origin"] == "external": apply_enhanced_validation = Truepurpose_factors = { "stated_intent": "billing_inquiry", "inferred_intent": "billing_inquiry", # ML-detected "historical_pattern": "consistent", # Does this match past behavior?}
# Flag mismatched intentsif purpose_factors["stated_intent"] != purpose_factors["inferred_intent"]: flag_for_review = Trueconstraint_factors = { "regulatory": ["GDPR", "SOC2"], # Applicable regulations "organizational": ["no_competitors"], # Company policies "technical": ["rate_limited"], # System limitations}Complete audit trails for every AI decision:
from duragraph.governance import DecisionTrail
# Automatically captured for every interactiontrail = DecisionTrail( decision_id="dec_abc123", timestamp="2024-12-29T10:30:00Z",
# Context at decision time context_snapshot={ "user_id": "user_123", "session_id": "sess_456", "data_classification": "confidential", "risk_score": 0.45, },
# Reasoning chain reasoning_chain=[ {"step": 1, "action": "classify_intent", "result": "billing_inquiry"}, {"step": 2, "action": "evaluate_risk", "result": "medium"}, {"step": 3, "action": "select_policy", "result": "customer_support"}, {"step": 4, "action": "apply_guardrails", "result": "passed"}, ],
# Data sources used data_sources=[ {"type": "user_profile", "id": "profile_123"}, {"type": "knowledge_base", "id": "kb_billing_faq"}, ],
# Policies evaluated policies_applied=["customer_support", "pii_protection"],
# Controls triggered controls_triggered=["audit_log", "pii_redaction"],
# Final outcome outcome={ "action": "respond", "confidence": 0.92, "response_id": "resp_789", },)# Get specific decision trailGET /api/v1/governance/trust/audit/dec_abc123
# Search trails by criteriaGET /api/v1/governance/trust/audit?user_id=user_123&date_from=2024-12-01Response:
{ "decision_id": "dec_abc123", "timestamp": "2024-12-29T10:30:00Z", "context_snapshot": { "user_id": "user_123", "risk_score": 0.45 }, "reasoning_chain": [{ "step": 1, "action": "classify_intent", "result": "billing_inquiry" }], "policies_applied": ["customer_support"], "controls_triggered": ["audit_log"], "outcome": { "action": "respond", "confidence": 0.92 }}Assign trust scores to entities and decisions:
from duragraph.governance import TrustScorer
scorer = TrustScorer()
# Score an entity (user, agent, data source)trust_score = await scorer.score_entity( entity_id="user_123", factors={ "history_length": 365, # Days of history "violation_count": 0, # Past violations "verification_level": "2fa", # Identity verification "behavior_consistency": 0.95, # How consistent is behavior },)# Returns: TrustScore(value=0.87, level="high", factors={...})
# Score a decisiondecision_trust = await scorer.score_decision( decision_id="dec_abc123", factors={ "data_quality": 0.9, # Source data reliability "model_confidence": 0.85, # AI certainty "guardrails_passed": True, # All checks passed "human_verified": False, # Human review status },)GET /api/v1/governance/trust/score/user_123{ "entity_id": "user_123", "trust_score": 0.87, "trust_level": "high", "factors": { "history": 0.95, "verification": 0.9, "behavior": 0.85, "violations": 1.0 }, "recommendations": ["Enable advanced features", "Reduce verification friction"]}Trust framework supports regulatory compliance:
compliance = EUAIActCompliance( risk_classification="high_risk", # Based on use case requirements={ "transparency": True, # Disclose AI usage "human_oversight": True, # Human can intervene "accuracy_monitoring": True, # Track performance "documentation": True, # Maintain records },)compliance = SOC2Compliance( trust_criteria={ "security": ["access_controls", "encryption"], "availability": ["uptime_monitoring", "failover"], "processing_integrity": ["validation", "audit_trails"], "confidentiality": ["classification", "access_logs"], "privacy": ["consent", "data_minimization"], },)Guardrails
Configure behavioral guardrails to enforce boundaries
Governance Overview
Return to governance overview for architecture details