Generated banner for Engram Memory
Generated logo for Engram Memory

Engram Memory

WeaviateOfficialPublished by Weaviate

  • Skill
  • Tool integration
  • Data and AI
  • BSD-3-Clause
  • Low risk

From the author

Add persistent, long-term memory to LLM agents and chatbots using Engram, Weaviate's managed memory server. Use when an app needs to remember things across sessions — user preferences, profiles, past interactions, or lessons an agent learns over time (continual learning). Covers storing memories (string, conversation, pre-extracted input), semantic/keyword/hybrid search, scoping by user and topic, async run tracking, and chatbot/agent integration patterns.
— the description by Weaviate

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

Engram is a managed memory server designed to give LLM agents the ability to remember information across sessions. By handling the extraction, consolidation, and storage of memories automatically, it allows developers to focus on integration rather than building custom memory infrastructure. The service supports semantic, keyword, and hybrid search, enabling agents to retrieve relevant user preferences, past interactions, or learned facts efficiently. It is designed for scenarios requiring continual learning and stateful interaction across multiple user sessions.

What it does

  • Provides persistent storage for agent memories and user profiles.
  • Supports semantic, keyword, and hybrid search for intelligent retrieval.
  • Handles automatic memory extraction, deduplication, and consolidation.
  • Enables scoping of memories by specific users or topics.
  • Offers asynchronous processing for memory storage operations.
  • Includes integration patterns for chatbots and agent-based architectures.

When to use it

  • When your AI application needs to maintain context across multiple user sessions.
  • When you need to store and retrieve user preferences or historical interaction data.
  • When building agents that require continual learning capabilities.
  • When you want to avoid building a custom memory management system from scratch.

Advantages

  • Reduces development time by offloading memory management to a managed service.
  • Ensures consistent memory retrieval through hybrid search capabilities.
  • Simplifies state management with built-in scoping by user and topic.
  • Provides a dedicated SDK for Python-based agent development.

Usage examples

“How do I store a user preference in Engram?”
Use the client.memories.add method to pass the information string and the associated user_id, which processes the memory asynchronously.
“How can I retrieve memories for a specific user?”
Use the client.memories.search method with a query string and the user_id, optionally configuring the retrieval type to hybrid or vector search.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/weaviate/engram-memory/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip engram-memory.zip -d .agents/skills

Documentation by Weaviate

Memory Management with Engram

This skill helps build applications with persistent memory using Engram, Weaviate's managed memory server for LLM agents. Engram automatically extracts, consolidates, and stores memories from raw text or conversations, then retrieves them with vector, keyword, or hybrid search.

Use this skill when the user wants their app to remember information across sessions. Do not hand-roll a memory system (a raw Weaviate collection with manual inserts) when Engram fits — it handles extraction, deduplication, and consolidation out of the box.

Engram Project

Engram is a managed service accessed via Weaviate Cloud. If the user does not have an Engram project, direct them to the cloud console to create one and generate an Engram API key. Create an Engram project via Weaviate Cloud.

Environment Variables

Required:

  • ENGRAM_API_KEY — Engram API key from Weaviate Cloud (format eng_...). This carries the project identity; WEAVIATE_URL / WEAVIATE_API_KEY are not needed for Engram itself.

Optional (only when combining Engram with an agent or chatbot for generation):

  • An LLM provider API key (e.g. OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY)

Installation

Engram ships as its own Python SDK, weaviate-engram — it does not come with weaviate-client. Install it (and import as engram):

uv add weaviate-engram   # or: pip install weaviate-engram

This skill targets weaviate-engram 1.0.x (current release 1.0.1; requires Python 3.11–3.14). 1.0 is the first stable API — upgrade if the project is on a 0.x release.

Engram also ships a Claude Code plugin that needs no application code (/plugin marketplace add weaviate/engram-plugins then /plugin install engram@weaviate-engram). See the reference's Off-the-shelf Integrations section before building a custom one.

Reference

  • Memory Management with Engram: The complete how-to guide for building Engram applications. Covers:

    • Concepts — memories, topics, groups, scopes, pipelines/runs.

    • Storing memories — string, conversation, and pre-extracted input; async run status and committed_operations.

    • Searching — vector, BM25, hybrid, and unranked fetch retrieval; topic filters, scope properties, and relevance-score cutoffs.

    • Managing memories — get and delete by id; deterministic cleanup.

    • Integration patterns — memory-backed chatbots and Engram-as-tools for the RouterAgent from the Basic Agent cookbook.

    • Off-the-shelf integrations — the Claude Code plugin.

    • REST API — equivalent endpoints for non-Python stacks.

    • Troubleshooting & Done Criteria — including the new-user APIError behaviour and async-pipeline gotchas.

Quick Start

The guide uses the async client by default. Minimal store-and-search:

import os
from engram import AsyncEngramClient, HybridRetrieval

client = AsyncEngramClient(api_key=os.environ["ENGRAM_API_KEY"])

# Store — fire-and-forget, processes asynchronously
run = await client.memories.add(
    "The user prefers dark mode and works primarily in Python.",
    user_id="alice",
)

# Search
results = await client.memories.search(
    query="What language does the user prefer?",
    user_id="alice",
    retrieval_config=HybridRetrieval(limit=5),
)

await client.aclose()  # or use `async with AsyncEngramClient(...) as client:`

Follow the reference guide for the full lifecycle, error handling, and integration patterns before building.

Error Handling

Common errors (see the reference's Troubleshooting section for the full list):

  • ENGRAM_API_KEY not set → set the environment variable; ensure it is an Engram key (eng_...), not a Weaviate cluster key.

  • APIError (422, user "..." not found) on search → nothing has ever been added for that user_id; catch it and treat as "no memories" (every chatbot's first message from a new user hits this).

  • AuthenticationError subclasses APIError → a bare except APIError around a search silently turns a bad API key into "no memories". Catch AuthenticationError first and re-raise it.

  • Search returns nothing right after add → storage is asynchronous; await client.runs.wait(run.run_id) before searching, or check the run status for failed. On a user's first write the tenant may still be initializing even after the run reports completed — retry the search briefly.

Files

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs an API key, Needs Python

Security

What our scanner noticed· Low risk

  • Instructions that use the network

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Weaviate
Publisher
Weaviate (Official)
Source
weaviate/agent-skills · skills/engram_memory · commit b19751c
Licence
BSD 3-Clause License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Weaviate or Weaviate.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download engram-memory.zip