# openmemind/memind architecture

> Architecture diagram of the GitHub repository openmemind/memind, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/openmemind/memind
- Repository: https://github.com/openmemind/memind

## Overview

Memind is a self-evolving memory and context engine for AI applications and agents. Its documented workflow ingests conversations and other context, turns it into structured memories and evolving insights, graphs, and threads, then retrieves relevant context through REST, MCP, SDKs, and integrations. The graph preserves these distinct domain stages and the admin UI and benchmark capability. Edges are based on README descriptions or visible source calls; unsampled subsystems are represented only where the README supports them.

Main entry points: [`memind-server/src/main/java/com/openmemind/ai/memory/server/controller/openapi/OpenMemoryQueryController.java`](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/controller/openapi/OpenMemoryQueryController.java) (Memind server), [`memind-ui/src/App.tsx`](https://github.com/openmemind/memind/blob/main/memind-ui/src/App.tsx) (Admin UI), [`memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryItem.java`](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryItem.java) (Memory items), [`memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryRawData.java`](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryRawData.java) (Raw context)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["Product interfaces"]
  node_server["Memind server"]
  node_mcp["MCP tools"]
end

subgraph group_memory["Memory processing"]
  node_raw["Raw context<br/>[MemoryRawData.java]"]
  node_extraction["Extraction"]
  node_items["Memory items<br/>[MemoryItem.java]"]
  node_insights["Insight trees<br/>[InsightLayer.java]"]
  node_graph["Memory graph"]
  node_threads["Memory threads"]
end

subgraph group_recall["Context retrieval"]
  node_retrieval["Context retrieval"]
  node_assets["Memory assets API"]
end

subgraph group_operations["Operations and evaluation"]
  node_admin["Admin UI<br/>[App.tsx]"]
  node_dashboard["Dashboard queries"]
  node_insight_query["Insight queries"]
  node_graph_query["Graph queries"]
  node_thread_query["Thread queries"]
  node_benchmark["Benchmark pipeline"]
end

subgraph group_ecosystem["Client ecosystem"]
  node_sdk["API clients<br/>[client.go]"]
  node_plugins["Agent plugins<br/>[client.ts]"]
end

node_agent(("AI application"))

node_agent -->|"submits context"| node_server
node_agent -->|"requests recall"| node_server
node_server -->|"ingests sources"| node_raw
node_raw -->|"extracts memories"| node_extraction
node_extraction -->|"structures context"| node_items
node_items -->|"distills insights"| node_insights
node_items -->|"materializes links"| node_graph
node_items -->|"groups episodes"| node_threads
node_server -->|"assembles context"| node_retrieval
node_retrieval -->|"returns context"| node_agent
node_mcp -.->|"exposes assets"| node_assets
node_sdk -.->|"calls API"| node_server
node_plugins -.->|"integrates API"| node_server
node_admin -.->|"views dashboard"| node_dashboard
node_admin -.->|"views insights"| node_insight_query
node_admin -.->|"explores graph"| node_graph_query
node_admin -.->|"views threads"| node_thread_query
node_benchmark -->|"evaluates answers"| node_agent

click node_server "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/controller/openapi/OpenMemoryQueryController.java"
click node_mcp "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/mcp/MemindMcpToolService.java"
click node_sdk "https://github.com/openmemind/memind/blob/main/memind-clients/go/client.go"
click node_plugins "https://github.com/openmemind/memind/blob/main/memind-integrations/openclaw/src/client.ts"
click node_raw "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryRawData.java"
click node_extraction "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/DefaultMemoryExtractor.java"
click node_items "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryItem.java"
click node_insights "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/insight/InsightLayer.java"
click node_graph "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/retrieval/graph/GraphExpansionEngine.java"
click node_threads "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/thread/ThreadDecisionEngine.java"
click node_retrieval "https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/builder/MemoryRetrievalAssembler.java"
click node_assets "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/memory/OpenMemoryAssetQueryService.java"
click node_admin "https://github.com/openmemind/memind/blob/main/memind-ui/src/App.tsx"
click node_dashboard "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/dashboard/DashboardQueryService.java"
click node_insight_query "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/insight/InsightQueryService.java"
click node_graph_query "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/itemgraph/ItemGraphQueryService.java"
click node_thread_query "https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/memorythread/MemoryThreadQueryService.java"
click node_benchmark "https://github.com/openmemind/memind/blob/main/memind-evaluation/src/main/java/com/openmemind/ai/memory/evaluation/pipeline/BenchmarkPipeline.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_mcp toneBlue
class node_raw,node_extraction,node_items,node_insights,node_graph,node_threads toneAmber
class node_retrieval,node_assets toneMint
class node_admin,node_dashboard,node_insight_query,node_graph_query,node_thread_query,node_benchmark toneRose
class node_sdk,node_plugins,node_agent toneIndigo
```

## Components

### Product interfaces

- [Memind server](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/controller/openapi/OpenMemoryQueryController.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/controller/openapi/OpenMemoryQueryController.java`
- [MCP tools](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/mcp/MemindMcpToolService.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/mcp/MemindMcpToolService.java`

### Memory processing

- [Raw context](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryRawData.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryRawData.java`
- [Extraction](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/DefaultMemoryExtractor.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/DefaultMemoryExtractor.java`
- [Memory items](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryItem.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/data/MemoryItem.java`
- [Insight trees](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/insight/InsightLayer.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/insight/InsightLayer.java`
- [Memory graph](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/retrieval/graph/GraphExpansionEngine.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/retrieval/graph/GraphExpansionEngine.java`
- [Memory threads](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/thread/ThreadDecisionEngine.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/thread/ThreadDecisionEngine.java`

### Context retrieval

- [Context retrieval](https://github.com/openmemind/memind/blob/main/memind-core/src/main/java/com/openmemind/ai/memory/core/builder/MemoryRetrievalAssembler.java): `memind-core/src/main/java/com/openmemind/ai/memory/core/builder/MemoryRetrievalAssembler.java`
- [Memory assets API](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/memory/OpenMemoryAssetQueryService.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/service/memory/OpenMemoryAssetQueryService.java`

### Operations and evaluation

- [Admin UI](https://github.com/openmemind/memind/blob/main/memind-ui/src/App.tsx): `memind-ui/src/App.tsx`
- [Dashboard queries](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/dashboard/DashboardQueryService.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/service/dashboard/DashboardQueryService.java`
- [Insight queries](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/insight/InsightQueryService.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/service/insight/InsightQueryService.java`
- [Graph queries](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/itemgraph/ItemGraphQueryService.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/service/itemgraph/ItemGraphQueryService.java`
- [Thread queries](https://github.com/openmemind/memind/blob/main/memind-server/src/main/java/com/openmemind/ai/memory/server/service/memorythread/MemoryThreadQueryService.java): `memind-server/src/main/java/com/openmemind/ai/memory/server/service/memorythread/MemoryThreadQueryService.java`
- [Benchmark pipeline](https://github.com/openmemind/memind/blob/main/memind-evaluation/src/main/java/com/openmemind/ai/memory/evaluation/pipeline/BenchmarkPipeline.java): `memind-evaluation/src/main/java/com/openmemind/ai/memory/evaluation/pipeline/BenchmarkPipeline.java`

### Client ecosystem

- [API clients](https://github.com/openmemind/memind/blob/main/memind-clients/go/client.go): `memind-clients/go/client.go`
- [Agent plugins](https://github.com/openmemind/memind/blob/main/memind-integrations/openclaw/src/client.ts): `memind-integrations/openclaw/src/client.ts`

### Other components

- **AI application**

## Connections

- AI application → Memind server: submits context
- AI application → Memind server: requests recall
- Memind server → Raw context: ingests sources
- Raw context → Extraction: extracts memories
- Extraction → Memory items: structures context
- Memory items → Insight trees: distills insights
- Memory items → Memory graph: materializes links (evidence: `memind-core/src/main/java/com/openmemind/ai/memory/core/retrieval/graph/GraphExpansionEngine.java`)
- Memory items → Memory threads: groups episodes (evidence: `memind-core/src/main/java/com/openmemind/ai/memory/core/extraction/thread/ThreadDecisionEngine.java`)
- Memind server → Context retrieval: assembles context
- Context retrieval → AI application: returns context
- MCP tools → Memory assets API: exposes assets
- API clients → Memind server: calls API
- Agent plugins → Memind server: integrates API
- Admin UI → Dashboard queries: views dashboard
- Admin UI → Insight queries: views insights
- Admin UI → Graph queries: explores graph
- Admin UI → Thread queries: views threads
- Benchmark pipeline → AI application: evaluates answers (evidence: `memind-evaluation/src/main/java/com/openmemind/ai/memory/evaluation/pipeline/BenchmarkPipeline.java`)
