AI代理长期记忆存储

ContextKeep为AI代理提供持久化、可搜索的跨会话记忆存储,支持SQLite数据库、全文搜索和用户自定义分类管理。

  • by mordang7
  • Python
  • 本地部署
  • 159 星标
  • 更新于
在 GitHub 查看 mordang7/ContextKeep

使用说明

上下文保持

人工智能代理的长期记忆

上下文保持 为AI代理提供了一个持久的、可搜索的内存,它们可以在会话中使用。V2.1增加了SQLite、全文搜索、用户可编辑类别、更安全的Docker默认值和经过验证的备份优先升级。

最新动态 | 安全升级 | 安装 | MCP工具 | 配置 | 文档


特征

  • MCP兼容代理的持久本地内存。
  • 带FTS5全文搜索的SQLite存储。
  • 用户可编辑的类别,而不是固定标签。
  • 每个内存有多个类别。
  • 用于浏览、编辑、搜索、导出和类别管理的WebUI。
  • 位于的可流式HTTP MCP端点 /mcp,苏格兰和南方能源公司为老客户提供备用方案。
  • Docker Compose支持WebUI和MCP的一个默认服务。
  • 经过验证的裸机和Docker升级备份和恢复助手。
  • 服务器身份检查通过 get_contextkeep_info.

V2.1 Atlas中的新增功能

V2.1是第一个类别第一的ContextKeep版本。

  • list_all_memories 已删除。
  • 代理现在使用 list_categories 和 list_memories 之前 retrieve_memory.
  • tags 替换为用户可编辑 categories.
  • 记忆可以属于多个类别。
  • V1标签保留为 legacy_tags 迁移元数据。
  • Docker现在默认同时运行WebUI和MCP,因此两者都使用相同的SQLite数据库。
  • get_contextkeep_info 报告版本、存储路径、数据库ID、工具列表和迁移状态。
  • 升级脚本在继续之前创建经过验证的备份。

旧版本仍然可以通过GitHub版本和标签获得。V2.1是新安装和升级的推荐版本。

安全升级优先

在替换现有安装之前,请使用安全升级包装器。它创建备份,验证存档,检查SQLite/JSON完整性,并在出现任何问题时停止。

裸金属:

python scripts/upgrade_to_v2_1.py baremetal

Docker:

python scripts/upgrade_to_v2_1.py docker

V1 JSON迁移:

python scripts/upgrade_to_v2_1.py baremetal --v1-source /path/to/old/data/memories

看 docs/SAFE_UPGRADE.md 有关备份、还原、Docker卷和回滚的详细信息。

安装

新鲜裸金属安装

git clone https://github.com/mordang7/ContextKeep.git
cd ContextKeep
python -m venv .venv

Linux/macOS:

source .venv/bin/activate
pip install -r requirements.txt

Windows PowerShell:

.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

您还可以运行安装程序:

python install.py

全新Docker安装

git clone https://github.com/mordang7/ContextKeep.git
cd ContextKeep
docker compose up -d --build

默认端口:

服务 URL
WebUI http://localhost:5000
MCP HTTP http://localhost:5100/mcp

跑

stdio上的本地MCP:

python server.py

通过HTTP远程MCP:

python server.py --transport http --host 0.0.0.0 --port 5100

WebUI:

python webui.py --host 0.0.0.0 --port 5000

然后打开:

http://localhost:5000

MCP工具

ContextKeep V2.1公开了16个工具:

工具 目的
get_contextkeep_info 确认版本、存储路径、数据库ID、架构、工具和迁移状态
list_categories 列出实时用户可编辑的类别
create_category 当没有适合的现有类别时创建类别
update_category 重命名或编辑类别元数据
delete_category 删除空类别或重新分配记忆
merge_categories 将一个类别合并到另一个类别
list_memories 列出记忆键/标题,可选择按类别筛选
retrieve_memory 按精确键检索内存
search_memories 全文搜索内存内容
list_recent_memories 列出最近更新的记忆
store_memory 使用类别存储或更新内存
update_categories 将一个内存重新分配给一个或多个类别
get_edit_history 查看内存的编辑历史记录
delete_memory 永久删除内存
get_memory_stats 显示内存/类别计数和存储路径
export_memories 将所有内存导出为JSON

