pub struct Session {
pub id: String,
pub agent_name: String,
pub user_id: Option<String>,
pub title: Option<String>,
pub messages: Vec<AgencyMessage>,
pub state: SessionState,
pub token_usage: TokenUsage,
pub created_at: DateTime<Utc>,
pub updated_at: DateTime<Utc>,
pub metadata: HashMap<String, Value>,
}Expand description
A conversation session
Fields§
§id: StringUnique session ID
agent_name: StringAssociated agent name
user_id: Option<String>User ID (optional)
title: Option<String>Session title/name
messages: Vec<AgencyMessage>Conversation messages
state: SessionStateSession state
token_usage: TokenUsageToken usage
created_at: DateTime<Utc>Creation timestamp
updated_at: DateTime<Utc>Last update timestamp
metadata: HashMap<String, Value>Custom metadata
Implementations§
Source§impl Session
impl Session
Sourcepub fn new(agent_name: impl Into<String>, user_id: Option<String>) -> Self
pub fn new(agent_name: impl Into<String>, user_id: Option<String>) -> Self
Create a new session
Sourcepub fn add_message(&mut self, message: AgencyMessage)
pub fn add_message(&mut self, message: AgencyMessage)
Add a message to the session
Sourcepub fn to_api_messages(&self) -> Vec<Value>
pub fn to_api_messages(&self) -> Vec<Value>
Get messages formatted for model API
Sourcepub fn last_messages(&self, n: usize) -> &[AgencyMessage]
pub fn last_messages(&self, n: usize) -> &[AgencyMessage]
Get the last N messages
Sourcepub fn clear_messages(&mut self)
pub fn clear_messages(&mut self)
Clear messages but keep state
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Session
impl<'de> Deserialize<'de> for Session
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 Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnwindSafe for Session
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