AI编程助手持久记忆系统

Reka是一款自托管的RAG基础设施,为AI编程助手(如Claude Code、Cursor或Windsurf)提供跨会话的持久记忆、语义代码搜索和代码库知识图谱。

  • by getreka
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 getreka/reka

使用说明

Reka

Memory that flows. Knowledge that stays.

Self-hosted RAG infrastructure for AI coding assistants.
Give Claude Code, Cursor, or Windsurf persistent memory across sessions.

Plugin · Quick Start · How It Works · Features · Website · Issues


问题

你的AI编码助手在会话之间会忘记一切。每一次新的对话都是从零开始的——不记得过去的决定,不了解你的架构,不记得已经尝试过和失败过的事情。

Reka解决了这个问题。 它为你的AI助手提供持久内存、语义代码搜索和代码库的知识图——所有这些都在你的机器上运行。


Claude代码插件

使用Reka的最快方法。Claude Code中有两个命令:

/plugin marketplace add getreka/reka-plugin
/plugin install reka@reka-plugins

该插件为您提供完整的Reka体验,无需任何手动MCP配置:

您将获得什么 详细信息
9个命令 /reka:code, /reka:investigate, /reka:review, /reka:arch, /reka:debate, /reka:start, /reka:end, /reka:onboard, /reka:memory-review
4名代理人 功能构建器、代码审阅者、rag研究员、rag运维人员——工作流使用的内部子代理,都有持久内存
2个挂钩 自动会话生命周期:SessionStart(上下文+会话id)和SessionEnd(内存整合)
MCP服务器 @getreka/mcp 使用API密钥自动配置(存储在操作系统密钥链中)

团队自动安装

添加到您的项目 .claude/settings.json 每个团队成员都会自动获得插件:

{
  "extraKnownMarketplaces": {
    "reka-plugins": {
      "source": { "source": "github", "repo": "getreka/reka-plugin" }
    }
  },
  "enabledPlugins": {
    "reka@reka-plugins": true
  }
}

插件仓库: 拖放/重复插件 --完整的文档、命令参考和架构概述。


快速开始

选项A:Claude代码插件(推荐)

/plugin marketplace add getreka/reka-plugin
/plugin install reka@reka-plugins

会话自动启动(SessionStart挂钩); /reka:start 显示会话状态。

选项B:MCP服务器+CLI

# 1. Start the infrastructure
git clone https://github.com/getreka/reka.git
cd reka/docker && docker compose up -d

# 2. Initialize your project (generates API key + .mcp.json)
npx @getreka/cli init --project my-app

就是这样。打开你的人工智能助手——它现在有内存了。

尝试演示(无需安装)

npx @getreka/cli init --demo --project my-app

这将连接到一个实时Reka实例,因此您可以在部署自己的实例之前尝试内存、搜索和索引。演示数据可能会定期重置。

什么 reka init 做

  1. 创建映射到项目的API键
  2. 写 .mcp.json 使用正确的MCP服务器配置
  3. 您的AI助手在下次启动时自动发现MCP服务器

生成的 .mcp.json:

{
  "mcpServers": {
    "reka": {
      "command": "npx",
      "args": ["-y", "@getreka/mcp"],
      "env": {
        "REKA_API_KEY": "rk_myapp_a3f8b2..."
      }
    }
  }
}

一个API密钥=一个项目。 不需要额外的头文件或配置。钥匙告诉Reka你正在做哪个项目。


运作原理

 Claude Code + Reka Plugin
        │
        │  9 commands · 4 agents · 2 hooks
        │
        ▼
 @getreka/mcp            ← npm package, auto-configured by plugin
        │
        │ HTTP + API Key
        ▼
 Reka API (:3100)        ← Express server
        │
    ┌───────┼───────┐
    ▼       ▼       ▼
 Qdrant   Ollama   Redis
 vectors LLM+embed cache

