pub struct RuntimeOptions {Show 39 fields
pub provider: Box<dyn LLMProvider>,
pub execution_plane: Option<Box<dyn ExecutionPlane>>,
pub session_log: Option<Arc<dyn SessionLog>>,
pub compression_store: Option<Arc<dyn ArchiveStore>>,
pub payload_store: Option<Arc<dyn PayloadStore>>,
pub kernel_reliability: Option<KernelReliability>,
pub session_id: Option<String>,
pub max_tokens: u32,
pub max_turns: Option<u32>,
pub timeout_ms: Option<u64>,
pub extensions: Option<Value>,
pub agent_id: Option<String>,
pub memory_scope: Option<MemoryScope>,
pub pre_query_memory: Option<Arc<dyn Fn(&str) -> Vec<MemoryQuery> + Send + Sync>>,
pub system_prompt: Option<String>,
pub initial_memory: Vec<String>,
pub skill_dir: Option<PathBuf>,
pub memory_store: Option<Box<dyn MemoryStore>>,
pub knowledge_source: Option<Box<dyn KnowledgeSource>>,
pub signal_source: Option<Box<dyn SignalSource>>,
pub governance: Option<Arc<Mutex<Governance>>>,
pub os_profile: Option<OsProfile>,
pub governance_policy: Option<GovernancePolicy>,
pub signal_policy: Option<SignalPolicy>,
pub scheduler_policy: Option<SchedulerPolicyConfig>,
pub resource_quota: Option<ResourceQuota>,
pub memory_policy: Option<MemoryPolicy>,
pub tokenizer: Option<String>,
pub enable_plan_tool: Option<bool>,
pub on_tool_suspend: Option<ToolSuspendHandler>,
pub on_permission_request: Option<PermissionRequestHandler>,
pub milestone_policy: MilestonePolicy,
pub milestone_contract: Option<MilestoneContract>,
pub run_spec: Option<AgentRunSpec>,
pub allowed_tool_ids: Option<Vec<String>>,
pub baseline_tool_ids: Option<Vec<String>>,
pub on_turn_metrics: Option<OnTurnMetricsHandler>,
pub stable_core_tool_ids: Vec<String>,
pub on_milestone_evaluate: Option<MilestoneEvaluationHandler>,
}Expand description
Configuration for a RuntimeRunner (aligned with Node/Python RuntimeOptions).
Fields§
§provider: Box<dyn LLMProvider>§execution_plane: Option<Box<dyn ExecutionPlane>>§session_log: Option<Arc<dyn SessionLog>>§compression_store: Option<Arc<dyn ArchiveStore>>§payload_store: Option<Arc<dyn PayloadStore>>Storage for canonical opaque external payload locators.
kernel_reliability: Option<KernelReliability>Bounded recovery and replay policy. Omitted fields retain kernel defaults.
session_id: Option<String>When set, execute reuses this session id.
max_tokens: u32§max_turns: Option<u32>§timeout_ms: Option<u64>§extensions: Option<Value>§agent_id: Option<String>§memory_scope: Option<MemoryScope>Required by host-generated memory queries and semantic page-out writes.
pre_query_memory: Option<Arc<dyn Fn(&str) -> Vec<MemoryQuery> + Send + Sync>>I4: optional run-start memory pre-fetch hook. The runner calls this once per run, before
the first LLM turn, with the goal string; each returned query becomes a memory_store.search
and the resulting hits page into the knowledge partition before turn 1. Mirrors the Node
SDK preQueryMemory. Sync-only in Rust today — async hosts can pre-compute. Errs-open
when memory_store or agent_id is missing.
system_prompt: Option<String>§initial_memory: Vec<String>§skill_dir: Option<PathBuf>§memory_store: Option<Box<dyn MemoryStore>>§knowledge_source: Option<Box<dyn KnowledgeSource>>§signal_source: Option<Box<dyn SignalSource>>§governance: Option<Arc<Mutex<Governance>>>§os_profile: Option<OsProfile>§governance_policy: Option<GovernancePolicy>§signal_policy: Option<SignalPolicy>§scheduler_policy: Option<SchedulerPolicyConfig>§resource_quota: Option<ResourceQuota>§memory_policy: Option<MemoryPolicy>Opt-in long-term memory policy (set_memory_policy), enforced at the kernel memory traps.
tokenizer: Option<String>§enable_plan_tool: Option<bool>§on_tool_suspend: Option<ToolSuspendHandler>§on_permission_request: Option<PermissionRequestHandler>§milestone_policy: MilestonePolicyHow to handle EvaluateMilestone actions. Default: RequireVerifier.
milestone_contract: Option<MilestoneContract>§run_spec: Option<AgentRunSpec>§allowed_tool_ids: Option<Vec<String>>The run’s exposure ceiling — the outer bound on what this run may EVER advertise. Not a
static profile: an INTERSECTION applied every turn (exposed ⊆ ceiling), so baseline_tool_ids,
stable_core_tool_ids, and skill allowed_tools all narrow within it and none can widen
past it. The kernel meta-tools (skill/memory/knowledge/update_plan/read_result) are exempt on
the id axis; the KIND axis still applies. Lowers to the same capability_filter sub-agents
use; byte-stable across the run, so it never busts the prompt-cache prefix. Augments
run_spec’s filter when both are set; synthesizes a minimal top-level spec otherwise.
None/empty means no ceiling. Exposure still starts from the minimal baseline.
baseline_tool_ids: Option<Vec<String>>The PRE-ACTIVATION exposure surface, selected from under the allowed_tool_ids ceiling
(AgentRunSpec::exposure_baseline). Makes narrow→wide progressive disclosure expressible:
exposed = meta ∪ ((baseline ∪ stable_core ∪ ⋃ active skills' allowed_tools) ∩ ceiling).
None and Some(vec![]) both select the minimal surface (meta-tools + stable-core only).
Entries outside the ceiling silently intersect away.
on_turn_metrics: Option<OnTurnMetricsHandler>P0-C: optional per-turn metrics sink for tool-gating telemetry (see TurnMetrics). Pure
observation; invoked once per LLM turn. Panics are not caught — keep the sink trivial.
stable_core_tool_ids: Vec<String>P1-B/D stable-core: tool ids always exposed under skill gating. Empty ⇒ skills narrow to exactly their declared tools + meta-tools. Opt-in: no skill declaring tools ⇒ never engages.
on_milestone_evaluate: Option<MilestoneEvaluationHandler>