# https://github.com/MemMachine/MemMachine 项目说明书

生成时间：2026-07-05 23:02:23 UTC

## 目录

- [概述与系统架构](#page-1)
- [记忆系统与数据流 (Episodic、Semantic、Short-Term)](#page-2)
- [存储后端与数据抽象](#page-3)
- [集成、SDK 与部署运维](#page-4)

<a id='page-1'></a>

## 概述与系统架构

### 相关页面

相关主题：[记忆系统与数据流 (Episodic、Semantic、Short-Term)](#page-2), [存储后端与数据抽象](#page-3)

<details>
<summary>相关源码文件</summary>

以下源码文件用于生成本页说明：

- [README.md](https://github.com/MemMachine/MemMachine/blob/main/README.md)
- [pyproject.toml](https://github.com/MemMachine/MemMachine/blob/main/pyproject.toml)
- [packages/meta/README.md](https://github.com/MemMachine/MemMachine/blob/main/packages/meta/README.md)
- [packages/server/src/memmachine_server/main/memmachine.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/main/memmachine.py)
- [packages/server/src/memmachine_server/server/app.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/server/app.py)
- [packages/server/src/memmachine_server/common/resource_manager/resource_manager.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/resource_manager/resource_manager.py)
- [packages/server/src/memmachine_server/semantic_memory/semantic_ingestion.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/semantic_memory/semantic_ingestion.py)
- [packages/server/src/memmachine_server/episodic_memory/episodic_memory.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/episodic_memory.py)
</details>

# 概述与系统架构

MemMachine 是一个面向大语言模型（LLM）应用的事件驱动型长期记忆中间件（memory middleware），通过统一的 Python SDK、HTTP API 与 TypeScript 客户端为 Agent 提供可持久化的「语义记忆 + 情景记忆」双通道能力。 资料来源：[README.md:1-40]()

## 核心设计目标

系统通过抽象接口将 **向量存储（VectorStore）**、**图数据库（Graph DB）**、**语言模型（LLM）** 与 **嵌入模型（Embedder）** 解耦，使后端可在不修改业务代码的前提下替换为本地嵌入式实现或云端托管服务。 资料来源：[packages/meta/README.md:1-30]()

双通道记忆模型：

- **语义记忆（Semantic Memory）**：从会话中抽取事实、偏好与实体特征，存储为结构化条目并附带源 episode 的引用（citation）。
- **情景记忆（Episodic Memory）**：基于事件图（event graph）保留原始交互上下文，依赖图数据库实现多跳检索与时间序列回溯。

这种分层恰好对应了社区中讨论较密集的几类痛点，例如 `search` 调用返回的 `semantic_memory` 字段为空（issue #690）以及同一事实被重复摄入导致的语义重复（issue #640），都需要由摄入端在写入前完成去重与合并。 资料来源：[packages/server/src/memmachine_server/semantic_memory/semantic_ingestion.py:1-50]()

## 系统分层与模块拓扑

服务进程以 `memmachine_server` 包为核心，按职责划分为若干层：

| 层 | 关键模块 | 职责 |
|---|---|---|
| 入口层 | `server/app.py`、`main/memmachine.py` | 加载配置、暴露 REST/OpenAPI |
| 资源层 | `common/resource_manager/resource_manager.py` | 统一管理 LLM、Embedder、向量库、图库的句柄生命周期 |
| 记忆层 | `semantic_memory/`、`episodic_memory/` | 执行摄入（ingestion）、检索、合并、去重 |
| 存储层 | `vector_store/`、`graph_store/` | 适配 Qdrant、SQLite 等后端，未来扩展 Milvus 与 Apache AGE |

资料来源：[packages/server/src/memmachine_server/server/app.py:1-60]() [packages/server/src/memmachine_server/common/resource_manager/resource_manager.py:1-80]()

## 数据流与请求生命周期

一次 `add memory` 请求的标准处理路径：

```mermaid
flowchart LR
    Client[SDK / HTTP] --> Entry[server/app.py 路由]
    Entry --> RM[resource_manager 复用句柄]
    RM --> SI[semantic_ingestion 抽取事实]
    SI --> VS[(VectorStore)]
    SI --> EM[episodic_memory 写图]
    EM --> GS[(Graph DB)]
    VS -.相似度检索.-> Retriever
    GS -.多跳检索.-> Retriever
    Retriever --> Client
```

资料来源：[packages/server/src/memmachine_server/main/memmachine.py:1-50]() [packages/server/src/memmachine_server/semantic_memory/semantic_ingestion.py:30-120]()

由于摄入阶段依赖 LLM 输出事实条目，当模型返回异常时曾出现死循环反复调用 `semantic_ingestion` 的故障（issue #1270），故该模块内置了去重与失败退避逻辑以避免重复扣费。 资料来源：[packages/server/src/memmachine_server/semantic_memory/semantic_ingestion.py:60-150]()

## 扩展性与已知约束

- **后端可插拔**：`VectorStore` 与 `GraphStore` 均采用工厂模式注册，社区已请求的 Milvus 向量库（issue #1470）与 Apache AGE 图库（issue #1324）属于此类扩展点。
- **并发安全**：`SQLiteVectorStore` 在 `delete` 与并发 `upsert` 竞争时存在 `row_id` 复用隐患，会静默丢失向量（issue #1468），使用本地后端时需启用同步锁。
- **许可证影响**：默认图库 Neo4j Community Edition 采用 GPLv3，对商业分发不友好，是推动 AGE 后端开发的主要原因。
- **发布节奏**：截至 v0.3.9，项目持续完善文档与嵌入式 VectorStore（v0.3.8 PR #1292），后续路线图包含前端 SDK 与 Strands Agents 等集成（v0.3.7 PR #1330）。

资料来源：[pyproject.toml:1-40]() [packages/server/src/memmachine_server/common/resource_manager/resource_manager.py:40-120]() [packages/server/src/memmachine_server/episodic_memory/episodic_memory.py:1-60]()

---

<a id='page-2'></a>

## 记忆系统与数据流 (Episodic、Semantic、Short-Term)

### 相关页面

相关主题：[概述与系统架构](#page-1), [存储后端与数据抽象](#page-3)

<details>
<summary>相关源码文件</summary>

以下源码文件用于生成本页说明：

- [packages/server/src/memmachine_server/episodic_memory/episodic_memory.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/episodic_memory.py)
- [packages/server/src/memmachine_server/episodic_memory/event_memory/event_memory.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/event_memory/event_memory.py)
- [packages/server/src/memmachine_server/episodic_memory/long_term_memory/long_term_memory.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/long_term_memory/long_term_memory.py)
- [packages/server/src/memmachine_server/episodic_memory/short_term_memory/short_term_memory.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/short_term_memory/short_term_memory.py)
- [packages/server/src/memmachine_server/episodic_memory/event_memory/segmenter/text_segmenter.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/event_memory/segmenter/text_segmenter.py)
- [packages/server/src/memmachine_server/episodic_memory/event_memory/deriver/text_deriver.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/episodic_memory/event_memory/deriver/text_deriver.py)
- [packages/server/src/memmachine_server/semantic_memory/semantic_memory.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/semantic_memory/semantic_memory.py)
</details>

# 记忆系统与数据流 (Episodic、Semantic、Short-Term)

## 概述与分层职责

MemMachine 的记忆系统以 `EpisodicMemory` 为顶层编排者，统一对外暴露 `add_message`、`search`、`delete` 等接口，并把数据流派发到三个具有不同生命周期与存储后端的子模块：短期记忆（Short-Term）、事件/情景记忆（Event Memory + Long-Term Memory）以及语义记忆（Semantic Memory）。`EpisodicMemory` 在构造时同步实例化这三个组件，从而形成"上下文缓冲 → 事件持久化 → 语义提炼"的处理链路 资料来源：[packages/server/src/memmachine_server/episodic_memory/episodic_memory.py:1-120]()。

- **Short-Term Memory**：进程内的工作记忆缓冲，保存最近若干条消息，供当前会话上下文读取 资料来源：[packages/server/src/memmachine_server/episodic_memory/short_term_memory/short_term_memory.py:1-80]()。
- **Episodic（Event + Long-Term）**：以图数据库（如 Neo4j）为骨干，辅以向量库；事件被切分、派生、聚类后写入长期图谱 资料来源：[packages/server/src/memmachine_server/episodic_memory/event_memory/event_memory.py:1-160]()。
- **Semantic Memory**：基于 episodic 事件，由 LLM 提炼为特征/事实条目并写入独立的特征库（feature store） 资料来源：[packages/server/src/memmachine_server/semantic_memory/semantic_memory.py:1-140]()。

## 写入路径：从消息到长期记忆

### 1. Short-Term 缓冲

`add_message` 调用首先把消息推入 `ShortTermMemory` 的环形上下文缓冲，以便同会话后续轮次直接复用；同时该缓冲也是后续分段（segmentation）的输入。短期缓冲遵循容量上限，超出时按 FIFO 淘汰最旧条目 资料来源：[packages/server/src/memmachine_server/episodic_memory/short_term_memory/short_term_memory.py:40-110]()。

### 2. Event Memory 切分与派生

`EventMemory` 把累积的消息交给 `TextSegmenter`，按时间或 token 阈值切成若干候选事件；随后 `TextDeriver` 使用 LLM 提炼出语义结构化的派生事件（derived events） 资料来源：[packages/server/src/memmachine_server/episodic_memory/event_memory/segmenter/text_segmenter.py:1-90]() 资料来源：[packages/server/src/memmachine_server/episodic_memory/event_memory/deriver/text_deriver.py:1-110]()。

### 3. Long-Term 持久化与图谱关联

派生事件被 `LongTermMemory` 写入后端图数据库，并维护"事件 ↔ 派生事件 ↔ 特征"的多跳关联关系；在长期记忆之上还维护向量索引用于相似度检索 资料来源：[packages/server/src/memmachine_server/episodic_memory/long_term_memory/long_term_memory.py:1-150]()。

```mermaid
flowchart LR
  A[add_message] --> B[ShortTermMemory]
  B --> C[TextSegmenter]
  C --> D[TextDeriver LLM]
  D --> E[LongTermMemory GraphDB]
  D --> F[SemanticMemory 特征库]
  E --> G[VectorStore 向量索引]
  F --> H[FeatureProfile]
```

## 读取路径：search 与语义召回

`search` 是统一查询入口。`EpisodicMemory` 并行执行两类检索：

1. **Episodic 检索**：`EventMemory` 在图数据库中按时间、标签与邻接关系召回事件，同时复用 `LongTermMemory` 的向量索引做相似度排序，返回最近上下文 资料来源：[packages/server/src/memmachine_server/episodic_memory/event_memory/event_memory.py:80-200]()。
2. **Semantic 检索**：`SemanticMemory` 按当前 session 与用户维度查询特征库，组合成"长期事实画像"返回 资料来源：[packages/server/src/memmachine_server/semantic_memory/semantic_memory.py:60-180]()。

两条结果流在 `EpisodicMemory.search` 末尾聚合为 `episodic_memory` 与 `semantic_memory` 两个字段回传给调用方。需要注意的是，社区曾报告 `MemMachineClient.search` 返回的 `semantic_memory` 始终为空（Issue #690），这通常源自客户端未正确开启语义通道或会话维度不匹配，而非服务端搜索逻辑缺失 资料来源：[packages/server/src/memmachine_server/semantic_memory/semantic_memory.py:120-160]()。

## 已知问题与扩展点

- **重复写入**：当客户端重发相同消息（如 Issue #640 中"My name is Christian"），现有特征去重仅依赖派生层；若 deriver 输出相同特征但缺乏幂等键，会出现 semantic 条目重复，需要在写入侧做特征指纹哈希 资料来源：[packages/server/src/memmachine_server/episodic_memory/event_memory/deriver/text_deriver.py:60-120]()。
- **LLM 失败导致死循环**：Issue #1270 指出，当 deriver 返回非法响应时 `semantic_ingestion` 可能被反复触发并消耗 token；应在调用层加重试上限与熔断 资料来源：[packages/server/src/memmachine_server/semantic_memory/semantic_memory.py:90-140]()。
- **后端可插拔**：Issue #1470 提议接入 Milvus 作为 `VectorStore` 后端，Issue #1324 提议用 Apache AGE 替换 Neo4j 以规避 GPLv3 许可；两者都通过抽象接口实现，不会改变上述数据流方向 资料来源：[packages/server/src/memmachine_server/episodic_memory/long_term_memory/long_term_memory.py:40-120]()。
- **并发竞争**：Issue #1468 揭示 `SQLiteVectorStore` 在 `delete` 与 `upsert` 竞态下因 `row_id` 复用而静默丢失向量；高并发场景建议使用带版本号的向量后端或外层事务封装 资料来源：[packages/server/src/memmachine_server/episodic_memory/long_term_memory/long_term_memory.py:100-160]()。

## 小结

MemMachine 的三层记忆遵循"短期缓冲 → 事件派生 → 长期图谱与语义特征"的单向写路径，并在读取时合并为 episodic 与 semantic 两条召回通道。理解 `EpisodicMemory` 的编排职责、各子模块的存储后端，以及社区中已暴露的语义去重、LLM 重试与并发竞争问题，有助于在自定义后端（如 Milvus / AGE）和高吞吐场景下安全扩展该数据流。

---

<a id='page-3'></a>

## 存储后端与数据抽象

### 相关页面

相关主题：[记忆系统与数据流 (Episodic、Semantic、Short-Term)](#page-2), [集成、SDK 与部署运维](#page-4)

<details>
<summary>相关源码文件</summary>

以下源码文件用于生成本页说明：

- [packages/server/src/memmachine_server/common/vector_store/vector_store.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_store/vector_store.py)
- [packages/server/src/memmachine_server/common/vector_store/qdrant_vector_store.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_store/qdrant_vector_store.py)
- [packages/server/src/memmachine_server/common/vector_store/sqlite_vector_store.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_store/sqlite_vector_store.py)
- [packages/server/src/memmachine_server/common/vector_store/sqlite_vec_vector_store.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_store/sqlite_vec_vector_store.py)
- [packages/server/src/memmachine_server/common/vector_store/vector_search_engine/hnswlib_engine.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_store/vector_search_engine/hnswlib_engine.py)
- [packages/server/src/memmachine_server/common/vector_graph_store/vector_graph_store.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_graph_store/vector_graph_store.py)
- [packages/server/src/memmachine_server/common/vector_graph_store/neo4j_vector_graph_store.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/common/vector_graph_store/neo4j_vector_graph_store.py)

</details>

# 存储后端与数据抽象

MemMachine 通过统一的抽象接口，将长期记忆相关的数据持久化与相似度检索解耦，使向量存储和图存储具备可插拔的后端实现能力。本页说明核心抽象类、当前已实现的后端、社区正在讨论的扩展方向，以及一处已知并发缺陷。

## 抽象层设计

`VectorStore` 抽象基类定义了事件驱动型长期记忆所需的核心 CRUD 与检索语义，所有具体后端都必须遵循其契约。该层向上为情景记忆（episodic memory）与语义记忆（semantic memory）提供统一的 `upsert()`、`search()`、`delete()` 等异步方法族，向下隐藏不同向量库的差异。资料来源：[packages/server/src/memmachine_server/common/vector_store/vector_store.py]()

`VectorGraphStore` 是与图记忆配套的图后端抽象层，它将情景记忆中对节点—边遍历与多跳查询的需求封装为统一的 `search()`、`add_*()` 等方法族，让上层不必关心底层是 Neo4j、Apache AGE 还是其它图数据库。资料来源：[packages/server/src/memmachine_server/common/vector_graph_store/vector_graph_store.py]()

这两个抽象层共同支撑了 MemMachine 的两层记忆模型：向量层负责相似度召回，图层负责关系建模与结构化遍历。

## 向量存储后端实现

当前 MemMachine 在 `common/vector_store/` 目录下已提供多类向量后端实现：

- **Qdrant**：通过 `QdrantVectorStore` 适配生产级分布式向量检索，是事件型长期记忆在高并发场景下的默认选项。资料来源：[packages/server/src/memmachine_server/common/vector_store/qdrant_vector_store.py]()
- **SQLite**：本地嵌入式方案，由 `SQLiteVectorStore` 承载，适合开发与最小化部署；v0.3.8 的 "Embedded VectorStore Implementation(s)" PR 进一步巩固了嵌入式路径。资料来源：[packages/server/src/memmachine_server/common/vector_store/sqlite_vector_store.py]() / [v0.3.8 release notes]()
- **sqlite-vec**：基于 SQLite 原生向量扩展的实现，由 `SQLiteVecVectorStore` 承载，提供更接近专用向量库的 ANN 语义而无需额外部署服务。资料来源：[packages/server/src/memmachine_server/common/vector_store/sqlite_vec_vector_store.py]()
- **Hnswlib**：作为进程内 ANN 引擎，由 `vector_search_engine/hnswlib_engine.py` 提供，常与 SQLite 等持久化后端配对使用，承担内存中的最近邻索引职责。资料来源：[packages/server/src/memmachine_server/common/vector_store/vector_search_engine/hnswlib_engine.py]()

## 图存储后端与社区诉求

默认的图后端基于 Neo4j Community Edition（`neo4j_vector_graph_store.py`），其 GPLv3 许可证成为 Apache 系商业分发的硬性阻断，社区已正式提交 feature request 提议引入 Apache AGE 作为可替代图后端，以便保留 Cypher 语义的同时摆脱 GPL 传染问题。资料来源：[packages/server/src/memmachine_server/common/vector_graph_store/neo4j_vector_graph_store.py]() / [Issue #1324: Add Apache AGE as an alternative graph backend]()

类似地，向量层社区也呼吁引入 Milvus / Milvus Lite / Zilliz Cloud 后端，覆盖那些已经拥有 Milvus 基础设施或希望在嵌入场景使用 Milvus Lite 的用户。资料来源：[Issue #1470: Add Milvus vector store backend]()

## 已知并发缺陷

在 `SQLiteVectorStore` 中，并发的 `delete()` 与 `upsert()` 可能因 `row_id` 复用而静默丢失一条刚写入的向量——行依然存在、待处理操作被标记为 `applied`，但向量字段已无可恢复数据。复现条件与时间序列在跟踪 issue 中有详细描述，建议在同一集合上避免写入与删除的并发执行，或在业务侧引入幂等键与重试以规避竞态。资料来源：[packages/server/src/memmachine_server/common/vector_store/sqlite_vector_store.py]() / [Issue #1468: SQLiteVectorStore row_id reuse + concurrent async writes silently lose a record's vector]()

## 数据流与扩展指引

新增后端的标准流程是：实现 `VectorStore` / `VectorGraphStore` 中规定的异步方法，并在对应配置注册点声明依赖与连接参数，即可被服务端读取与装配，从而使现有情景/语义记忆管线无需改动即可使用新的后端。

```mermaid
flowchart LR
    Client[MemMachine Client] --> Server[Server API]
    Server --> Episodic[情景记忆]
    Server --> Semantic[语义记忆]
    Episodic --> VS[VectorStore 抽象]
    Episodic --> VG[VectorGraphStore 抽象]
    Semantic --> VS
    VS --> Qdrant[Qdrant]
    VS --> SQLite[SQLite]
    VS --> SQLVec[sqlite-vec]
    VS --> Hnswlib[Hnswlib]
    VS -.-> Milvus[Milvus（拟）]
    VG --> Neo4j[Neo4j]
    VG -.-> AGE[Apache AGE（拟）]

---

<a id='page-4'></a>

## 集成、SDK 与部署运维

### 相关页面

相关主题：[概述与系统架构](#page-1), [存储后端与数据抽象](#page-3)

<details>
<summary>相关源码文件</summary>

以下源码文件用于生成本页说明：

- [packages/client/src/memmachine_client/client.py](https://github.com/MemMachine/MemMachine/blob/main/packages/client/src/memmachine_client/client.py)
- [packages/ts-client/src/client/memmachine-client.ts](https://github.com/MemMachine/MemMachine/blob/main/packages/ts-client/src/client/memmachine-client.ts)
- [packages/server/src/memmachine_server/server/api_v2/router.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/server/api_v2/router.py)
- [packages/server/src/memmachine_server/server/api_v2/mcp.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/server/api_v2/mcp.py)
- [packages/server/src/memmachine_server/server/mcp_stdio.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/server/mcp_stdio.py)
- [packages/server/src/memmachine_server/server/mcp_http.py](https://github.com/MemMachine/MemMachine/blob/main/packages/server/src/memmachine_server/server/mcp_http.py)
- [packages/server/openapi.json](https://github.com/MemMachine/MemMachine/blob/main/packages/server/openapi.json)
</details>

# 集成、SDK 与部署运维

MemMachine 是面向长上下文 AI 代理的事件回放型记忆系统。本页聚焦其对外集成面：Python/TypeScript 客户端 SDK、HTTP REST API、Model Context Protocol (MCP) 桥接、第三方代理框架集成，以及 CI/CD 中的部署运维要点。所有公共接口均由 `api_v2/router.py` 统一暴露，并由各自语言的客户端类封装。

## 客户端 SDK

### Python SDK (`MemMachineClient`)

Python 客户端以 `MemMachineClient` 类作为入口，封装会话与三类记忆 API。`client.py` 中的 `add()` 方法对应长期记忆写入，而 `search()` 同时返回 `episodic_memory` 与 `semantic_memory` 两个字段。社区问题 #690 曾报告 `semantic_memory` 始终为空，这通常源于摄入端未触发语义提取流水，而非客户端解析问题，使用时需确认调用顺序遵循「先 add 后 search」。资料来源：[packages/client/src/memmachine_client/client.py:1-120]()。

v0.3.9 文档明确推荐通过已发布的 pip 包安装 Python 客户端，取代早期从源码 editable install 的写法，避免依赖漂移。资料来源：[packages/client/src/memmachine_client/client.py:30-80]()。

### TypeScript SDK

TS 客户端导出 `MemMachineClient` 类型，封装与 Python 版一致的 HTTP 调用。其内部使用 `fetch` 适配层，在 HTTPS 代理环境下会自动选择合适的底层实现（在 PR #1369 中针对 #1269 修复），确保 Node.js 与浏览器两端都能跨代理正常工作。资料来源：[packages/ts-client/src/client/memmachine-client.ts:1-200]()。

TS 客户端在 v0.3.7 起列为推荐浏览器/前端绑定入口，与社区 #148「前端 SDK 路线图」中提出的 React 绑定演进保持一致。

## 服务器 API 与 MCP 集成

### REST 路由 (`api_v2/router.py`)

`router.py` 是 HTTP 面与 MCP 面的统一注册点：它挂载 OpenAPI 文档、版本化 REST 端点 (`/api/v2/...`)，并通过 `include_router()` 引入 MCP 子路由器。`openapi.json` 由 CI 在每次合并后自动重新生成（见 v0.3.6、v0.3.8 release notes）。资料来源：[packages/server/src/memmachine_server/server/api_v2/router.py:1-160]()。

### MCP 桥接

| 文件 | 传输模式 | 适用场景 |
| --- | --- | --- |
| `mcp.py` | 路由挂载 | FastAPI 内部子应用注册 |
| `mcp_stdio.py` | stdio | 本地 IDE / Claude Desktop 直接调用 |
| `mcp_http.py` | streamable HTTP | 远程或容器化代理调用 |

`mcp.py` 在 `router.py` 中通过 `mount` 注入，确保 MCP 与 REST 共用同一份业务状态。`mcp_http.py` 与 `mcp_stdio.py` 各自负责其传输差异化的握手与会话保活。资料来源：[packages/server/src/memmachine_server/server/api_v2/mcp.py:1-120]() / [packages/server/src/memmachine_server/server/mcp_stdio.py:1-80]() / [packages/server/src/memmachine_server/server/mcp_http.py:1-80]()。

## 第三方框架集成

### Strands Agents 桥接 (v0.3.7)

v0.3.7 起官方维护 `strands-memmachine` 集成（PR #1330），把记忆读写直接绑定到 Strands Agent 的 `callbacks`，在 ReAct / 工具调用步骤前后自动写入 episodic memory。Strands 用户只需在 Agent 构造中传入 `memory=MemMachine(...)` 即可。

### 生态扩展点

社区正在评估 Apache AGE 作为 episodic 图后端（#1324）和 Milvus 向量库后端（#1470）。两者均以 `VectorStore` / 图存储抽象为接缝接入，不影响上层 SDK 的调用方式。这意味着即使后端替换，SDK 集成代码无需改动，只需调整服务端的配置文件。资料来源：[packages/server/src/memmachine_server/server/api_v2/router.py:80-160]()。

## 部署运维要点

1. **OpenAPI 同步**：服务端 `openapi.json` 由 GitHub Actions 自动重新生成并随 release 发布（PR #1237 / #1385）。集成方应以仓库内最新版本为准生成类型 stub。资料来源：[packages/server/openapi.json:1-40]()。

2. **后端依赖许可**：默认 Neo4j Community 为 GPLv3，部分商业分发受限。若需闭源打包，应切换至 #1324 中提议的 Apache AGE 图库。

3. **异步并发可靠性**：在嵌入式 SQLite 向量库下，删除与 upsert 同集合并发时会因 `row_id` 复用静默丢失向量（#1468）。生产部署若选用 SQLite 后端，应在 SQLiteVectorStore 层配以显式事务或迁移到独立的 Qdrant/Milvus 实例。资料来源：[packages/client/src/memmachine_client/client.py:120-200]()。

4. **依赖更新**：Dependabot 持续维护 `authlib`、`pytest` 等关键依赖（如 v0.3.5 / v0.3.7 升级），部署前应固定锁文件版本。

5. **安全修复**：v0.3.4 修复了归档路径遍历漏洞（PR #1287），升级部署需确保命中该补丁版本。

```mermaid
flowchart LR
  App[应用/Agent] -->|MemMachineClient| SDK[Python/TS SDK]
  SDK -->|HTTP/JSON| Router[api_v2/router.py]
  Router --> REST[/REST endpoints/]
  Router --> MCP[MCP stdio / HTTP]
  Router --> Mem[(Long-term Memory: episodic + semantic)]

---

<!-- evidence_pipeline_checked: true -->
<!-- evidence_injected: true -->

---

## Doramagic 踩坑日志

项目：MemMachine/MemMachine

摘要：发现 12 个潜在踩坑项，其中 3 个为 high/blocking；最高优先级：安装坑 - 来源证据：[Feat]: Add Apache AGE as an alternative graph backend for episodic memory。

## 1. 安装坑 · 来源证据：[Feat]: Add Apache AGE as an alternative graph backend for episodic memory

- 严重度：high
- 证据强度：source_linked
- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Feat]: Add Apache AGE as an alternative graph backend for episodic memory
- 对用户的影响：可能阻塞安装或首次运行。
- 证据：community_evidence:github | https://github.com/MemMachine/MemMachine/issues/1324 | 来源讨论提到 docker 相关条件，需在安装/试用前复核。

## 2. 配置坑 · 来源证据：[Bug]: MemMachineClient does not return semantic memory when calling search.

- 严重度：high
- 证据强度：source_linked
- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug]: MemMachineClient does not return semantic memory when calling search.
- 对用户的影响：可能增加新用户试用和生产接入成本。
- 证据：community_evidence:github | https://github.com/MemMachine/MemMachine/issues/690 | 来源讨论提到 python 相关条件，需在安装/试用前复核。

## 3. 配置坑 · 来源证据：[Bug]: Semantic messages duplication

- 严重度：high
- 证据强度：source_linked
- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug]: Semantic messages duplication
- 对用户的影响：可能增加新用户试用和生产接入成本。
- 证据：community_evidence:github | https://github.com/MemMachine/MemMachine/issues/640 | 来源类型 github_issue 暴露的待验证使用条件。

## 4. 安装坑 · 来源证据：SQLiteVectorStore: row_id reuse + concurrent async writes silently lose a record's vector

- 严重度：medium
- 证据强度：source_linked
- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：SQLiteVectorStore: row_id reuse + concurrent async writes silently lose a record's vector
- 对用户的影响：可能增加新用户试用和生产接入成本。
- 证据：community_evidence:github | https://github.com/MemMachine/MemMachine/issues/1468 | 来源讨论提到 python 相关条件，需在安装/试用前复核。

## 5. 能力坑 · 能力判断依赖假设

- 严重度：medium
- 证据强度：source_linked
- 发现：README/documentation is current enough for a first validation pass.
- 对用户的影响：假设不成立时，用户拿不到承诺的能力。
- 证据：capability.assumptions | https://github.com/MemMachine/MemMachine | README/documentation is current enough for a first validation pass.

## 6. 维护坑 · 维护活跃度未知

- 严重度：medium
- 证据强度：source_linked
- 发现：未记录 last_activity_observed。
- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。
- 证据：evidence.maintainer_signals | https://github.com/MemMachine/MemMachine | last_activity_observed missing

- 严重度：medium
- 证据强度：source_linked
- 发现：no_demo
- 证据：downstream_validation.risk_items | https://github.com/MemMachine/MemMachine | no_demo; severity=medium

## 8. 安全/权限坑 · 存在评分风险

- 严重度：medium
- 证据强度：source_linked
- 发现：no_demo
- 对用户的影响：风险会影响是否适合普通用户安装。
- 证据：risks.scoring_risks | https://github.com/MemMachine/MemMachine | no_demo; severity=medium

## 9. 安全/权限坑 · 来源证据：[Bug]: Dead loop to trigger memmachine_server.semantic_memory.semantic_ingestion when LLM reponse is invalid

- 严重度：medium
- 证据强度：source_linked
- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[Bug]: Dead loop to trigger memmachine_server.semantic_memory.semantic_ingestion when LLM reponse is invalid
- 对用户的影响：可能影响授权、密钥配置或安全边界。
- 证据：community_evidence:github | https://github.com/MemMachine/MemMachine/issues/1270 | 来源讨论提到 docker 相关条件，需在安装/试用前复核。

## 10. 安全/权限坑 · 来源证据：[Feat]: Add Milvus vector store backend

- 严重度：medium
- 证据强度：source_linked
- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[Feat]: Add Milvus vector store backend
- 对用户的影响：可能影响授权、密钥配置或安全边界。
- 证据：community_evidence:github | https://github.com/MemMachine/MemMachine/issues/1470 | 来源类型 github_issue 暴露的待验证使用条件。

## 11. 维护坑 · issue/PR 响应质量未知

- 严重度：low
- 证据强度：source_linked
- 发现：issue_or_pr_quality=unknown。
- 对用户的影响：用户无法判断遇到问题后是否有人维护。
- 证据：evidence.maintainer_signals | https://github.com/MemMachine/MemMachine | issue_or_pr_quality=unknown

## 12. 维护坑 · 发布节奏不明确

- 严重度：low
- 证据强度：source_linked
- 发现：release_recency=unknown。
- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。
- 证据：evidence.maintainer_signals | https://github.com/MemMachine/MemMachine | release_recency=unknown

<!-- canonical_name: MemMachine/MemMachine; human_manual_source: deepwiki_human_wiki -->
