Skip to main content

AgentProvider

Trait AgentProvider 

Source
pub trait AgentProvider:
    SessionStorage
    + Send
    + Sync {
Show 15 methods // Required methods fn get_my_account<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<GetMyAccountResponse, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_billing_info<'life0, 'life1, 'async_trait>( &'life0 self, account_username: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BillingResponse, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_rulebooks<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<ListRuleBook>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_rulebook_by_uri<'life0, 'life1, 'async_trait>( &'life0 self, uri: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<RuleBook, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_rulebook<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, uri: &'life1 str, description: &'life2 str, content: &'life3 str, tags: Vec<String>, visibility: Option<RuleBookVisibility>, ) -> Pin<Box<dyn Future<Output = Result<CreateRuleBookResponse, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait; fn delete_rulebook<'life0, 'life1, 'async_trait>( &'life0 self, uri: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn chat_completion<'life0, 'async_trait>( &'life0 self, model: AgentModel, messages: Vec<ChatMessage>, tools: Option<Vec<Tool>>, session_id: Option<Uuid>, ) -> Pin<Box<dyn Future<Output = Result<ChatCompletionResponse, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn chat_completion_stream<'life0, 'async_trait>( &'life0 self, model: AgentModel, messages: Vec<ChatMessage>, tools: Option<Vec<Tool>>, headers: Option<HeaderMap>, session_id: Option<Uuid>, ) -> Pin<Box<dyn Future<Output = Result<(Pin<Box<dyn Stream<Item = Result<ChatCompletionStreamResponse, ApiStreamError>> + Send>>, Option<String>), String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn cancel_stream<'life0, 'async_trait>( &'life0 self, request_id: String, ) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn search_docs<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SearchDocsRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn memorize_session<'life0, 'async_trait>( &'life0 self, checkpoint_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn search_memory<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SearchMemoryRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn slack_read_messages<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SlackReadMessagesRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn slack_read_replies<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SlackReadRepliesRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn slack_send_message<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SlackSendMessageRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait;
}
Expand description

Unified agent provider trait.

Extends SessionStorage so that any AgentProvider can also manage sessions and checkpoints. This avoids passing two separate trait objects through the CLI call-chain.

Required Methods§

Source

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

Source

fn get_billing_info<'life0, 'life1, 'async_trait>( &'life0 self, account_username: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<BillingResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

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

Source

fn get_rulebook_by_uri<'life0, 'life1, 'async_trait>( &'life0 self, uri: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<RuleBook, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn create_rulebook<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, uri: &'life1 str, description: &'life2 str, content: &'life3 str, tags: Vec<String>, visibility: Option<RuleBookVisibility>, ) -> Pin<Box<dyn Future<Output = Result<CreateRuleBookResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Source

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

Source

fn chat_completion<'life0, 'async_trait>( &'life0 self, model: AgentModel, messages: Vec<ChatMessage>, tools: Option<Vec<Tool>>, session_id: Option<Uuid>, ) -> Pin<Box<dyn Future<Output = Result<ChatCompletionResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn chat_completion_stream<'life0, 'async_trait>( &'life0 self, model: AgentModel, messages: Vec<ChatMessage>, tools: Option<Vec<Tool>>, headers: Option<HeaderMap>, session_id: Option<Uuid>, ) -> Pin<Box<dyn Future<Output = Result<(Pin<Box<dyn Stream<Item = Result<ChatCompletionStreamResponse, ApiStreamError>> + Send>>, Option<String>), String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

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

Source

fn search_docs<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SearchDocsRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

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

Source

fn search_memory<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SearchMemoryRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn slack_read_messages<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SlackReadMessagesRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn slack_read_replies<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SlackReadRepliesRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Source

fn slack_send_message<'life0, 'life1, 'async_trait>( &'life0 self, input: &'life1 SlackSendMessageRequest, ) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Implementors§