AI代理长期记忆存储系统

Context Store MCP是一款为AI代理提供持久化记忆能力的服务器,支持会话间信息保存和智能检索。

  • by yohi
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 yohi/context-store-mcp

使用说明

上下文存储MCP

AI代理MCP基本长期存储系统

概要

Context Store MCP单击功能区上AI赋予代理永久存储能力Model Context Protocol (MCP)服务器。跨会话保留信息,并根据上下文提供智能搜索。

特徴

  • 永続的记忆:在会话之间保存和检索信息
  • 多层存储类型:小故事记忆、语义记忆、手续记忆的自动分类
  • 混合搜索:矢量相似性搜索和图形化
  • MCP标准准据:各种各样的AI从代理统一可用
  • 高性能: PostgreSQL + pgvector、Neo4j、Redis优化
  • 安全性: RBAC、暗号化、GDPR准据の削除机能
  • 本番対応: Docker化、CI/CD、监视和备份

🚀 快速启动

Lite Mode(轻量模式)🌟

个人用途PC中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长Lite Mode中所述修改相应参数的值。PostgreSQL仅运行Neo4j和Redis缺少支持的问题。

# 1. 依存パッケージのインストール
npm install

# 2. Lite Mode用の環境変数を設定
cp .env.lite.example .env
# .envファイルを編集(PostgreSQLの設定のみ必要)

# 3. PostgreSQLのみを起動
docker-compose --profile lite up -d

# 4. ビルド
npm run build

# 5. MCP設定ファイルを生成
npm run generate-config -- --lite-mode --client claude-desktop

# 6. 開発モード
npm run dev

了解更多信息 Lite Mode 部分 来修改标记元素的显示属性。

开发环境(全模式)

# 依存パッケージのインストール
npm install

# 環境変数の設定
cp .env.example .env
# .envファイルを編集して必要な情報を設定

# Dockerサービスの起動
docker-compose up -d

# ビルド
npm run build

# 開発モード
npm run dev

本地生产环境

在本地计算机上运行生产服务器:

# 1. 自動セットアップ
./scripts/setup-production.sh

# 2. サーバー起動
./scripts/start-production.sh

# 3. MCPクライアント(Claude Desktop等)を設定
# docs/deployment/local-production.md を参照

了解更多信息 docs/deployment/local-production.md 来修改标记元素的显示属性。

远程生产环境

部署到远程服务器:

# 1. 環境設定
cp .env.production.example .env.production
# .env.productionを編集

# 2. デプロイ
./scripts/deploy.sh

了解更多信息 快速启动.md 来修改标记元素的显示属性。

💡 精简模式

Lite Mode个人用PC中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。PostgreSQL仅使用Neo4j和Redis中描述的相应参数的值。

特徴

  • 最低资源:空闲内存使用量<500MB
  • 简单的设置: PostgreSQL仅使用
  • 自动数据收集: AI Desktop App、AI IDE、CLI自动收集来自代理的对话
  • 灵活的嵌入生成: OpenAI API、本地CLI、定制API支持
  • 优雅的劣化:即使缺少选项依赖关系也继续运行

安装,安装

1.设置环境变量

cp .env.lite.example .env

.env编辑文件,然后单击PostgreSQL的连接信息:

# Lite Mode設定
LITE_MODE=true
ENABLE_GRAPH_STORE=false
ENABLE_REDIS_CACHE=false

# PostgreSQL設定(必須)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=context_store
POSTGRES_PASSWORD=your_password_here
POSTGRES_DB=context_store

# 埋め込みプロバイダー(オプション)
EMBEDDING_PROVIDER=openai  # または local-cli, custom-api
# EMBEDDING_CLI_COMMAND=gemini-cli embed  # local-cliの場合
# EMBEDDING_API_ENDPOINT=http://localhost:8080/embed  # custom-apiの場合

2. PostgreSQL启动

# Lite Modeプロファイルでサービスを起動
docker-compose --profile lite up -d

# または、既存のPostgreSQLを使用する場合はスキップ

3. MCP生成配置文件

# Claude Desktop用の設定を生成
npm run generate-config -- --lite-mode --client claude-desktop

# Cursor用の設定を生成
npm run generate-config -- --lite-mode --client cursor

# カスタムパスに出力
npm run generate-config -- --lite-mode --output ./my-config.json

编辑生成的配置文件以设置数据库凭据。

4.启动服务器

npm run build
npm start

选择嵌入式供应商

Lite Mode支持多种嵌入式生成方法:

OpenAI API(默认值)

