Skip to main content

Agent

Trait Agent 

Source
pub trait Agent {
Show 25 methods // Required methods fn name(&self) -> &str; fn default_model() -> &'static str where Self: Sized; fn model_for_size(size: ModelSize) -> &'static str where Self: Sized; fn available_models() -> &'static [&'static str] where Self: Sized; fn system_prompt(&self) -> &str; fn set_system_prompt(&mut self, prompt: String); fn get_model(&self) -> &str; fn set_model(&mut self, model: String); fn set_root(&mut self, root: String); fn set_skip_permissions(&mut self, skip: bool); fn set_output_format(&mut self, format: Option<String>); fn set_add_dirs(&mut self, dirs: Vec<String>); fn as_any_ref(&self) -> &dyn Any; fn as_any_mut(&mut self) -> &mut dyn Any; fn run<'life0, 'life1, 'async_trait>( &'life0 self, prompt: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Option<AgentOutput>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn run_interactive<'life0, 'life1, 'async_trait>( &'life0 self, prompt: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn run_resume<'life0, 'life1, 'async_trait>( &'life0 self, session_id: Option<&'life1 str>, last: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn cleanup<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; // Provided methods fn resolve_model(model_input: &str) -> String where Self: Sized { ... } fn validate_model(model: &str, agent_name: &str) -> Result<()> where Self: Sized { ... } fn set_capture_output(&mut self, _capture: bool) { ... } fn set_max_turns(&mut self, _turns: u32) { ... } fn set_sandbox(&mut self, _config: SandboxConfig) { ... } fn set_env_vars(&mut self, _vars: Vec<(String, String)>) { ... } fn run_resume_with_prompt<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _session_id: &'life1 str, _prompt: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<AgentOutput>>> + Send + 'async_trait>> where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... }
}

Required Methods§

Source

fn name(&self) -> &str

Source

fn default_model() -> &'static str
where Self: Sized,

Source

fn model_for_size(size: ModelSize) -> &'static str
where Self: Sized,

Get the model name for a given size category.

Source

fn available_models() -> &'static [&'static str]
where Self: Sized,

Get the list of available models for this agent.

Source

fn system_prompt(&self) -> &str

Source

fn set_system_prompt(&mut self, prompt: String)

Source

fn get_model(&self) -> &str

Source

fn set_model(&mut self, model: String)

Source

fn set_root(&mut self, root: String)

Source

fn set_skip_permissions(&mut self, skip: bool)

Source

fn set_output_format(&mut self, format: Option<String>)

Source

fn set_add_dirs(&mut self, dirs: Vec<String>)

Set additional directories for the agent to include.

Source

fn as_any_ref(&self) -> &dyn Any

Get a reference to the concrete agent type (for downcasting).

Source

fn as_any_mut(&mut self) -> &mut dyn Any

Get a mutable reference to the concrete agent type (for downcasting).

Source

fn run<'life0, 'life1, 'async_trait>( &'life0 self, prompt: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Option<AgentOutput>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Run the agent in non-interactive mode.

Returns Some(AgentOutput) if the agent supports structured output (e.g., JSON mode), otherwise returns None.

Source

fn run_interactive<'life0, 'life1, 'async_trait>( &'life0 self, prompt: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn run_resume<'life0, 'life1, 'async_trait>( &'life0 self, session_id: Option<&'life1 str>, last: bool, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Resume a previous session.

If session_id is provided, resumes that specific session. If last is true, resumes the most recent session. If neither, shows a session picker or resumes the most recent.

Source

fn cleanup<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Provided Methods§

Source

fn resolve_model(model_input: &str) -> String
where Self: Sized,

Resolve a model input (either a size alias or specific model name).

If the input is a size alias (small/medium/large), returns the corresponding model for this agent. Otherwise returns the input as-is.

Source

fn validate_model(model: &str, agent_name: &str) -> Result<()>
where Self: Sized,

Validate that a model name is supported by this agent.

Returns Ok(()) if valid, or an error with available models if invalid.

Source

fn set_capture_output(&mut self, _capture: bool)

Enable output capture mode.

When set, non-interactive run() pipes stdout, captures the text, and returns Some(AgentOutput). Default is false (streams to terminal). Claude handles capture via output_format, so the default is a no-op.

Source

fn set_max_turns(&mut self, _turns: u32)

Set the maximum number of agentic turns.

Source

fn set_sandbox(&mut self, _config: SandboxConfig)

Set sandbox configuration for running inside a Docker sandbox.

Source

fn set_env_vars(&mut self, _vars: Vec<(String, String)>)

Set environment variables to pass to the agent subprocess.

Source

fn run_resume_with_prompt<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _session_id: &'life1 str, _prompt: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<AgentOutput>>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Resume a previous session with a new prompt (for retry/correction).

Returns Some(AgentOutput) if the agent supports structured output. Default implementation returns an error indicating unsupported operation.

Implementors§