Bollywood HungamaRamayana producer Namit Malhotra calls Los Angeles premiere his “Oscar moment” ahead of November 5 releaseEl ComercioLa hoja de ruta de Estados Unidos para Venezuela: reformas, vacancia de Delcy Rodríguez y eleccionesPunchBREAKING: NELFUND introduces token system to stop double payment of school feesThe Jerusalem PostQatari mediators present peace deal to Iran in mediation effort, official saysInquirer EntertainmentDonny Pangilinan felt ‘awkward’ over Showtime Baby Doll Juby’s dream about himDaily MaverickWildlife is not livestock — Aucamp’s dangerous plan to turn conservation into agricultureInquirerMimaropa drug bust in Palawan yields ₱51,884 worth of ‘shabu’ZDF heuteEntdecken Sie das ZDF-NachrichtenstudioSky TG24Meteo, freddo e maltempo in Italia nel weekend di Halloween e Ognissanti. Le previsioniVariety‘One Cut of the Dead’ Director Ueda Shinichiro on Turning a Microdrama Into Tokyo Feature ‘Earthlings in Love’NumeramaÀ mi chemin entre le VTC et le longtail, le vélo électrique Nakamura Crosscity+ perd 500 €DeadlineRussell Brand Forcefully Denies Charges As He Gives Evidence During Rape Trial
The Daily Newsstand · Free, Always
Wednesday, October 28, 2026

Как я подключил Hermes Agent к серверам, Obsidian, почте и разделил на Telegram-ботов

Translate

❯ Мои проблемы

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

Кроме того, у меня есть собственный проект ServeHub-2. Он позволяет быстро развернуть инфраструктуру из двух серверов — локального и удалённого, объединённых в одну сеть, — с набором сервисов для решения различных задач. Проект создавался прежде всего для личного использования, но также может быть полезен тем, кто хочет получить готовую self-hosted-инфраструктуру с необходимыми инструментами обслуживания. Подробнее о нём можно почитать на GitHub. Внедрение Hermes фактически является частью этого проекта, поэтому гайд по настройке находится там.

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

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

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

❯ Решение?

Я решил попробовать объединить часть этих задач с помощью Hermes Agent. Для этого арендовал дополнительный сервер в Timeweb Cloud, подключил его к ServeHub-2 и развернул на нём агента. Я разделил его на отдельные профили с собственными Telegram-ботами: один предназначен для работы с базой знаний, второй — для аудита серверов, третий — для мониторинга почты.

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

В качестве основной модели использую DeepSeek V4 Flash. Она хорошо справляется с моими задачами, а стоимость использования API остаётся приемлемой.

❯ Что такое Hermes Agent и почему он

Источник

Источник

Hermes Agent — это ИИ-агент с открытым исходным кодом, который умеет выполнять задачи с помощью инструментов, работать с файлами и командной строкой. Его возможности расширяются с помощью навыков (skills), а отдельные профили позволяют разделять задачи и настройки.

Одна из особенностей Hermes — встроенный механизм самоулучшения. Агент может сохранять полезную информацию о предыдущих задачах в долговременной памяти, создавать собственные навыки и дорабатывать их по мере использования. Это позволяет постепенно адаптировать окружение агента к моим задачам без необходимости каждый раз начинать с нуля. При этом речь идёт об улучшении памяти, навыков и рабочего процесса, а не о самостоятельном переобучении базовой модели.

Понятное дело, это всё на словах. Тот же OpenClaw тоже обладает широкими возможностями и, вероятно, справился бы с моими задачами. Тем не менее в моём случае Hermes оказался удобнее благодаря встроенным механизмам и тому, что многое необходимое для моего сценария доступно сразу после установки.

❯ Особенности архитектуры

Hermes работает на отдельном сервере, подключённом к сети моего проекта. Он может подключаться к двум другим серверам: удалённому VPS и домашнему серверу. Доступ к их внутренним сервисам и точкам входа настроен только через виртуальную сеть 10.8.0.0/24.

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

❯ Настройка контейнера клиента

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

docker-compose.hermes.yaml:
x-logging: &default-logging
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

