pub mod runtime;
pub use schemars;
pub use serde;
pub use runtime::{
AgentBuilder, AgentEvent, AgentStream, BackoffStrategy, BatchExecutionResult, CompactionResult,
CompositeCatalog, ContextBudget, ContextCompactor, DefaultFallback, FallbackAction,
FallbackContext, FallbackStrategy, IntoToolError, IntoToolResult, LocalCompactor,
ParallelSafety, ResolvedModel, ResolvedRound, RetryPolicy, StaticCatalog, StopReason, ToolArgs,
ToolCatalog, ToolCategory, ToolError, ToolErrorKind, ToolExecutor, ToolRegistration,
ToolResult, ToolSnapshot, ToolUseConfig, ToolUseDeps, ToolUseLoop, ToolUseResult,
estimate_message, estimate_tokens, execute_batch_with,
};
#[cfg(feature = "v02-preview")]
pub use runtime::{LoopDetector, LoopIntervention, NegativeSignal, SignalVoter};
pub fn create_agent(model: ResolvedModel) -> ToolUseLoop {
AgentBuilder::new(model).build()
}
pub fn create_agent_with_tools(
model: ResolvedModel,
tools: impl IntoIterator<Item = ToolRegistration>,
) -> ToolUseLoop {
AgentBuilder::new(model).tools(tools).build()
}
pub fn create_agent_with_system(model: ResolvedModel, system_prompt: String) -> ToolUseLoop {
AgentBuilder::new(model)
.system_prompt(system_prompt)
.build()
}
pub fn create_agent_full(
model: ResolvedModel,
system_prompt: String,
tools: impl IntoIterator<Item = ToolRegistration>,
max_iterations: usize,
) -> ToolUseLoop {
AgentBuilder::new(model)
.system_prompt(system_prompt)
.tools(tools)
.max_iterations(max_iterations)
.build()
}