pub struct HandoffContext {
pub conversation_id: String,
pub messages: Vec<HandoffMessage>,
pub current_agent: String,
pub agent_stack: Vec<String>,
pub handoff_history: Vec<HandoffRecord>,
pub data: HashMap<String, Value>,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
}Expand description
Conversation context passed during handoffs
Fields§
§conversation_id: StringConversation ID
messages: Vec<HandoffMessage>Full message history
current_agent: StringCurrent agent handling the conversation
agent_stack: Vec<String>Stack of agents (for return handoffs)
handoff_history: Vec<HandoffRecord>Handoff history
data: HashMap<String, Value>Custom context data
created_at: DateTime<Utc>Created timestamp
updated_at: DateTime<Utc>Last updated timestamp
Implementations§
Source§impl HandoffContext
impl HandoffContext
Sourcepub fn new(
conversation_id: impl Into<String>,
entry_agent: impl Into<String>,
) -> Self
pub fn new( conversation_id: impl Into<String>, entry_agent: impl Into<String>, ) -> Self
Create a new context
Sourcepub fn add_message(&mut self, message: HandoffMessage)
pub fn add_message(&mut self, message: HandoffMessage)
Add a message to the conversation
Sourcepub fn user_message(&mut self, content: impl Into<String>)
pub fn user_message(&mut self, content: impl Into<String>)
Add a user message
Sourcepub fn agent_message(&mut self, content: impl Into<String>)
pub fn agent_message(&mut self, content: impl Into<String>)
Add an assistant message from current agent
Sourcepub fn last_messages(&self, n: usize) -> &[HandoffMessage]
pub fn last_messages(&self, n: usize) -> &[HandoffMessage]
Get last N messages
Sourcepub fn messages_from(&self, agent_id: &str) -> Vec<&HandoffMessage>
pub fn messages_from(&self, agent_id: &str) -> Vec<&HandoffMessage>
Get messages from a specific agent
Sourcepub fn get_data<T: DeserializeOwned>(&self, key: &str) -> Option<T>
pub fn get_data<T: DeserializeOwned>(&self, key: &str) -> Option<T>
Get custom data
Trait Implementations§
Source§impl Clone for HandoffContext
impl Clone for HandoffContext
Source§fn clone(&self) -> HandoffContext
fn clone(&self) -> HandoffContext
Returns a duplicate 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 HandoffContext
impl Debug for HandoffContext
Source§impl<'de> Deserialize<'de> for HandoffContext
impl<'de> Deserialize<'de> for HandoffContext
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for HandoffContext
impl RefUnwindSafe for HandoffContext
impl Send for HandoffContext
impl Sync for HandoffContext
impl Unpin for HandoffContext
impl UnsafeUnpin for HandoffContext
impl UnwindSafe for HandoffContext
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