Honcho Memory

Honcho — это AI-native бэкенд памяти, который добавляет диалектическое рассуждение и глубокое профилирование пользователя поверх встроенной системы памяти Hermes. Вместо простого хранения ключ-значение Honcho ведет живую модель того, кто такой пользователь — его предпочтения, стиль общения, цели и паттерны — путем анализа разговоров после их завершения.

info Honcho — это плагин провайдера памяти (Memory Provider Plugin) Honcho интегрирован в систему Memory Providers. Все функции ниже доступны через единый интерфейс провайдера памяти.

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

Возможность Встроенная память Honcho
Сохранение между сессиями ✔ Файловые MEMORY.md/USER.md ✔ Серверная часть с API
Профиль пользователя ✔ Ручная курация агентом ✔ Автоматическое диалектическое рассуждение
Сводка сессии ✔ Контекстная вставка в рамках сессии
Изоляция нескольких агентов ✔ Разделение профилей по пирам
Режимы наблюдения ✔ Единое или направленное наблюдение
Выводы (производные инсайты) ✔ Серверное рассуждение о паттернах
Поиск по истории ✔ Поиск FTS5 по сессиям ✔ Семантический поиск по выводам

Диалектическое рассуждение: После каждого оборота разговора (с регулировкой через dialecticCadence), Honcho анализирует обмен и извлекает инсайты о предпочтениях, привычках и целях пользователя. Они накапливаются со временем, давая агенту всё более глубокое понимание, выходящее за рамки того, что пользователь явно сказал. Диалектика поддерживает многопроходную глубину (1–3 прохода) с автоматическим выбором холодного/теплого промпта — холодные начальные запросы фокусируются на общих фактах о пользователе, а теплые запросы отдают приоритет контексту текущей сессии.

Контекст в рамках сессии: Базовый контекст теперь включает сводку сессии вместе с представлением пользователя и карточкой пира. Это дает агенту осведомленность о том, что уже обсуждалось в текущей сессии, уменьшая повторения и обеспечивая непрерывность.

Мультиагентные профили: Когда несколько экземпляров Hermes общаются с одним пользователем (например, ассистент по коду и личный ассистент), Honcho поддерживает отдельные профили «пиров». Каждый пир видит только свои собственные наблюдения и выводы, предотвращая перекрестное загрязнение контекста.

Настройка

hermes memory setup    # выберите "honcho" из списка провайдеров

Или настройте вручную:

# ~/.hermes/config.yaml
memory:
  provider: honcho
echo 'HONCHO_API_KEY=***' >> ~/.hermes/.env

Получите API-ключ на honcho.dev.

Архитектура

Двухуровневая вставка контекста

На каждом обороте (в режиме hybrid или context) Honcho собирает два уровня контекста, вставляемых в системный промпт:

  1. Базовый контекст — сводка сессии, представление пользователя, карточка пира пользователя, самопредставление AI и идентификационная карточка AI. Обновляется с периодичностью contextCadence. Это слой «кто этот пользователь».

  2. Диалектическое дополнение — сгенерированные LLM рассуждения о текущем состоянии и потребностях пользователя. Обновляется с периодичностью dialecticCadence. Это слой «что важно прямо сейчас».

Оба уровня объединяются и усекаются до лимита contextTokens (если задан).

Выбор холодного/теплого промпта

Диалектика автоматически выбирает между двумя стратегиями промптов:

Это происходит автоматически на основе того, заполнен ли базовый контекст.

Три независимых параметра конфигурации

Стоимость и глубина контролируются тремя независимыми регуляторами:

Регулятор Управляет По умолчанию
contextCadence Обороты между вызовами context() API (обновление базового слоя) 1
dialecticCadence Обороты между вызовами peer.chat() LLM (обновление диалектического слоя) 2 (рекомендуется 1–5)
dialecticDepth Количество проходов .chat() на один вызов диалектики (1–3) 1

Эти параметры независимы — вы можете иметь частые обновления контекста с редкой диалектикой, или глубокую многопроходную диалектику с низкой частотой. Пример: contextCadence: 1, dialecticCadence: 5, dialecticDepth: 2 обновляет базовый контекст каждый оборот, запускает диалектику каждые 5 оборотов, и каждый запуск диалектики делает 2 прохода.

Глубина диалектики (многопроходная)

Когда dialecticDepth > 1, каждый вызов диалектики выполняет несколько проходов .chat():

