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 link
将cipher
命令链接到您的系统中,使其可以全局调用。
配置
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能够给出更精准、连贯的回答。
应用场景
- 跨IDE的无缝开发开发者经常在不同的集成开发环境(IDE)之间切换。例如,在VS Code中编写前端代码,然后切换到Cursor中进行AI辅助重构。使用Cipher作为记忆层,开发者在任何一个IDE中的编码历史、上下文和与AI的对话记录都会被保存下来。当切换到另一个IDE时,Cipher能够立即提供之前的上下文,避免了因环境切换导致的信息丢失和重复提问。
- 团队知识共享与协作在一个开发团队中,新成员往往需要花费大量时间来熟悉项目的代码库、业务逻辑和历史决策。通过部署Cipher并共享记忆,团队的编码知识和与AI智能体的交互历史可以被所有成员访问。当新成员遇到问题时,可以向集成了Cipher的AI助手提问,AI能够利用团队共享的记忆,提供基于项目历史的准确回答,从而加速新成员的上手过程。
- 复杂项目的长期记忆对于一个长期维护的大型项目,代码库会变得异常庞大和复杂。人类开发者很难记住所有的模块设计和实现细节。Cipher的双层记忆系统能够像一个“项目大脑”一样,持续学习和记忆代码库的结构、关键算法以及模型的推理过程。当开发者需要修改一个很少接触的旧模块时,可以借助Cipher快速回忆起相关的设计初衷和技术细节,降低维护成本。
- 个性化AI编程助手每个开发者的编程习惯和所负责的业务领域都不同。通过将Cipher与个人的AI编码助手(如Claude Code、Kimi K2)集成,Cipher可以持续学习该开发者的个人偏好、常用代码片段和特定领域的业务逻辑。随着时间的推移,AI助手会变得越来越“懂”你,提供的代码建议和解决方案也会更加贴合你的个人风格和需求。
QA
- Cipher支持哪些大语言模型(LLM)?Cipher支持多个主流的大语言模型提供商,包括OpenAI(如GPT-4 Turbo)、Anthropic(如Claude 3.5 Sonnet)、OpenRouter(支持超过200个模型)以及自托管的Ollama。用户可以在配置文件中轻松切换和指定使用的模型。
- 什么是模型上下文协议(MCP),它在Cipher中起什么作用?模型上下文协议(Model Context Protocol, MCP)是一种开放标准,旨在让AI模型和开发工具(如IDE)之间能够更好地交换上下文信息。在Cipher中,MCP是实现其核心功能的关键。它允许Cipher作为一个记忆插件,无缝地接入到任何支持MCP的工具中(如Cursor、Claude Desktop等),从而捕捉和提供上下文记忆,增强AI编码助手的能力。
- 我是否需要一个强大的服务器来运行Cipher?不需要。Cipher本身是一个轻量级的框架,可以作为命令行工具在个人电脑上运行。当它作为MCP服务器与本地IDE集成时,其资源消耗主要取决于所配置的大语言模型。如果使用基于云的API(如OpenAI),则本地资源占用很小。如果使用本地部署的模型(如Ollama),则需要根据模型大小评估本地硬件需求。
- Cipher的记忆是永久保存的吗?是的,Cipher的核心功能之一就是提供持久化的记忆。它会将交互历史、代码知识和推理过程等信息存储起来。默认情况下,它使用内存进行存储,但同时也支持更持久化的存储方案,例如通过与Neo4j等知识图谱数据库集成,实现结构化和永久性的记忆存储。