pub struct AgentConfig {Show 22 fields
pub prompt_slots: SystemPromptSlots,
pub tools: Vec<ToolDefinition>,
pub max_tool_rounds: usize,
pub security_provider: Option<Arc<dyn SecurityProvider>>,
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,
pub auto_compact: bool,
pub auto_compact_threshold: f32,
pub max_context_tokens: usize,
pub llm_client: Option<Arc<dyn LlmClient>>,
pub memory: Option<Arc<AgentMemory>>,
pub continuation_enabled: bool,
pub max_continuation_turns: u32,
pub tool_index: Option<ToolIndex>,
}Expand description
Agent configuration
Fields§
§prompt_slots: SystemPromptSlotsSlot-based system prompt customization.
Users can customize specific parts (role, guidelines, response style, extra) without overriding the core agentic capabilities. The default agentic core (tool usage, autonomous behavior, completion criteria) is always preserved.
tools: Vec<ToolDefinition>§max_tool_rounds: usize§security_provider: Option<Arc<dyn SecurityProvider>>Optional security provider for input taint tracking and output sanitization
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).
auto_compact: boolEnable auto-compaction when context usage exceeds threshold.
auto_compact_threshold: f32Context usage percentage threshold to trigger auto-compaction (0.0 - 1.0). Default: 0.80 (80%).
max_context_tokens: usizeMaximum context window size in tokens (used for auto-compact calculation). Default: 200_000.
llm_client: Option<Arc<dyn LlmClient>>LLM client reference for auto-compaction (needs to call LLM for summarization).
memory: Option<Arc<AgentMemory>>Optional agent memory for auto-remember after tool execution and recall before prompts.
continuation_enabled: boolInject a continuation message when the LLM stops calling tools before the
task is complete. Enabled by default. Set to false to disable.
When enabled, if the LLM produces a response with no tool calls but the
response text looks like an intermediate step (not a final answer), the
loop injects [crate::prompts::CONTINUATION] as a user message and
continues for up to max_continuation_turns additional turns.
max_continuation_turns: u32Maximum number of continuation injections per execution (default: 3).
Prevents infinite loops when the LLM repeatedly stops without completing.
tool_index: Option<ToolIndex>Optional tool search index for filtering tools per-turn.
When set, only tools matching the user prompt are sent to the LLM, reducing context usage when many MCP tools are registered.
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