Skip to main content
Glama
ihwooMil

Long-Term Memory

by ihwooMil

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AIMEMORY_DB_PATHNoChromaDB persistence directory (use absolute path to ensure all components share the same DB)./memory_db
AIMEMORY_LANGUAGENoLanguage for pattern matching (ko / en)ko
AIMEMORY_GRAPH_RAGNoEnable GraphRAG hybrid retrieval (1 to enable)0
AIMEMORY_LIVE_HOSTNoLive graph server host (for event push)127.0.0.1
AIMEMORY_LIVE_PORTNoLive graph server port (for event push)8765
AIMEMORY_LOG_LEVELNoLogging levelINFO
AIMEMORY_EMBEDDING_MODELNoSentence-transformer modelintfloat/multilingual-e5-small
AIMEMORY_ENHANCED_POLICYNoEnable 778d enhanced RL policy (1 to enable)0

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
memory_saveA

Save a new memory to the knowledge graph.

Args: content: The memory content to save (Korean or English text). keywords: Optional list of keywords. Auto-extracted if not provided. category: Memory category. One of: fact, preference, experience, emotion, technical, core_principle. Defaults to "auto" which auto-classifies from content. related_ids: Optional list of memory IDs to link as related. immutable: If True, memory cannot be updated or deleted. pinned: If True, memory is protected from the forgetting pipeline.

memory_searchA

Search memories by semantic similarity.

Args: query: Search query text (Korean or English). top_k: Number of results to return (default: 5, max: 200). category: Optional category filter (fact/preference/experience/emotion/technical/core_principle).

auto_searchA

Automatically retrieve and compose relevant memories for a user message.

Searches the memory store, selects the most relevant memories, and composes them into a context string within the token budget using multi-resolution levels (full text, summary, entity triple).

This tool should be called at the beginning of every conversation turn to inject relevant memory context.

Args: user_message: The user's current message to find relevant memories for. token_budget: Maximum tokens for the composed context (default: 1024). top_k: Number of memories to retrieve (default: 10, use higher values like 100 for memory review).

memory_updateA

Update an existing memory's content and/or keywords.

Args: memory_id: The ID of the memory to update. content: New content text (optional, keeps existing if not provided). keywords: New keywords list (optional, keeps existing if not provided).

memory_deleteA

Delete a memory from the knowledge graph.

Cannot delete immutable memories. Automatically cleans up graph edges.

Args: memory_id: The ID of the memory to delete.

memory_get_relatedA

Get memories related to a given memory via graph edges (BFS traversal).

Args: memory_id: The starting memory ID. depth: How many hops to traverse (default: 1, max: 3).

memory_pinA

Pin a memory to protect it from the forgetting pipeline.

Args: memory_id: The ID of the memory to pin.

memory_unpinA

Remove pin protection from a memory, allowing it to be forgotten over time.

Args: memory_id: The ID of the memory to unpin.

memory_statsA

Get statistics about the memory store: total count and category breakdown.

sleep_cycle_runA

Run the memory sleep cycle.

Performs consolidation, resolution regeneration, forgetting, and checkpoint saving.

This performs periodic memory maintenance. Recommended to run periodically (e.g., daily or after many conversations).

policy_statusA

Get the current status of the memory policy (RL bandit model).

Returns epsilon (exploration rate), recent action distribution, and total update count.

policy_decideA

Ask the RL policy to decide what memory action to take for a user message.

Returns the policy's decision (SAVE/SKIP/RETRIEVE) with reasoning. If SAVE: also returns the saved memory entry. If RETRIEVE: also returns retrieved memories.

Args: user_message: The user's message to evaluate. turn_id: Optional turn identifier.

memory_visualizeB

Generate an interactive HTML visualization of the memory graph.

Creates a browser-viewable graph showing memory nodes, relationships, and knowledge graph entity triples. Requires the 'viz' extra to be installed.

Args: output_path: Optional output file path for the HTML. Defaults to data/visualizations/. include_inactive: If True, include inactive (forgotten) memories in the graph.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have distinct purposes, but memory_search and auto_search overlap in retrieval functionality; descriptions clarify the difference (direct search vs. automatic composition), preventing major confusion.

Naming Consistency3/5

The majority use the memory_ prefix, but sleep_cycle_run, policy_status, policy_decide, and auto_search break the pattern. The naming is readable but not consistently structured.

Tool Count4/5

13 tools is a reasonable size for a full-featured memory system, covering CRUD, search, pinning, stats, visualization, policy, and maintenance. Not excessive, though a few could potentially be consolidated.

Completeness4/5

The toolset covers core memory operations well, including save, update, delete, search, related memories, pin/unpin, stats, and visualization. A notable gap is lack of a direct get-memory-by-ID operation, but this is mitigated by search and related-memory retrieval.

Maintenance

ActivityInactive
ResponsivenessNo issues