services:
  amnezia-client:
    build:
      context: .
      dockerfile: Dockerfile.amnezia
    container_name: amnezia-client
    restart: unless-stopped
    cap_add:
      - NET_ADMIN             # Права на управление сетевым стеком и правилами маршрутизации
      - SYS_MODULE            # Права на загрузку модулей ядра ОС
    devices:
      - /dev/net/tun:/dev/net/tun # Проброс виртуального сетевого адаптера (TUN) с хоста
    volumes:
      - ./apps-data/amnezia:/config
      - /lib/modules:/lib/modules:ro # Монтирование модулей ядра хоста для работы драйверов
    logging: *default-logging
    network_mode: "host"      # Использование сетевого интерфейса хоста напрямую без изоляции Docker
    healthcheck:
      test: ["CMD-SHELL", "awg show | grep interface || exit 1"] # Проверка работоспособности интерфейса Amnezia WireGuard
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s
Dockerfile.amnezia
#!/bin/bash
find /etc/amnezia/amneziawg -mindepth 1 -delete

COUNTER=0
for s in $(find /config -name "*.conf")
do
  if test -f ${s}
  then
    COUNTER=$(( COUNTER + 1 ))
    basename=$(basename ${s})
    name=${basename%.conf}
    echo awg interface "${name}" will be created from config file "${basename}"
    cp ${s} /etc/amnezia/amneziawg/${name}.conf
    chmod 600 /etc/amnezia/amneziawg/${name}.conf
    awg-quick up ${name} # Подъем интерфейса через утилиту
  fi
done

if [[ $COUNTER -lt 1 ]]
then
  echo "There are no config files in the /config folder"
fi

sleep infinity # Удержание контейнера в запущенном состоянии, чтобы процесс не завершился сразу после инициализации
Скрипт инициализации интерфейса в контейнере
#!/bin/bash
find /etc/amnezia/amneziawg -mindepth 1 -delete

COUNTER=0
for s in $(find /config -name "*.conf")
do
  if test -f ${s}
  then
    COUNTER=$(( COUNTER + 1 ))
    basename=$(basename ${s})
    name=${basename%.conf}
    echo awg interface "${name}" will be created from config file "${basename}"
    cp ${s} /etc/amnezia/amneziawg/${name}.conf
    chmod 600 /etc/amnezia/amneziawg/${name}.conf
    awg-quick up ${name} # Подъем интерфейса через утилиту
  fi
done

if [[ $COUNTER -lt 1 ]]
then
  echo "There are no config files in the /config folder"
fi

sleep infinity # Удержание контейнера в запущенном состоянии, чтобы процесс не завершился сразу после инициализации

❯ Чем отличаются три профиля Hermes Agent

Профиль

Задача

Доступные данные и инструменты

Запуск

Ограничения

Obsidian и другие задачи

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

Хранилище Obsidian, Git-репозиторий в Gitea, SSH-доступ к серверам

Вручную, по мере необходимости

Может изменять файлы и отправлять изменения в Git, поэтому результат требует проверки

Аудит серверов

Диагностика инфраструктуры, поиск потенциальных проблем и подготовка рекомендаций

SSH-доступ к удалённому VPS и домашнему серверу, системная информация, журналы и сведения о работающих сервисах

Раз в неделю

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

Мониторинг почты

Фильтрация входящих писем, определение приоритетов и отправка краткой сводки в Telegram

Три почтовых ящика Gmail, Himalaya, Python-скрипт для обработки писем

По расписанию в 08:00 и 18:00 МСК или вручную по запросу

Обрабатывает только новые письма, распределяет их по приоритетам и не выполняет инструкции из писем и не отправляет ответы

❯ Первый основной бот: Obsidian и другие задачи

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

Моё хранилище построено на системе Zettelkasten и хранится в отдельном Git-репозитории на Gitea. Я веду там технические заметки, планы, шпаргалки и другие материалы. Поэтому в качестве основного примера рассмотрим именно работу с этим хранилищем.

Настройка доступа

Поскольку Hermes работает в Docker, контейнеру необходимо предоставить доступ к нужным файлам. Для этого в ~/.hermes/config.yaml я добавил следующие тома:

