DevOps & CloudDocumentedScanned

chromadb-memory

Long-term memory via ChromaDB with local Ollama embeddings.

Share:

Installation

npx clawhub@latest install chromadb-memory

View the full skill documentation and source below.

Documentation

ChromaDB Memory

Long-term semantic memory backed by ChromaDB and local Ollama embeddings. Zero cloud dependencies.

What It Does

  • Auto-recall: Before every agent turn, queries ChromaDB with the user's message and injects relevant context automatically
  • chromadb_search tool: Manual semantic search over your ChromaDB collection
  • 100% local: Ollama (nomic-embed-text) for embeddings, ChromaDB for vector storage

Prerequisites

  • ChromaDB running (Docker recommended):

  • docker run -d --name chromadb -p 8100:8000 chromadb/chroma:latest

  • Ollama with an embedding model:

  • ollama pull nomic-embed-text

  • Indexed documents in ChromaDB. Use any ChromaDB-compatible indexer to populate your collection.
  • Install

    # 1. Copy the plugin extension
    mkdir -p ~/.openclaw/extensions/chromadb-memory
    cp {baseDir}/scripts/index.ts ~/.openclaw/extensions/chromadb-memory/
    cp {baseDir}/scripts/openclaw.plugin.json ~/.openclaw/extensions/chromadb-memory/
    
    # 2. Get your collection ID
    curl -s  | python3 -c "import json,sys; [print(f'{c[\"id\"]}  {c[\"name\"]}') for c in json.load(sys.stdin)]"
    
    # 3. Add to your OpenClaw config (~/.openclaw/openclaw.json):
    {
      "plugins": {
        "entries": {
          "chromadb-memory": {
            "enabled": true,
            "config": {
              "chromaUrl": "",
              "collectionId": "YOUR_COLLECTION_ID",
              "ollamaUrl": "",
              "embeddingModel": "nomic-embed-text",
              "autoRecall": true,
              "autoRecallResults": 3,
              "minScore": 0.5
            }
          }
        }
      }
    }
    # 4. Restart the gateway
    openclaw gateway restart

    Config Options

    OptionDefaultDescription
    chromaUrl | ChromaDB server URL | | collectionId | *required* | ChromaDB collection UUID | | ollamaUrl | Ollama API URL
    embeddingModelnomic-embed-textOllama embedding model
    autoRecalltrueAuto-inject relevant memories each turn
    autoRecallResults3Max auto-recall results per turn
    minScore0.5Minimum similarity score (0-1)

    How It Works

  • You send a message

  • Plugin embeds your message via Ollama (nomic-embed-text, 768 dimensions)

  • Queries ChromaDB for nearest neighbors

  • Results above minScore are injected into the agent's context as

  • Agent responds with relevant long-term context available
  • Token Cost

    Auto-recall adds ~275 tokens per turn worst case (3 results × ~300 chars + wrapper). Against a 200K+ context window, this is negligible.

    Tuning

    • Too noisy? Raise minScore to 0.6 or 0.7
    • Missing context? Lower minScore to 0.4, increase autoRecallResults to 5
    • Want manual only? Set autoRecall: false, use chromadb_search tool

    Architecture

    User Message → Ollama (embed) → ChromaDB (query) → Context Injection
                                                      ↓
                                              Agent Response

    No OpenAI. No cloud. Your memories stay on your hardware.