pub struct AgentRunner { /* private fields */ }Expand description
Individual agent runner for executing specialized agent tasks
Implementations§
Source§impl AgentRunner
impl AgentRunner
Sourcepub async fn execute_task(
&mut self,
task: &Task,
contexts: &[ContextItem],
) -> Result<TaskResults>
pub async fn execute_task( &mut self, task: &Task, contexts: &[ContextItem], ) -> Result<TaskResults>
Execute a task with this agent
Source§impl AgentRunner
impl AgentRunner
Sourcepub async fn execute_task_with_retry(
&mut self,
task: &Task,
contexts: &[ContextItem],
max_retries: u32,
) -> VtCodeResult<TaskResults>
pub async fn execute_task_with_retry( &mut self, task: &Task, contexts: &[ContextItem], max_retries: u32, ) -> VtCodeResult<TaskResults>
Execute a task with automatic retry on transient failures
Wraps execute_task with retry logic using exponential backoff.
Retries only occur for transient errors (timeouts, network issues, 5xx errors).
Non-retryable errors (auth failures, invalid requests) fail immediately.
Source§impl AgentRunner
impl AgentRunner
Sourcepub async fn new(
agent_type: AgentType,
model: ModelId,
api_key: String,
workspace: PathBuf,
session_id: String,
settings: RunnerSettings,
steering_receiver: Option<UnboundedReceiver<SteeringMessage>>,
) -> Result<Self>
pub async fn new( agent_type: AgentType, model: ModelId, api_key: String, workspace: PathBuf, session_id: String, settings: RunnerSettings, steering_receiver: Option<UnboundedReceiver<SteeringMessage>>, ) -> Result<Self>
Create a new agent runner.
Sourcepub async fn new_with_bootstrap(
agent_type: AgentType,
model: ModelId,
api_key: String,
workspace: PathBuf,
session_id: String,
settings: RunnerSettings,
steering_receiver: Option<UnboundedReceiver<SteeringMessage>>,
bootstrap: ThreadBootstrap,
vt_cfg: Option<VTCodeConfig>,
openai_chatgpt_auth: Option<OpenAIChatGptAuthHandle>,
) -> Result<Self>
pub async fn new_with_bootstrap( agent_type: AgentType, model: ModelId, api_key: String, workspace: PathBuf, session_id: String, settings: RunnerSettings, steering_receiver: Option<UnboundedReceiver<SteeringMessage>>, bootstrap: ThreadBootstrap, vt_cfg: Option<VTCodeConfig>, openai_chatgpt_auth: Option<OpenAIChatGptAuthHandle>, ) -> Result<Self>
Create an agent runner with prebuilt thread bootstrap, config, and auth.
Sourcepub fn set_subagent_mode(&self, is_subagent: bool)
pub fn set_subagent_mode(&self, is_subagent: bool)
Configure the loop detector for subagent mode with tighter read-only budgets and earlier navigation streak intervention.
Sourcepub fn set_subagent_controller(&self, controller: Arc<SubagentController>)
pub fn set_subagent_controller(&self, controller: Arc<SubagentController>)
Attach a subagent controller to this runner’s tool registry so the
subagent-lifecycle tools (agent and its aliases) become available to
the model. Used to enable nested delegation: the attached controller
carries the child-scoped depth so the depth check in spawn_with_spec
still governs grandchild spawns.
Sourcepub fn session_messages(&self) -> Vec<Message>
pub fn session_messages(&self) -> Vec<Message>
Snapshot the runner-owned conversation messages for archive persistence.
Sourcepub fn thread_handle(&self) -> ThreadRuntimeHandle
pub fn thread_handle(&self) -> ThreadRuntimeHandle
Clone the underlying thread handle so callers can capture snapshots.
Sourcepub fn enable_planning(&self)
pub fn enable_planning(&self)
Enable read-only planning workflow for the underlying tool registry.
Sourcepub fn disable_planning(&self)
pub fn disable_planning(&self)
Disable read-only planning workflow for the underlying tool registry.
Sourcepub fn set_event_handler<F>(&mut self, handler: F)
pub fn set_event_handler<F>(&mut self, handler: F)
Attach a callback that will be invoked for each structured event as it is recorded.
Sourcepub fn clear_event_handler(&mut self)
pub fn clear_event_handler(&mut self)
Remove any previously registered structured event callback.
Sourcepub fn set_system_prompt(&mut self, system_prompt: impl Into<String>)
pub fn set_system_prompt(&mut self, system_prompt: impl Into<String>)
Override the composed system prompt for downstream embedders.
Recomputes system_prompt_report against the overridden text so the
budget warning and preflight check stay accurate even when the prompt
bypasses the normal section-based composition pipeline.
Sourcepub fn tool_registry(&self) -> ToolRegistry
pub fn tool_registry(&self) -> ToolRegistry
Clone the underlying tool registry so embedders can register custom tools.
Sourcepub fn set_tool_definitions_override(
&mut self,
definitions: Vec<ToolDefinition>,
)
pub fn set_tool_definitions_override( &mut self, definitions: Vec<ToolDefinition>, )
Override the tool definitions used for LLM requests instead of the default registry projection.
Sourcepub fn clear_tool_definitions_override(&mut self)
pub fn clear_tool_definitions_override(&mut self)
Clear any previously set tool definition override, restoring the default registry projection.
Sourcepub fn set_tool_arg_transform(
&mut self,
transform: Arc<dyn Fn(&str, Value) -> Value + Send + Sync>,
)
pub fn set_tool_arg_transform( &mut self, transform: Arc<dyn Fn(&str, Value) -> Value + Send + Sync>, )
Set an argument transformer applied to tool calls before validation and execution.
Sourcepub fn restrict_to_local_tools(&mut self)
pub fn restrict_to_local_tools(&mut self)
Restrict skill child execution using live trusted registration metadata.
Sourcepub fn clear_tool_arg_transform(&mut self)
pub fn clear_tool_arg_transform(&mut self)
Clear any previously set tool argument transformer.
Sourcepub fn set_active_primary_agent(
&mut self,
active_primary_agent: ActivePrimaryAgent,
)
pub fn set_active_primary_agent( &mut self, active_primary_agent: ActivePrimaryAgent, )
Apply active primary-agent tool and permission policy to this runner.
Sourcepub async fn enable_full_auto(&mut self, allowed_tools: &[String])
pub async fn enable_full_auto(&mut self, allowed_tools: &[String])
Enable full-auto execution with the provided allow-list.
Sourcepub async fn review_tool_allowlist(
&self,
allowed_tools: &[String],
) -> Vec<String>
pub async fn review_tool_allowlist( &self, allowed_tools: &[String], ) -> Vec<String>
Restrict an allow-list to tools suitable for strict review-only runs.
Auto Trait Implementations§
impl !Freeze for AgentRunner
impl !RefUnwindSafe for AgentRunner
impl !UnwindSafe for AgentRunner
impl Send for AgentRunner
impl Sync for AgentRunner
impl Unpin for AgentRunner
impl UnsafeUnpin for AgentRunner
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more