August 19

Мастер-класс по Hermes Desktop, часть 1: что такое Hermes Desktop

Мне нужно исправить то, что я раньше говорил о Hermes Desktop. Какое-то время я описывал его как графический интерфейс для Hermes Agent. Это не совсем неверно. Просто сейчас он крайне недоработан.

Если сегодня вы откроете Hermes Desktop и подумаете, что перед вами Hermes Agent с более красивыми кнопками, то вы не до конца понимаете, что это за программа.

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

Потому что в Hermes Desktop гораздо больше смысла, когда вы понимаете, что на самом деле происходит под этим окном.Итак, с этого мы и начнем.

Hermes Agent по-прежнему является движком

Первое, что нужно понять: Hermes Desktop — это не отдельный ИИ-агент.

Вы не запускаете Desktop и вдруг не получаете другого Hermes с его собственным мозгом, навыками, памятью и какой-то загадочной индивидуальностью, которая прячется где-то в папке.

Hermes Desktop построен на той же среде выполнения Hermes Agent.

В текущей документации об этом говорится прямо. Настольная версия использует тот же базовый мир Hermes: конфигурация, сеансы, навыки, память, инструменты, провайдеры и поведение агента — все это живет в Hermes Agent, а не создается заново в настольном приложении.

Вот почему представление о Desktop как о совершенно отдельном продукте почти сразу уводит вас по ложному пути.

Лучше думать об этом так:

Hermes Agent — это двигатель.Hermes Desktop — это кабина пилота.

И эта кабина пилота стала НАМНОГО серьезнее, чем несколько месяцев назад.

На самом деле в ней есть три основных элемента

Я бы хотел, чтобы больше людей это поняли, потому что это сразу объясняет множество особенностей поведения Hermes Desktop. Текущая архитектура Desktop имеет три четких зоны ответственности. 1. Electron отвечает за нативные компоненты рабочего стола.

Hermes Desktop — это приложение Electron.Electron отвечает за то, что на самом деле относится к десктопным приложениям: окна, интеграцию с аппаратным обеспечением, жизненный цикл приложения, поведение на уровне операционной системы и связь между приложением и возможностями компьютера.Это не агент.Это оболочка, которая позволяет Hermes вести себя как настоящее десктопное приложение, а не как терминальная программа, изо всех сил притворяющаяся таковым.

2. React отвечает за то, что вы видите и с чем взаимодействуете.Видимая часть Hermes Desktop — это рендерер React.

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

Терминал отлично справляется со своей задачей.

Попытки заставить его работать как полноценное визуальное рабочее пространство в конечном итоге превращаются в ASCII-гимнастику, о которой никто не просил.

3. Серверная часть Hermes Agent выполняет фактическую работу агентаЭто самое важное. Серверная часть отвечает за реальную работу Hermes: сеансы, инструменты, вызовы моделей, потоковую передачу, выполнение агентов и состояние, которое относится к среде выполнения агентов. Desktop взаимодействует с серверной частью, а не перестраивает всю эту логику внутри Electron.

Такое разделение — одна из главных причин, по которой Desktop может продолжать развиваться, не превращаясь в какую-то странную версию Hermes Agent.Пользовательский интерфейс может стать более функциональным.Electron может получить новые встроенные возможности.

Среда выполнения агента может продолжать выполнять свои функции.

Необязательно, чтобы все они превратились в один гигантский комок кода, скрепленный молитвами и пометкой TODO шестимесячной давности.

Так что же на самом деле запускается, когда вы открываете Desktop?

На высоком уровне процесс выглядит так:

Пользовательский интерфейс Hermes Desktop

Рендерер React / транспорт для десктопа

Обмен данными через JSON-RPC и WebSocket

`hermes serve`

Среда выполнения Hermes Agent

Вот текущая архитектура, о которой стоит помнить.Desktop не встраивает `hermes --tui` в красивое окно.

Кроме того, недостаточно просто открыть веб-панель Hermes в Electron и на этом успокоиться. Встроенный пользовательский интерфейс для настольных компьютеров взаимодействует с серверной частью Hermes.

По умолчанию Desktop может управлять локальным сервером `hermes serve` на том же компьютере.

В этом сервере находится агентская часть уравнения.

Для более старых версий среды выполнения предусмотрена некоторая совместимость, поэтому в старых руководствах в этом контексте может упоминаться безголовая панель управления, но в современной архитектуре Desktop основное внимание уделяется команде `hermes serve`.

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

Рабочий стол, интерфейс командной строки, пользовательский интерфейс и панель управления — это не одно и то же

В Hermes накопилось столько интерфейсов, что очень легко использовать пять разных слов для обозначения трех разных вещей и запутать всех вокруг.

Так что давайте это исправим.

Интерфейс командной строки

Интерфейс командной строки — это часть Hermes, работающая через командную строку.

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

Я до сих пор постоянно им пользуюсь.Desktop не сделал интерфейс командной строки устаревшим, как установка файлового менеджера не сделала устаревшей команду `ls`.

TUI

TUI — это интерактивный интерфейс Hermes внутри терминала.

По-прежнему в стиле терминала.По-прежнему полезен.По-прежнему не то, что Hermes Desktop тайно рендерит под капотом.

Веб-панель

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

Это различие становится все более важным по мере развития архитектуры.Hermes

Desktop

Desktop — это нативная поверхность приложения.

Она создана для того, чтобы предоставить Hermes гораздо более богатую визуальную и машинно-ориентированную среду, при этом опираясь на ту же среду выполнения агентов.

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

Это разные способы взаимодействия с одной и той же более широкой системой Hermes.

Один «Гермес», множество поверхностей

Эта общая архитектура имеет очень практичное применение.

Ваши сеансы работы на компьютере не должны существовать в какой-то изолированной вселенной.

