Skip to main content

AgentConfig

Struct AgentConfig 

Source
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: bool

Enable planning phase before execution

§goal_tracking: bool

Enable 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: u32

Max 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: u32

Circuit-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

Source§

fn clone(&self) -> AgentConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AgentConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more