记忆存储服务

一个基于Qdrant向量数据库和OpenAI嵌入的人类记忆系统,通过模型上下文协议(MCP)访问,支持多种记忆类型和特性。

  • by david-strejc
  • TypeScript
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 david-strejc/cldmemory

使用说明

MCP内存服务器

使用Qdrant向量数据库和OpenAI嵌入的类人记忆系统,可通过模型上下文协议(MCP)访问。

特性

  • 类人记忆类型:

    • 情节(个人经历)
    • 语义(事实和知识)
    • 程序性(如何做事)
    • 情绪(情绪记忆)
    • 感官(感官印象)
    • 工作(短期记忆)
  • 记忆特性:

    • 重要性评分(0-1)
    • 情绪效价(-1比1)
    • 记忆之间的关联
    • 背景(地点、人物、情绪、活动)
    • 衰减因子和访问跟踪
    • 自动项目跟踪(主机名:文件夹)
    • 通过环境变量自定义元数据

设置

  1. 安装依赖项:

    npm install
    
  2. 配置环境:

    cp .env.example .env
    # Edit .env with your settings
    

    新的环境变量:

    • MEMORY_METADATA -可选元数据,包含在所有内存中
      • 格式: "key:value,key2:value2" 或者只是 "value" (存储为 user:value)
      • 示例: "server:prod,user:john" 或 "davidstrejc"
  3. 启动Qdrant (如果使用本地):

    docker run -p 6333:6333 -p 6334:6334 \
      --name qdrant-memory \
      -v $(pwd)/qdrant_storage:/qdrant/storage:z \
      qdrant/qdrant
    

    备注:Qdrant URL支持HTTP和HTTPS协议(例如。, https://your-qdrant-instance.com:6333)

  4. 构建项目:

    npm run build
    

使用Claude代码进行测试

将MCP配置文件与Claude Code CLI一起使用:

# Basic usage
claude -p "Store a memory about today's meeting" --mcp-config claude-code-mcp.json

# Skip permissions for automation
claude -p "Search my memories" --mcp-config claude-code-mcp.json --dangerously-skip-permissions

# List available tools
claude -p "List available memory tools" --mcp-config claude-code-mcp.json

可用的MCP工具(前缀为 mcp__memory__):

  • store_memory -存储新内存
  • search_memories -使用自然语言搜索记忆(返回完整详细信息)
  • quick_search_memories -快速搜索仅返回摘要以供浏览
  • get_memory -按ID检索特定内存
  • update_memory -更新现有内存
  • delete_memory -删除内存
  • analyze_memories -分析记忆模式

示例用法

重要:所有MCP工具都期望JSON对象作为参数,而不是纯字符串。

// ✅ CORRECT - Store a memory with JSON object
store_memory({
  "content": "Had lunch with Sarah at the Italian restaurant",
  "type": "episodic",
  "context": {
    "location": "Downtown Italian restaurant",
    "people": ["Sarah"],
    "mood": "happy"
  },
  "importance": 0.8
})

// ❌ WRONG - Do not pass plain strings
store_memory("Had lunch with Sarah")  // This will fail!

// ✅ CORRECT - Search with JSON object
search_memories({
  "query": "restaurant experiences",
  "limit": 5,
  "includeAssociations": true
})

// ❌ WRONG - Do not pass plain strings
search_memories("restaurant experiences")  // This will fail!

// ✅ CORRECT - Quick search for browsing (returns only summaries)
quick_search_memories({
  "query": "programming tips",
  "limit": 50  // Can handle more results since only summaries
})

// Then get full details of a specific memory
get_memory({
  "id": "abc-123-def-456"  // Use ID from quick search results
})

新功能

自动项目跟踪:现在所有的记忆都包括 project 捕获主机名和当前工作目录的字段(例如。, "myserver:/home/user/project").

环境元数据:设置 MEMORY_METADATA 环境变量自动在所有内存中包含自定义元数据:

export MEMORY_METADATA="server:production,team:engineering,region:us-west"

此元数据会自动执行以下操作:

  • 添加到所有新的记忆中
  • 包含在内存嵌入中,以提高搜索相关性
  • 在搜索查询中用于改进上下文匹配

内存分析工具

包含一个用于分析内存的全面CLI工具:

# Quick start
./memory-analytics count    # Count memories by agent
./memory-analytics tags     # Analyze tag usage
./memory-analytics compare  # Compare agents
./memory-analytics all      # Run all analytics

看 docs/MEMORY_ANALYTICS.md 详细文档。

发展

  • npm run dev -以开发模式运行
  • npm run build -构建TypeScript
  • npm run test -运行测试
  • npm run lint -运行门楣
  • npm run typecheck -类型检查