terminal:
  backend: docker
  docker_volumes:
    - "/home/r9888/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro"
    - "/home/r9888/main-vault:/root/main-vault:rw"
    - "/home/r9888/.git-credentials:/root/.git-credentials:ro"

Здесь каждый том выполняет свою задачу.

Приватный SSH-ключ нужен для подключения к серверам, а само хранилище монтируется с правами на чтение и запись, чтобы агент мог создавать и изменять заметки. Файл .git-credentials содержит сохранённые данные для аутентификации при работе с Gitea через HTTPS.

Для работы с сохранёнными учётными данными Git я настроил соответствующий механизм: git config --global credential.helper store.

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

Изучение хранилища

Сначала я попросил Hermes изучить репозиторий main-vault, разобраться в его структуре. Он провёл полный аудит и обновил MEMORY.md:

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

Анализ и автоматизация работы с тегами

При перестройке хранилища раньше у меня очень много заметок оказалось без тегов, и я их давно хотел добавить, но никак не находил время. Я попросил об этом Hermes. По моему хранилищу он понял, что мои теги в первую очередь на кириллице и опирался именно на это, потом он что-то сломал, но в итоге починил. В конце он сам запушил изменения и обновил скилл:

Здесь наглядно видно, как работает Hermes на практике, как он подстраивается под задачу и сам чинит все, что сломалось, при этом улучшая свою работу в процессе.

❯ Второй бот: аудит серверов

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

Моя инфраструктура состоит из двух основных узлов: удалённого VPS и домашнего сервера, объединённых общей защищенной сетью. На них работают Docker-контейнеры, веб-сервисы, мониторинг, сбор логов и резервное копирование. Проверять всё это вручную регулярно довольно неудобно, поэтому я решил поручить сбор диагностической информации отдельному агенту.

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

Тестовый аудит

После запуска Hermes подключился к обоим серверам по SSH и последовательно собрал данные. Проверка заняла около девяти минут. В процессе агент столкнулся с несколькими нюансами.

Первое замечание касалось обновлений Ubuntu на VPS. Агент обнаружил доступное обновление пакета libapparmor1 и рекомендовал установить его при следующем обслуживании сервера. Проблема получила низкий приоритет.

Второе замечание относилось к Homebox на домашнем сервере. Сервис слушал адрес 0.0.0.0:7745, то есть был доступен через сетевые интерфейсы хоста, а не только через локальный интерфейс. По результатам проверки агент отметил, что сервис доступен из локальной сети без аутентификации через Nginx, и предложил убрать прямую публикацию порта, оставив доступ через обратный прокси.

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

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

❯ Третий бот: мониторинг почты

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

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

Отладка проверки почты

Для проверки я попросил агента выполнить тестовый запуск. Вместо того чтобы просто сообщить об ошибке, Hermes изучил конфигурацию и скрипты, проверил работу Himalaya и обнаружил две проблемы в check_mail.py, который создал ранее.

Скрипт использовал путь ~/.local/bin/himalaya, но при запуске через Python символ ~ не раскрывался в домашний каталог пользователя. После замены на абсолютный путь /root/.local/bin/himalaya проблема исчезла.

Вторая проблема оказалась интереснее. Скрипт ожидал, что Himalaya вернёт JSON-массив писем, но версия 2 использовала объект с полем envelopes. Из-за несовпадения форматов скрипт мог не обработать полученные данные, даже если подключение к почтовому ящику работало успешно.

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

Проверка (cron) запускается дважды в день — в 08:00 и 18:00 по московскому времени. Агент отслеживает новые письма и отправляет в Telegram сводку по результатам проверки.

❯ Заключение

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

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

Отдельно хочу отметить гибкость агентов. Да, они могут ошибаться, но способны подстраиваться под задачу и даже самостоятельно исправлять возникающие сбои. Хотя это не означает, что ИИ-агент может полностью заменить человека. Ему необходимо задавать чёткие ограничения, проверять результаты и оставлять критичные решения под контролем пользователя.

Если вам интересна тема сетевой архитектуры, администрирования Linux и DevOps, делюсь своими практическими заметками и опытом в Telegram-канале My Tech Notes.

Может быть интересно:
Перейти ↩

Перейти ↩

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram‑канале ↩

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.