推荐检索流程:

list_categories -> list_memories -> retrieve_memory

使用 search_memories 对于主题发现,然后在依赖它之前检索精确匹配的内存。

MCP客户端配置

大多数支持流式HTTP的客户端:

{
  "mcpServers": {
    "context-keep": {
      "url": "http://localhost:5100/mcp"
    }
  }
}

反重力IDE使用 serverURL:

{
  "mcpServers": {
    "context-keep": {
      "serverURL": "http://localhost:5100/mcp"
    }
  }
}

SSE回退:

{
  "mcpServers": {
    "context-keep": {
      "url": "http://localhost:5100/sse"
    }
  }
}

对于远程机器,请更换 localhost 使用运行ContextKeep的计算机的主机名或地址。

不要将旧的SSH/stdin配置保持为活动状态 context-keep 服务器名称。它可能会启动一个写入与WebUI不同的数据库的旧服务器。

验证正确的服务器

连接客户端后,呼叫 get_contextkeep_info.

预期V2.1值:

  • version: 2.1.0
  • schema_version: 2
  • storage_backend: sqlite
  • storage_path: /app/data/contextkeep.db 在Docker中,或您配置的本地路径
  • V2.1工具列表,包括 list_memories, list_categories, update_categories,以及 get_edit_history

如果代理存储了内存,但WebUI看不到它,请比较WebUI /api/info 使用MCP get_contextkeep_infoThe database_id, storage_path,并且内存计数应匹配。

备份与恢复

创建经过验证的裸机备份:

python scripts/backup_contextkeep.py baremetal --install-dir /path/to/contextkeep

创建一个经过验证的Docker备份:

python scripts/backup_contextkeep.py docker --volume <docker-volume-name>

还原命令会写入每个备份文件夹。完整指南在 docs/SAFE_UPGRADE.md.

如果您使用容器自动更新软件,请保持外部备份例程。安全升级脚本可以在升级前验证备份,但无人值守的映像替换不能要求您确认备份健康状况。

文档

更新日志

V2.1图集

  • 带FTS5搜索的SQLite数据库。
  • 用户可编辑的类别,具有多类别内存分配。
  • WebUI类别管理。
  • V1 JSON迁移,保留遗留标签。
  • 一个容器Docker默认用于共享WebUI/MCP数据库访问。
  • get_contextkeep_info 身份检查。
  • 已验证的备份和还原工具。
  • 更新了HTTP、Antigravity和SSE回退的MCP客户端示例。

V1.3港口

  • Docker支持。
  • 现代Python打包。
  • 新工具: delete_memory, get_memory_stats, export_memories.
  • WebUI导出。
  • 打包和代码质量修复。

V1.2黑曜石实验室

  • 内存目录工具。
  • 黑曜石实验室UI重新设计。
  • 日历和内存计数的改进。

V1.1

  • Web仪表板。
  • 苏格兰和南方能源公司运输支持。
  • Linux系统服务安装程序。
  • 内存标题和时间戳。

V1.0

  • 具有持久JSON支持内存的核心MCP服务器。
  • 本地stdio和远程访问模式。

贡献

欢迎问题、功能想法和拉取请求。如果你围绕ContextKeep构建了一个客户端指南、迁移配方或工作流模式,请分享。

V1.3社区贡献者

感谢所有为Harbor发布做出贡献的人:

  • @嘘 打开Docker支持请求。
  • @赛博狗7 贡献了最初的Docker和Docker Compose实现。
  • @弗雷霍夫 贡献了Dockerfile, pyproject.toml, uv 支持和打包修复。
  • @thinkstylestudy 通过社区宣传支持该项目。

支持

如果ContextKeep为您节省了时间、令牌或上下文窗口痛苦,我们将不胜感激。


Built by GeekJohn