pub struct DefaultContext { /* private fields */ }Implementations§
Source§impl DefaultContext
 
impl DefaultContext
Sourcepub fn from_executor<T: Into<Arc<dyn ToolExecutor>>>(
    executor: T,
) -> DefaultContext
 
pub fn from_executor<T: Into<Arc<dyn ToolExecutor>>>( executor: T, ) -> DefaultContext
Create a new context with a custom executor
Sourcepub fn with_stop_on_assistant(&mut self, stop: bool) -> &mut Self
 
pub fn with_stop_on_assistant(&mut self, stop: bool) -> &mut Self
If set to true, the agent will stop if the last message is from the assistant (i.e. no new tool calls, summaries or user messages)
Trait Implementations§
Source§impl AgentContext for DefaultContext
 
impl AgentContext for DefaultContext
Source§fn next_completion<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<ChatMessage>>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn next_completion<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Option<Vec<ChatMessage>>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Retrieve messages for the next completion
Source§fn current_new_messages<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<ChatMessage>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn current_new_messages<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<ChatMessage>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Returns the messages the agent is currently completing on
Source§fn history<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<ChatMessage>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn history<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<ChatMessage>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Retrieve all messages in the conversation history
Source§fn add_messages<'life0, 'async_trait>(
    &'life0 self,
    messages: Vec<ChatMessage>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn add_messages<'life0, 'async_trait>(
    &'life0 self,
    messages: Vec<ChatMessage>,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Add multiple messages to the conversation history
Source§fn add_message<'life0, 'async_trait>(
    &'life0 self,
    item: ChatMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn add_message<'life0, 'async_trait>(
    &'life0 self,
    item: ChatMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Add a single message to the conversation history
Source§fn exec_cmd<'life0, 'life1, 'async_trait>(
    &'life0 self,
    cmd: &'life1 Command,
) -> Pin<Box<dyn Future<Output = Result<CommandOutput, CommandError>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
 
fn exec_cmd<'life0, 'life1, 'async_trait>(
    &'life0 self,
    cmd: &'life1 Command,
) -> Pin<Box<dyn Future<Output = Result<CommandOutput, CommandError>> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
    'life1: 'async_trait,
Execute a command in the tool executor
Source§fn redrive<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
 
fn redrive<'life0, 'async_trait>(
    &'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
    Self: 'async_trait,
    'life0: 'async_trait,
Pops the last messages up until the previous completion
LLMs failing completion for various reasons is unfortunately a common occurrence This gives a way to redrive the last completion in a generic way
Source§impl Clone for DefaultContext
 
impl Clone for DefaultContext
Source§fn clone(&self) -> DefaultContext
 
fn clone(&self) -> DefaultContext
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl Debug for DefaultContext
 
impl Debug for DefaultContext
Auto Trait Implementations§
impl Freeze for DefaultContext
impl !RefUnwindSafe for DefaultContext
impl Send for DefaultContext
impl Sync for DefaultContext
impl Unpin for DefaultContext
impl !UnwindSafe for DefaultContext
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
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>
Converts 
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>
Converts 
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 more