Agent Memory RS stores interaction episodes with vector embeddings and retrieves them using cosine similarity search. Exposed as an MCP server with learn and search tools.
This is useful when you want a single memory database shared across multiple machines — run the server on one device (e.g. a Raspberry Pi or home server) and connect from anywhere on your network.
For environments without native HTTP MCP support, a agent-memory-proxy binary is included that bridges stdio ↔ HTTP:
# Create workspace
cargo run --bin agent-memory-cli workspace create --name my-project --path /path/to/project
# List workspaces
cargo run --bin agent-memory-cli workspace list
# Store episode
cargo run --bin agent-memory-cli store --workspace 1 --type user_query --context "How do I use Rust?" --outcome "Provided tutorial" --valence 0.8
# Query memories
cargo run --bin agent-memory-cli query --workspace 1 "rust programming" --limit 10
# Check system health
cargo run --bin agent-memory-cli stats --workspace 1
Programmatic Usage
use agent_memory_rs::services::MemoryManager;
use agent_memory_rs::storage::Database;
// Initialize
let db = Database::new("memory.db")?;
let manager = MemoryManager::new(db.clone());
// Store episode
manager.store_episode(
1, // workspace_id
"user_query",
serde_json::json!({"query": "How do I use Rust?"}),
Some("Provided Rust tutorial"),
Some(0.8), // positive valence
)?;
// Search memories
let results = manager.retrieve("rust programming", 1, 10)?;
schema.rs: Database schema with sqlite-vec integration
memory_store.rs: CRUD operations and vector search
Memory System (src/memory_system.rs)
High-level API combining embedder and storage
Atomic learn and search operations
MCP Server (src/mcp/)
server.rs: JSON-RPC 2.0 stdio transport
tools.rs: Learn and Search tool implementations
Workspace Manager (src/workspace.rs)
Multi-database support
Workspace isolation and management
Embedder (src/embedder.rs)
FastEmbedder with multiple model support
Mock fallback for testing
🔧 Configuration
Embedding Models
Choose your embedding model based on your needs:
Model
Dimensions
Speed
Quality
MiniLM
384
Fast
Good
BGE-small
384
Medium
Better
Nomic
768
Slower
Best
Configure in code:
use memory_rs::{WorkspaceManager, ModelType};
let manager = WorkspaceManager::new(ModelType::BgeSmall)?;
Workspace Management
Workspaces are stored in ~/.memory-rs/workspaces/ by default:
use memory_rs::WorkspaceManager;
let manager = WorkspaceManager::new(ModelType::MiniLM)?;
// Create or get workspace
let system = manager.get_or_create_workspace("my-project")?;
// List all workspaces
let workspaces = manager.list_workspaces()?;
// Delete workspace
manager.delete_workspace("old-project")?;
🧪 Testing
Run all tests:
cargo test
Run specific test suites:
# Storage tests
cargo test --lib storage
# MCP server tests
cargo test --lib mcp
# Workspace tests
cargo test --lib workspace
📊 Database Schema
Tables
workspaces
id: Primary key
name: Workspace name (unique)
path: Filesystem path
created_at: Timestamp
agents
id: Primary key
workspace_id: Foreign key to workspaces
name: Agent name
created_at: Timestamp
memories
id: Primary key
workspace_id: Foreign key to workspaces
agent_id: Optional foreign key to agents
text: Memory content
tags: Comma-separated tags
importance_score: Float 0-1
access_count: Usage tracking
last_accessed: Timestamp
conversation_id: Optional conversation grouping
parent_memory_id: Optional memory hierarchy
user_feedback: Optional feedback text
created_at, updated_at: Timestamps
vec0 (virtual table)
memory_id: Foreign key to memories
embedding: Float vector (384 or 768 dimensions)
Indexes
idx_memories_workspace: Fast workspace filtering
idx_memories_agent: Fast agent filtering
idx_memories_importance: Importance-based queries
idx_memories_created: Temporal queries
idx_memories_conversation: Conversation grouping
🔍 Search Capabilities
Hybrid Search
Combines semantic similarity (70%) with importance score (30%):
use memory_rs::storage::SearchFilters;
let filters = SearchFilters {
workspace_id: Some(1),
agent_id: Some(5),
min_importance: Some(0.5),
max_importance: Some(1.0),
conversation_id: Some("conv-123".to_string()),
..Default::default()
};
let results = system.search("query text", &filters, 10)?;
คัดลอกคอนฟิก stdio สำหรับ Cursor, Claude Desktop, Claude Code หรือ VS Code ได้ในหน้านี้ คอนฟิกนี้ใช้การติดตั้งของผู้เผยแพร่ ไม่ใช่พร็อกซีของ PlugMCP
Agent Memory Rs ต้องใช้ API key ไหม?
ระเบียนนี้ไม่ได้ระบุตัวแปรสภาพแวดล้อมที่จำเป็น
Agent Memory Rs ใช้ทรานสปอร์ตแบบใด?
Agent Memory Rs ทำงานแบบโลคัลผ่าน stdio
Agent Memory Rs ถูกตรวจสอบล่าสุดเมื่อใด?
ตรวจสอบล่าสุดเมื่อ 2026-10-28 Comprehensive memory management system for LLM agents implementing episodic, semantic. Built in Rust with MCP server support for Kiro CLI