MemOS Documentation

Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings

10,632 stars TypeScript TypeScript 1 file Β· ~4,440 tokens #agent#agentic-ai#ai#ai-agents#chatgpt#claude#hermes#llm
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy MemOS on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name memos -p 5230:5230 --restart always neosmemo/memos:stable
Configured Services & Ports
βš™οΈ memos
image: neosmemo/memos:stable
πŸ”Œ Ports: 5230:5230
docker-compose.yml
yaml (docker-compose.yml)
services:
  memos:
    image: neosmemo/memos:stable
    container_name: memos
    volumes:
      - ~/.memos/:/var/opt/memos
    ports:
      - 5230:5230

1. Project Overview & Quickstart (MemTensor/MemOS)

[!TIP]
New: Connect MemOS to DeepSeek Harness (dsh)

Add automatic recall, background capture, hybrid retrieval, and a local Memory Viewer to DeepSeek Harnessβ€”powered by the same MemOS core used across agent ecosystems.

Get started β†’


πŸ‘Ύ MemOS: Memory Operating System for LLM & AI Agents

MemOS is a Memory Operating System for LLMs and AI agents that unifies store / retrieve / manage for long-term memory, enabling context-aware and personalized interactions with KB, multi-modal, tool memory, and enterprise-grade optimizations built in.

Key Features

  • Unified Memory API: A single API to add, retrieve, edit, and delete memoryβ€”structured as a graph, inspectable and editable by design, not a black-box embedding store.
  • Multi-Modal Memory: Natively supports text, images, tool traces, and personas, retrieved and reasoned together in one memory system.
  • Multi-Cube Knowledge Base Management: Manage multiple knowledge bases as composable memory cubes, enabling isolation, controlled sharing, and dynamic composition across users, projects, and agents.
  • Asynchronous Ingestion via MemScheduler: Run memory operations asynchronously with millisecond-level latency for production stability under high concurrency.
  • Memory Feedback & Correction: Refine memory with natural-language feedbackβ€”correcting, supplementing, or replacing existing memories over time.

News

  • 2026-08-17 Β· πŸ‹ MemOS Connects with DeepSeek Harness
    MemOS now brings persistent memory to DeepSeek Harness through both local and cloud plugins. DSH can automatically recall relevant context before a task and retain new experience after a successful turn, without modifying its core.

  • 2026-07-02 Β· πŸ† MemOS Advances Agent and User Memory Benchmarks
    With MemOS, OpenClaw improves average task completion from 36.63% to 50.87% across five agent tasks. MemOS also achieves 88.83 on LoCoMo and 89.20 on LongMemEval, and leads in OmniMemEval, a unified evaluation of 14 commercial memory products across ten datasets.

  • 2026-05-09 Β· 🧠 memos-local-plugin 2.0
    Official local memory plugin for Hermes Agent and OpenClaw. One core powers self-evolving memory across L1 traces, L2 policies, L3 world models, and crystallized Skills, with local-first storage and feedback-driven retrieval.

  • 2026-04-10 Β· πŸ‘§πŸ» MemOS Hermes Agent Local Plugin
    Official Hermes Agent memory plugins launched: Hybrid retrieval (FTS5 + vector), smart dedup, tiered skill evolution, multi-agent collaboration. 100% local, zero cloud dependency.

  • 2026-03-08 Β· 🦞 MemOS OpenClaw Plugin β€” Cloud & Local
    Official OpenClaw memory plugins launched. Cloud Plugin: hosted memory service with 72% lower token usage and multi-agent memory sharing (MemOS-Cloud-OpenClaw-Plugin). Local Plugin (v1.0.0): 100% on-device memory with persistent SQLite, hybrid search (FTS5 + vector), task summarization & skill evolution, multi-agent collaboration, and a full Memory Viewer dashboard.

πŸ“Š Performance

MemOS leads across multiple benchmarks β€” evaluated against mainstream commercial memory products across 5 user memory and 5 agent memory tasks.

Benchmark Score
LoCoMo 88.83
LongMemEval 89.20
PersonaMem v2 40.58
HaluMem 80.91
BEAM-10M 56.75
GDPVal 62.07
LiveCodeBench 64.96
OmniMath 61.00
SWE-Bench 38.46
BrowseComp-Plus 23.85

Evaluated via OmniMemEval β€” https://github.com/MemTensor/OmniMemEval.

🎯 What MemOS Is For

MemOS gives AI agents long-term memory. Common uses:

  • AI assistants with consistent, context-rich conversations
  • Customer support that recalls past tickets and user history
  • Personalized agents that adapt to individual preferences
  • Multi-agent collaboration with shared or isolated memory

πŸš€ Quick Start

MemOS is built around four entry points. Pick the one that matches your scenario.

Cloud API Self-Host MemOS Cloud Plugin Local Plugin
Best for Your app, fully managed Teams on own infra OpenClaw users, zero ops DeepSeek Harness, Hermes, or OpenClaw; on-device
Setup Get an API key docker compose up openclaw plugins install npm install + agent-specific setup
Infra needed None (hosted) Neo4j + Qdrant None (uses MemOS Cloud) None (local SQLite)
Data lives MemOS Cloud Your servers MemOS Cloud Your machine

