Expand description
Conversation memory: Rig-managed persistent conversation history for agents.
Memory differs from existing agent context features:
- classic runtime context: static documents always included in prompts;
- classic runtime request patches: per-turn documents supplied by application hooks;
- caller-managed message history supplied directly on completion requests;
- Memory (this module): Rig-managed history loaded and saved automatically per conversation id.
§Example
use rig_core::{
completion::Message,
memory::{ConversationMemory, InMemoryConversationMemory},
};
let memory = InMemoryConversationMemory::new();
memory
.append(
"thread-1",
vec![
Message::user("My name is Alice."),
Message::assistant("Hello, Alice!"),
],
)
.await?;
let history = memory.load("thread-1").await?;
assert_eq!(history.len(), 2);Truncation, summarization, and other history-shaping policies live in the
rig-memory companion crate. To shape history inside the in-tree backend,
pass a closure to InMemoryConversationMemory::with_filter.
Structs§
- InMemory
Conversation Memory - A simple thread-safe in-memory
ConversationMemorybacked by aHashMap. - Noop
Demotion Hook - A
DemotionHookthat does nothing. Useful as a default when an adapter requires a hook value but the caller has no long-tail store wired up yet.
Enums§
- Memory
Error - Errors produced by a
ConversationMemorybackend.
Traits§
- Compactor
- Derives a single
Message-shaped artifact from a slice of messages that a memory policy has evicted from the active window. - Conversation
Memory - A persistent conversation history backend.
- Demotion
Hook - A side-channel for messages that a memory policy or adapter removes from
active history during
ConversationMemory::load. - Message
Filter - A history-shaping closure applied during
InMemoryConversationMemory::load.
Type Aliases§
- Memory
Backend Error Non- target_family=wasm - Boxed error source for memory backend failures.