hooks • Rust AI Agent SDK
Hooks Module for PraisonAI Rust SDK.
hooks
Rust AI Agent SDK
Hooks Module for PraisonAI Rust SDK.
Provides a powerful hook system for intercepting and modifying agent behavior at various lifecycle points. Unlike callbacks (which are for UI events), hooks can intercept, modify, or block tool execution.
Features
- Event-based hook system (BeforeTool, AfterTool, BeforeAgent, etc.)
- Function hooks for in-process customization
- Matcher patterns for selective hook execution
- Decision outcomes (allow, deny, block)
Usage
use praisonai::hooks::{HookRegistry, HookEvent, HookResult};
let mut registry = HookRegistry::new();
registry.add_hook(HookEvent::BeforeTool, |input| {
if input.tool_name == Some("dangerous_tool".to_string()) {
return HookResult::deny("Tool blocked by policy");
}
HookResult::allow()
});
let agent = Agent::new()
.hooks(registry)
.build()?;Import
use praisonai::hooks::*;Classes
HookInput
Input data for hooks
HookResultResult from a hook execution
HookDefinitionHook definition
HookRegistryHook registry for managing hooks
HookRunnerHook runner for executing hooks in a workflow
HookEventEvent names for the hook system
HookDecisionDecision types for hook outputs