☁️ Use the Cloud API (Hosted)

You want to add memory to your app through a fully managed service β€” no infrastructure to run.

1. Get an API key:

  • Sign up on the MemOS dashboard.
  • Go to API Keys and copy your key (starts with mpg-). Keep it server-side.

2. Add and search memories:

python
import requests

API_KEY = "mpg-..."                  # keep this server-side
base = "https://memos.memtensor.cn/api/openmem/v1"
headers = {"Authorization": f"Token {API_KEY}", "Content-Type": "application/json"}

# 1. Add a memory
requests.post(f"{base}/add/message", headers=headers, json={
    "user_id": "alice",
    "conversation_id": "conv_001",
    "messages": [{"role": "user", "content": "I like strawberry"}],
})

# 2. Search memories
res = requests.post(f"{base}/search/memory", headers=headers, json={
    "query": "What do I like?",
    "user_id": "alice",
})
print(res.json())

Next steps:

πŸ–₯️ Self-Host the MemOS Service

You want to run MemOS as a REST service on your own machine or cluster.

Option A β€” Docker (recommended):

bash
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
cp docker/.env.example .env          # fill in your API keys in .env
cd docker
docker compose up                    # starts MemOS API + Neo4j + Qdrant

The API is served at http://localhost:8000.

Option B β€” Run with uvicorn (without Docker):

bash
git clone https://github.com/MemTensor/MemOS.git
cd MemOS
cp docker/.env.example .env          # fill in your API keys in .env
# Ensure Neo4j and Qdrant are running, then:
cd src
uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8000 --workers 1

See [docker/.env.example](./docker/.env.example) for all configuration options (LLM provider, embedder, vector DB, graph DB, scheduler). The full deployment guide is at https://memos-docs.openmem.net/open_source/getting_started/rest_api_server/.

Try the API:

python
import requests, json

headers = {"Content-Type": "application/json"}
base = "http://localhost:8000/product"

# 1. Create a memory cube
requests.post(f"{base}/create_cube", headers=headers, data=json.dumps({
    "cube_name": "Alice's memory",
    "owner_id": "alice",
    "cube_id": "alice_cube",
}))

# 2. Add a memory
requests.post(f"{base}/add", headers=headers, data=json.dumps({
    "user_id": "alice",
    "writable_cube_ids": ["alice_cube"],
    "messages": [{"role": "user", "content": "I like strawberry"}],
    "async_mode": "sync",
}))

# 3. Search memories
res = requests.post(f"{base}/search", headers=headers, data=json.dumps({
    "query": "What do I like?",
    "user_id": "alice",
    "readable_cube_ids": ["alice_cube"],
}))
print(res.json())

🧠 MemOS Plugin: Persistent Memory for Your AI Agents ✨

MemOS gives OpenClaw, Hermes, and DeepSeek Harness a shared local memory core; the managed MemOS Cloud Plugin is available for OpenClaw and DeepSeek Harness πŸƒπŸ»

πŸ”Œ Plugin πŸ’‘ Core Features 🧩 Resources
🧠 memos-local-plugin 2.0 🌐 Website Β· πŸ“– Docs Β· πŸ™ GitHub Β· πŸ“¦ NPM
☁️ MemOS Cloud Plugin πŸ–₯️ MemOS Dashboard Β· πŸ“– Full Tutorial

1. MemOS Cloud Plugin

Use MemOS Cloud for persistent memory in OpenClaw or DeepSeek Harness β€” no infrastructure to run.

Install:

bash
openclaw plugins install @memtensor/memos-cloud-openclaw-plugin@latest
openclaw gateway restart

The plugin recalls memories from MemOS Cloud before each agent run and saves new messages back after the run ends.

DeepSeek Harness

Connect DeepSeek Harness to MemOS Cloud through its native plugin mechanism. Before the first model step of each user request, the plugin recalls relevant cloud memories; after a successful turn, it saves the new user and assistant messages back to MemOS Cloud.

  1. Create a MemOS API Key.

  2. Install the cloud plugin into the default DSH web profile:

    bash
    npx @deepseek-ai/dsh plugin --profile web add @memtensor/memos-cloud-dsh-plugin@latest
  3. Add the API Key to ~/.dsh/.credentials.yaml:

    yaml
    MEMOS_API_KEY: mpg-your-key
  4. Add the minimal plugin configuration to ~/.dsh/settings.yaml:

    yaml
    memos-cloud:
      apiKeyEnv: MEMOS_API_KEY
  5. Restart the DSH Web profile:

    bash
    npx @deepseek-ai/dsh web

The cloud plugin is fail-open: a temporary MemOS Cloud outage does not interrupt the current DSH task.

2. Local Plugin (OpenClaw, Hermes, and DeepSeek Harness)

You use DeepSeek Harness, Hermes Agent, or OpenClaw and want 100% on-device memory β€” nothing leaves your machine.

Install for DeepSeek Harness (macOS / Linux):

bash
curl -fsSL https://raw.githubusercontent.com/MemTensor/MemOS/main/apps/memos-local-plugin/install.sh | bash -s -- --agent dsh --profile web

