Events
React to agent lifecycle events via streaming
Events notify you when important things happen during agent execution. Use the StreamEvent system to track agent progress.
Quick Start
- Create and Handle Events
rust use praisonai::{StreamEvent, StreamEventType}; fn handle_event(event: &StreamEvent) { match event.event_type { StreamEventType::RequestStart => println!("๐ Starting..."), StreamEventType::FirstToken => println!("๐ฌ First response"), StreamEventType::DeltaText => { if let Some(content) = &event.content { print!("{}", content); } } StreamEventType::DeltaToolCall => println!("๐ง Tool call"), StreamEventType::ToolCallEnd => println!("โ Tool done"), StreamEventType::StreamEnd => println!("\n๐ Complete"), StreamEventType::Error => { if let Some(err) = &event.error { eprintln!("โ Error: {}", err); } } _ => {} } } - Create Events
rust use praisonai::StreamEvent; // Factory methods for common events let start = StreamEvent::request_start(); let text = StreamEvent::delta_text("Hello, world!"); let end = StreamEvent::stream_end(); let error = StreamEvent::error_event("Something went wrong");
StreamEventType
| Event | When |
|---|---|
RequestStart | Before API call |
HeadersReceived | HTTP headers arrive |
FirstToken | First content received |
DeltaText | Text content chunk |
DeltaToolCall | Tool call in progress |
ToolCallEnd | Tool finished executing |
LastToken | Final content chunk |
StreamEnd | Stream completed |
Error | Error occurred |
StreamEvent Structure
pub struct StreamEvent {
pub event_type: StreamEventType,
pub content: Option<String>,
pub tool_call: Option<ToolCallData>,
pub error: Option<String>,
pub timestamp: DateTime<Utc>,
pub is_reasoning: bool,
pub agent_id: Option<String>,
pub session_id: Option<String>,
}