pub struct PortMemoryBackend { /* private fields */ }Expand description
Adapter that exposes an SDK MemoryStore (plus an optional
EmbeddingProvider) as an oxicode_agent::tools::MemoryBackend so the
agent’s memory_* tools can read/write it.
Construct directly (Self::new / Self::from_ports) or bridge it
onto an agent via crate::AgentBuilder::with_port_memory.
Implementations§
Source§impl PortMemoryBackend
impl PortMemoryBackend
Sourcepub fn new(store: Arc<dyn MemoryStore>) -> Self
pub fn new(store: Arc<dyn MemoryStore>) -> Self
Wrap a MemoryStore with no embedding provider.
put / list / delete work; semantic search is unavailable until
an EmbeddingProvider is attached via Self::with_embeddings.
Sourcepub fn with_embeddings(self, embeddings: Arc<dyn EmbeddingProvider>) -> Self
pub fn with_embeddings(self, embeddings: Arc<dyn EmbeddingProvider>) -> Self
Attach an embedding provider, enabling semantic search.
Sourcepub fn from_ports(
store: Arc<dyn MemoryStore>,
embeddings: Option<Arc<dyn EmbeddingProvider>>,
) -> Self
pub fn from_ports( store: Arc<dyn MemoryStore>, embeddings: Option<Arc<dyn EmbeddingProvider>>, ) -> Self
Build from both ports at once.
Pass None for embeddings to disable semantic search (the port’s
search is vector-based and cannot run without embeddings).
Trait Implementations§
Source§impl Debug for PortMemoryBackend
impl Debug for PortMemoryBackend
Source§impl MemoryBackend for PortMemoryBackend
impl MemoryBackend for PortMemoryBackend
Source§fn put<'a>(
&'a self,
content: &'a str,
kind: &'a str,
subject: &'a str,
) -> Pin<Box<dyn Future<Output = Result<String, ToolError>> + Send + 'a>>
fn put<'a>( &'a self, content: &'a str, kind: &'a str, subject: &'a str, ) -> Pin<Box<dyn Future<Output = Result<String, ToolError>> + Send + 'a>>
Store a memory item, returning its new ID.
Source§fn search<'a>(
&'a self,
query: &'a str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryItem>, ToolError>> + Send + 'a>>
fn search<'a>( &'a self, query: &'a str, k: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryItem>, ToolError>> + Send + 'a>>
Semantic-search stored memories, returning up to
k matches.Source§fn list<'a>(
&'a self,
subject: &'a str,
) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryItem>, ToolError>> + Send + 'a>>
fn list<'a>( &'a self, subject: &'a str, ) -> Pin<Box<dyn Future<Output = Result<Vec<MemoryItem>, ToolError>> + Send + 'a>>
List memory items for the given subject.
Source§fn delete<'a>(
&'a self,
id: &'a str,
) -> Pin<Box<dyn Future<Output = Result<(), ToolError>> + Send + 'a>>
fn delete<'a>( &'a self, id: &'a str, ) -> Pin<Box<dyn Future<Output = Result<(), ToolError>> + Send + 'a>>
Delete the memory item with the given ID.
Source§fn memory_info(&self) -> Option<String>
fn memory_info(&self) -> Option<String>
Human-readable memory status (None if not supported by this backend).
Source§fn trigger_consolidation(&self) -> Option<String>
fn trigger_consolidation(&self) -> Option<String>
Trigger sleep consolidation, returning a status message.
Source§fn trigger_harmonize(&self) -> Option<String>
fn trigger_harmonize(&self) -> Option<String>
Trigger SHMR harmonization, returning a status message.
Auto Trait Implementations§
impl !RefUnwindSafe for PortMemoryBackend
impl !UnwindSafe for PortMemoryBackend
impl Freeze for PortMemoryBackend
impl Send for PortMemoryBackend
impl Sync for PortMemoryBackend
impl Unpin for PortMemoryBackend
impl UnsafeUnpin for PortMemoryBackend
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