Skip to main content

AgentProvider

Trait AgentProvider 

Source
pub trait AgentProvider: Send + Sync {
Show 14 methods // Required methods fn name(&self) -> &str; fn base_image(&self) -> &str; fn install_commands(&self) -> Vec<String>; fn build_start_command(&self, config: &AgentConfig) -> AgentCommand; fn required_env_vars(&self) -> Vec<String>; fn parse_output(&self, sandbox_id: &Uuid, raw: &str) -> Vec<StreamEvent>; fn validate_config(&self, config: &AgentConfig) -> CiabResult<()>; fn send_message<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, sandbox_id: &'life1 Uuid, session_id: &'life2 Uuid, message: &'life3 Message, tx: &'life4 Sender<StreamEvent>, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait; fn interrupt<'life0, 'life1, 'async_trait>( &'life0 self, sandbox_id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn health_check<'life0, 'life1, 'async_trait>( &'life0 self, sandbox_id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<AgentHealth>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; // Provided methods fn prompt_mode(&self) -> PromptMode { ... } fn interactive_protocol(&self) -> InteractiveProtocol { ... } fn slash_commands(&self) -> Vec<SlashCommand> { ... } fn supported_llm_providers(&self) -> Vec<AgentLlmCompatibility> { ... }
}

Required Methods§

Source

fn name(&self) -> &str

The name/identifier of this agent provider.

Source

fn base_image(&self) -> &str

The base container image for sandboxes using this provider.

Source

fn install_commands(&self) -> Vec<String>

Commands to install the agent CLI inside the sandbox.

Source

fn build_start_command(&self, config: &AgentConfig) -> AgentCommand

Build the command used to start the agent process in a sandbox.

Source

fn required_env_vars(&self) -> Vec<String>

Environment variables required by this provider.

Source

fn parse_output(&self, sandbox_id: &Uuid, raw: &str) -> Vec<StreamEvent>

Parse raw output from the agent process into stream events.

Source

fn validate_config(&self, config: &AgentConfig) -> CiabResult<()>

Validate that the given config is appropriate for this provider.

Source

fn send_message<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, sandbox_id: &'life1 Uuid, session_id: &'life2 Uuid, message: &'life3 Message, tx: &'life4 Sender<StreamEvent>, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Send a message to the agent and receive a stream of events.

Source

fn interrupt<'life0, 'life1, 'async_trait>( &'life0 self, sandbox_id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Interrupt the agent in the given sandbox.

Source

fn health_check<'life0, 'life1, 'async_trait>( &'life0 self, sandbox_id: &'life1 Uuid, ) -> Pin<Box<dyn Future<Output = CiabResult<AgentHealth>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check the health of the agent in a sandbox.

Provided Methods§

Source

fn prompt_mode(&self) -> PromptMode

How prompts should be delivered to the agent process. Defaults to StdinJson (Claude Code’s protocol).

Source

fn interactive_protocol(&self) -> InteractiveProtocol

Whether the provider supports interactive stdin control protocol. Claude Code supports control_request/control_response; others don’t.

Source

fn slash_commands(&self) -> Vec<SlashCommand>

Returns slash commands available for this provider.

Source

fn supported_llm_providers(&self) -> Vec<AgentLlmCompatibility>

Returns the LLM providers this agent is compatible with.

Implementors§