Honcho
На этой странице Honcho — это AI-native бэкенд для памяти, который добавляет диалектическое рассуждение и глубокое моделирование пользователей поверх встроенной системы памяти Hermes. Вместо простого хранения ключ-значение Honcho поддерживает текущую модель того, кто такой пользователь — его предпочтения, стиль общения, цели и паттерны — путём анализа разговоров после их завершения. Honcho — это плагин для провайдера памяти Honcho интегрирован в систему Провайдеров памяти. Все функции, описанные ниже, доступны через унифицированный интерфейс провайдера памяти.
Что добавляет Honcho¶
| Возможность | Встроенная память | Honcho |
|---|---|---|
| Постоянство между сессиями | ✔ Файловая MEMORY.md/USER.md | ✔ Серверная с API |
| Профиль пользователя | ✔ Ручная курация агентом | ✔ Автоматическое диалектическое рассуждение |
| Сводка сессии | — | ✔ Внедрение контекста в рамках сессии |
| Изоляция между агентами | — | ✔ Разделение профилей по peer'ам |
| Режимы наблюдения | — | ✔ Унифицированное или направленное наблюдение |
| Выводы (производные инсайты) | — | ✔ Серверное рассуждение о паттернах |
| Поиск по истории | ✔ FTS5-поиск по сессиям | ✔ Семантический поиск по выводам |
Диалектическое рассуждение : После каждого оборота разговора (по таймеру dialecticCadence) Honcho анализирует обмен и делает выводы о предпочтениях, привычках и целях пользователя. Они накапливаются со временем, давая агенту углублённое понимание, которое выходит за рамки того, что пользователь явно указал. Диалектика поддерживает многопроходную глубину (1–3 прохода) с автоматическим выбором холодного/тёплого промпта — холодные стартовые запросы фокусируются на общих фактах о пользователе, в то время как тёплые запросы отдают приоритет контексту сессии. |
||
| Контекст сессии : Базовый контекст теперь включает сводку сессии вместе с представлением пользователя и карточкой peer'а. Это даёт агенту понимание того, что уже обсуждалось в текущей сессии, уменьшая повторения и обеспечивая непрерывность. | ||
| Мультиагентные профили : Когда несколько экземпляров Hermes общаются с одним пользователем (например, ассистент по коду и личный ассистент), Honcho поддерживает отдельные профили «peer». Каждый peer видит только свои наблюдения и выводы, предотвращая перекрёстное загрязнение контекста. | ||
| ## Настройка | ||
| [code] | ||
| hermes memory setup # выберите "honcho" из списка провайдеров |
[/code]
Или настройте вручную:
[code]
# ~/.hermes/config.yaml
memory:
provider: honcho
[/code] [code] echo "HONCHO_API_KEY=*** >> ~/.hermes/.env
[/code] Получите API-ключ на honcho.dev.
Архитектура¶
Двухслойное внедрение контекста¶
Каждый оборот (в режиме hybrid или context) Honcho собирает два слоя контекста, внедряемых в системный промпт:
1. Базовый контекст — сводка сессии, представление пользователя, карточка peer'а пользователя, самопредставление AI и идентификационная карточка AI. Обновляется по contextCadence. Это слой «кто этот пользователь».
2. Диалектическое дополнение — синтезированные LLM рассуждения о текущем состоянии и потребностях пользователя. Обновляется по dialecticCadence. Это слой «что важно прямо сейчас».
Оба слоя объединяются и обрезаются до бюджета contextTokens (если задан).
Выбор холодного/тёплого промпта¶
Диалектика автоматически выбирает между двумя стратегиями промптов: * Холодный старт (базового контекста ещё нет): Общий запрос — «Кто этот человек? Каковы его предпочтения, цели и стиль работы?» * Тёплая сессия (базовый контекст существует): Запрос в рамках сессии — «Учитывая то, что обсуждалось в этой сессии, какой контекст об этом пользователе наиболее актуален?»
Это происходит автоматически на основе того, заполнен ли базовый контекст.
Три ортогональных регулятора конфигурации¶
Стоимость и глубина контролируются тремя независимыми регуляторами:
Регулятор| Контролирует| По умолчанию
---|---|---
contextCadence| Обороты между вызовами API context() (обновление базового слоя)| 1
dialecticCadence| Обороты между LLM-вызовами peer.chat() (обновление диалектического слоя)| 2 (рекомендуется 1–5)
dialecticDepth| Количество проходов .chat() на один вызов диалектики (1–3)| 1
Эти регуляторы ортогональны — можно иметь частые обновления контекста с редкой диалектикой, или глубокую многопроходную диалектику с низкой частотой. Пример: contextCadence: 1, dialecticCadence: 5, dialecticDepth: 2 обновляет базовый контекст каждый оборот, запускает диалектику каждые 5 оборотов, и каждый запуск диалектики делает 2 прохода.
Глубина диалектики (многопроходная)¶
Когда dialecticDepth > 1, каждый вызов диалектики выполняет несколько проходов .chat():
* Проход 0 : Холодный или тёплый промпт (см. выше)
* Проход 1 : Самоаудит — выявляет пробелы в первоначальной оценке и синтезирует свидетельства из недавних сессий
* Проход 2 : Согласование — проверяет противоречия между предыдущими проходами и формирует итоговый синтез
Каждый проход использует пропорциональный уровень рассуждения (легче на ранних проходах, базовый уровень для основного прохода). Переопределить уровни для каждого прохода можно с помощью dialecticDepthLevels — например, ["minimal", "medium", "high"] для глубины 3.
Проходы завершаются досрочно, если предыдущий проход вернул сильный сигнал (длинный структурированный вывод), так что глубина 3 не всегда означает 3 LLM-вызова.
Предварительный прогрев сессии¶
При инициализации сессии Honcho запускает фоновый диалектический вызов на полной настроенной dialecticDepth и передаёт результат непосредственно в сборку контекста оборота 1. Однопроходный предварительный прогрев на холодном peer'е часто даёт скудный вывод — многопроходная глубина запускает цикл аудита/согласования до того, как пользователь что-либо скажет. Если прогрев не завершился к обороту 1, оборот 1 переходит к синхронному вызову с ограниченным таймаутом.
Адаптивный уровень рассуждения по запросу¶
Автоматически внедряемая диалектика масштабирует 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 |
Минимальное количество оборотов между вызовами API context() (обновление базового слоя) |
dialecticCadence |
2 |
Минимальное количество оборотов между LLM-вызовами peer.chat() (диалектический слой). Рекомендуется 1–5. В режиме tools неактуально — модель вызывает явно |
dialecticDepth |
1 |
Количество проходов .chat() на один вызов диалектики. Ограничено 1–3 |
dialecticDepthLevels |
null |
Опциональный массив уровней рассуждения для каждого прохода, например ["minimal", "low", "medium"]. Переопределяет пропорциональные значения по умолчанию |
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 соотносятся с вашей работой: | ||
* per-session — каждый запуск hermes получает новую сессию. Чистый старт, память через инструменты. Рекомендуется для новых пользователей. |
||
* per-directory — одна сессия Honcho на рабочую директорию. Контекст накапливается между запусками. |
||
* per-repo — одна сессия на git-репозиторий. |
||
* global — единая сессия для всех директорий. |
Режим recall управляет тем, как память поступает в разговоры:
* hybrid — контекст автоматически внедряется в системный промпт И инструменты доступны (модель решает, когда запрашивать).
* context — только автоматическое внедрение, инструменты скрыты.
* tools — только инструменты, без автоматического внедрения. Агент должен явно вызывать honcho_reasoning, honcho_search и т.д.
Настройки для каждого режима recall:
Настройка| hybrid| context| tools
---|---|---|---
writeFrequency| сбрасывает сообщения| сбрасывает сообщения| сбрасывает сообщения
contextCadence| управляет обновлением базового контекста| управляет обновлением базового контекста| неактуально — нет внедрения
dialecticCadence| управляет автоматическими LLM-вызовами| управляет автоматическими LLM-вызовами| неактуально — модель вызывает явно
dialecticDepth| многопроходность на вызов| многопроходность на вызов| неактуально — модель вызывает явно
contextTokens| ограничивает внедрение| ограничивает внедрение| неактуально — нет внедрения
dialecticDynamic| управляет переопределением модели| Н/Д (нет инструментов)| управляет переопределением модели
В режиме tools модель полностью контролирует ситуацию — она вызывает honcho_reasoning, когда хочет, на любом выбранном reasoning_level. Настройки каденса и бюджета применяются только к режимам с автоматическим внедрением (hybrid и context).
Наблюдение (направленное vs. унифицированное)¶
Honcho моделирует разговор как обмен сообщениями между peer'ами. У каждого peer'а есть два переключателя наблюдения, которые сопоставляются 1:1 с SessionPeerConfig Honcho:
Переключатель| Эффект
---|---
observeMe| Honcho строит представление этого peer'а на основе его собственных сообщений
observeOthers| Этот peer наблюдает сообщения другого peer'а (питает кросс-peer рассуждение)
Два peer'а × два переключателя = четыре флага. observationMode — это сокращённый пресет:
Пресет| Флаги пользователя| Флаги AI| Семантика
---|---|---|---
"directional" (по умолчанию)| me: вкл, others: вкл| me: вкл, others: вкл| Полное взаимное наблюдение. Включает кросс-peer диалектику — «что AI знает о пользователе, исходя из того, что пользователь сказал и что AI ответил.»
"unified"| me: вкл, others: выкл| me: выкл, others: вкл| Семантика общего пула — AI наблюдает только сообщения пользователя, peer пользователя моделирует только себя. Одиночный пул наблюдения.
Переопределите пресет с помощью явного блока observation для контроля на уровне peer'а:
[code]
"observation": {
"user": { "observeMe": true, "observeOthers": true },
"ai": { "observeMe": true, "observeOthers": false }
}
[/code]
Распространённые сценарии:
Намерение| Конфигурация
---|---
Полное наблюдение (для большинства пользователей)| "observationMode": "directional"
AI не должен переосмысливать пользователя на основе своих ответов| "ai": {"observeMe": true, "observeOthers": false}
Сильная персона, которую AI peer не должен обновлять из самонаблюдения| "ai": {"observeMe": false, "observeOthers": true}
Серверные переключатели, заданные через панель управления Honcho, имеют приоритет над локальными значениями по умолчанию — Hermes синхронизирует их при инициализации сессии.
Инструменты¶
Когда Honcho активен в качестве провайдера памяти, становятся доступны пять инструментов:
Инструмент| Назначение
---|---
honcho_profile| Чтение или обновление карточки peer'а — передайте card (список фактов) для обновления, опустите для чтения
honcho_search| Семантический поиск по контексту — сырые выдержки, без LLM-синтеза
honcho_context| Полный контекст сессии — сводка, представление, карточка, последние сообщения
honcho_reasoning| Синтезированный ответ от LLM Honcho — передайте reasoning_level (minimal/low/medium/high/max) для контроля глубины
honcho_conclude| Создание или удаление выводов — передайте conclusion для создания, delete_id для удаления (только PII)
CLI-команды¶
[code]
hermes honcho status # Статус подключения, конфигурация и ключевые настройки
hermes honcho setup # Интерактивный мастер настройки
hermes honcho strategy # Показать или установить стратегию сессии
hermes honcho peer # Обновить имена peer'ов для мультиагентных конфигураций
hermes honcho mode # Показать или установить режим recall
hermes honcho tokens # Показать или установить бюджет токенов контекста
hermes honcho identity # Показать идентичность peer'а Honcho
hermes honcho sync # Синхронизировать блоки хостов для всех профилей
hermes honcho enable # Включить Honcho
hermes honcho disable # Отключить Honcho
[/code]
Миграция с hermes honcho¶
Если вы ранее использовали отдельную команду hermes honcho setup:
1. Ваша существующая конфигурация (honcho.json или ~/.honcho/config.json) сохраняется
2. Ваши серверные данные (воспоминания, выводы, профили пользователей) остаются нетронутыми
3. Установите memory.provider: honcho в config.yaml для реактивации
Повторный вход или настройка не требуются. Запустите hermes memory setup и выберите «honcho» — мастер обнаружит вашу существующую конфигурацию.
Полная документация¶
См. Провайдеры памяти — Honcho для полного справочника.
* Что добавляет Honcho
* Настройка
* Архитектура
* Двухслойное внедрение контекста
* Выбор холодного/тёплого промпта
* Три ортогональных регулятора конфигурации
* Глубина диалектики (многопроходная)
* Предварительный прогрев сессии
* Адаптивный уровень рассуждения по запросу
* Параметры конфигурации
* Полный справочник конфигурации
* Наблюдение (направленное vs. унифицированное)
* Инструменты
* CLI-команды
* Миграция с hermes honcho
* Полная документация