OpenClaw умер, да здравствует Hermes Agent?
Ты еще держишься за OpenClaw? Ну-ну. Я тоже держался. Пока не заметил, что мой агент начал сам себе апрувить транзакции (привет, уязвимость с /pair approve). А потом прочитал, как китайские хабровцы зарабатывают на установке OpenClaw — и понял: пора валить. Выбор пал на Hermes Agent. Open source, своя память, любые модели — и никаких «закрытых ключей». Но переезд — это всегда боль. Расскажу, как я это делал, где спотыкался и что в итоге получилось.
Если ты еще не определился, какой агент тебе нужен — сначала прочитай сравнение Hermes и OpenClaw. А здесь — чистая практика.
Что ты теряешь при переезде? (и что приобретаешь)
OpenClaw — это монолит. Ты просто настраиваешь config.yaml и используешь готовые коннекторы к GitHub, почте, календарю. Hermes Agent — конструктор. Ты сам решаешь, какие скиллы (skills) дать агенту, какую модель подключить, где хранить память. Потеря: готовые коннекторы (их надо переписывать). Приобретение: тотальный контроль и персистентная память, которая помнит контекст через недели.
| Аспект | OpenClaw | Hermes Agent (v2.5) |
|---|---|---|
| Модели | Только закрытые (Claude/GPT) | Любые через API: Ollama, Hugging Face, vLLM |
| Память | Только история диалога | Персистентная векторная (ChromaDB/Weaviate) |
| Каналы связи | Telegram / Slack / Web | Telegram + любые кастомные (через плагины) |
| Безопасность | Закрытый код, уязвимости | Open source, audit, sandboxing |
Перед переездом: собираем чемоданы (бэкап OpenClaw)
Первое правило миграции — не сломать то, что работает. У тебя есть агенты в OpenClaw? Экспортируй их конфиги и историю. OpenClaw хранит всё в ~/.openclaw/config.yaml и базе SQLite в ~/.openclaw/data.db. Просто скопируй эти файлы. Потом они пригодятся для восстановления сценариев.
mkdir -p ~/backup-openclaw
cp ~/.openclaw/config.yaml ~/backup-openclaw/
cp ~/.openclaw/data.db ~/backup-openclaw/
echo "Бэкап готов, но это не всё"Не забудь заскринить список твоих «скиллов» (в терминах OpenClaw — actions). Команда openclaw list-actions покажет всё. Запиши, какие действия ты использовал чаще всего: работа с GitHub, парсинг сайтов, отправка писем. В Hermes Agent это придется реализовывать как skills — либо писать на Python, либо брать готовые из маркетплейса.
Ставим Hermes Agent: не повторяйте моих ошибок
Hermes Agent ставится через pip или Docker. Официальная документация рекомендует pip install hermes-agent. Я так и сделал — и получил версию 1.9. А на дворе июнь 2026, актуальная — 2.5 с нормальной памятью. Как не ошибиться: ставьте прямо из репозитория с тегом:
pip install git+https://github.com/AgileVentures/HermesAgent.git@v2.5.0Или используйте Docker — docker pull ghcr.io/agileventures/hermes-agent:2.5.0. Я предпочитаю Docker, потому что изоляция. Но если ты хочешь кастомный GUI — тогда тебе на Hermes Agent Desktop.
Грабли #1: Если ставишь через pip, убедись, что Python >= 3.11 и установлены все системные зависимости — особенно libsqlite3-dev для векторной памяти. Иначе ChromaDB упадет с сегфолтом.
Проверяем установку:
hermes --version
# Версия 2.5.0Переносим скиллы и агентов: конвертация сценариев
В OpenClaw ты описывал действия в config.yaml:
actions:
- name: "search_google"
command: "python search.py"В Hermes Agent скилл — это папка со структурой skill.yaml и исполняемым файлом (Python/Shell/JavaScript). Переносим:
- Создай папку
~/.hermes/skills/my_skills - Для каждого action из OpenClaw напиши skill.yaml и обертку. Пример для поиска в Google:
# ~/.hermes/skills/my_search/skill.yaml
name: google_search
description: Поиск в Google и возврат первых 5 результатов
command: python search.py
inputs:
- name: query
type: string
required: true# search.py
import sys, json, requests
def search(query):
resp = requests.get('https://www.googleapis.com/customsearch/v1', params={'q': query, 'key': '...', 'cx': '...'})
return [item['snippet'] for item in resp.json().get('items', [])[:5]]
if __name__ == '__main__':
print(json.dumps(search(sys.argv[1])))Подключаем скилл в config.yaml Hermes:
skills:
- path: ~/.hermes/skills/my_searchИ так — для каждого действия. Да, это боль. Но зато теперь ты сам управляешь логикой. Никаких скрытых «фич» OpenClaw.
Настройка персистентной памяти: та ещё головная боль
OpenClaw не умел хранить контекст между сессиями. Hermes Agent (начиная с v2.0) имеет модуль Memora. Под капотом — ChromaDB. Настройка простая:
memory:
provider: chroma
persist_directory: ~/.hermes/memory
embedding_model: BAAI/bge-small-en-v1.5Грабли #2: Если используешь эмбеддинги через Hugging Face — убедись, что модель загружена локально. Иначе при каждой перезагрузке агент будет качать гигабайты. Закешируй в ~/.cache/huggingface. Или используй ollama для эмбеддингов.
Переносим историю из OpenClaw: в data.db лежат старые сообщения. Я написал простой скрипт, который читает SQLite и добавляет записи в векторную базу через API Hermes. Но проще — начать с чистого листа. Честно, старые диалоги чаще всего бесполезны, потому что модель OpenClaw говорила совсем на другом языке.
Telegram Bot: как заставить агента отвечать в чате
В OpenClaw ты просто указывал токен бота. В Hermes Agent — поднимается отдельный сервис-адаптер. Я использую встроенный модуль hermes-telegram-adapter. Установка:
pip install hermes-telegram-adapterНастройка в конфиге:
adapters:
telegram:
token: "YOUR_BOT_TOKEN"
allowed_users: ["your_telegram_id"]Запускаем:
hermes run adapter telegram --config config.yamlГрабли #3: Webhook не поддерживается из коробки — только long polling. Если хочешь webhook — придется ставить nginx и использовать отдельный endpoint. И не забудь ставить webhook_domain переменную.
Протестируй: напиши боту /start. Должен ответить приветствием. Если молчит — смотри логи ~/.hermes/logs/adapter.log.
Боевые грабли: что пошло не так у меня
Вот список реальных проблем, с которыми я столкнулся за неделю миграции:
- Модель не держит контекст. Оказывается, при использовании Ollama через Hermes нужно явно указывать
context_lengthв конфиге модели. По умолчанию 2048 токенов — мало. Я поставил 8192. Статья про настройку агента на VPS помогла разобраться. - Memory module съедает всю RAM. ChromaDB при большом количестве эмбеддингов жрет память. Решение — использовать Weaviate вместо Chroma, если у тебя > 100 000 векторов. Или поставить лимит на размер коллекции.
- Skills не видят внешние переменные окружения. В Hermes Agent skills запускаются в изолированном subprocess. Пришлось передавать
envчерезskill.yaml:
environment:
GITHUB_TOKEN: "${GITHUB_TOKEN}"Или использовать глобальный env файл.
- Старые скрипты на Python 3.10 не работают. В контейнере Hermes стоит Python 3.12 — пришлось обновить несколько библиотек. Да, обратная совместимость хромает.
Вместо выводов: несколько неочевидных советов
Миграция с OpenClaw на Hermes Agent — это как переезд из хрущевки в элитную студию: много работы, но потом кайфуешь. Вот три совета, которые я вынес:
- Не пытайся перенести всё. Оставь позади 50 исторических сообщений из OpenClaw. Новая модель (например, Hermes 2.5 с Mistral 7B) будет лучше решать задачи.
- Сначала разверни на минималках. Подними Hermes Agent на дешевой VPS (Hetzner Cloud CX21 — 2 vCPU, 4 GB RAM) без памяти, просто чтобы проверить связку с Telegram. Потом добавляй память и сложные скиллы.
- Логи — твой лучший друг. Включай debug-level логи на старте:
hermes --log-level DEBUG. Ты увидишь каждый запрос к модели, каждый вызов скилла — это спасло меня от кучи недоразумений.
Hermes Agent — не панацея. Но если OpenClaw уже начал тормозить, «забывать» команды или тебя пугает желание OpenClaw заполучить твои пароли, то переезд оправдан на 200%. Удачи и пиши в комменты, если найдешь новые грабли!