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, AgentFlowNode, AgentStream, BackoffStrategy, BatchExecutionResult,
16 CompactionResult, CompositeCatalog, ContextBudget, ContextCompactor, DefaultFallback,
17 FallbackAction, FallbackContext, FallbackStrategy, IntoToolError, IntoToolResult,
18 LocalCompactor, ParallelSafety, ResolvedModel, ResolvedRound, RetryPolicy, StaticCatalog,
19 StopReason, ToolArgs, ToolCatalog, ToolCategory, ToolError, ToolErrorKind, ToolExecutor,
20 ToolRegistration, ToolResult, ToolSnapshot, ToolUseConfig, ToolUseDeps, ToolUseLoop,
21 ToolUseResult, estimate_message, estimate_tokens, execute_batch_with,
22};
23
24pub fn create_agent(model: ResolvedModel) -> ToolUseLoop {
44 AgentBuilder::new(model).build()
45}
46
47pub fn create_agent_with_tools(
49 model: ResolvedModel,
50 tools: impl IntoIterator<Item = ToolRegistration>,
51) -> ToolUseLoop {
52 AgentBuilder::new(model).tools(tools).build()
53}
54
55pub fn create_agent_with_system(model: ResolvedModel, system_prompt: String) -> ToolUseLoop {
57 AgentBuilder::new(model)
58 .system_prompt(system_prompt)
59 .build()
60}
61
62pub fn create_agent_full(
64 model: ResolvedModel,
65 system_prompt: String,
66 tools: impl IntoIterator<Item = ToolRegistration>,
67 max_iterations: usize,
68) -> ToolUseLoop {
69 AgentBuilder::new(model)
70 .system_prompt(system_prompt)
71 .tools(tools)
72 .max_iterations(max_iterations)
73 .build()
74}