Сессии и память

Сессии и память

OpenClaw управляет сессиями и памятью агента. Это позволяет сохранять контекст разговора и вести несколько параллельных бесед.

Сессии

Сессия — это контекст разговора. Каждый чат имеет свою сессию с историей сообщений.

Режимы сессий:

  • `main` — все ЛС в одной сессии
  • `per-peer` — отдельная сессия на каждого отправителя
  • `per-channel-peer` — отдельная на каждый канал + отправитель
  • 
    {
      session: {
        dmScope: "per-channel-peer",
      },
    }
    

    Сброс сессий:

    
    {
      session: {
        reset: {
          mode: "daily",
          atHour: 4,
          idleMinutes: 120,
        },
      },
    }
    

    Память

    Память агента хранится в рабочем пространстве:

  • **MEMORY.md** — долгосрочная память (записи, которые агент помнит между сессиями)
  • **USER.md** — информация о пользователе
  • **TOOLS.md** — заметки об инструментах
  • Агент может сам обновлять эти файлы. MEMORY.md — это его «блокнот».

    Компактация

    Длинные сессии消耗 много токенов. Компактация автоматически сжимает старые сообщения:

    
    {
      session: {
        compaction: {
          enabled: true,
          threshold: 80000,
        },
      },
    }
    

    Dreaming (консолидация памяти)

    Dreaming — система фоновой консолидации памяти. Помогает OpenClaw перемещать сильные краткосрочные сигналы в долговечную память. Opt-in, отключён по умолчанию.

    Модель фаз

    Фаза Назначение Пишет в MEMORY.md?
    Light Сортировка недавнего материала Нет
    Deep Оценка и продвижение долговечных кандидатов Да
    REM Рефлексия по темам и идеям Нет

    Каждый свип запускает фазы по порядку: light → REM → deep.

    Быстрый старт

    
    {
      plugins: {
        entries: {
          "memory-core": {
            config: {
              dreaming: { enabled: true },
            },
          },
        },
      },
    }
    

    Управление

    
    # Slash-команды
    /dreaming status
    /dreaming on
    /dreaming off
    
    # CLI
    openclaw memory promote --apply    # применить продвижение
    openclaw memory status --deep      # глубокий статус
    

    Расписание

    По умолчанию: 0 3 * (каждый день в 3:00). Настройка: dreaming.frequency в конфиге memory-core.

    Веса ранжирования

    Сигнал Вес Описание
    Frequency 0.24 Сколько сигналов накопила запись
    Relevance 0.30 Среднее качество извлечения
    Query diversity 0.15 Уникальные контексты запросов
    Recency 0.15 Скоринг свежести
    Consolidation 0.10 Многодневная повторяемость
    Conceptual richness 0.06 Плотность концептуальных тегов

    Presence (присутствие)

    OpenClaw «presence» — лёгкий обзор Gateway и подключённых клиентов (macOS-приложение, WebChat, CLI). Используется для вкладки Instances в macOS-приложении.

    Поля presence

    Поле Описание
    `instanceId` Стабильная идентификация клиента
    `host` Имя хоста
    `ip` IP-адрес (best-effort)
    `version` Версия клиента
    `mode` `ui`, `webchat`, `cli`, `backend`, `node`, …
    `lastInputSeconds` Секунды с последнего ввода
    `ts` Метка времени обновления

    Источники

    1. Gateway self — собственная запись при запуске

    2. WebSocket connect — при подключении клиента

    3. System-event beacons — периодические обновления от клиентов

    4. Node connect — при подключении нод

    TTL и ограничения

  • Записи старше **5 минут** удаляются
  • Максимум **200 записей** (старейшие удаляются первыми)
  • CLI (`mode: «cli»`) не создаёт запись presence
  • Уровни мышления (Thinking Levels)

    Управляет «глубиной рассуждений» модели перед ответом. Доступно для моделей с поддержкой extended thinking (Anthropic Claude, OpenAI o-серии).

    Директивы

    В тексте сообщения: /t <level>, /think:<level> или /thinking <level>.

    off Без рассуждений
    minimal Минимальное мышление
    low Краткое рассуждение
    medium Среднее
    high Глубокое рассуждение (максимальный бюджет)
    xhigh Максимум (GPT-5.2 + Codex, Claude Opus 4.7)
    adaptive Адаптивное (управляет провайдер)

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

    {
      agents: {
        defaults: {
          thinkingDefault: "low",  // уровень по умолчанию
        },
      },
    }
    

    Что дальше

  • **[Персонализация](/personalizaciya)** — настройка характера (SOUL.md)
  • **[Агенты: обзор](/agenty-obzor)** — контекст, сообщения, стриминг
  • **[Конфигурация Gateway](/konfiguraciya-gateway)** — все настройки
  • 📦 Плагин Memory Wiki (подробно)

    memory-wiki — встроенный плагин, который превращает долгосрочную память в скомпилированное хранилище знаний.

    Не заменяет активный плагин памяти. Активный плагин по-прежнему управляет recall, продвижением, индексацией и dreaming. memory-wiki работает рядом и компилирует устойчивые знания в навигируемую wiki с детерминированными страницами, структурированными утверждениями, провенансом, дашбордами и машинно-читаемыми дайджестами.

    Используйте, когда хотите, чтобы память вела себя как поддерживаемый слой знаний, а не как набор Markdown-файлов.

    Что добавляет

    • Выделенное хранилище wiki с детерминированным layout страниц
    • Структурированные метаданные утверждений и доказательств (не просто текст)
    • Провенанс, уверенность, противоречия и открытые вопросы на уровне страниц
    • Скомпилированные дайджесты для потребителей (агенты, runtime)
    • Нативные wiki-инструменты: search, get, apply, lint
    • Опциональный bridge-режим для импорта артефактов из активного плагина памяти
    • Режим рендеринга Obsidian и интеграция CLI

    Как сочетается с памятью

    Слой Что управляет
    Активный плагин памяти (memory-core, QMD и др.) Recall, семантический поиск, продвижение, dreaming, runtime памяти
    memory-wiki Скомпилированные wiki-страницы, синтезы с провенансом, дашборды, wiki-specific search/get/apply

    Если активный плагин памяти предоставляет общие recall-артефакты — OpenClaw может искать по обоим слоям за один проход через memory_search corpus=all.

    Рекомендуемая гибридная схема

    Для local-first развёртываний:

    • QMD — активный бэкенд памяти для recall и широкого семантического поиска
    • memory-wiki в режиме bridge — устойчивые синтезированные знания

    Правило:

    • memory_search — один широкий recall-проход по памяти
    • wiki_search + wiki_get — когда важен провенанс, ранжирование и belief-структура wiki
    • memory_search corpus=all — поиск по обоим слоям

    Режимы хранилища

    isolated

    Своё хранилище, свои источники, без зависимости от memory-core. Когда wiki должна быть самостоятельным curated хранилищем знаний.

    bridge

    Читает публичные артефакты памяти и события через публичные SDK-швы активного плагина. Может индексировать:

    • Экспортированные артефакты памяти
    • Dream-отчёты
    • Ежедневные заметки
    • Корневые файлы памяти
    • Логи событий памяти

    unsafe-local

    Явный escape hatch для локальных приватных путей на той же машине. Экспериментальный и не переносимый. Только если понимаете границу доверия.

    Layout хранилища

    <vault>/
      AGENTS.md
      WIKI.md
      index.md
      inbox.md
      entities/
      concepts/
      syntheses/
      sources/
      reports/
      _attachments/
      _views/
      .openclaw-wiki/
    • sources/ — импортированный сырой материал и bridge-backed страницы
    • entities/ — устойчивые сущности: люди, системы, проекты, объекты
    • concepts/ — идеи, абстракции, паттерны, политики
    • syntheses/ — скомпилированные саммари и поддерживаемые сводки
    • reports/ — генерируемые дашборды

    Управляемый контент остаётся внутри генерируемых блоков. Блоки с заметками человека сохраняются.

    Структурированные утверждения и доказательства

    Страницы могут содержать структурированные claims во frontmatter, а не просто текст.

    Каждое утверждение включает:

    id Идентификатор
    text Текст утверждения
    status Статус
    confidence Уверенность
    evidence[] Массив доказательств
    updatedAt Дата обновления

    Доказательства включают: sourceId, path, lines, weight, note, updatedAt.

    Это делает wiki слоем belief, а не пассивным дампом заметок. Утверждения можно отслеживать, оценивать, оспаривать и разрешать обратно к источникам.

    Конвейер компиляции

    Шаг compile читает страницы wiki, нормализует саммари и эмитит стабильные машинно-читаемые артефакты:

    • .openclaw-wiki/cache/agent-digest.json
    • .openclaw-wiki/cache/claims.jsonl

    Скомпилированный вывод также питает:

    • Первичную индексацию wiki для search/get
    • Lookup claim-id → owning page
    • Компактные prompt-дополнения
    • Генерацию отчётов и дашбордов

    Дашборды и отчёты о здоровье

    При render.createDashboards: true compile поддерживает дашборды в reports/:

    • reports/open-questions.md — открытые вопросы
    • reports/contradictions.md — противоречия
    • reports/low-confidence.md — низкая уверенность
    • reports/claim-health.md — здоровье утверждений
    • reports/stale-pages.md — устаревшие страницы

    Поиск и получение

    Два бэкенда поиска:

    • shared — общий memory search flow
    • local — локальный поиск wiki

    Три корпуса: wiki, wiki, memory, all.

    Особенности:

    • wiki_search и wiki_get используют скомпилированные дайджесты как первый проход
    • Claim IDs резолвятся обратно на owning page
    • Оспоренные/устаревшие/свежие утверждения влияют на ранжирование
    • Провенанс-лейблы сохраняются в результатах

    Инструменты агента

    Инструмент Описание
    wiki_status Текущий режим, здоровье, доступность Obsidian CLI
    wiki_search Поиск по страницам wiki и общим корпусам памяти
    wiki_get Чтение wiki-страницы по id/path или fallback на общий корпус
    wiki_apply Узкие мутации синтеза/метаданных без свободного редактирования
    wiki_lint Структурные проверки, пробелы провенанса, противоречия, открытые вопросы

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

    {
      plugins: {
        entries: {
          "memory-wiki": {
            enabled: true,
            config: {
              vaultMode: "isolated",
              vault: {
                path: "~/.openclaw/wiki/main",
                renderMode: "obsidian",
              },
              bridge: {
                enabled: false,
                readMemoryArtifacts: true,
                indexDreamReports: true,
                indexDailyNotes: true,
                indexMemoryRoot: true,
                followMemoryEvents: true,
              },
              ingest: {
                autoCompile: true,
                maxConcurrentJobs: 1,
                allowUrlIngest: true,
              },
              search: {
                backend: "shared",
                corpus: "wiki",
              },
              context: {
                includeCompiledDigestPrompt: false,
              },
              render: {
                preserveHumanBlocks: true,
                createBacklinks: true,
                createDashboards: true,
              },
            },
          },
        },
      },
    }

    Ключевые переключатели

    vaultMode isolated, bridge, unsafe-local
    vault.renderMode native или obsidian
    bridge.readMemoryArtifacts Импорт публичных артефактов активного плагина памяти
    search.backend shared или local
    search.corpus wiki, memory, all
    context.includeCompiledDigestPrompt Добавлять компактный snapshot дайджеста в memory prompt
    render.createBacklinks Генерировать deterministic related-блоки
    render.createDashboards Генерировать дашборды

    CLI

    openclaw wiki status
    openclaw wiki doctor
    openclaw wiki init
    openclaw wiki ingest ./notes/alpha.md
    openclaw wiki compile
    openclaw wiki lint
    openclaw wiki search "alpha"
    openclaw wiki get entity.alpha
    openclaw wiki apply synthesis "Alpha Summary" --body "..." --source-id source.alpha
    openclaw wiki bridge import
    openclaw wiki obsidian status

    Поддержка Obsidian

    При vault.renderMode: "obsidian" плагин пишет Obsidian-friendly Markdown и может использовать официальный CLI obsidian.

    Поддерживаемые сценарии: проверка статуса, поиск, открытие страницы, вызов команд Obsidian, переход к daily note.

    Опционально. Wiki работает и в native-режиме без Obsidian.

    Рекомендуемый workflow

    1. Держите активный плагин памяти для recall/promotion/dreaming.
    2. Включите memory-wiki.
    3. Начните с isolated режима.
    4. Используйте wiki_search / wiki_get, когда важен провенанс.
    5. Используйте wiki_apply для узких синтезов или обновлений метаданных.
    6. Запускайте wiki_lint после значительных изменений.
    7. Включите дашборды для видимости устаревших/противоречивых данных.