EMBEDDING_PROVIDER=openai
OPENAI_API_KEY=your_api_key_here

本地CLI

EMBEDDING_PROVIDER=local-cli
EMBEDDING_CLI_COMMAND="gemini-cli embed"
# または
EMBEDDING_CLI_COMMAND="claude-code embed"

定制API

EMBEDDING_PROVIDER=custom-api
EMBEDDING_API_ENDPOINT=http://localhost:8080/embed

自动数据收集(收集器)

Lite Mode那么,各种AI可从工具自动收集对话数据:

  • AI桌面应用程序:克劳德桌面、ChatGPT桌面
  • AI-IDE:光标、风帆、副驾驶、Cline
  • CLI代理:ClaudeCode、GeminiCLI、CodexCLI、CursorCLI

有关收集器的设置和启动方法scripts/LITE_MODE_MIGRATION.md来修改标记元素的显示属性。

故障排除

对于常见问题和解决方案Lite Mode故障排除指南来修改标记元素的显示属性。

快速检查

# PostgreSQL接続を確認
psql -h localhost -U context_store -d context_store

# Dockerコンテナのログを確認
docker-compose logs postgres

# MCP設定ファイルを検証
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | jq .

# 環境変数を確認
env | grep -E '(LITE_MODE|POSTGRES|EMBEDDING)'

详细的故障排除步骤是这边。

迁移到全模式

Lite Mode从全模式过渡到全模式非常简单:

# 1. 環境変数を更新
LITE_MODE=false
ENABLE_GRAPH_STORE=true
ENABLE_REDIS_CACHE=true

# 2. Neo4jとRedisを起動
docker-compose --profile full up -d

# 3. サーバーを再起動
npm run start

现有PostgreSQL数据可以直接使用。

环境变量引用

Lite Mode设定

|变量名|默认|说明| |--------|-----------|------| | LITE_MODE | false | Lite Mode启用(仅适用于PostgreSQL) | ENABLE_GRAPH_STORE | true | Neo4j启用图形存储 | ENABLE_REDIS_CACHE | true | Redis启用高速缓存

PostgreSQL设定(必须)

|变量名|默认|说明| |--------|-----------|------| | POSTGRES_HOST | localhost | PostgreSQL主机| | POSTGRES_PORT | 5432 | PostgreSQL端口 | POSTGRES_DB | context_store 数据库名称 | POSTGRES_USER |-|数据库用户名| | POSTGRES_PASSWORD 数据库密码

嵌入式供应商设置

|变量名|默认|说明| |--------|-----------|------| | EMBEDDING_PROVIDER | openai |嵌入式供应商(openai, local-cli, custom-api) | | OPENAI_API_KEY | - | OpenAI API键(openai使用供应商时) | EMBEDDING_CLI_COMMAND | - | CLI命令(local-cli使用供应商时)
例: gemini-cli embed, claude-code embed | | EMBEDDING_API_ENDPOINT |-|自定义API端点(custom-api使用供应商时)

收集器设置(可选)

|变量名|默认|说明| |--------|-----------|------| | COLLECTOR_POLL_INTERVAL | 1000 日志文件轮询间隔(毫秒) | COLLECTOR_CLAUDE_DESKTOP_LOG_PATH | - | Claude Desktop的日志路径 | COLLECTOR_CHATGPT_DESKTOP_LOG_PATH | - | ChatGPT Desktop的日志路径 | COLLECTOR_CURSOR_LOG_PATH | - | Cursor的日志路径 | COLLECTOR_WINDSURF_LOG_PATH | - | Windsurf的日志路径 | COLLECTOR_COPILOT_LOG_PATH | - | GitHub Copilot的日志路径 | COLLECTOR_CLINE_LOG_PATH | - | Cline的日志路径 | COLLECTOR_CLAUDE_CODE_LOG_PATH | - | ClaudeCode的日志路径 | COLLECTOR_GEMINI_CLI_LOG_PATH | - | GeminiCLI的日志路径 | COLLECTOR_CODEX_CLI_LOG_PATH | - | CodexCLI的日志路径 | COLLECTOR_CURSOR_CLI_LOG_PATH | - | CursorCLI的日志路径

Web Viewer设置(可选)

|变量名|默认|说明| |--------|-----------|------| | WEB_VIEWER_ENABLED | false | Web Viewer启用 | WEB_VIEWER_PORT | 3001 | Web Viewer的端口 | WEB_VIEWER_AUTH_ENABLED | true |启用认证| | WEB_VIEWER_AUTH_TOKEN |-|认证令牌|

记录设置