Каждый проход использует пропорциональный уровень рассуждения (легкие ранние проходы, базовый уровень для основного прохода). Переопределите уровни на проход с помощью dialecticDepthLevels — например, ["minimal", "medium", "high"] для глубины 3.

Проходы завершаются досрочно, если предыдущий проход вернул сильный сигнал (длинный, структурированный вывод), так что глубина 3 не всегда означает 3 вызова LLM.

Предварительный прогрев при старте сессии

При инициализации сессии Honcho запускает фоновый вызов диалектики с полной настроенной dialecticDepth и передает результат непосредственно в сборку контекста первого оборота. Однопроходный предварительный прогрев на холодном пире часто возвращает тонкий вывод — многопроходная глубина выполняет цикл аудита/согласования до того, как пользователь успеет что-то сказать. Если предварительный прогрев не завершился к первому обороту, первый оборот переключается на синхронный вызов с ограниченным таймаутом.

Адаптивный уровень рассуждения к запросу

Автоматически вставляемая диалектика масштабирует dialecticReasoningLevel в зависимости от длины запроса: +1 уровень при ≥120 символах, +2 при ≥400, с ограничением на reasoningLevelCap (по умолчанию "high"). Отключите с помощью reasoningHeuristic: false, чтобы зафиксировать каждый автоматический вызов на уровне dialecticReasoningLevel. Доступные уровни: minimal, low, medium, high, max.

Параметры конфигурации

Honcho настраивается в ~/.honcho/config.json (глобально) или $HERMES_HOME/honcho.json (локально для профиля). Мастер настройки сделает это за вас.

Полный справочник конфигурации

Ключ По умолчанию Описание
contextTokens null (без ограничения) Лимит токенов для автоматически вставляемого контекста на оборот. Установите целое число (например, 1200) для ограничения. Усекается по границам слов
contextCadence 1 Минимальное количество оборотов между вызовами context() API (обновление базового слоя)
dialecticCadence 2 Минимальное количество оборотов между вызовами peer.chat() LLM (диалектический слой). Рекомендуется 1–5. В режиме tools неактуально — модель вызывает явно
dialecticDepth 1 Количество проходов .chat() на один вызов диалектики. Ограничено диапазоном 1–3
dialecticDepthLevels null Опциональный массив уровней рассуждения на проход, например ["minimal", "low", "medium"]. Переопределяет пропорциональные defaults
dialecticReasoningLevel 'low' Базовый уровень рассуждения: minimal, low, medium, high, max
dialecticDynamic true Когда true, модель может переопределить уровень рассуждения через параметр инструмента
dialecticMaxChars 600 Максимальное количество символов результата диалектики, вставляемого в системный промпт
recallMode 'hybrid' hybrid (автовставка + инструменты), context (только вставка), tools (только инструменты)
writeFrequency 'async' Когда сбрасывать сообщения: async (фоновый поток), turn (синхронно), session (пакетно при завершении), или целое число N
saveMessages true Сохранять ли сообщения в Honcho API
observationMode 'directional' directional (все включено) или unified (общий пул). Переопределите через объект observation для детального контроля
messageMaxChars 25000 Максимальное количество символов на сообщение, отправляемое через add_messages(). Разбивается на части при превышении
dialecticMaxInputChars 10000 Максимальное количество символов для диалектического входного запроса в peer.chat()
sessionStrategy 'per-directory' per-directory, per-repo, per-session или global

Стратегия сессии определяет, как сессии Honcho соотносятся с вашей работой:

Режим извлечения (recall mode) управляет тем, как память поступает в разговоры:

Настройки по режиму извлечения:

Настройка hybrid context tools
writeFrequency сбрасывает сообщения сбрасывает сообщения сбрасывает сообщения
contextCadence регулирует обновление базового контекста регулирует обновление базового контекста неактуально — нет вставки
dialecticCadence регулирует автоматические вызовы LLM регулирует автоматические вызовы LLM неактуально — модель вызывает явно
dialecticDepth многопроходная на один вызов многопроходная на один вызов неактуально — модель вызывает явно
contextTokens ограничивает вставку ограничивает вставку неактуально — нет вставки
dialecticDynamic регулирует переопределение моделью Н/Д (нет инструментов) регулирует переопределение моделью

В режиме tools модель полностью управляет процессом — она вызывает honcho_reasoning когда хочет, с любым выбранным reasoning_level. Настройки каденса и бюджета применяются только к режимам с автовставкой (hybrid и context).

