Struct RuntimeProfileConfig
pub struct RuntimeProfileConfig {Show 32 fields
pub agentic: bool,
pub max_tool_iterations: usize,
pub max_execution_tree_iterations: Option<usize>,
pub max_actions_per_hour: u32,
pub max_cost_per_day_cents: u32,
pub shell_timeout_secs: u64,
pub max_delegation_depth: u32,
pub delegation_timeout_secs: Option<u64>,
pub agentic_timeout_secs: Option<u64>,
pub max_history_messages: Option<usize>,
pub max_context_tokens: Option<usize>,
pub context_compact_ratio: Option<f64>,
pub compact_context: Option<bool>,
pub parallel_tools: Option<bool>,
pub single_tool_rounds: Option<bool>,
pub tool_dispatcher: Option<String>,
pub tool_call_dedup_exempt: Vec<String>,
pub deferred_builtin_tools: bool,
pub max_system_prompt_chars: Option<usize>,
pub max_tool_result_chars: Option<usize>,
pub keep_tool_context_turns: Option<usize>,
pub memory_recall_limit: Option<usize>,
pub prompt_injection_mode: Option<SkillsPromptInjectionMode>,
pub strict_tool_parsing: bool,
pub thinking: ThinkingConfig,
pub history_pruning: HistoryPrunerConfig,
pub eval: EvalConfig,
pub auto_classify: Option<AutoClassifyConfig>,
pub effort_routing: Option<EffortRoutingConfig>,
pub context_compression: ContextCompressionConfig,
pub tool_receipts: ToolReceiptsConfig,
pub tool_filter_groups: Vec<ToolFilterGroup>,
}Expand description
Named runtime/LLM execution profile ([runtime_profiles.<alias>]).
Reusable operational tuning: agentic mode, iteration caps, context
budget, parallel dispatch, resource ceilings, recursion depth, and
the budget knobs that SecurityPolicy enforces with subagent
parent-subset discipline. Anything authorization-shaped (allowed
commands/tools/paths, approval gates, sandbox) lives on
[risk_profiles.<alias>]. Anything model-provider shaped (model,
temperature, max_tokens, timeout_secs) lives on
[providers.models.<type>.<alias>].
Fields§
§agentic: boolEnable agentic (multi-turn tool-call loop) mode.
max_tool_iterations: usizeMaximum tool-call iterations in agentic mode. 0 inherits the global default.
max_execution_tree_iterations: Option<usize>Maximum aggregate loop iterations for one execution tree. Omitted disables it.
max_actions_per_hour: u32Maximum actions allowed per hour. 0 is a hard zero budget — the
per-sender rate tracker treats a max of 0 as always exhausted
(PerSenderTracker::is_exhausted), blocking every action. For an
effectively-unlimited budget use a high value (e.g. u32::MAX), not 0.
SecurityPolicy::ensure_no_escalation_beyond rejects subagents
that try to raise this above the parent’s value.
max_cost_per_day_cents: u32Maximum cost per day in cents. 0 inherits the global limit.
Parent-subset enforced for subagents.
shell_timeout_secs: u64Shell subprocess timeout in seconds. 0 inherits the global timeout.
Parent-subset enforced for subagents.
max_delegation_depth: u32Maximum delegation recursion depth. 0 inherits the default.
delegation_timeout_secs: Option<u64>Delegate call timeout in seconds. None inherits global delegate timeout.
agentic_timeout_secs: Option<u64>Agentic delegate run timeout in seconds. None inherits global.
max_history_messages: Option<usize>History retention limit per session. Structured Agent and legacy loop
sessions count complete turns; channel caches count message rows. None
inherits the default of 50.
max_context_tokens: Option<usize>Maximum estimated tokens before proactive history trimming. None
preserves the legacy 32,000-token default when context_compact_ratio
is unset. In ratio mode this remains an optional downward cap. Every
positive effective value is capped by the selected model capacity. 0
disables proactive token-budget trimming.
context_compact_ratio: Option<f64>Opt-in fraction of the selected model’s context window at which
proactive history trimming triggers (e.g. 0.9 = trim at 90%). None
preserves the legacy absolute-budget behavior. Values outside (0, 1]
are treated as unset.
compact_context: Option<bool>Use compact bootstrap (6000 chars / 2 RAG chunks). None inherits.
parallel_tools: Option<bool>Enable parallel tool execution per iteration. None inherits.
single_tool_rounds: Option<bool>Request one native tool call per provider response when supported. Default off.
tool_dispatcher: Option<String>Tool dispatch strategy (e.g. "auto"). None inherits.
tool_call_dedup_exempt: Vec<String>Tools exempt from within-turn dedup check.
deferred_builtin_tools: boolExpose only basic workspace and memory tool schemas eagerly, with other
admitted built-ins discoverable through tool_search. Default false
preserves eager exposure. This never changes tool permissions; if
tool_search is not admitted, built-in schemas remain eager.
max_system_prompt_chars: Option<usize>Maximum characters for the assembled system prompt. None inherits.
max_tool_result_chars: Option<usize>Maximum characters for a single tool result. None inherits.
keep_tool_context_turns: Option<usize>Number of recent turns whose full tool context is preserved. None inherits.
memory_recall_limit: Option<usize>Maximum memory entries injected per turn. None inherits global default (5).
Set to 0 for unlimited.
prompt_injection_mode: Option<SkillsPromptInjectionMode>How skills are injected into the system prompt for agents on this
profile. None inherits the global [skills] prompt_injection_mode;
compact inlines only compact skill metadata and registers the
read_skill tool, while full inlines full skill instructions. Resolved
through Config::effective_skills_prompt_mode, the single point both
the system-prompt builder and the read_skill tool-registration gate
consult so they always agree on the effective mode.
strict_tool_parsing: bool§thinking: ThinkingConfig§history_pruning: HistoryPrunerConfig§eval: EvalConfig§auto_classify: Option<AutoClassifyConfig>§effort_routing: Option<EffortRoutingConfig>§context_compression: ContextCompressionConfig§tool_receipts: ToolReceiptsConfig§tool_filter_groups: Vec<ToolFilterGroup>Implementations§
Source§impl RuntimeProfileConfig
impl RuntimeProfileConfig
Sourcepub fn configurable_prefix() -> &'static str
pub fn configurable_prefix() -> &'static str
Returns the #[prefix] value for this Configurable struct.
Sourcepub fn init_requires_explicit_config() -> bool
pub fn init_requires_explicit_config() -> bool
True when this struct has a required leaf field that a
bare/ancestor-prefix init_defaults scaffold must not
materialize (it would fill the field with its Rust
Default, which prune_empty_leaves then strips on save,
leaving a partial sub-table that fails strict reload).
Explicitly targeting this section (or a descendant of it)
still scaffolds regardless of this flag, so the section can
be materialized for the operator to fill in.
Sourcepub fn secret_fields(&self) -> Vec<SecretFieldInfo>
pub fn secret_fields(&self) -> Vec<SecretFieldInfo>
Returns metadata about all #[secret] fields on this struct and nested children.
pub fn secret_field_terminals() -> Vec<&'static str>
Sourcepub fn encrypt_secrets(&mut self, store: &SecretStore) -> Result<()>
pub fn encrypt_secrets(&mut self, store: &SecretStore) -> Result<()>
Encrypt all secret fields in place using the provided store.
Sourcepub fn decrypt_secrets(&mut self, store: &SecretStore) -> Result<()>
pub fn decrypt_secrets(&mut self, store: &SecretStore) -> Result<()>
Decrypt all secret fields in place using the provided store.
Sourcepub fn set_secret(&mut self, name: &str, value: String) -> Result<()>
pub fn set_secret(&mut self, name: &str, value: String) -> Result<()>
Set a secret field by its full dotted name, dispatching to nested children.
Sourcepub fn prop_fields(&self) -> Vec<PropFieldInfo>
pub fn prop_fields(&self) -> Vec<PropFieldInfo>
Returns metadata about all property fields on this struct and nested children.
Sourcepub fn get_prop(&self, name: &str) -> Result<String>
pub fn get_prop(&self, name: &str) -> Result<String>
Get a property value by its full dotted name, returning it as a display string.
Sourcepub fn set_prop(&mut self, name: &str, value_str: &str) -> Result<()>
pub fn set_prop(&mut self, name: &str, value_str: &str) -> Result<()>
Set a property value by its full dotted name, parsing from string.
Sourcepub fn prop_is_secret(name: &str) -> bool
pub fn prop_is_secret(name: &str) -> bool
Check if a property name refers to a secret field (static, no instance needed).
Sourcepub fn init_defaults(&mut self, prefix: Option<&str>) -> Vec<&'static str>
pub fn init_defaults(&mut self, prefix: Option<&str>) -> Vec<&'static str>
Instantiate None nested sections whose prefix matches.
Returns the prefixes that were initialized.
Sourcepub fn map_key_sections() -> Vec<MapKeySection>
pub fn map_key_sections() -> Vec<MapKeySection>
Enumerate every map-keyed (HashMap<String, T>) and list-shaped
(Vec<T>) section discoverable from this Configurable’s tree.
The dashboard / CLI consume this to surface “+ Add” affordances
without hardcoding the section list.
Sourcepub fn nested_section_help(name: &str) -> Option<&'static str>
pub fn nested_section_help(name: &str) -> Option<&'static str>
Help blurb for a #[nested] field on this struct, sourced from
the field-level /// docstring. Returns None for unknown
names so callers can fall through to a different lookup.
pub fn nested_section_group(name: &str) -> Option<&'static str>
Sourcepub fn get_map_keys(&self, section_path: &str) -> Option<Vec<String>>
pub fn get_map_keys(&self, section_path: &str) -> Option<Vec<String>>
Return the current alias keys at section_path, or None if
the path doesn’t resolve to a map-keyed section in this tree.
pub fn nested_option_entries(&self) -> Vec<NestedOptionEntry>
pub fn create_map_key( &mut self, section_path: &str, map_key: &str, ) -> Result<bool, String>
pub fn delete_map_key( &mut self, section_path: &str, map_key: &str, ) -> Result<bool, String>
pub fn rename_map_key( &mut self, section_path: &str, map_key: &str, new_key: &str, ) -> Result<bool, String>
Trait Implementations§
Source§impl Clone for RuntimeProfileConfig
impl Clone for RuntimeProfileConfig
Source§fn clone(&self) -> RuntimeProfileConfig
fn clone(&self) -> RuntimeProfileConfig
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RuntimeProfileConfig
impl Debug for RuntimeProfileConfig
Source§impl Default for RuntimeProfileConfig
impl Default for RuntimeProfileConfig
Source§impl<'de> Deserialize<'de> for RuntimeProfileConfigwhere
RuntimeProfileConfig: Default,
impl<'de> Deserialize<'de> for RuntimeProfileConfigwhere
RuntimeProfileConfig: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for RuntimeProfileConfig
impl JsonSchema for RuntimeProfileConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl MaskSecrets for RuntimeProfileConfig
impl MaskSecrets for RuntimeProfileConfig
fn mask_secrets(&mut self)
fn restore_secrets_from(&mut self, current: &Self)
Auto Trait Implementations§
impl Freeze for RuntimeProfileConfig
impl RefUnwindSafe for RuntimeProfileConfig
impl Send for RuntimeProfileConfig
impl Sync for RuntimeProfileConfig
impl Unpin for RuntimeProfileConfig
impl UnsafeUnpin for RuntimeProfileConfig
impl UnwindSafe for RuntimeProfileConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more