|变量名|默认|说明| |--------|-----------|------| | LOG_LEVEL | info |日志级别(error, warn, info, debug) |

全模式专用设置

|变量名|默认|说明| |--------|-----------|------| | NEO4J_URI | bolt://localhost:7687 | Neo4j接続URI | | NEO4J_USER | neo4j | Neo4j用户名| | NEO4J_PASSWORD | - | Neo4j密码 | NEO4J_DATABASE | neo4j | Neo4j数据库名称 | REDIS_URL | redis://localhost:6379 | Redis接続URL |

📚 文档

部署

开発

仕様

精简模式

所需环境

开発环境

  • Node.js 20.x以上
  • Docker&Docker编写
  • Git

本番环境

  • Docker 24.0+
  • Docker Compose 2.20+
  • Linux(Ubuntu 20.04+或RHEL 8+)
  • 4+CPU内核(建议8+)
  • 8 GB RAM(建议使用16 GB)
  • 100 GB SSD(建议使用500 GB)

开発

命令

# 開発
npm run dev              # 開発サーバー起動
npm run build            # ビルド
npm start                # 本番モード起動

# コード品質
npm run typecheck        # 型チェック
npm run lint             # Lint
npm run lint:fix         # Lint自動修正
npm run format           # フォーマット
npm run format:check     # フォーマットチェック

# テスト
npm test                 # テスト実行
npm run test:coverage    # カバレッジ付きテスト

# デプロイメント
npm run docker:build     # Dockerイメージビルド
npm run docker:run       # 本番サービス起動
npm run docker:stop      # 本番サービス停止
npm run docker:logs      # ログ表示
npm run deploy           # 自動デプロイ
npm run benchmark        # パフォーマンステスト
npm run health-check     # ヘルスチェック
npm run validate-config  # 設定検証
npm run security-audit   # セキュリティ監査

测试数据库设置

默认情况下,测试会防止错误连接到生产数据库 context_store_test 使用数据库。

环境变数 POSTGRES_DB 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长

# テスト用に専用のデータベースを使用する場合
POSTGRES_DB=context_store_test npm test

重要:生产环境的数据库名称(context_store),模板名称将采用不同的格式。

安全检查

测试包括以下安全检查:

  1. 拒绝生产数据库名称: context_store 连接被显式阻止(不区分大小写)
  2. 验证测试数据库名称:数据库名称是否包含“测试”"_test" (不区分大小写)
  3. CI环境中的显式配置请求: CI在环境中 POSTGRES_DB 的明细栏样式中定义的设置

通过这些检查,破坏性的SQL防止对生产数据库执行操作(例如,DROP SCHEMA CASCADE)。

注意:所有验证都不区分大小写CONTEXT_STORE、Context_Store 等已弃用的函数的缺少的支持。

资源管理

MemoryManager清理

MemoryManager在内部PostgreSQL中所述修改相应参数的值。关闭应用程序时,请确保dispose()请调用方法适当释放资源。

import { MemoryManager } from './memory/memory-manager.js';

// MemoryManagerの作成
const memoryManager = new MemoryManager();

// ... 使用 ...

// シャットダウン時のクリーンアップ
process.on('SIGTERM', async () => {
  await memoryManager.dispose();
  process.exit(0);
});

重要注意事项

  • 自动创建的池: MemoryManager如果自动创建存储适配器(在构造函数中storage),模板名称将采用不同的格式dispose()自动关闭内部连接池。

  • 外部提供的存储: MemoryManager的构造函数storage选项卡页面上创建或编辑条目dispose()不会关闭连接池。在这种情况下,调用方负责管理连接池的生命周期。

  • 幂等性: dispose()方法是幂等,多次调用也很安全。

// 外部ストレージを使用する場合の例
import { Pool } from 'pg';
import { PostgresStorageAdapter } from './storage/postgres-store-adapter.js';

const pool = new Pool({ connectionString: process.env.DATABASE_URL });
const storage = new PostgresStorageAdapter(pool);
const memoryManager = new MemoryManager({ storage });

// ... 使用 ...

// シャットダウン時
await memoryManager.dispose(); // 何もしない(外部管理のため)
await pool.end(); // 呼び出し側が明示的にクローズ

性能目标

  • 延迟:P95<2000毫秒✓
  • 吞吐量:100+要求/秒
  • 可用性:99.9%正常运行时间

安全性

  • 暗号化:AES-256-GCM(静止),TLS 1.3(传输中)
  • 认证:API密钥,RBAC
  • 监查: 365日保持、改ざん防止
  • GDPR 数据保护:完全删除工作流

支持

许可证

麻省理工学院