Install for OpenClaw or Hermes (macOS / Linux):

bash
curl -fsSL https://raw.githubusercontent.com/MemTensor/MemOS/main/apps/memos-local-plugin/install.sh | bash

Install (Windows PowerShell):

powershell
irm https://raw.githubusercontent.com/MemTensor/MemOS/main/apps/memos-local-plugin/install.ps1 -OutFile "$env:TEMP\memos-install.ps1"; powershell -ExecutionPolicy Bypass -File "$env:TEMP\memos-install.ps1"

Requires Node.js and an already-installed DeepSeek Harness, OpenClaw, or Hermes. The installer deploys MemOS to the selected agent runtime; the DeepSeek Harness target installs it as an out-of-tree DSH bundle, while the OpenClaw and Hermes targets write the initial config.yaml in their respective agent homes.

Features: hybrid retrieval (FTS5 + vector), smart dedup, tiered skill evolution (L1 traces / L2 policies / L3 world model), multi-agent collaboration, local-first SQLite storage.

🀝 Community

πŸ“š Citation

If you use MemOS in your research, please cite:

bibtex
@article{li2025memos_long,
  title={MemOS: A Memory OS for AI System},
  author={Li, Zhiyu and Song, Shichao and Xi, Chenyang and Wang, Hanyu and Tang, Chen and Niu, Simin and Chen, Ding and Yang, Jiawei and Li, Chunyu and Yu, Qingchen and Zhao, Jihao and Wang, Yezhaohui and Liu, Peng and Lin, Zehao and Wang, Pengyuan and Huo, Jiahao and Chen, Tianyi and Chen, Kai and Li, Kehang and Tao, Zhen and Ren, Junpeng and Lai, Huayi and Wu, Hao and Tang, Bo and Wang, Zhenren and Fan, Zhaoxin and Zhang, Ningyu and Zhang, Linfeng and Yan, Junchi and Yang, Mingchuan and Xu, Tong and Xu, Wei and Chen, Huajun and Wang, Haofeng and Yang, Hongkang and Zhang, Wentao and Xu, Zhi-Qin John and Chen, Siheng and Xiong, Feiyu},
  journal={arXiv preprint arXiv:2507.03724},
  year={2025},
  url={https://arxiv.org/abs/2507.03724}
}

@article{li2025memos_short,
  title={MemOS: An Operating System for Memory-Augmented Generation (MAG) in Large Language Models},
  author={Li, Zhiyu and Song, Shichao and Wang, Hanyu and Niu, Simin and Chen, Ding and Yang, Jiawei and Xi, Chenyang and Lai, Huayi and Zhao, Jihao and Wang, Yezhaohui and others},
  journal={arXiv preprint arXiv:2505.22101},
  year={2025},
  url={https://arxiv.org/abs/2505.22101}
}

βš–οΈ License

MemOS is licensed under the Apache 2.0 License.

2. Official Technical Reference & Guides (MemTensor/MemOS-docs)

MemOS Docs

This repository contains the documentation website for MemOS project.

Project Structure

text
MemOS-Docs/
β”œβ”€β”€ app/                    # Main application code
β”‚   β”œβ”€β”€ components/        # Vue components
β”‚   β”œβ”€β”€ composables/       # Vue composables
β”‚   β”œβ”€β”€ pages/            # Vue pages and routing
β”‚   └── assets/           # Static assets like CSS
β”œβ”€β”€ content/              # Documentation content
β”‚   β”œβ”€β”€ en/              # English documentation
β”‚   β”œβ”€β”€ cn/              # Chinese documentation
β”‚   └── api.json         # OpenAPI Documentation
β”œβ”€β”€ public/              # Public static assets
β”‚   └── assets/         # Images and other media
β”œβ”€β”€ envConfig/          # Environment configurations
β”‚   β”œβ”€β”€ config.dev.ts   # Development config
β”‚   β”œβ”€β”€ config.pre.ts   # Pre-production config
β”‚   └── config.prod.ts  # Production config
β”œβ”€β”€ i18n/               # Internationalization
β”‚   └── locales/       # Translation files
└── nuxt.config.ts     # Nuxt configuration

Features

  • πŸ“ Markdown-based documentation
  • 🌐 Multi-language support (English & Chinese)
  • πŸ” Full-text search
  • πŸ“± Mobile-friendly responsive design
  • ⚑️ Fast static site generation

Setup

Make sure to install the dependencies:

bash
pnpm install

Development

Start the development server on http://localhost:3000:

bash
pnpm dev

Build

Build the documentation site:

bash
# Build with default settings (en locale, dev environment)
pnpm run publish

# Build for specific environment
pnpm run publish --env=prod

Environment Configuration

The project supports different environments:

  • dev: Development environment
  • pre: Pre-production environment
  • prod: Production environment

Configure environment-specific settings in envConfig/config.[env].ts.

Writing Documentation

Documentation is written in Markdown format and organized by language:

  • English docs: content/en/
  • Chinese docs: content/cn/

Navigation structure is defined in content/[lang]/settings.yml.

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request