Skip to main content
Define safety policies to control agent behavior and protect against harmful outputs.

Quick Start

1

Define Policies

import { GuardrailPolicy, resolveGuardrailPolicies } from 'praisonai';

const policies: GuardrailPolicy[] = [
  {
    name: 'no-pii',
    action: 'block',
    message: 'PII detected in output'
  },
  {
    name: 'content-filter',
    action: 'warn',
    message: 'Potentially sensitive content'
  }
];
2

Use Preset Policies

import { resolveGuardrailPolicies, GUARDRAIL_PRESETS } from 'praisonai';

// Use preset by name
const resolved = resolveGuardrailPolicies(['strict', 'no-pii']);

Policy Actions

ActionBehavior
blockStop execution and return error
warnLog warning and continue
logLog event and continue silently
allowAllow without any action

GuardrailPolicy Interface

interface GuardrailPolicy {
  name: string;                    // Policy name
  action: 'block' | 'warn' | 'log' | 'allow';
  conditions?: Record<string, any>; // Optional conditions
  message?: string;                // Message to show/log
}

Preset Policies

Use built-in presets for common scenarios:
import { GUARDRAIL_PRESETS, resolveGuardrailPolicies } from 'praisonai';

// Available presets
GUARDRAIL_PRESETS.strict      // Block harmful content
GUARDRAIL_PRESETS.moderate    // Warn on sensitive content
GUARDRAIL_PRESETS.permissive  // Log only, allow all
GUARDRAIL_PRESETS['no-pii']   // Block PII
GUARDRAIL_PRESETS['no-code']  // Block code execution

// Resolve by name
const policies = resolveGuardrailPolicies(['strict', 'no-pii']);

Preset Definitions

PresetActionDescription
strictblockBlock all harmful content
moderatewarnWarn on sensitive content
permissivelogLog everything, block nothing
no-piiblockBlock personal information
no-codeblockBlock code execution

Resolve Policies

Convert string presets and policy objects:
import { resolveGuardrailPolicies, GuardrailPolicy } from 'praisonai';

// Mix of presets and custom policies
const policies = resolveGuardrailPolicies([
  'strict',                           // Preset name
  'no-pii',                           // Preset name
  {                                   // Custom policy
    name: 'custom-filter',
    action: 'warn',
    message: 'Custom warning'
  }
]);

// Returns array of GuardrailPolicy objects
console.log(policies);

Common Patterns

import { resolveGuardrailPolicies, GuardrailPolicy } from 'praisonai';

const moderationPolicies: GuardrailPolicy[] = [
  {
    name: 'profanity-filter',
    action: 'block',
    message: 'Profanity detected'
  },
  {
    name: 'hate-speech',
    action: 'block',
    message: 'Hate speech detected'
  },
  {
    name: 'spam-detection',
    action: 'warn',
    message: 'Potential spam detected'
  }
];

const resolved = resolveGuardrailPolicies(moderationPolicies);

Best Practices

Always use strict and no-pii policies in production environments.
Use warn during development to understand what would be blocked.
Include descriptive messages to help users understand why content was blocked.
Combine multiple policies for comprehensive protection.