每个项目在Qdrant中都有独立的集合:

  • myapp_codebase --索引源代码
  • myapp_agent_memory --决策、模式、见解
  • myapp_graph --导入/依赖关系
  • myapp_symbols --函数/类/类型索引

项目之间没有交叉污染。一个后端为它们提供服务。


特征

搜索

  • 混合搜索 --向量相似度+关键字匹配
  • 代码图 --遍历导入、依赖关系、爆炸半径
  • 符号索引 --函数、类、类型的即时查找
  • 智能调度 --LLM将您的查询路由到最佳搜索策略

记忆

  • 持久内存 --决策、模式、ADR在整个会话中都存在
  • 内存管理 --隔离、晋升、衰败(并非所有事物都值得永恒)
  • 整合 --重复的记忆会随着时间的推移而融合和进化
  • 扩散激活 --联想回忆发现相关记忆

索引

  • 多语言 --TypeScript、Python、Go、Rust、Java、C#等
  • 增量 --基于哈希的更改检测,只重新索引更改的内容
  • 知识图谱 --自动提取导入/导出关系

平台

  • Claude代码插件 --9个命令、4个代理、2个挂钩、自动配置MCP
  • MCP本地 --与Claude Code、Cursor、Windsurf一起开箱即用
  • 29工具,0隐藏 --搜索、内存、索引、代理、架构
  • 仪表盘 --用于内存审查和分析的Vue 3 web UI

LLM和嵌入

  • 完全本地化 --用于LLM和嵌入的Ollama(默认),需要零个API密钥
  • 或混合动力 --本地用于快速任务,Claude/GPT-4用于复杂分析
  • 你的选择 --Ollama、OpenAI或Anthropic获得法学硕士学位;Ollama(默认)、OpenAI或BGE-M3用于嵌入

部署

自托管-免费。 零限制的完整平台,完全在您的机器上运行: cd docker && docker compose up -d.

计划使用自托管团队许可证,但前提是有实际需求-- 如果你想要,请告诉我们.


需求

组件 最小值 推荐
Docker 24+ 最新
RAM 8 GB 16 GB
Node.js 22+ 最新LTS
磁盘 ~2GB 建议使用SSD
GPU 不需要 NVIDIA用于Ollama加速

对于 仅限Claude代码插件:克劳德代码1.0.33+,Node.js 22+。Docker仅适用于自托管后端。


配置

关键环境变量 rag-api/.env (显示的值是Docker堆栈中的值 docker/docker-compose.yml 用途):

变量 Docker堆栈值 描述
EMBEDDING_PROVIDER ollama ollama, openai, bge-m3-server
OLLAMA_EMBEDDING_MODEL qwen3-embedding:4b 嵌入模型
VECTOR_SIZE 2560 嵌入尺寸
LLM_PROVIDER ollama ollama, openai, anthropic
OLLAMA_MODEL qwen3.5:9b LLM完井模型
QDRANT_URL http://localhost:6333 矢量数据库
REDIS_URL redis://localhost:6380 缓存(可选,推荐)
OPENAI_API_KEY -- 如果使用OpenAI,则需要
ANTHROPIC_API_KEY -- 如果使用Anthropic,则需要

默认配置运行完全本地-不需要API密钥。


MCP工具

Reka向您的AI助手公开了29个工具(没有隐藏)。最常用的:

工具 它做什么
hybrid_search 对代码进行语义+关键字搜索
find_symbol 快速查找:函数、类、类型
search_graph 遍历导入,查找依赖项
search_docs 搜索索引文档
context_briefing 更改前的多策略查找
memory 受控服务器端内存上的人类记忆工具界面(六个命令)
remember 存储决策、见解或模式
recall 检索相关记忆
record_adr 记录架构决策
index_codebase 对项目进行索引或重新索引
start_session / end_session 具有连续性的会话生命周期
run_agent 启动自主子代理

Reka和Anthropic的记忆工具

