lellm_agent/runtime/
event.rs1#[derive(Debug, Clone)]
10pub enum AgentEvent {
11 Provider(lellm_provider::ProviderEvent),
13 ToolStart { tool_call_id: String, name: String },
15 ToolEnd {
17 tool_call_id: String,
18 result: super::ToolResult,
19 duration: std::time::Duration,
20 },
21 Retry {
23 tool_call_id: String,
24 attempt: usize,
25 max_attempts: usize,
26 reason: String,
27 },
28 ContextCompacted {
30 before_tokens: usize,
31 after_tokens: usize,
32 removed_messages: usize,
33 },
34 LoopEnd { result: super::ToolUseResult },
36 LoopError {
38 error: lellm_core::LlmError,
39 iterations: usize,
40 },
41}
42
43#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
45pub enum StopReason {
46 Complete,
48 MaxIterationsReached,
50 Cancelled,
52 OutputBudgetExceeded,
54 ReasoningBudgetExceeded,
56}
57
58pub type AgentStream = tokio::sync::mpsc::Receiver<AgentEvent>;