pub struct Conversation {Show 15 fields
pub _id: u64,
pub user: Principal,
pub thread: Option<Xid>,
pub messages: Vec<Json>,
pub resources: Vec<Resource>,
pub artifacts: Vec<Resource>,
pub status: ConversationStatus,
pub failed_reason: Option<String>,
pub usage: Usage,
pub steering_messages: Option<Vec<String>>,
pub follow_up_messages: Option<Vec<String>>,
pub ancestors: Option<Vec<u64>>,
pub period: u64,
pub created_at: u64,
pub updated_at: u64,
}Expand description
A conversation between an agent and the system, stored in the database for memory management. Version 1
Fields§
§_id: u64The unique identifier for this resource in the Anda DB collection “conversation”.
user: Principal§thread: Option<Xid>§messages: Vec<Json>§resources: Vec<Resource>The request resources used by the agent to process the conversation.
artifacts: Vec<Resource>A collection of artifacts generated by the agent during the execution of the task.
status: ConversationStatusThe state of the conversation.
failed_reason: Option<String>§usage: UsageThe LLM usage statistics for the conversation.
steering_messages: Option<Vec<String>>Queue a steering message to interrupt the agent mid-run. Delivered after current tool execution, skips remaining tools.
follow_up_messages: Option<Vec<String>>Queue a follow-up message to be processed after the agent finishes. Delivered only when agent has no more tool calls or steering messages.
ancestors: Option<Vec<u64>>The ancestor conversation IDs, ordered from the closest to the farthest ancestor.
period: u64The period when the conversation was created, in hours (timestamp / 3600 / 1000). It is used to index the conversation for faster retrieval by time.
created_at: u64The timestamp when the conversation was created, in milliseconds.
updated_at: u64The timestamp when the conversation was updated, in milliseconds.
Implementations§
Source§impl Conversation
impl Conversation
pub fn schema() -> Result<Schema, SchemaError>
Source§impl Conversation
impl Conversation
Trait Implementations§
Source§impl Clone for Conversation
impl Clone for Conversation
Source§fn clone(&self) -> Conversation
fn clone(&self) -> Conversation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Conversation
impl Debug for Conversation
Source§impl<'de> Deserialize<'de> for Conversation
impl<'de> Deserialize<'de> for Conversation
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>,
Source§impl<'a> From<&'a Conversation> for ConversationRef<'a>
impl<'a> From<&'a Conversation> for ConversationRef<'a>
Source§fn from(conversation: &'a Conversation) -> Self
fn from(conversation: &'a Conversation) -> Self
Source§impl From<&Conversation> for ConversationState
impl From<&Conversation> for ConversationState
Source§fn from(conversation: &Conversation) -> Self
fn from(conversation: &Conversation) -> Self
Source§impl From<Conversation> for Document
impl From<Conversation> for Document
Source§fn from(conversation: Conversation) -> Self
fn from(conversation: Conversation) -> Self
Auto Trait Implementations§
impl Freeze for Conversation
impl RefUnwindSafe for Conversation
impl Send for Conversation
impl Sync for Conversation
impl Unpin for Conversation
impl UnsafeUnpin for Conversation
impl UnwindSafe for Conversation
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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>
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