Skip to main content

AgentConfig

Struct AgentConfig 

Source
pub struct AgentConfig {
Show 13 fields pub system_prompt: Option<String>, pub system_prompt_file: Option<PathBuf>, pub tool_instructions: Option<String>, pub model: String, pub max_tokens_per_turn: u32, pub temperature: Option<f32>, pub budget_warning_threshold: f32, pub max_turns: Option<u32>, pub provider_params: Option<Value>, pub provider_tool_defaults: Option<Value>, pub output_schema: Option<OutputSchema>, pub structured_output_retries: u32, pub extraction_prompt: Option<String>,
}
Expand description

Agent behavior configuration

Fields§

§system_prompt: Option<String>

System prompt to prepend

§system_prompt_file: Option<PathBuf>

Path to system prompt file (alternative to inline system_prompt)

§tool_instructions: Option<String>

Optional tool usage instructions appended to system prompt

§model: String

Model identifier (provider-specific)

§max_tokens_per_turn: u32

Maximum tokens to generate per turn

§temperature: Option<f32>

Temperature for sampling

§budget_warning_threshold: f32

Warning threshold for budget (0.0-1.0)

§max_turns: Option<u32>

Maximum turns before forced stop

§provider_params: Option<Value>

Provider-specific parameters (e.g., thinking config, reasoning effort)

This is a generic JSON bag that providers can extract provider-specific options from. Each provider implementation is responsible for reading and applying relevant parameters.

§provider_tool_defaults: Option<Value>

Provider-native tool defaults resolved at factory build time.

Intentionally non-persisted (#[serde(skip)]): re-derived on every build (including resume) from Config.provider_tools + ModelProfile.supports_web_search. This means config changes (e.g., disabling web search) take effect immediately on resumed sessions without requiring session recreation. Explicit per-request overrides live in provider_params which IS persisted.

Merged with provider_params per-turn via RFC 7396 merge-patch.

§output_schema: Option<OutputSchema>

Output schema for structured output extraction.

When set, the agent will perform an extraction turn after completing the agentic work, forcing the LLM to output validated JSON. The final response text becomes the schema-only JSON string.

§structured_output_retries: u32

Maximum retries for structured output validation failures.

§extraction_prompt: Option<String>

Custom prompt for the structured output extraction turn.

When output_schema is set, this prompt is sent as a user message after the agentic loop to elicit schema-valid JSON. Defaults to a built-in prompt if None.

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
Source§

impl<'de> Deserialize<'de> for AgentConfig

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for AgentConfig

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,