Skip to main content
Glama
Dante926

layer-memory

by Dante926
README.md
# Layer Memory

本地优先、Markdown 原生的 AI 代理分层记忆系统。基于 Midway.js 的 MCP 服务,SQLite 存储,pnpm monorepo。

---

## 项目架构

```
layer-memory/
├── packages/
│   └── core/                  # 记忆核心库(框架无关)
│       └── src/store/         # 存储层抽象、SQLite 实现、类型定义
├── apps/
│   ├── mcp-server/            # MCP 服务端(Midway.js 4.0)
│   │   └── src/tools/         # 4 个 MCP Tools
├── docs/                       # 文档站(dumi 2.x)
├── skill/                     # AI Agent skill 定义
├── .husky/                    # Git hooks
├── .changeset/                # 版本管理
├── docker-compose.yml
├── Dockerfile
└── pnpm-workspace.yaml
```

### MCP Tools

| 工具            | 说明                 | 参数                                       |
| --------------- | -------------------- | ------------------------------------------ |
| `memory_store`  | 存储一条记忆         | key, value, type(可选), tags(可选)         |
| `memory_recall` | 搜索已存储的记忆     | query, type(可选), tags(可选), limit(可选) |
| `memory_export` | 导出所有记忆为 JSON  | outputPath                                 |
| `memory_import` | 从 JSON 文件导入记忆 | inputPath                                  |

记忆类型: `working` (工作记忆) / `persona` (人格画像) / `fact` (事实知识)

---

## 快速开始

### 前置要求

- Node.js >= 20
- pnpm 10.x(安装:`corepack enable && corepack prepare pnpm@10.15.0 --activate`)

### 安装

```bash
git clone https://github.com/Dante926/layer-memory.git
cd layer-memory
pnpm install
```

### 本地开发

```bash
pnpm dev
```

服务启动在 http://localhost:3000,MCP endpoint 在 `/mcp`。

### 构建

```bash
pnpm build
```

所有包编译到各自 `dist/` 目录。

### 文档站

```bash
pnpm docs:dev
```

---

## Docker 部署

### 启动服务

```bash
docker compose up -d
```

服务运行在 `http://localhost:3000`。

### 数据持久化

记忆数据存储在 Docker volume `layer-memory-data` 中,容器重启/更新不会丢失。

### 重新构建

```bash
docker compose build
docker compose up -d
```

---

## 连接到 AI Agent

### Claude Code

在 `~/.claude/settings.json` 中配置 MCP:

```json
{
  "mcpServers": {
    "layer-memory": {
      "type": "url",
      "url": "http://localhost:3000/mcp"
    }
  }
}
```

### Codex / Cursor

在项目的 `.cursor/mcp.json` 中配置:

```json
{
  "mcpServers": {
    "layer-memory": {
      "type": "url",
      "url": "http://localhost:3000/mcp"
    }
  }
}
```

---

## 使用示例

存储记忆:

```
调用 memory_store(
  key="架构决策",
  value="选择 Midway.js 4.0 MCP + SQLite",
  type="fact",
  tags="项目:layer-memory"
)
```

搜索记忆:

```
调用 memory_recall(query="架构决策", limit=5)
```

导出备份:

```
调用 memory_export(outputPath="backup.json")
```

---

## 版本管理

本项目使用 Changeset 管理版本:

```bash
pnpm changeset       # 创建变更记录
pnpm version         # 更新版本号
pnpm publish         # 发布
```

---

## 开发

### 提交规范

使用 Conventional Commits:

- `feat:` 新功能
- `fix:` 修复
- `chore:` 工程化
- `docs:` 文档

### 代码格式化

```bash
pnpm format
```