Cipher
扫码查看

为AI编程工具设计的开源记忆层MCP服务

Cipher

综合介绍

Cipher 是一个专为AI编码智能体设计的开源记忆层框架。它通过模型上下文协议(MCP)与多种集成开发环境(IDE)和编码工具兼容,例如 Cursor、Windsurf、Claude Desktop 等。这个项目的主要目标是为AI智能体提供一个可以长期记忆和学习的“大脑”,让它们能够记住之前的交互内容、代码库的结构和业务逻辑。Cipher 采用双层记忆系统,分别记录编程概念、业务逻辑以及模型的推理过程。这使得AI智能体在不同的IDE之间切换时,能够无缝衔接上下文,并且开发者可以在团队中实时共享这些记忆,提升协作效率。用户可以通过NPM包、Docker或直接从源码进行安装,并通过命令行工具进行交互或部署为API服务器。

功能列表

  • MCP集成: 支持与任何兼容模型上下文协议(MCP)的IDE或工具进行集成。
  • 自动生成记忆: 根据代码库和交互自动生成AI编码记忆,并能随代码库规模扩展。
  • 跨IDE记忆同步: 允许用户在不同的IDE之间无缝切换,而不会丢失记忆和上下文。
  • 团队记忆共享: 支持开发团队成员之间实时共享编码记忆。
  • 双层记忆系统:
    • 系统1: 捕捉编程概念、业务逻辑和过去的交互内容。
    • 系统2: 记录模型生成代码时的推理步骤。
  • 零配置安装: 在IDE中安装时无需复杂配置。
  • 多种操作模式: 支持命令行交互模式、单次命令模式、REST API服务器模式和MCP服务器模式。
  • 会话管理: 支持创建、切换和管理多个对话会话。
  • 多语言模型支持: 兼容OpenAI、Anthropic、OpenRouter和Ollama等多种大语言模型。
  • 知识图谱: 通过Neo4j或内存数据库构建实体关系化的结构性记忆。

使用帮助

Cipher 作为一个为AI编码智能体设计的记忆层,安装和使用方式非常灵活。下面将详细介绍如何安装、配置和使用Cipher。

安装

您可以根据自己的需求选择以下三种安装方式之一:

1. NPM包安装 (推荐)这是最简单直接的安装方式,适合大多数用户。您只需要在终端中执行以下命令即可全局安装:

npm install -g @byterover/cipher```
如果您希望在特定的项目中将其作为依赖项使用,可以执行局部安装:
```bash
npm install @byterover/cipher

2. 使用Docker安装如果您熟悉Docker并希望在容器化环境中运行Cipher,可以按照以下步骤操作:

首先,克隆Cipher的GitHub仓库到本地:

git clone https://github.com/campfirein/cipher.git
cd cipher

接着,创建并配置环境变量文件。您可以从模板文件.env.example复制一份:

cp .env.example .env

然后,使用文本编辑器打开.env文件,并填入您的API密钥,例如OpenAI或Anthropic的API密钥。

最后,使用docker-compose启动服务:

docker-compose up -d

启动后,您可以访问http://localhost:3000/health来检查服务是否正常运行。

3. 从源码安装如果您是开发者,希望直接从源码运行或进行二次开发,可以按以下步骤操作:

pnpm i && pnpm run build && npm link

此命令会安装所有依赖、构建项目,并通过npm linkcipher命令链接到您的系统中,使其可以全局调用。

配置

Cipher的配置主要通过环境变量和cipher.yml配置文件完成。

环境变量 (.env文件)在项目根目录下的.env文件中,您可以配置大语言模型的API密钥和其他参数。

  • API密钥 (必需): Cipher需要至少一个大语言模型API密钥才能运行。嵌入功能始终需要OPENAI_API_KEY
    OPENAI_API_KEY=your_openai_api_key
    ANTHROPIC_API_KEY=your_anthropic_api_key
    OPENROUTER_API_KEY=your_openrouter_api_key
    
  • Ollama (可选): 如果您在本地部署了Ollama,可以配置其访问地址。
    OLLAMA_BASE_URL=http://localhost:11434/v1
    
  • 其他可选配置:
    CIPHER_LOG_LEVEL=info
    NODE_ENV=production
    

智能体配置文件 (memAgent/cipher.yml)此文件用于配置Cipher智能体的行为,例如使用哪个大语言模型。

# LLM 配置
llm:
provider: openai # 可选 openai, anthropic, openrouter, ollama
model: gpt-4-turbo
apiKey: $OPENAI_API_KEY # 从环境变量读取密钥
# 系统提示
systemPrompt: 'You are a helpful AI assistant with memory capabilities.'
# MCP 服务器配置 (可选)
mcpServers:
filesystem:
type: stdio
command: npx
args: ['-y', '@modelcontextprotocol/server-filesystem', '.']

命令行(CLI)使用

Cipher提供了功能丰富的命令行工具。

基础操作

  • 交互模式: 直接运行cipher命令,进入一个可以与智能体持续对话的交互式会令行界面。
    cipher
    
  • 单次命令模式: 您可以快速地向Cipher的记忆中添加一条信息。
    cipher "将'在本地开发中,Vite + Express出现CORS错误'的常见原因添加到记忆里。"
    

