traitclaw-memory-sqlite 1.0.0

SQLite memory backend for TraitClaw — persistent conversations and FTS5 recall
Documentation

traitclaw-memory-sqlite

crates.io docs.rs

SQLite memory backend for TraitClaw — persistent conversations, working memory, and FTS5-powered long-term recall.

Store conversation history and knowledge in a single SQLite database file. No external services, no network calls — just one .db file that persists across agent restarts.

Features

Feature Description
Conversation memory Store and retrieve per-session message history
Working memory Key-value store per session (e.g., user preferences, task state)
Long-term memory FTS5 full-text search over stored knowledge
Session management Create, list, and delete conversation sessions

Usage

use traitclaw::prelude::*;
use traitclaw_memory_sqlite::SqliteMemory;

// Persistent storage
let memory = SqliteMemory::new("./agent.db")?;

// Or in-memory (for tests)
let memory = SqliteMemory::in_memory()?;

// Session lifecycle
let session = memory.create_session().await?;
memory.append(&session, Message::user("Hello")).await?;
let history = memory.messages(&session).await?;

// Working memory (key-value)
memory.set_context(&session, "user_name", json!("Alex")).await?;
let name = memory.get_context(&session, "user_name").await?;

// Long-term recall (FTS5 search)
memory.store(MemoryEntry::now("id", "Rust has zero-cost abstractions")).await?;
let results = memory.recall("Rust abstractions", 5).await?;

Schema

All data lives in a single SQLite file with these tables:

Table Purpose
sessions Session metadata
messages Conversation history (per session)
working_memory Key-value facts (per session)
long_term_memory Knowledge entries for recall
long_term_fts FTS5 virtual table for full-text search

License

Licensed under either of Apache License, Version 2.0 or MIT License at your option.