1pub mod hook;
7pub mod runtime;
8
9pub use schemars;
11pub use serde;
12
13pub use hook::{AgentHook, AgentHookContext, AgentHookSnapshot, NoOpAgentHook, TracingAgentHook};
14pub use runtime::{
15 AgentBuilder, AgentEvent, AgentState, AgentStream, BackoffStrategy, BatchExecutionResult,
16 CompactionResult, CompositeCatalog, ContextBudget, ContextCompactor, DefaultFallback,
17 ExecutableTool, FallbackAction, FallbackContext, FallbackStrategy, IntoToolError,
18 IntoToolResult, LocalCompactor, ParallelSafety, ResolvedModel, ResolvedRound, RetryPolicy,
19 StaticCatalog, StopReason, ToolArgs, ToolCachePolicy, ToolCatalog, ToolCategory, ToolError,
20 ToolErrorKind, ToolExecutor, ToolFn, ToolResult, ToolSnapshot, ToolUseConfig, ToolUseDeps,
21 ToolUseLoop, ToolUseResult, estimate_message, estimate_tokens, execute_batch_with,
22};
23
24pub use lellm_core::Prompt;
26
27pub fn create_agent(model: ResolvedModel) -> ToolUseLoop {
47 AgentBuilder::new(model).compile()
48}
49
50pub fn create_agent_with_tools(
52 model: ResolvedModel,
53 tools: impl IntoIterator<Item = ExecutableTool>,
54) -> ToolUseLoop {
55 AgentBuilder::new(model).tools(tools).compile()
56}
57
58pub fn create_agent_with_system(model: ResolvedModel, system: impl Into<Prompt>) -> ToolUseLoop {
60 AgentBuilder::new(model).system(system).compile()
61}
62
63pub fn create_agent_full(
65 model: ResolvedModel,
66 system: impl Into<Prompt>,
67 tools: impl IntoIterator<Item = ExecutableTool>,
68 max_iterations: usize,
69) -> ToolUseLoop {
70 AgentBuilder::new(model)
71 .system(system)
72 .tools(tools)
73 .max_iterations(max_iterations)
74 .compile()
75}