Подробная настройка: настройте свой движок памяти
Что вы сможете сделать после изучения
- Настроить триггерные слова: Позвольте Agent понимать ваши специализированные команды (например, "запиши", "mark").
- Настроить объем памяти: Контролируйте количество памятей, внедряемых в контекст, балансируя потребление токенов и информативность.
- Оптимизировать стратегию сжатия: Настройте время триггера упреждающего сжатия в соответствии с масштабом проекта.
- Многоуровневое управление: Гибко переключать API Key с помощью переменных среды.
Расположение файла конфигурации
opencode-supermemory последовательно ищет следующие файлы конфигурации, останавливаясь при нахождении:
~/.config/opencode/supermemory.jsonc(рекомендуется, поддерживает комментарии)~/.config/opencode/supermemory.json
Почему рекомендуется .jsonc?
Формат .jsonc позволяет писать комментарии (//) в JSON, что非常适合 для объяснения назначения параметров конфигурации.
Подробная основная настройка
Ниже приведен полный пример конфигурации, включающий все доступные параметры и их значения по умолчанию.
Базовая настройка
// ~/.config/opencode/supermemory.jsonc
{
// Supermemory API Key
// Приоритет: файл конфигурации > переменная среды SUPERMEMORY_API_KEY
"apiKey": "your-api-key-here",
// Порог подобия семантического поиска (0.0 - 1.0)
// Чем выше значение, тем точнее результаты поиска, но меньше количество; чем ниже, тем больше разброс результатов
"similarityThreshold": 0.6
}Контроль внедрения контекста
Эти настройки определяют, сколько памятей Agent автоматически считывает и внедряет в Prompt при запуске сессии.
{
// Внедрять ли профиль пользователя (User Profile)
// Установка в false может сэкономить токены, но Agent может забыть ваши базовые предпочтения
"injectProfile": true,
// Максимальное количество элементов внедряемого профиля пользователя
"maxProfileItems": 5,
// Максимальное количество памятей на уровне пользователя (User Scope) для внедрения
// Это общие памяти, общие для всех проектов
"maxMemories": 5,
// Максимальное количество памятей на уровне проекта (Project Scope) для внедрения
// Это специфичные для текущего проекта памяти
"maxProjectMemories": 10
}Настройка пользовательских триггерных слов
Вы можете добавить пользовательские регулярные выражения, позволяющие Agent распознавать определенные команды и автоматически сохранять памяти.
{
// Список пользовательских триггерных слов (поддерживаются регулярные выражения)
// Эти слова объединяются с встроенными триггерными словами по умолчанию
"keywordPatterns": [
"запиши", // Простое сопоставление
"mark\\s+this", // Регулярное сопоставление: mark this
"важно[::]", // Сопоставление "важно:" или "важно:"
"TODO\\(memory\\)" // Сопоставление определенного маркера
]
}Просмотр встроенных триггерных слов по умолчанию
Плагин имеет встроенные следующие триггерные слова, не требующие настройки:
remember,memorizesave this,note thiskeep in mind,don't forgetlearn this,store thisrecord this,make a notetake note,jot downcommit to memoryremember thatnever forget,always remember
Упреждающее сжатие (Preemptive Compaction)
Когда контекст сессии слишком длинный, плагин автоматически триггерит механизм сжатия.
{
// Порог триггера сжатия (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 в корпоративных и личных проектах, можно использовать переменные среды:
# Установить ключ по умолчанию в .zshrc или .bashrc
export SUPERMEMORY_API_KEY="key_personal"
# В каталоге корпоративного проекта временно перезаписать ключ
export SUPERMEMORY_API_KEY="key_work" && opencode# Установить переменную среды
$env:SUPERMEMORY_API_KEY="key_work"
opencodeСледуйте моему примеру: настройте свою специализированную конфигурацию
Давайте создадим оптимизированную конфигурацию, подходящую для большинства разработчиков.
Шаг 1: Создание файла конфигурации
Если файл не существует, создайте его.
mkdir -p ~/.config/opencode
touch ~/.config/opencode/supermemory.jsoncШаг 2: Запись оптимизированной конфигурации
Скопируйте следующее содержимое в supermemory.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.ts | 12-23 |
| Определение значений по умолчанию | src/config.ts | 44-54 |
| Триггерные слова по умолчанию | src/config.ts | 25-42 |
| Загрузка файла конфигурации | src/config.ts | 73-86 |
| Чтение переменных среды | src/config.ts | 90 |