服务器模式

  • API服务器: 将Cipher作为REST API服务运行。
    cipher --mode api
    
  • MCP服务器: 将Cipher作为MCP服务运行,以便与其他兼容工具(如Cursor)集成。
    cipher --mode mcp
    

会话管理命令在交互模式下,您可以使用以下命令管理会话:

  • /session list: 列出所有可用的会话。
  • /session new [id]: 创建一个新会话,可以指定一个可选的ID。
  • /session switch <id>: 切换到指定的会话。
  • /config: 显示当前加载的配置。
  • /stats: 显示运行时统计数据。
  • /help: 显示帮助信息。

作为MCP服务器集成

这是Cipher的核心应用场景之一,通过MCP协议将其强大的记忆功能集成到您喜欢的IDE或AI工具中。

快速设置在您的MCP客户端(如Claude Desktop, Cursor)的配置文件中,添加如下配置,即可将Cipher作为MCP服务器接入:

{
"mcpServers": {
"cipher": {
"type": "stdio",
"command": "cipher",
"args": ["--mode", "mcp"],
"env": {
"OPENAI_API_KEY": "your_openai_api_key",
"ANTHROPIC_API_KEY": "your_anthropic_api_key"
}
}
}
}

这段配置告诉客户端通过标准输入输出(stdio)与cipher --mode mcp命令进行通信。

与Cursor/Windsurf集成示例在Cursor或Windsurf的MCP设置中添加以下内容:

{
"mcpServers": {
"cipher-memory": {
"type": "stdio",
"command": "cipher",
"args": ["--mode", "mcp", "--agent", "memAgent/cipher.yml"],
"env": {
"OPENAI_API_KEY": "sk-your-openai-key",
"CIPHER_LOG_LEVEL": "info"
}
}
}
}

通过这种方式,您与AI编码助手(如Claude Code)的每一次互动都会被Cipher自动记录下来。当您后续提出相关问题时,Cipher会检索并提供相关上下文,使AI能够给出更精准、连贯的回答。

应用场景

  1. 跨IDE的无缝开发开发者经常在不同的集成开发环境(IDE)之间切换。例如,在VS Code中编写前端代码,然后切换到Cursor中进行AI辅助重构。使用Cipher作为记忆层,开发者在任何一个IDE中的编码历史、上下文和与AI的对话记录都会被保存下来。当切换到另一个IDE时,Cipher能够立即提供之前的上下文,避免了因环境切换导致的信息丢失和重复提问。
  2. 团队知识共享与协作在一个开发团队中,新成员往往需要花费大量时间来熟悉项目的代码库、业务逻辑和历史决策。通过部署Cipher并共享记忆,团队的编码知识和与AI智能体的交互历史可以被所有成员访问。当新成员遇到问题时,可以向集成了Cipher的AI助手提问,AI能够利用团队共享的记忆,提供基于项目历史的准确回答,从而加速新成员的上手过程。
  3. 复杂项目的长期记忆对于一个长期维护的大型项目,代码库会变得异常庞大和复杂。人类开发者很难记住所有的模块设计和实现细节。Cipher的双层记忆系统能够像一个“项目大脑”一样,持续学习和记忆代码库的结构、关键算法以及模型的推理过程。当开发者需要修改一个很少接触的旧模块时,可以借助Cipher快速回忆起相关的设计初衷和技术细节,降低维护成本。
  4. 个性化AI编程助手每个开发者的编程习惯和所负责的业务领域都不同。通过将Cipher与个人的AI编码助手(如Claude Code、Kimi K2)集成,Cipher可以持续学习该开发者的个人偏好、常用代码片段和特定领域的业务逻辑。随着时间的推移,AI助手会变得越来越“懂”你,提供的代码建议和解决方案也会更加贴合你的个人风格和需求。

QA

  1. Cipher支持哪些大语言模型(LLM)?Cipher支持多个主流的大语言模型提供商,包括OpenAI(如GPT-4 Turbo)、Anthropic(如Claude 3.5 Sonnet)、OpenRouter(支持超过200个模型)以及自托管的Ollama。用户可以在配置文件中轻松切换和指定使用的模型。
  2. 什么是模型上下文协议(MCP),它在Cipher中起什么作用?模型上下文协议(Model Context Protocol, MCP)是一种开放标准,旨在让AI模型和开发工具(如IDE)之间能够更好地交换上下文信息。在Cipher中,MCP是实现其核心功能的关键。它允许Cipher作为一个记忆插件,无缝地接入到任何支持MCP的工具中(如Cursor、Claude Desktop等),从而捕捉和提供上下文记忆,增强AI编码助手的能力。
  3. 我是否需要一个强大的服务器来运行Cipher?不需要。Cipher本身是一个轻量级的框架,可以作为命令行工具在个人电脑上运行。当它作为MCP服务器与本地IDE集成时,其资源消耗主要取决于所配置的大语言模型。如果使用基于云的API(如OpenAI),则本地资源占用很小。如果使用本地部署的模型(如Ollama),则需要根据模型大小评估本地硬件需求。
  4. Cipher的记忆是永久保存的吗?是的,Cipher的核心功能之一就是提供持久化的记忆。它会将交互历史、代码知识和推理过程等信息存储起来。默认情况下,它使用内存进行存储,但同时也支持更持久化的存储方案,例如通过与Neo4j等知识图谱数据库集成,实现结构化和永久性的记忆存储。
微信微博Email复制链接