Skip to content

Подробная настройка: настройте свой движок памяти

Что вы сможете сделать после изучения

  • Настроить триггерные слова: Позвольте Agent понимать ваши специализированные команды (например, "запиши", "mark").
  • Настроить объем памяти: Контролируйте количество памятей, внедряемых в контекст, балансируя потребление токенов и информативность.
  • Оптимизировать стратегию сжатия: Настройте время триггера упреждающего сжатия в соответствии с масштабом проекта.
  • Многоуровневое управление: Гибко переключать API Key с помощью переменных среды.

Расположение файла конфигурации

opencode-supermemory последовательно ищет следующие файлы конфигурации, останавливаясь при нахождении:

  1. ~/.config/opencode/supermemory.jsonc (рекомендуется, поддерживает комментарии)
  2. ~/.config/opencode/supermemory.json

Почему рекомендуется .jsonc?

Формат .jsonc позволяет писать комментарии (//) в JSON, что非常适合 для объяснения назначения параметров конфигурации.

Подробная основная настройка

Ниже приведен полный пример конфигурации, включающий все доступные параметры и их значения по умолчанию.

Базовая настройка

jsonc
// ~/.config/opencode/supermemory.jsonc
{
  // Supermemory API Key
  // Приоритет: файл конфигурации > переменная среды SUPERMEMORY_API_KEY
  "apiKey": "your-api-key-here",

  // Порог подобия семантического поиска (0.0 - 1.0)
  // Чем выше значение, тем точнее результаты поиска, но меньше количество; чем ниже, тем больше разброс результатов
  "similarityThreshold": 0.6
}

Контроль внедрения контекста

Эти настройки определяют, сколько памятей Agent автоматически считывает и внедряет в Prompt при запуске сессии.

jsonc
{
  // Внедрять ли профиль пользователя (User Profile)
  // Установка в false может сэкономить токены, но Agent может забыть ваши базовые предпочтения
  "injectProfile": true,

  // Максимальное количество элементов внедряемого профиля пользователя
  "maxProfileItems": 5,

  // Максимальное количество памятей на уровне пользователя (User Scope) для внедрения
  // Это общие памяти, общие для всех проектов
  "maxMemories": 5,

  // Максимальное количество памятей на уровне проекта (Project Scope) для внедрения
  // Это специфичные для текущего проекта памяти
  "maxProjectMemories": 10
}

Настройка пользовательских триггерных слов

Вы можете добавить пользовательские регулярные выражения, позволяющие Agent распознавать определенные команды и автоматически сохранять памяти.

jsonc
{
  // Список пользовательских триггерных слов (поддерживаются регулярные выражения)
  // Эти слова объединяются с встроенными триггерными словами по умолчанию
  "keywordPatterns": [
    "запиши",           // Простое сопоставление
    "mark\\s+this",     // Регулярное сопоставление: mark this
    "важно[::]",       // Сопоставление "важно:" или "важно:"
    "TODO\\(memory\\)"  // Сопоставление определенного маркера
  ]
}
Просмотр встроенных триггерных слов по умолчанию

Плагин имеет встроенные следующие триггерные слова, не требующие настройки:

  • remember, memorize
  • save this, note this
  • keep in mind, don't forget
  • learn this, store this
  • record this, make a note
  • take note, jot down
  • commit to memory
  • remember that
  • never forget, always remember

Упреждающее сжатие (Preemptive Compaction)

Когда контекст сессии слишком длинный, плагин автоматически триггерит механизм сжатия.

jsonc
{
  // Порог триггера сжатия (0.0 - 1.0)
  // Триггер, когда использование токенов превышает этот процент
  // По умолчанию 0.80 (80%)
  "compactionThreshold": 0.80
}

Рекомендация по настройке порога

  • Не устанавливайте слишком высоко (например, > 0.95): Может привести к исчерпанию окна контекста до завершения сжатия.
  • Не устанавливайте слишком низко (например, < 0.50): Приведет к частому сжатию, прерыванию потока и потере токенов.
  • Рекомендуемое значение: Между 0.70 - 0.85.

Поддержка переменных среды

Помимо файла конфигурации, вы также можете использовать переменные среды для управления конфиденциальной информацией или перезаписи поведения по умолчанию.

Переменная средыОписаниеПриоритет
SUPERMEMORY_API_KEYКлюч Supermemory APIНиже файла конфигурации
USER или USERNAMEИдентификатор для генерации хеша области пользователяСистемное по умолчанию

Сценарий использования: переключение между средами

Если вы используете разные учетные записи Supermemory в корпоративных и личных проектах, можно использовать переменные среды:

bash
# Установить ключ по умолчанию в .zshrc или .bashrc
export SUPERMEMORY_API_KEY="key_personal"

# В каталоге корпоративного проекта временно перезаписать ключ
export SUPERMEMORY_API_KEY="key_work" && opencode
powershell
# Установить переменную среды
$env:SUPERMEMORY_API_KEY="key_work"
opencode

Следуйте моему примеру: настройте свою специализированную конфигурацию

Давайте создадим оптимизированную конфигурацию, подходящую для большинства разработчиков.

Шаг 1: Создание файла конфигурации

Если файл не существует, создайте его.

bash
mkdir -p ~/.config/opencode
touch ~/.config/opencode/supermemory.jsonc

Шаг 2: Запись оптимизированной конфигурации

Скопируйте следующее содержимое в supermemory.jsonc. Эта конфигурация увеличивает вес памятей проекта и добавляет русские триггерные слова.

jsonc
{
  // Сохранить подобие по умолчанию
  "similarityThreshold": 0.6,

  // Увеличить количество памятей проекта, уменьшить общие памяти, больше подходит для глубокой разработки
  "maxMemories": 3,
  "maxProjectMemories": 15,

  // Добавить триггерные слова, соответствующие русским привычкам
  "keywordPatterns": [
    "запиши",
    "запомнить",
    "сохранить память",
    "не забудь"
  ],

  // Немного заранее триггерить сжатие, зарезервировать больше безопасного пространства
  "compactionThreshold": 0.75
}

Шаг 3: Проверка конфигурации

Перезапустите OpenCode, попробуйте использовать новые триггерные слова в диалоге:

Ввод пользователя:
Запиши: базовый путь API этого проекта - /api/v2

Системный ответ (ожидаемый):
(Agent вызывает инструмент supermemory для сохранения памяти)
Сохранена память: базовый путь API этого проекта - /api/v2

Частые вопросы

Q: Нужно ли перезапускать после изменения конфигурации?

A: Нужно. Плагин загружает конфигурацию при запуске, после изменения supermemory.jsonc необходимо перезапустить OpenCode, чтобы изменения вступили в силу.

Q: Поддерживает ли keywordPatterns русские регулярные выражения?

A: Поддерживает. На нижнем уровне используется new RegExp() JavaScript, полностью поддерживает символы Unicode.

Q: Что будет, если формат файла конфигурации неверен?

A: Плагин вернется к значениям по умолчанию. Если формат JSON недействителен (например, лишняя запятая), плагин поймает ошибку и использует встроенные DEFAULTS, не приведя к падению OpenCode.

Предпросмотр следующего урока

В следующем уроке мы изучим Конфиденциальность и безопасность данных.

Вы узнаете:

  • Механизм автоматического удаления чувствительных данных
  • Как использовать тег <private> для защиты конфиденциальности
  • Границы безопасности хранения данных

Приложение: справочник по исходному коду

Нажмите, чтобы просмотреть расположение исходного кода

Время обновления: 2026-01-23

ФункцияПуть к файлуНомер строки
Определение интерфейса конфигурацииsrc/config.ts12-23
Определение значений по умолчаниюsrc/config.ts44-54
Триггерные слова по умолчаниюsrc/config.ts25-42
Загрузка файла конфигурацииsrc/config.ts73-86
Чтение переменных средыsrc/config.ts90