pub struct AgentConfig {Show 13 fields
pub system_prompt: Option<String>,
pub tools: Vec<ToolDefinition>,
pub max_tool_rounds: usize,
pub permission_checker: Option<Arc<dyn PermissionChecker>>,
pub confirmation_manager: Option<Arc<dyn ConfirmationProvider>>,
pub context_providers: Vec<Arc<dyn ContextProvider>>,
pub planning_enabled: bool,
pub goal_tracking: bool,
pub hook_engine: Option<Arc<dyn HookExecutor>>,
pub skill_registry: Option<Arc<SkillRegistry>>,
pub max_parse_retries: u32,
pub tool_timeout_ms: Option<u64>,
pub circuit_breaker_threshold: u32,
}Expand description
Agent configuration
Fields§
§system_prompt: Option<String>§tools: Vec<ToolDefinition>§max_tool_rounds: usize§permission_checker: Option<Arc<dyn PermissionChecker>>Optional permission checker for tool execution control
confirmation_manager: Option<Arc<dyn ConfirmationProvider>>Optional confirmation manager for HITL (Human-in-the-Loop)
context_providers: Vec<Arc<dyn ContextProvider>>Context providers for augmenting prompts with external context
planning_enabled: boolEnable planning phase before execution
goal_tracking: boolEnable goal tracking
hook_engine: Option<Arc<dyn HookExecutor>>Optional hook engine for firing lifecycle events (PreToolUse, PostToolUse, etc.)
skill_registry: Option<Arc<SkillRegistry>>Optional skill registry for tool permission enforcement
max_parse_retries: u32Max consecutive malformed-tool-args errors before aborting (default: 2).
When the LLM returns tool arguments with __parse_error, the error is
fed back as a tool result. After this many consecutive parse errors the
loop bails instead of retrying indefinitely.
tool_timeout_ms: Option<u64>Per-tool execution timeout in milliseconds (None = no timeout).
When set, each tool execution is wrapped in tokio::time::timeout.
A timeout produces an error result sent back to the LLM rather than
crashing the session.
circuit_breaker_threshold: u32Circuit-breaker threshold: max consecutive LLM API failures before aborting (default: 3).
In non-streaming mode, transient LLM failures are retried up to this many times (with short exponential backoff) before the loop bails. In streaming mode, any failure is fatal (events cannot be replayed).
Trait Implementations§
Source§impl Clone for AgentConfig
impl Clone for AgentConfig
Source§fn clone(&self) -> AgentConfig
fn clone(&self) -> AgentConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more