Skip to main content

StandardDefinition

Struct StandardDefinition 

Source
pub struct StandardDefinition {
Show 30 fields pub name: String, pub description: String, pub version: Option<String>, pub instructions: String, pub mcp_servers: Option<Vec<McpDefinition>>, pub model_settings: Option<ModelSettings>, pub analysis_model_settings: Option<ModelSettings>, pub history_size: Option<usize>, pub strategy: Option<AgentStrategy>, pub icon_url: Option<String>, pub max_iterations: Option<usize>, pub skills_description: Vec<AgentSkill>, pub available_skills: Vec<AvailableSkill>, pub sub_agents: Vec<String>, pub tool_format: ToolCallFormat, pub tool_delivery_mode: ToolDeliveryMode, pub tools: Option<ToolsConfig>, pub partials: HashMap<String, String>, pub reflection: Option<ReflectionConfig>, pub enable_todos: Option<bool>, pub browser_config: Option<BrowserAgentConfig>, pub include_shell: Option<bool>, pub context_size: Option<u32>, pub append_default_instructions: Option<bool>, pub include_scratchpad: Option<bool>, pub hooks: Vec<String>, pub user_message_overrides: Option<UserMessageOverrides>, pub compaction_enabled: bool, pub remote: bool, pub runtime: Vec<RuntimeMode>,
}
Expand description

Agent definition - complete configuration for an agent

Fields§

§name: String

The name of the agent.

§description: String

A brief description of the agent’s purpose.

§version: Option<String>

The version of the agent.

§instructions: String

Instructions for the agent - serves as an introduction defining what the agent is and does.

§mcp_servers: Option<Vec<McpDefinition>>

A list of MCP server definitions associated with the agent.

§model_settings: Option<ModelSettings>

Settings related to the model used by the agent. When None, the agent inherits model settings from the orchestrator context defaults.

§analysis_model_settings: Option<ModelSettings>

Optional lower-level model settings for lightweight analysis helpers

§history_size: Option<usize>

The size of the history to maintain for the agent.

§strategy: Option<AgentStrategy>

The new strategy configuration for the agent.

§icon_url: Option<String>

A2A-specific fields

§max_iterations: Option<usize>§skills_description: Vec<AgentSkill>

A2A agent card skills metadata (describes capabilities for agent-to-agent protocol)

§available_skills: Vec<AvailableSkill>

Skills available for on-demand loading by this agent

§sub_agents: Vec<String>

List of sub-agents that this agent can transfer control to

§tool_format: ToolCallFormat

Tool calling configuration

§tool_delivery_mode: ToolDeliveryMode

How tools are delivered to the LLM (all upfront vs on-demand search)

§tools: Option<ToolsConfig>

Tools configuration for this agent

§partials: HashMap<String, String>

Custom handlebars partials (name -> template path) for use in custom prompts

§reflection: Option<ReflectionConfig>

Reflection configuration for post-execution analysis using a subagent

§enable_todos: Option<bool>

Whether to enable TODO management functionality

§browser_config: Option<BrowserAgentConfig>

Browser configuration for this agent (enables shared Chromium automation)

§include_shell: Option<bool>

Whether to include shell/code execution tools (start_shell, execute_shell, stop_shell)

§context_size: Option<u32>

Context size override for this agent (overrides model_settings.context_size)

§append_default_instructions: Option<bool>

Strategy for prompt construction (append default template vs fully custom)

§include_scratchpad: Option<bool>

Whether to include the built-in scratchpad/history in prompts (default: true)

§hooks: Vec<String>

Optional hook names to attach to this agent

§user_message_overrides: Option<UserMessageOverrides>

Custom user message construction (dynamic prompting)

§compaction_enabled: bool

Whether context compaction is enabled for this agent (default: true)

§remote: bool

DEPRECATED: prefer runtime = ["cli"] instead.

When true, this is treated as runtime = [Cli] — the agent needs a CLI-style local environment (filesystem, shell exec). In a Cloud runtime the orchestrator forks the call into a sandbox via BackgroundRunner. Kept for backwards compatibility with existing agent definitions and the --remote CLI flag / DefinitionOverrides.remote.

