Approval

Require human approval before sensitive actions

Approval mode requires human confirmation before agents execute sensitive operations.

Diagram

Approval Flow

Approve

Deny

🤖 Agent

❓ Request

👤 Human

✅ Execute

🛑 Stop

Quick Start

  1. Configure Approval with AutonomyConfig
    rust
    use praisonai::AutonomyConfig;
    
    // Create config that requires approval (default)
    let config = AutonomyConfig::new();
    // require_approval is true by default
    
    // Or disable approval
    let no_approval = AutonomyConfig::new()
        .no_approval();
    
    println!("Approval required: {}", config.require_approval);  // true
    println!("Approval required: {}", no_approval.require_approval);  // false
  2. Block Dangerous Tools
    rust
    use praisonai::AutonomyConfig;
    
    let config = AutonomyConfig::new()
        .block_tool("delete_file")
        .block_tool("rm_directory")
        .max_actions(10);  // Pause after 10 autonomous actions
  3. Allow Specific Tools
    rust
    use praisonai::{AutonomyConfig, AutonomyLevel};
    
    let config = AutonomyConfig::new()
        .level(AutonomyLevel::Limited)
        .allow_tool("read_file")
        .allow_tool("search")
        .allow_tool("list_dir");

How It Works

Diagram
ToolAutonomyConfigAgentUserToolAutonomyConfigAgentUseralt[User approves][User denies]“Delete old files”Check require_approvaltrue“May I delete these files?”Yesdelete_files()Done“Files deleted”No“Action cancelled”

AutonomyConfig

Configuration for agent autonomy and approval behavior.

rust
pub struct AutonomyConfig {
    pub level: AutonomyLevel,
    pub require_approval: bool,
    pub max_actions: Option<usize>,
    pub allowed_tools: Vec<String>,
    pub blocked_tools: Vec<String>,
}

Methods

MethodDescription
new()Create with defaults (approval required)
level(AutonomyLevel)Set autonomy level
no_approval()Disable approval requirement
max_actions(usize)Set max actions before pause
allow_tool(name)Add tool to allowed list
block_tool(name)Add tool to blocked list

Configuration Options

OptionTypeDefaultDescription
require_approvalbooltrueRequire approval for actions
levelAutonomyLevelDefaultAutonomy level
max_actionsOption<usize>NoneMax actions before pause
allowed_tools`Vec

| [] | Tools allowed autonomously | | blocked_tools | Vec

| []` | Tools never run autonomously |


Best Practices

Use for destructive operations

Enable approval for delete, write, and modify operations.

Skip for read-only operations

Don’t require approval for search, read, or analyze.


Related