llama-memory
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).
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Cross-tool persistent memory and context for AI assistants over MCP.
- HeirmosOAuthcom.heirmos
Persistent memory shared across Claude, ChatGPT, Grok and other MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenancePersistent semantic memory server for AI assistants via MCP, enabling long-term context retention and semantic search across conversations.12MIT
- AlicenseCqualityAmaintenanceProvides persistent, local-first AI memory across sessions via MCP tools for storing, searching, and retrieving context from past interactions.31786 PyPI1MIT
- AlicenseAqualityDmaintenanceProvides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.41MIT
- FlicenseNot gradedqualityCmaintenancePersistent memory MCP server for AI agents that stores, recalls, and searches conversation history, key-value context, and long-term entries across sessions with semantic search and FIFO queues.256 npm1-