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