Skip to main content

RunConfig

Struct RunConfig 

Source
pub struct RunConfig {
    pub streaming_mode: StreamingMode,
    pub tool_confirmation_decisions: HashMap<String, ToolConfirmationDecision>,
    pub cached_content: Option<String>,
    pub transfer_targets: Vec<String>,
    pub parent_agent: Option<String>,
    pub auto_cache: bool,
    pub history_max_events: Option<usize>,
    pub tool_concurrency: ToolConcurrencyConfig,
    pub record_payloads: bool,
    pub trace_payload_max_bytes: usize,
    pub max_transfer_depth: Option<u32>,
}
Expand description

Core traits and types.

Always available regardless of feature flags. Includes:

  • Agent - The fundamental trait for all agents
  • Tool / Toolset - For extending agents with capabilities
  • Session / State - For managing conversation context
  • Event - For streaming agent responses
  • AdkError / Result - Unified error handling Configuration for a single agent run.

Controls streaming behavior, tool confirmation, caching, transfer targets, and concurrency settings. Use RunConfig::builder() to construct from

Fields§

§streaming_mode: StreamingMode

The streaming mode for agent responses.

§tool_confirmation_decisions: HashMap<String, ToolConfirmationDecision>

Optional per-tool confirmation decisions for the current run. Keys are tool names.

§cached_content: Option<String>

Optional cached content name for automatic prompt caching. When set by the runner’s cache lifecycle manager, agents should attach this name to their GenerateContentConfig so the LLM provider can reuse cached system instructions and tool definitions.

§transfer_targets: Vec<String>

Valid agent names this agent can transfer to (parent, peers, children). Set by the runner when invoking agents in a multi-agent tree. When non-empty, the transfer_to_agent tool is injected and validation uses this list instead of only checking sub_agents.

§parent_agent: Option<String>

The name of the parent agent, if this agent was invoked via transfer. Used by the agent to apply disallow_transfer_to_parent filtering.

§auto_cache: bool

Enable automatic prompt caching for all providers that support it.

When true (the default), the runner enables provider-level caching:

  • Anthropic: sets prompt_caching = true on the config
  • Bedrock: sets prompt_caching = Some(BedrockCacheConfig::default())
  • OpenAI / DeepSeek: no action needed (caching is automatic)
  • Gemini: handled separately via ContextCacheConfig
§history_max_events: Option<usize>

Maximum number of recent persisted events to load at the start of a run.

None preserves the previous behavior and loads the full session history. Set this for chat surfaces that already summarize older turns and need predictable startup latency.

§tool_concurrency: ToolConcurrencyConfig

Tool concurrency configuration controlling parallel tool dispatch limits, per-tool overrides, and backpressure behavior.

The default (ToolConcurrencyConfig::default()) imposes no limits, preserving backward compatibility with the previous max_tool_concurrency: None.

§record_payloads: bool

Whether tracing spans may include full request, response, and tool payloads when the record-payloads crate feature is enabled.

§trace_payload_max_bytes: usize

Maximum serialized bytes recorded for tracing payload fields when full payload recording is disabled.

§max_transfer_depth: Option<u32>

Maximum number of agent-to-agent transfers allowed in a single run.

Prevents infinite transfer loops when agents transfer back and forth. Defaults to 10 when None.

Implementations§

Source§

impl RunConfig

Source

pub fn builder() -> RunConfigBuilder

Creates a new RunConfigBuilder initialized with default values.

Use the builder to construct a RunConfig when struct literal syntax

§Example
use adk_core::{RunConfig, StreamingMode};

let config = RunConfig::builder()
    .streaming_mode(StreamingMode::None)
    .auto_cache(false)
    .build();

assert_eq!(config.streaming_mode, StreamingMode::None);
assert!(!config.auto_cache);

Trait Implementations§

Source§

impl Clone for RunConfig

Source§

fn clone(&self) -> RunConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for RunConfig

Source§

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

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

impl Default for RunConfig

Source§

fn default() -> RunConfig

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + 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: Sized + 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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