agent-sleep
🧠 agent-sleep
Постоянная консолидация опыта и поддержка принятия решений для ИИ-агентов.
Легковесная, не зависящая от фреймворка Python-библиотека и MCP-сервер, которые обеспечивают постоянную консолидацию опыта и сигналы поддержки принятия решений, которые агент-хост может использовать для адаптации между сессиями — вдохновлено тем, как биологический мозг использует циклы сна для консолидации дневного опыта в долговременные процедурные правила и уроки.
Проблема: «Амнезия агента»
Каждый современный фреймворк ИИ-агентов (LangChain, AutoGen, CrewAI, OpenAI Assistants) страдает от амнезии агента:
Каждый новый чат или запуск субагента начинается с нуля.
Если агент сталкивается с ошибкой или обнаруживает соглашение в кодовой базе в понедельник, во вторник он повторяет ту же самую ошибку.
Векторные БД (RAG) ищут только в статических документах — они не учатся на опыте выполнения.
Related MCP server: Recall
MCP Быстрый старт — 10 секунд
Это основной путь использования.
agent-sleepпоставляется как MCP-сервер, поэтому любой агент, поддерживающий MCP (Antigravity, Claude Desktop, Cursor, Cline), может использовать его без написания кода.
Шаг 1 — Установите и сгенерируйте конфигурацию
# Option A: zero-install (recommended)
uvx agent-sleep-mcp
# Option B: install first, then run the init helper
pip install "agent-sleep[mcp]"
agent-sleep init # prints the correct config snippet for your platformagent-sleep init автоматически определяет вашу ОС и выводит JSON-фрагмент для вставки в файл конфигурации вашего MCP-клиента. Ручное редактирование не требуется.
Шаг 2 — Вставьте фрагмент конфигурации
Команда init выводит точно, что и куда вставить. Пример вывода для Claude Desktop на macOS:
{
"mcpServers": {
"agent-sleep": {
"command": "uvx",
"args": ["agent-sleep-mcp"]
}
}
}Вставьте это в ~/Library/Application Support/Claude/claude_desktop_config.json, перезапустите Claude, и готово.
Шаг 3 — Попросите агента использовать это
"Before we start, check your memory for anything relevant to this task."
"Record that we use pytest fixtures — not unittest — in this project."
"Run a sleep consolidation so you remember today's lessons next session."Память автоматически сохраняется в .agent_sleep/memory.db в вашем проекте (по умолчанию игнорируется git).
Просмотр сохранённого — CLI
Вам не нужно обращаться к LLM, чтобы увидеть, что выучил ваш агент:
# See all memories and rules for the current project
agent-sleep show
# Clear a project's memory (with confirmation prompt)
agent-sleep reset
# Target a specific scope or DB
agent-sleep show --scope my_api --db /path/to/memory.dbКак это работает: конвейер из 3 фаз
[ ONLINE EXECUTION PHASE ]
Agent executes tool calls
│
▼
┌──────────────────────────────────────────────┐
│ 1. EPISODIC RECORDING │
│ memory.record_episode(...) │ Fast, minimal overhead.
│ Records goal, action, outcome, errors. │ Stores execution events.
└──────────────────────┬───────────────────────┘
│
(Session ends / Agent idle)
│
▼
[ OFFLINE SLEEP CONSOLIDATION ]
┌──────────────────────────────────────────────┐
│ 2. SLEEP CONSOLIDATOR (8-Stage Pipeline) │
│ SleepConsolidator.run(session_id) │
│ │
│ • Priority Replay (prediction error) │
│ • Deterministic Episodic Distillation │ Grounding first:
│ • Procedural Recipe Extraction │ distills facts & lessons
│ • How-Memory Trajectory Abstraction │ before optional LLM
│ • Behavioral Rule Promotion (seen ≥2x) │ generalization passes.
│ • Epistemic Status (observed vs verified)│
│ • Episodic Compression over time │
│ • Self-Competence EMA Tracking │
└──────────────────────┬───────────────────────┘
│
(Next session / New task)
│
▼
[ ONLINE SELECTIVE RECALL ]
┌──────────────────────────────────────────────┐
│ 3. SELECTIVE SEMANTIC RECALL │
│ memory.recall(new_task) │ Pre-computed vector BLOBs.
│ Returns only relevant lessons & rules │ Prevents prompt dilution.
│ filtered by project scope & relevance. │
└──────────────────────────────────────────────┘Ключевые возможности (v0.1.2-alpha)
Предвычисленные векторные BLOB-объекты: Встраивает запрос один раз и сравнивает его с предвычисленными сохранёнными векторами, устраняя повторное встраивание текста при извлечении.
Эпистемический жизненный цикл памяти: Отслеживает прогрессию памяти по стадиям (
RAW→OBSERVED→REPEATED→VERIFIED→ACTIVE), автоматически помещая в карантин противоречивые или часто ошибочные воспоминания.Проверяемая причинно-следственная атрибуция и обратная связь по полезности: Оценивает, действительно ли извлечённые воспоминания помогли будущему выполнению, с помощью структурированных записей доказательств (
retrieval→action change→outcome attribution).Причинные гипотезы на основе разнообразия доказательств: Сводит повторяющиеся сбои к причинным механизмам, используя масштабирование разнообразия доказательств по независимым источникам и средам.
Байесовская модель самооценки компетентности: Оценивает компетентность в домене и неопределённость по бета-распределению Байеса для составных доменов, обеспечивая адаптивную поддержку принятия решений (интенсивность проверки, бюджеты повторных попыток) для агентов-хостов.
Механизм специфичности правил первого класса: Разрешает конфликты правил через иерархический приоритет (
specific verified>general verified>specific candidate>general candidate) и динамическое подавление исключений.Изоляция области и проекта: Многоуровневые пространства имён (
scope="repo_a",scope="global"). Знания, специфичные для проекта, строго изолированы, в то время как универсальные идиомы и режимы отказов инструментов могут по желанию распространяться черезglobal.Ноль обязательных тяжёлых зависимостей: Работает из коробки с использованием стандартного SQLite и детерминированного резервного варианта на основе хэшированного мешка слов. Бесшовно обновляется до
sentence-transformers(all-MiniLM-L6-v2) при установке.
Бенчмарки и оценка
1. Контролируемая симуляция переноса (benchmarks/run.py)
Оценивает консолидацию памяти, векторное извлечение и перенос знаний в 12 последовательных программных задачах с повторяющимися архитектурными ловушками:
Метрика | Память ВЫКЛ | Память ВКЛ | Улучшение |
Процент прохождения (Pass@12) | 67% | 92% | +25 процентных пунктов |
Среднее число вызовов LLM / задача | 14.7 | 8.5 | -42% (меньше вызовов) |
Повторные ошибки | 8 | 2 | -75% (меньше ошибок) |
Примечание: Контролируемая симуляция переноса оценивает детерминированную динамику когнитивного контроля при извлечении памяти и избегании ловушек.
2. Канонический 6-сторонний абляционный бенчмарк (benchmarks/agent_eval/runner.py)
Контролируемая песочница для оценки динамики управления агентом на основе памяти в 8 стандартизированных задачах разработки ПО:
Экспериментальное условие | Процент прохождения (Zero-Shot) | Среднее число вызовов LLM / задача | Повторные ловушки | Полезность памяти |
| 12.5% | 3.6 | 4 | 0.0% |
| 12.5% | 3.6 | 4 | 0.0% |
| 12.5% | 3.6 | 4 | 0.0% |
| 25.0% | 2.9 | 2 | 12.5% |
| 37.5% | 2.5 | 1 | 25.0% |
| 75.0% | 1.4 | 0 | 75.0% |
python benchmarks/agent_eval/runner.py[!NOTE] Научное и серверное раскрытие:
Песочница-бенчмарк оценивает динамику управления агентом, эффективность токенов и предотвращение ошибок в контролируемых тестовых наборах.
Бэкенды встраивания: Высокоточное векторное сходство опирается на
sentence-transformers(all-MiniLM-L6-v2). При отсутствии зависимостей библиотека автоматически переключается на детерминированное встраивание на основе хэшированного мешка слов.Полные протоколы воспроизводимости и журналы метрик задокументированы в
benchmarks/agent_eval/results.json.
Использование Python-библиотеки
Если вы предпочитаете управлять системой памяти из собственного кода агента, а не через MCP, Python API полностью поддерживается.
from agent_sleep import AgentMemory, SleepConsolidator
# 1. Initialize memory scoped to your project/repo
memory = AgentMemory(session_id="session_01", scope="payment_service")
# 2. Record actions and outcomes during your agent's loop
memory.record_episode(
goal="Refactor payment processor to async",
action="edit_file('processor.py', ...)",
outcome="failure",
failure_reason="SyntaxError: 'await' outside async function",
)
# 3. Trigger sleep consolidation when idle or at session end
consolidator = SleepConsolidator(scope="payment_service")
report = consolidator.run(session_id="session_01")
# -> {'episodes_processed': 1, 'memories_written': 1, 'rules_promoted': 0, ...}
# 4. Next session: recall relevant context before executing
context = memory.recall("Add Stripe webhook handler")
print(context)
# [MEMORY CONTEXT]
# Relevant past experience:
# ⚠ [LESSON] Caution on task: Refactor payment processor to async:
# A previous attempt failed: SyntaxError: 'await' outside async function.
# [END MEMORY CONTEXT]Установка
Быстрая установка с поддержкой MCP:
pip install "agent-sleep[mcp]"С полными семантическими встраиваниями (рекомендуется):
pip install "agent-sleep[all]"Из GitHub (последняя альфа):
pip install git+https://github.com/thevisionhub/agent-sleep.gitРедактируемая установка для разработки:
git clone https://github.com/thevisionhub/agent-sleep.git
cd agent-sleep
pip install -e ".[all]"Справочник MCP-инструментов
Инструмент | Когда вызывать |
| Перед планированием или выполнением любой нетривиальной задачи — извлекает уроки, правила, причинные ловушки и директивы самооценки компетентности |
| Во время выполнения — после каждого сбоя инструмента или достижения этапа |
| После завершения сессии или когда агент простаивает |
| В любое время — проверяет здоровье памяти, эпистемические разбивки и ожидающие эпизоды |
| После применения извлечённых знаний — записывает причинно-следственную атрибуцию результата и обновляет оценки полезности |
| При обнаружении исключений или граничных условий для существующих правил |
Все инструменты по умолчанию устанавливают scope на имя текущей рабочей директории и db_path на .agent_sleep/memory.db в корне проекта. Для обычного случая конфигурация не требуется.
Запуск тестов
pytest tests/ -vКак стать обнаруженным — листинги в реестрах
Отправка agent-sleep в MCP-реестры занимает около 5 минут на каждый и является самым быстрым способом привлечь разработчиков, ищущих инструменты памяти:
Smithery — вставьте URL GitHub, добавьте краткое описание, готово.
modelcontextprotocol/servers — откройте PR, добавив запись в README в раздел "Community Servers".
Cursor — также отображает MCP-серверы; проверьте их текущую документацию для актуального процесса подачи.
Лицензия
Лицензия MIT — бесплатно для личного, коммерческого и исследовательского использования.
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent memory for AI agents to retain, retrieve, and recall conversation context through MCP.
Keeps AI agents from repeating costly mistakes: past decisions, rules and incidents, shared by all.
Persistent memory for AI agents: keyed facts, a wake bundle each session, one memory in every model.
Private, portable memory and reusable skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenancePersistent memory for AI agents with semantic memory, belief tracking, and dream consolidation, enabling cross-session knowledge retention.135 npm50MIT
- AlicenseNot gradedqualityBmaintenanceProvides persistent, cross-session memory for AI agents, allowing them to store and automatically retrieve information across different conversations and sessions without repeating context.9 npm174MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to store, retrieve, and self-improve procedural memories (lessons learned) based on relevance to the current task, pruning unused memories to reduce context load and prevent repetition of past mistakes.MIT
- AlicenseAqualityAmaintenanceEnables AI agents to persistently recall, apply, and reinforce solutions to previously solved problems across different models and tools, so mistakes are not repeated.1414 npm1MIT