Skip to main content
Approval mode requires human confirmation before agents execute sensitive operations.

Quick Start

1

Configure Approval with AutonomyConfig

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

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

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


AutonomyConfig

Configuration for agent autonomy and approval behavior.
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_toolsVec<String>[]Tools allowed autonomously
blocked_toolsVec<String>[]Tools never run autonomously

Best Practices

Enable approval for delete, write, and modify operations.
Don’t require approval for search, read, or analyze.