---
read_when:
    - Вы хотите понять, как работает бэкенд памяти по умолчанию
    - Вы хотите настроить провайдеров эмбеддингов или гибридный поиск
summary: Стандартный бэкенд памяти на основе SQLite с поиском по ключевым словам, векторным и гибридным поиском
title: Встроенный механизм памяти
x-i18n:
    generated_at: "2026-07-13T18:05:02Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: e8cbe2bae73b1d393ac158edb67fc442e76d1e5ff93e5201dbb7e7216801aa85
    source_path: concepts/memory-builtin.md
    workflow: 16
---

Встроенный движок — это бэкенд памяти по умолчанию. Он хранит индекс памяти
в отдельной для каждого агента базе данных SQLite и не требует дополнительных
зависимостей для начала работы.

## Возможности

- **Поиск по ключевым словам** с помощью полнотекстового индексирования FTS5 (ранжирование BM25).
- **Векторный поиск** с помощью эмбеддингов от любого поддерживаемого провайдера.
- **Гибридный поиск**, объединяющий оба подхода для получения наилучших результатов.
- **Поддержка CJK** с помощью триграммной токенизации для китайского, японского и корейского языков.
- **Ускорение sqlite-vec** для векторных запросов внутри базы данных (необязательно).

## Начало работы

По умолчанию встроенный движок использует эмбеддинги OpenAI. Если `OPENAI_API_KEY` или
`models.providers.openai.apiKey` уже настроен, векторный поиск работает
без дополнительной настройки памяти.

Чтобы явно указать провайдера:

```json5
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai",
      },
    },
  },
}
```

Без провайдера эмбеддингов доступен только поиск по ключевым словам.

Чтобы принудительно использовать локальные эмбеддинги GGUF, установите официальный
плагин провайдера llama.cpp, а затем укажите в `local.modelPath` файл GGUF:

```bash
openclaw plugins install @openclaw/llama-cpp-provider
```

```json5
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "local",
        fallback: "none",
        local: {
          modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf",
        },
      },
    },
  },
}
```

## Поддерживаемые провайдеры эмбеддингов

| Провайдер         | Идентификатор       | Примечания                                |
| ----------------- | ------------------- | ----------------------------------------- |
| Bedrock           | `bedrock`           | Использует цепочку учетных данных AWS     |
| DeepInfra         | `deepinfra`         | По умолчанию: `BAAI/bge-m3`               |
| Gemini            | `gemini`            | Поддерживает мультимодальность (изображения и аудио) |
| GitHub Copilot    | `github-copilot`    | Использует вашу подписку Copilot          |
| LM Studio         | `lmstudio`          | Локальный или самостоятельно размещенный  |
| Локальный         | `local`             | `@openclaw/llama-cpp-provider`      |
| Mistral           | `mistral`           |                                           |
| Ollama            | `ollama`            | Локальный или самостоятельно размещенный  |
| OpenAI            | `openai`            | По умолчанию: `text-embedding-3-small`   |
| Совместимый с OpenAI | `openai-compatible` | Универсальная конечная точка `/v1/embeddings` |
| Voyage            | `voyage`            |                                           |

Чтобы отказаться от OpenAI, задайте `memorySearch.provider`.

## Как работает индексирование

OpenClaw разбивает `MEMORY.md` и `memory/*.md` на фрагменты (по умолчанию 400 токенов
с перекрытием в 80 токенов) и сохраняет их в отдельной для каждого агента базе данных SQLite.

- **Расположение индекса:** база данных соответствующего агента по пути
  `~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite`
- **Обслуживание хранилища:** размер вспомогательных файлов SQLite WAL ограничивается с помощью периодических
  контрольных точек и контрольных точек при завершении работы.
- **Отслеживание файлов:** изменения файлов памяти запускают переиндексацию с задержкой
  для устранения дребезга (по умолчанию 1,5 с).
- **Автоматическая переиндексация:** индекс автоматически перестраивается при изменении провайдера
  эмбеддингов, модели, конфигурации разбиения на фрагменты, настроенных источников или области действия.
- **Переиндексация по запросу:** `openclaw memory index --force`

<Info>
Можно также индексировать файлы Markdown за пределами рабочего пространства с помощью
`memorySearch.extraPaths`. См.
[справочник по конфигурации](/ru/reference/memory-config#additional-memory-paths).
</Info>

## Когда использовать

Встроенный движок подходит большинству пользователей:

- Работает сразу после установки без дополнительных зависимостей.
- Хорошо справляется с поиском по ключевым словам и векторным поиском.
- Поддерживает всех провайдеров эмбеддингов.
- Гибридный поиск сочетает преимущества обоих подходов к извлечению данных.

Рассмотрите переход на [QMD](/ru/concepts/memory-qmd), если вам нужны повторное ранжирование, расширение
запросов или индексирование каталогов за пределами рабочего пространства.

Рассмотрите [Honcho](/ru/concepts/memory-honcho), если вам нужна память между сеансами
с автоматическим моделированием пользователя.

## Устранение неполадок

**Поиск по памяти отключен?** Проверьте `openclaw memory status`. Если провайдер
не обнаружен, укажите его явно или добавьте ключ API.

**Локальный провайдер не обнаружен?** Убедитесь, что локальный путь существует, и выполните:

```bash
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
```

Как отдельные команды CLI, так и Gateway используют один идентификатор провайдера `local`.
Задайте `memorySearch.provider: "local"`, если хотите использовать локальные эмбеддинги.

**Устаревшие результаты?** Выполните `openclaw memory index --force` для перестроения индекса. В редких
пограничных случаях средство отслеживания может пропустить изменения.

**sqlite-vec не загружается?** OpenClaw автоматически переключается на вычисление косинусного
сходства внутри процесса. `openclaw memory status --deep` сообщает о локальном
векторном хранилище отдельно от провайдера эмбеддингов, поэтому `Vector store:
unavailable` указывает на загрузку sqlite-vec, а `Embeddings: unavailable`
— на готовность провайдера, аутентификации или модели. Найдите конкретную ошибку
загрузки в журналах.

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

Сведения о настройке провайдера эмбеддингов, гибридного поиска (веса, MMR, временное
затухание), пакетного индексирования, мультимодальной памяти, sqlite-vec, дополнительных путей и всех
остальных параметров конфигурации см. в
[справочнике по конфигурации памяти](/ru/reference/memory-config).

## Связанные материалы

- [Обзор памяти](/ru/concepts/memory)
- [Поиск по памяти](/ru/concepts/memory-search)
- [Active Memory](/ru/concepts/active-memory)
