360 Secure SkillHub
360 安全技能中心

MemVault

MemVault 是一个长期记忆服务:将对话经 LLM 抽取事实后向量化存入 pgvector,检索时按相似度乘记忆强度排序,并按艾宾浩斯遗忘曲线定期衰减,支持多 Agent 记忆标记与统计。通过 Docker Compose 部署,暴露 HTTP 接口与命令行脚本。

wjy9902
wjy9902
热度 57.10
最近更新 2026-05-18 12:12:23
分类:知识依赖:代码执行 / 读写文件 / 第三方 API / 内部调用大模型应用场景:笔记整理 / API 集成 / 自动化脚本 / 数据处理 ...

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add memvault
Metadata
name
memvault
description
Production-ready long-term memory server for AI agents with Ebbinghaus decay and strength-weighted retrieval. Use when you need persistent memory across agent sessions, memory decay (forgetting curve), memory statistics, or multi-agent memory tracking. Triggers: long-term memory, remember, recall, memory decay, Ebbinghaus, agent memory, memvault. Requires Docker.

MemVault — Long-term Memory for AI Agents

Quick Start

# Install (one command — Docker handles everything)
bash scripts/install.sh

# Verify
memvault health

Usage

# Store a memory
memvault memorize-text <user_id> "<message>" "[reply]"

# Retrieve memories (strength-weighted)
memvault retrieve <user_id> "<query>"

# Run daily decay (memories fade like human memory)
memvault decay <user_id>

# Check stats
memvault stats <user_id>

API Endpoints

Method Endpoint Description
POST /memorize Store conversation → extract facts/events/knowledge
POST /retrieve Strength-weighted vector search (similarity × strength)
POST /decay Ebbinghaus forgetting curve (run daily via cron)
GET /stats Memory distribution, access patterns, agent breakdown
GET /health Service health

How It Works

  1. Store: Conversations → LLM extracts facts → embedded → stored in pgvector
  2. Retrieve: Query embedded → cosine similarity × memory strength → ranked results
  3. Decay: strength = exp(-rate × days / (1 + damping × ln(1 + access_count)))
  4. Access boost: Each retrieval increments access_count, slowing decay

Fading memories (strength < 0.1) are excluded from search.

Configuration

All via environment variables in .env (created by install script):

  • MEMVAULT_LLM_BASE_URL — Default: Ollama local. Set to OpenAI/Groq/etc URL if preferred
  • MEMVAULT_LLM_MODEL — Default: qwen2.5:3b
  • MEMVAULT_TRANSLATION — Set true + MEMVAULT_TRANSLATION_LANG for auto-translation
  • MEMVAULT_PORT — Default: 8002

Daily Cron Setup

Add Ebbinghaus decay to your agent's cron:

0 3 * * *  curl -s -X POST 'http://127.0.0.1:8002/decay?user_id=YOUR_USER_ID'

TOOLS.md Snippet

## MemVault 🧠
memvault memorize-text "<user_id>" "<content>" "<context>"
memvault retrieve "<user_id>" "<query>"
memvault decay <user_id>
memvault stats <user_id>
- API: 127.0.0.1:8002

Multi-Agent Memory

Tag memories by source agent:

curl -X POST http://localhost:8002/memorize -H "Content-Type: application/json" \
  -d '{"conversation": [
    {"role": "metadata", "content": "{\"source_agent\": \"research-bot\"}"},
    {"role": "user", "content": "Found new papers on transformers"}
  ], "user_id": "team"}'

Troubleshooting

  • "Connection refused" → Run docker compose -f ~/.openclaw/workspace/skills/memvault/docker-compose.yml up -d
  • Slow memorize → Normal, LLM extraction takes 5-15s per conversation
  • No results from retrieve → Check memvault stats — if total=0, nothing stored yet
  • All memories fading → Reduce decay_rate: curl -X POST 'http://localhost:8002/decay?decay_rate=0.05'