§runtime: Vec<RuntimeMode>

Runtime constraint for this agent. Like Docker’s platforms field:

  • empty / omitted → runs in any runtime (default).
  • ["cli"] → only runs when ExecutorContext.runtime_mode == Cli, OR via a BackgroundRunner providing Cli (e.g. SandboxLauncher spawning distri-cli inside a browsr container).
  • ["cli", "cloud"] → runs in either Cli or Cloud, but not Browser.

When the current runtime doesn’t match any allowed value and no compatible runner exists, the orchestrator fails fast at request entry.

Accepts both scalar (runtime = "cli") and array (runtime = ["cli"]) syntax in TOML/JSON for ergonomics.

Implementations§

Source§

impl StandardDefinition

Source

pub fn allowed_runtimes(&self) -> Vec<RuntimeMode>

The set of runtimes this agent is allowed to run in, with the deprecated remote: true flag merged in (treated as [Cli] when runtime is empty).

Empty result = no constraint = runs anywhere.

Source

pub fn is_runnable_in( &self, current: &RuntimeMode, runner_provides: Option<&RuntimeMode>, ) -> bool

Whether this agent can execute given the caller’s current runtime, optionally with a BackgroundRunner providing an alternative runtime via remote dispatch.

Returns true when:

  • the agent has no runtime constraint, OR
  • the current runtime matches one of the allowed runtimes, OR
  • a runner is available whose provided_runtime matches one of the allowed runtimes.
Source

pub fn should_use_browser(&self) -> bool

Check if browser should be initialized automatically in orchestrator (default: false)

Source

pub fn browser_settings(&self) -> Option<&BrowserAgentConfig>

Returns browser config if defined

Source

pub fn browser_runtime_config(&self) -> Option<BrowsrClientConfig>

Returns the runtime Chromium driver configuration if enabled

Source

pub fn should_persist_browser_session(&self) -> bool

Should browser session state be serialized after tool runs

Source

pub fn is_reflection_enabled(&self) -> bool

Check if reflection is enabled (default: false)

Source

pub fn reflection_config(&self) -> Option<&ReflectionConfig>

Get the reflection configuration, if any

Source

pub fn is_todos_enabled(&self) -> bool

Check if TODO management functionality is enabled (default: false)

Source

pub fn should_include_shell(&self) -> bool

Check if shell/code execution tools should be included (default: false)

Source

pub fn model_settings(&self) -> Option<&ModelSettings>

Get model settings if configured.

Source

pub fn model_settings_mut(&mut self) -> Option<&mut ModelSettings>

Get a mutable reference to model settings, if present.

Source

pub fn get_effective_context_size(&self) -> u32

Get the effective context size (agent-level override or model settings)

Source

pub fn analysis_model_settings_config(&self) -> Option<&ModelSettings>

Model settings to use for lightweight browser analysis helpers (e.g., observe_summary commands)

Source

pub fn include_scratchpad(&self) -> bool

Whether to include the persistent scratchpad/history in prompts

Source

pub fn apply_overrides(&mut self, overrides: DefinitionOverrides)

Apply definition overrides to this agent definition

Source§

impl StandardDefinition

Source

pub fn validate(&self) -> Result<()>

Source

pub fn validate_reflection_agent(agent_def: &StandardDefinition) -> Result<()>

Validate that a reflection agent definition has the “reflect” tool configured. This is called at registration time when we have access to the full agent config.

Trait Implementations§

Source§

impl Clone for StandardDefinition

Source§

fn clone(&self) -> StandardDefinition

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 StandardDefinition

Source§

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

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

impl Default for StandardDefinition

Source§

fn default() -> StandardDefinition

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

impl<'de> Deserialize<'de> for StandardDefinition

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 From<StandardDefinition> for LlmDefinition

Source§

fn from(definition: StandardDefinition) -> Self

Converts to this type from the input type.
Source§

impl JsonSchema for StandardDefinition

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl Serialize for StandardDefinition

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

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