← Back to Plugins
Tools

Memory Mimir

TripleWhite By TripleWhite 👁 2 views ▲ 0 votes

OpenClaw plugin for Mimir unified memory system

GitHub

Install

npm install
npm

Configuration Example

{
  "mimirUrl": "http://localhost:8766",
  "userId": "your-user-id",
  "groupId": "your-group-id",
  "autoRecall": true,
  "autoCapture": true,
  "maxRecallItems": 8,
  "maxRecallTokens": 2000
}

README

# memory-mimir

OpenClaw plugin that connects to [Mimir](https://github.com/TripleWhite/Mimir-Go) โ€” a unified long-term memory engine. Gives your OpenClaw agent persistent, searchable memory across sessions.

## How It Works

```
User message โ†’ auto-recall (search Mimir) โ†’ inject <memories> โ†’ Agent runs โ†’ auto-capture (ingest new messages)
```

**Auto-recall**: Before each agent turn, extracts keywords from the user message (supports English + CJK), searches Mimir with agentic retrieval, and injects the most relevant memories into the LLM context.

**Auto-capture**: After each agent turn, incrementally captures new conversation messages and sends them to Mimir for extraction (episodes, entities, relations, events).

## Features

- Agentic search with query classification and strategy routing
- CJK (Chinese/Japanese/Korean) keyword extraction
- Time range extraction from natural language ("last week", "ๆ˜จๅคฉ")
- Score-ordered compact memory formatting (2000 char budget)
- Incremental capture โ€” no duplicate ingestion across agent turns
- Two tool definitions: `mimir_search` and `mimir_ingest` for manual use

## Setup

### Prerequisites

A running [Mimir](https://github.com/TripleWhite/Mimir-Go) server.

### Install

```bash
npm install
npm run build
```

### Configure

In your OpenClaw plugin config:

```json
{
  "mimirUrl": "http://localhost:8766",
  "userId": "your-user-id",
  "groupId": "your-group-id",
  "autoRecall": true,
  "autoCapture": true,
  "maxRecallItems": 8,
  "maxRecallTokens": 2000
}
```

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `mimirUrl` | string | โ€” | Mimir server URL |
| `userId` | string | โ€” | User ID for memory isolation |
| `groupId` | string | โ€” | Group ID for memory scoping |
| `autoRecall` | boolean | `true` | Inject memories before each turn |
| `autoCapture` | boolean | `true` | Capture conversations after each turn |
| `maxRecallItems` | number | `8` | Max memory items per recall |
| `maxRecallTokens` | number | `2000` | Max chars for memory context |

## Architecture

```
memory-mimir (this plugin)          Mimir-Go (engine)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  extractKeywords()  โ”‚            โ”‚  Agentic Search      โ”‚
โ”‚  extractTimeRange() โ”‚โ”€โ”€searchโ”€โ”€โ†’ โ”‚  โ”œโ”€ Query Analyzer   โ”‚
โ”‚  formatResults()    โ”‚โ†โ”€resultsโ”€โ”€ โ”‚  โ”œโ”€ BM25 + Vector    โ”‚
โ”‚                     โ”‚            โ”‚  โ””โ”€ Graph Traverse   โ”‚
โ”‚  auto-capture       โ”‚โ”€โ”€ingestโ”€โ”€โ†’ โ”‚  Pipeline            โ”‚
โ”‚  (incremental)      โ”‚            โ”‚  โ”œโ”€ Narrative Extract โ”‚
โ”‚                     โ”‚            โ”‚  โ””โ”€ Graph Extract    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

## Development

```bash
# Run tests
npm test

# Build
npm run build
```

## License

MIT
tools

Comments

Sign in to leave a comment

Loading comments...