Skip to main content
Glama
noualit

llama-memory

by noualit

llama-memory

MCP-сервис памяти для llama-server с постоянной историей и семантической памятью на основе Postgres + PGVector.

Примечание: этот проект предназначен только для локального/демонстрационного использования. Не публикуйте его напрямую в интернет без дополнительной защиты (HTTPS, надлежащая аутентификация, резервное копирование).

Что делает

  • Семантическая память: сохраняйте и извлекайте воспоминания по смыслу, а не только по ключевым словам.

  • Мост бесед: LLM автоматически создаёт беседы; воспоминания связываются.

  • Межсессионное припоминание: спросите «о чём мы говорили раньше?» и получите точные ответы.

  • Протокол MCP: работает напрямую со встроенной поддержкой MCP в llama-server.

Related MCP server: engram

Требования

  • Python 3.11 (рекомендуется Miniconda)

  • PostgreSQL 16+ с расширением PGVector

  • llama-server с флагом --jinja (требуется для вызова инструментов)

  • nomic-embed-text, запущенный на llama-server (порт 8081 по умолчанию)

Установка

# Clone the repo
git clone https://github.com/noualit/llama-memory-local.git
cd llama-memory-local

# Create environment
conda create -n llama-memory python=3.11
conda activate llama-memory

# Install dependencies
pip install -e .

Конфигурация

Скопируйте .env.example в .env и отредактируйте:

cp .env.example .env

Пример:

# Database
DATABASE_URL="postgresql://postgres:yourpassword@localhost:5432/llamamem"

# Llama-server (LLM)
LLAMA_SERVER_BASE_URL="http://localhost:8080"

# Embedding model (nomic-embed-text via llama-server)
EMBEDDING_MODEL_URL="http://localhost:8081"

# Embedding model name (default: nomic-embed-text)
EMBEDDING_MODEL_NAME="nomic-embed-text"

# Service port
SERVICE_PORT=9001

Настройка базы данных

Создайте базу данных и выполните миграции:

psql -U postgres -c "CREATE DATABASE llamamem;"
alembic upgrade head

Приложение также автоматически создаёт базовую схему при запуске для удобства.

Запуск сервиса

# Using the script
.\scripts\run_server.ps1

# Or directly
python -m uvicorn app.main:app --host 0.0.0.0 --port 9001

Подключение к llama-server

Добавьте в конфигурацию MCP вашего llama-server:

{
  "mcpServers": {
    "llama-memory": {
      "url": "http://YOUR_SERVER_IP:9001/mcp"
    }
  }
}

Сервис должен быть доступен из llama-server. Используйте фактический IP-адрес, а не localhost, если они работают на разных машинах.

MCP-инструменты

Tool

Description

create_conversation

Создать новый сеанс беседы

list_conversations

Список бесед с количеством воспоминаний

get_conversation_history

Получить все воспоминания в беседе

search_memories

Семантический поиск по всем воспоминаниям

save_memory

Сохранить важный факт или решение

Системный промпт

Вы можете:

  • Получить рекомендуемый системный промпт из сервиса:

    • GET /system-prompt → возвращает обычный текст.

  • Или вставьте эту минимальную версию в llama-server:

MEMORY WORKFLOW:
- At the start of each new conversation, call create_conversation with a short title.
- Use the conversation_id from create_conversation when calling save_memory.
- Before answering questions about past topics, call search_memories FIRST.
- When the user shares important information, save it with save_memory.
- If list_conversations has previous chats, check get_conversation_history for context.

Проверка состояния

curl http://localhost:9001/health

Возвращает статус БД, статус сервиса эмбеддингов и количество инструментов.

Архитектура

Высокоуровневая структура:

  • app/main.py — приложение FastAPI, жизненный цикл, /system-prompt

  • app/settings.py — настройки Pydantic из .env

  • app/clients/embeddings.py — вызовы nomic-embed-text для векторов

  • app/db/engine.py — пул соединений asyncpg (синглтон)

  • app/db/schema.py — автоматическое создание таблиц при запуске

  • app/mcp/endpoint.py — обработчики протокола MCP, ограничитель скорости

  • app/mcp/tools/ — реализации отдельных инструментов

  • migrations/ — миграции базы данных Alembic

Разработка

# Run tests
pytest tests/ -v

# Run with auto-reload
python -m uvicorn app.main:app --host 0.0.0.0 --port 9001 --reload

См. CONTRIBUTING.md с рекомендациями по внесению вклада.

Лицензия

MIT (см. файл LICENSE).

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Persistent semantic memory server for AI assistants via MCP, enabling long-term context retention and semantic search across conversations.
    11
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent memory for AI assistants via MCP, enabling them to store and recall facts, preferences, and tasks across conversations using either local file storage or a cloud backend with semantic search.
    5
    14
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.
    4
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

  • Persistent memory for AI agents. Search, store, and recall across sessions.

  • Cross-AI personal memory. Save once in ChatGPT, recall in Claude, Mistral, Grok, or any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/noualit/llama-memory-local'

If you have feedback or need assistance with the MCP directory API, please join our Discord server