Система сессий принадлежит серверной части.

Именно это общее состояние позволяет сессиям Hermes отображаться в разных интерфейсах, а не вести собственную изолированную историю в каждом фронтенде.

Это одна из причин, по которой я перестал задаваться вопросом «Какой интерфейс мне использовать?».

Я использую тот интерфейс, который подходит для того, что я делаю.

Если я работаю в терминале, то CLI или TUI всегда под рукой.

Если мне нужно провести за компьютером больше времени и я хочу видеть файлы, предварительные просмотры, визуальный контекст, настройки, терминалы или другие элементы рабочего стола, я использую Desktop.

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

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

«Локальное» по умолчанию не означает «только локальное».

Вот где архитектура становится по-настоящему интересной.

Пользовательский интерфейс Desktop и среда выполнения Hermes не обязательно должны находиться на одном физическом компьютере.

Обычно Desktop прекрасно работает с бэкендом, запущенным локально на том же компьютере.

Но Desktop также может подключаться к Hermes, работающему где-то еще.

Концептуально это может выглядеть так:

Ваш настольный компьютер или ноутбук

Hermes Desktop

↓ сеть

Другой компьютер

Серверная часть Hermes

Среда выполнения Hermes Agent

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

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

Этому мы посвятим отдельную главу.

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

Как только вы это осознаете, многие более сложные настройки Hermes перестанут казаться колдовством.

И нет, серверная часть Desktop — это не шлюз обмена сообщениями

Эта терминология может быстро надоесть, поэтому я сразу проясню ситуацию.

Серверная часть Hermes Desktop и постоянно работающий шлюз обмена сообщениями, используемый для таких каналов, как Telegram, Discord, Slack и других, — это не одно и то же.

На удаленном компьютере с Hermes могут быть запущены оба сервиса.

Но это не делает их одним сервисом.

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

Если вы когда-либо читали три руководства по Hermes и задавались вопросом, почему слово «шлюз» вдруг стало означать все, кроме выхода из аэропорта, то вот вам часть ответа.

Мы подробно разберем соединения и шлюзы в следующих выпусках.

Зачем вообще нужен Desktop?

Здесь ответ кардинально изменился с течением времени.

Если бы Desktop по-прежнему представлял собой не более чем окно чата с возможностью выбора модели, я бы посоветовал вам использовать тот интерфейс, который вам больше нравится, и жить своей жизнью.Но это уже не про Hermes Desktop.

В официальном дизайне Desktop в центре внимания остаются транскрипт и композитор.Чат по-прежнему является основной функцией.Однако вокруг этого диалога Hermes выстраивает настоящую рабочую среду.

Текущие функции Desktop включают в себя такие возможности, как поиск проектов и репозиториев, файлов, артефактов, терминалов, просмотр Git и рабочих деревьев, визуализация памяти, быстрый доступ, взаимодействие в стиле HUD, профили, параллельные сеансы, режим бота, плагины, удаленные серверы и все более разнообразный интерактивный контент внутри самого диалога. Я намеренно не рассказываю обо всем этом здесь.

Об этом и пойдет речь в мастер-классе.Суть первой части заключается в следующем:

Называть Hermes Desktop «графическим интерфейсом» — это все равно что называть мастерскую «комнатой, где лежит молоток».

С технической точки зрения — да. Но мы многое упускаем.

Desktop может стать более функциональным, не заменяя Hermes Agent

В основе всего этого лежит один архитектурный трюк. Благодаря разделению обязанностей Hermes Desktop может создавать все более сложные визуальные эффекты, не перенося «мозг» агента в пользовательский интерфейс.

Бэкенд по-прежнему отвечает за выполнение агента. React по-прежнему отвечает за взаимодействие и представление данных. Electron по-прежнему отвечает за нативный десктопный слой.

Это дает проекту возможность создавать решения, которые будут работать на десктопах, не превращая каждый интерфейс Hermes в нечто однотипное.

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

Нативный пользовательский интерфейс может отображать рабочие процессы, которые было бы сложно воспроизвести в виде вывода в терминал.

А агент Hermes по-прежнему остается агентом Hermes. Это гораздо более понятная модель, чем «они создали графический интерфейс».

Desktop doesn't replace the other Hermes interfaces

Я хочу внести ясность, прежде чем кто-то вырвет один абзац из контекста и развяжет священную войну за терминалы.

Я по-прежнему люблю интерфейс командной строки.

Я по-прежнему использую рабочие процессы с терминалом.

Есть задачи, для которых терминал — идеальный интерфейс.

Есть задачи, для которых лучше подходит рабочий стол.

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

В этом и суть.

Hermes не заставляет взаимодействовать только через одно окно.

Интерфейсы дополняют друг друга.

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

Ментальная модель, которую следует сохранить

Если вы ничего не запомнили из первой части, запомните вот что:

Hermes Agent — это среда выполнения агента.

`hermes serve` — это серверная служба, с которой в настоящее время взаимодействует Hermes Desktop.

Рендерер React — это визуальное рабочее пространство, с которым вы взаимодействуете.

Electron обеспечивает нативную оболочку для настольных компьютеров и интеграцию с аппаратным обеспечением.

Интерфейс командной строки, TUI и веб-панель — это другие интерфейсы Hermes со своими преимуществами.

Шлюзы обмена сообщениями — это отдельная постоянно работающая инфраструктура для поддерживаемых каналов чата.

Вот такая схема.

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

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

Но все это бесполезно, если архитектура, лежащая в основе, несовершенна.

Поэтому в первой части мы займемся скучной на первый взгляд работой, которая в итоге упростит все остальное:

Разберемся, что на самом деле представляет собой Hermes Desktop.Теперь мы можем начать пользоваться этой чертовой штукой. 🤘

Официальные источники