Наблюдение (направленное vs. единое)

Honcho моделирует разговор как обмен сообщениями между пирами. У каждого пира есть два переключателя наблюдения, которые соотносятся 1:1 с SessionPeerConfig от Honcho:

Переключатель Эффект
observeMe Honcho строит представление этого пира из его собственных сообщений
observeOthers Этот пир наблюдает сообщения другого пира (питает межпировое рассуждение)

Два пира × два переключателя = четыре флага. observationMode — это сокращенный пресет:

Пресет Флаги пользователя Флаги AI Семантика
"directional" (по умолчанию) me: вкл, others: вкл me: вкл, others: вкл Полное взаимное наблюдение. Включает межпировую диалектику — «что AI знает о пользователе, исходя из того, что пользователь сказал и что AI ответил».
"unified" me: вкл, others: выкл me: выкл, others: вкл Семантика общего пула — AI наблюдает только сообщения пользователя, пир пользователя моделирует только себя. Пул с одним наблюдателем.

Переопределите пресет с помощью явного блока observation для контроля на уровне пира:

"observation": {
  "user": { "observeMe": true,  "observeOthers": true },
  "ai":   { "observeMe": true,  "observeOthers": false }
}

Типичные сценарии:

Назначение Конфигурация
Полное наблюдение (для большинства пользователей) "observationMode": "directional"
AI не должен перестраивать модель пользователя из своих собственных ответов "ai": {"observeMe": true, "observeOthers": false}
Сильная персона — пир AI не должен обновляться от самонаблюдения "ai": {"observeMe": false, "observeOthers": true}

Переключатели на стороне сервера, установленные через панель управления Honcho, имеют приоритет над локальными настройками — Hermes синхронизирует их обратно при инициализации сессии.

Инструменты

Когда Honcho активен как провайдер памяти, становятся доступны пять инструментов:

Инструмент Назначение
honcho_profile Чтение или обновление карточки пира — передайте card (список фактов) для обновления, опустите для чтения
honcho_search Семантический поиск по контексту — сырые выдержки, без синтеза LLM
honcho_context Полный контекст сессии — сводка, представление, карточка, последние сообщения
honcho_reasoning Синтезированный ответ от LLM Honcho — передайте reasoning_level (minimal/low/medium/high/max) для управления глубиной
honcho_conclude Создание или удаление выводов — передайте conclusion для создания, delete_id для удаления (только PII)

Команды CLI

Подкоманда hermes honcho регистрируется только когда Honcho является активным провайдером памяти (memory.provider: honcho в config.yaml). Запустите hermes memory setup и выберите Honcho; подкоманда появится при следующем запуске.

hermes honcho status          # Статус подключения, конфигурация и ключевые настройки
hermes honcho setup           # Перенаправляет на `hermes memory setup`
hermes honcho strategy        # Показать или установить стратегию сессии (per-session/per-directory/per-repo/global)
hermes honcho peer            # Показать или обновить имена пиров + уровень диалектического рассуждения
hermes honcho mode            # Показать или установить режим извлечения (hybrid/context/tools)
hermes honcho tokens          # Показать или установить лимит токенов для контекста и диалектики
hermes honcho identity        # Заполнить или показать идентичность AI-пира в Honcho
hermes honcho sync            # Синхронизировать конфигурацию Honcho во все существующие профили
hermes honcho peers           # Показать идентичности пиров во всех профилях
hermes honcho sessions        # Список известных сопоставлений сессий Honcho
hermes honcho map             # Сопоставить текущую директорию с именем сессии Honcho
hermes honcho enable          # Включить Honcho для активного профиля
hermes honcho disable         # Отключить Honcho для активного профиля
hermes honcho migrate         # Пошаговое руководство по миграции с openclaw-honcho

Миграция с hermes honcho

Если вы ранее использовали отдельную команду hermes honcho setup:

  1. Ваша существующая конфигурация (honcho.json или ~/.honcho/config.json) сохраняется

  2. Ваши данные на сервере (воспоминания, выводы, профили пользователей) нетронуты

  3. Установите memory.provider: honcho в config.yaml для реактивации

Повторный вход или настройка не требуются. Запустите hermes memory setup и выберите «honcho» — мастер обнаружит вашу существующую конфигурацию.

Полная документация

Смотрите Memory Providers — Honcho для полного справочника.