人类学 memory_20250818 工具给克劳德一个 /memories 它所在的目录 RL经过训练,可以通过六个命令自动使用: view, create, str_replace, insert, delete, rename关于这两者之间的关系,有两个事实 向Reka明确表示:

  • 在Claude Code中,本机内存工具是在本地主机上实现的 文件夹。 主机对计算机上的某个目录执行命令 并暴露 无可插拔后端 --Reka无法拦截这些电话,并且 我们不声称。
  • Reka提供的是与MCP工具相同的六命令界面,名为 memory,因此模型的训练触发会继续下去——但 登陆Reka而不是本地文件夹: 项目范围 (共享 机器和会话)以及 治理.每封信都有署名 (source: auto_memory_tool)并隔离;基于工具自身的路径 view 立即看到它(阅读你的文章),但它只进入语义 recall 一旦晋升。查看队列位于仪表板中 review_memories/promote_memory.

为了 直接Anthropic SDK用户 适配器是一个真正的后端:将其连接到 SDK的 betaMemoryTool helper和Claude的本地内存调用将持续到 Reka(适配器来源: mcp-server/src/memory-tool-adapter.ts):

import Anthropic from "@anthropic-ai/sdk";
import { betaMemoryTool } from "@anthropic-ai/sdk/helpers/beta/memory";
import { createApiClient } from "./api-client.js";
import { MemoryToolAdapter } from "./memory-tool-adapter.js";

const api = createApiClient(
  RAG_API_URL,
  PROJECT_NAME,
  PROJECT_PATH,
  REKA_API_KEY,
);
const adapter = new MemoryToolAdapter(api, PROJECT_NAME);

// betaMemoryTool takes one handler per command; the adapter exposes exactly
// that { [command]: (cmd) => Promise<string> } shape:
const memoryTool = betaMemoryTool(adapter.toHandlers());

const client = new Anthropic();
const runner = client.beta.messages.toolRunner({
  model: "claude-opus-4-8",
  max_tokens: 1024,
  tools: [memoryTool],
  messages: [
    { role: "user", content: "Remember that we use qwen3-embedding:4b." },
  ],
});
for await (const message of runner) console.log(message);

仪表盘

cd dashboard && npm install && npm run dev
# Open http://localhost:3000

内存资源管理器、搜索游乐场、项目分析、索引状态、系统健康状况。


比较

河 游标内存 Cody(源代码图) Continue.dev Greptile
自托管 完全 仅云 部分 是 仅云
克劳德代码插件 是 否 否 不 否
内存管理 完整生命周期 否 否 无 否
多项目 独立 每个工作区 是 有限 是
代码图 是 否 是 不是 是
MCP本机 是 否 否 是 不
LLM选项 任意 锁定 锁定 任意 已锁定
数据隐私 100%本地 云 部分 本地 云
成本 免费 $/座位 $/座位 免费 $/回购

项目结构

reka/
├── rag-api/          # Core API server (Express, TypeScript)
├── mcp-server/       # MCP server (@getreka/mcp)
├── cli/              # CLI tool (@getreka/cli)
├── dashboard/        # Web dashboard (Vue 3)
├── docker/           # Canonical compose stack + Grafana, Prometheus configs
├── docs/archive/     # Historical status snapshots
├── landing/design/   # Landing page design source (.pen)
└── docker-compose.yml  # Thin shim that includes docker/docker-compose.yml

插件: 拖放/重复插件 --Claude Code插件(独立仓库)


贡献

我们欢迎捐款。看 贡献.md 了解设置和指南。

好的第一个问题被标记 good first issue.


许可证

Reka来源于 商业来源许可证1.1.

  • 自由自主机 --内部使用无限制
  • 构建集成 --插件、扩展、自定义工具
  • 转换为Apache 2.0 3年后

唯一的限制是:您不能将Reka作为与 Reka 云.


Give your AI assistant the memory it deserves.

Install Plugin · Get started · getreka.dev · Report an issue