From Openclaw
На этой странице
hermes claw migrate импортирует вашу конфигурацию OpenClaw (или устаревших Clawdbot/Moldbot) в Hermes. Это руководство описывает, что именно переносится, соответствие ключей конфигурации и что нужно проверить после миграции.
Быстрый старт¶
[code] # Предпросмотр, затем миграция (всегда показывает предпросмотр, затем запрашивает подтверждение) hermes claw migrate
# Только предпросмотр, без изменений
hermes claw migrate --dry-run
# Полная миграция, включая API-ключи, без подтверждения
hermes claw migrate --preset full --migrate-secrets --yes
[/code]
Миграция всегда показывает полный предпросмотр того, что будет импортировано, перед внесением каких-либо изменений. Просмотрите список, затем подтвердите для продолжения.
По умолчанию читает из ~/.openclaw//. Устаревшие директории ~/.clawdbot/ или ~/.moltbot/ обнаруживаются автоматически. То же самое касается устаревших имён файлов конфигурации (clawdbot.json, moltbot.json).
Параметры¶
| Параметр | Описание |
|---|---|
--dry-run |
Только предпросмотр — остановиться после отображения того, что будет перенесено. |
--preset <имя> |
full (все совместимые настройки) или user-data (исключает инфраструктурную конфигурацию). Ни один пресет не импортирует секреты по умолчанию — явно укажите --migrate-secrets. |
--overwrite |
Перезаписывать существующие файлы Hermes при конфликтах (по умолчанию: отказ от применения, когда в плане есть конфликты). |
--migrate-secrets |
Включает API-ключи. Требуется даже при --preset full — ни один пресет не импортирует секреты молча. |
--no-backup |
Пропустить создание zip-снимка ~/.hermes/ перед миграцией (по умолчанию перед применением записывается один архив точки восстановления в ~/.hermes/backups/pre-migration-*.zip; можно восстановить с помощью hermes import). |
--source <путь> |
Пользовательская директория OpenClaw. |
--workspace-target <путь> |
Куда поместить AGENTS.md. |
--skill-conflict <режим> |
skip (по умолчанию), overwrite или rename. |
--yes |
Пропустить запрос подтверждения после предпросмотра. |
| ## Что переносится | |
| ### Личность, память и инструкции | |
| Что | Источник OpenClaw |
| --- | --- |
| Личность | workspace/SOUL.md |
| Инструкции рабочего пространства | workspace/AGENTS.md |
| Долговременная память | workspace/MEMORY.md |
| Профиль пользователя | workspace/USER.md |
| Ежедневные файлы памяти | workspace/memory/*.md |
Файлы рабочего пространства также проверяются в workspace.default/ и workspace-main/ как запасные пути (OpenClaw переименовал workspace/ в workspace-main/ в последних версиях и использует workspace-{agentId} для многопользовательских конфигураций). |
|
| ### Навыки (4 источника) | |
| Источник | Расположение OpenClaw |
| --- | --- |
| Навыки рабочего пространства | workspace/skills/ |
| Управляемые/общие навыки | ~/.openclaw/skills/ |
| Личные межпроектные | ~/.agents/skills/ |
| Общие на уровне проекта | workspace/.agents/skills/ |
Конфликты навыков обрабатываются с помощью --skill-conflict: skip оставляет существующий навык Hermes, overwrite заменяет его, rename создаёт копию с суффиксом -imported. |
|
| ### Конфигурация модели и провайдера | |
| Что | Путь конфигурации OpenClaw |
| --- | --- |
| Модель по умолчанию | agents.defaults.model |
| Пользовательские провайдеры | models.providers.* |
| API-ключи провайдеров | models.providers.*.apiKey |
| ### Поведение агента | |
| Что | Путь конфигурации OpenClaw |
| --- | --- |
| Макс. шагов | agents.defaults.timeoutSeconds |
| Подробный режим | agents.defaults.verboseDefault |
| Уровень рассуждений | agents.defaults.thinkingDefault |
| Сжатие | agents.defaults.compaction.mode |
| Модель сжатия | agents.defaults.compaction.model |
| Задержка человека | agents.defaults.humanDelay.mode |
| Время задержки человека | agents.defaults.humanDelay.minMs / .maxMs |
| Часовой пояс | agents.defaults.userTimezone |
| Таймаут выполнения | tools.exec.timeoutSec |
| Docker-песочница | agents.defaults.sandbox.backend |
| Docker-образ | agents.defaults.sandbox.docker.image |
| ### Политики сброса сессий | |
| Путь конфигурации OpenClaw | Путь конфигурации Hermes |
| --- | --- |
session.reset.mode |
session_reset.mode |
session.reset.atHour |
session_reset.at_hour |
session.reset.idleMinutes |
session_reset.idle_minutes |
Примечание: OpenClaw также имеет session.resetTriggers (простой массив строк, например ["daily", "idle"]). Если структурированный session.reset отсутствует, миграция выводит настройки из resetTriggers. |
|
| ### MCP-серверы | |
| Поле OpenClaw | Поле Hermes |
| --- | --- |
mcp.servers.*.command |
mcp_servers.*.command |
mcp.servers.*.args |
mcp_servers.*.args |
mcp.servers.*.env |
mcp_servers.*.env |
mcp.servers.*.cwd |
mcp_servers.*.cwd |
mcp.servers.*.url |
mcp_servers.*.url |
mcp.servers.*.tools.include |
mcp_servers.*.tools.include |
mcp.servers.*.tools.exclude |
mcp_servers.*.tools.exclude |
| ### TTS (текст-в-речь) | |
| Настройки TTS читаются из двух расположений в конфигурации OpenClaw со следующим приоритетом: | |
1. messages.tts.providers.{provider}.* (каноническое расположение) |
|
2. talk.providers.{provider}.* на верхнем уровне (запасной вариант) |
|
3. Устаревшие плоские ключи messages.tts.{provider}.* (старейший формат) |
| Что | Назначение Hermes |
|---|---|
| Имя провайдера | config.yaml → tts.provider |
| ID голоса ElevenLabs | config.yaml → tts.elevenlabs.voice_id |
| ID модели ElevenLabs | config.yaml → tts.elevenlabs.model_id |
| Модель OpenAI | config.yaml → tts.openai.model |
| Голос OpenAI | config.yaml → tts.openai.voice |
| Голос Edge TTS | config.yaml → tts.edge.voice (OpenClaw переименовал «edge» в «microsoft» — оба распознаются) |
| TTS-ресурсы | ~/.hermes/tts/ (копирование файлов) |
| ### Платформы обмена сообщениями | |
| Платформа | Путь конфигурации OpenClaw |
| --- | --- |
| Telegram | channels.telegram.botToken или .accounts.default.botToken |
| Telegram | credentials/telegram-default-allowFrom.json |
| Discord | channels.discord.token или .accounts.default.token |
| Discord | channels.discord.allowFrom или .accounts.default.allowFrom |
| Slack | channels.slack.botToken или .accounts.default.botToken |
| Slack | channels.slack.appToken или .accounts.default.appToken |
| Slack | channels.slack.allowFrom или .accounts.default.allowFrom |
channels.whatsapp.allowFrom или .accounts.default.allowFrom |
|
| Signal | channels.signal.account или .accounts.default.account |
| Signal | channels.signal.httpUrl или .accounts.default.httpUrl |
| Signal | channels.signal.allowFrom или .accounts.default.allowFrom |
| Matrix | channels.matrix.accessToken или .accounts.default.accessToken |
| Mattermost | channels.mattermost.botToken или .accounts.default.botToken |
| ### Прочие настройки | |
| Что | Путь OpenClaw |
| --- | --- |
| Режим подтверждения | approvals.exec.mode |
| Белый список команд | exec-approvals.json |
| URL браузера CDP | browser.cdpUrl |
| Безголовый браузер | browser.headless |
| Ключ поиска Brave | tools.web.search.brave.apiKey |
| Токен аутентификации шлюза | gateway.auth.token |
| Рабочая директория | agents.defaults.workspace |
| ### В архиве (нет прямого аналога в Hermes) | |
Они сохраняются в ~/.hermes/migration/openclaw/<timestamp>/archive/ для ручного просмотра: |
|
| Что | Файл архива |
| --- | --- |
IDENTITY.md |
archive/workspace/IDENTITY.md |
TOOLS.md |
archive/workspace/TOOLS.md |
HEARTBEAT.md |
archive/workspace/HEARTBEAT.md |
BOOTSTRAP.md |
archive/workspace/BOOTSTRAP.md |
| Cron-задачи | archive/cron-config.json |
| Плагины | archive/plugins-config.json |
| Хуки/вебхуки | archive/hooks-config.json |
| Бэкенд памяти | archive/memory-backend-config.json |
| Реестр навыков | archive/skills-registry-config.json |
| UI/идентификация | archive/ui-identity-config.json |
| Логирование | archive/logging-diagnostics-config.json |
| Список мультиагентов | archive/agents-list.json |
| Привязки каналов | archive/bindings.json |
| Сложные каналы | archive/channels-deep-config.json |
| ## Разрешение API-ключей | |
Когда --migrate-secrets включён, API-ключи собираются из четырёх источников в порядке приоритета: |
|
1. Значения конфигурации — models.providers.*.apiKey и ключи TTS-провайдеров в openclaw.json |
|
2. Файл окружения — ~/.openclaw/.env (ключи вида OPENROUTER_API_KEY, ANTHROPIC_API_KEY и т.д.) |
|
3. Подобъект env конфигурации — openclaw.json → "env" или "env"."vars" (некоторые конфигурации хранят ключи здесь вместо отдельного файла .env) |
|
4. Профили аутентификации — ~/.openclaw/agents/main/agent/auth-profiles.json (учётные данные для каждого агента) |
Значения конфигурации имеют приоритет. Каждый последующий источник заполняет оставшиеся пробелы.
Поддерживаемые целевые ключи¶
OPENROUTER_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY, DEEPSEEK_API_KEY, GEMINI_API_KEY, ZAI_API_KEY, MINIMAX_API_KEY, ELEVENLABS_API_KEY, TELEGRAM_BOT_TOKEN, VOICE_TOOLS_OPENAI_KEY
Ключи, отсутствующие в этом белом списке, никогда не копируются.
Обработка SecretRef¶
Значения конфигурации OpenClaw для токенов и API-ключей могут быть в трёх форматах: [code] // Простая строка "channels": { "telegram": { "botToken": "123456:ABC-DEF..." } }
// Шаблон окружения
"channels": { "telegram": { "botToken": "${TELEGRAM_BOT_TOKEN}" } }
// Объект SecretRef
"channels": { "telegram": { "botToken": { "source": "env", "id": "TELEGRAM_BOT_TOKEN" } } }
[/code]
Миграция разрешает все три формата. Для шаблонов окружения и объектов SecretRef с source: "env" значение ищется в ~/.openclaw/.env и в под-объекте env конфигурации openclaw.json. Объекты SecretRef с source: "file" или source: "exec" не могут быть разрешены автоматически — миграция предупреждает о них, и эти значения необходимо добавить в Hermes вручную через hermes config set.
После миграции¶
- Проверьте отчёт о миграции — выводится по завершении с количеством перенесённых, пропущенных и конфликтующих элементов.
- Просмотрите архивированные файлы — всё в
~/.hermes/migration/openclaw/<timestamp>/archive/требует ручного внимания. - Начните новую сессию — импортированные навыки и записи памяти вступают в силу в новых сессиях, а не в текущей.
- Проверьте API-ключи — запустите
hermes statusдля проверки аутентификации провайдеров. - Протестируйте обмен сообщениями — если вы перенесли токены платформ, перезапустите шлюз:
systemctl --user restart hermes-gateway - Проверьте политики сессий — убедитесь, что
hermes config get session_resetсоответствует вашим ожиданиям. - Повторно свяжите WhatsApp — WhatsApp использует QR-связывание (Baileys), а не перенос токенов. Запустите
hermes whatsappдля связывания. - Очистка архива — после подтверждения, что всё работает, запустите
hermes claw cleanup, чтобы переименовать оставшиеся директории OpenClaw в.pre-migration/(предотвращает путаницу состояний).
Устранение неполадок¶
«Директория OpenClaw не найдена»¶
Миграция проверяет ~/.openclaw/, затем ~/.clawdbot/, затем ~/.moltbot/. Если ваша установка находится в другом месте, используйте --source /путь/к/вашему/openclaw.
«Не найдены API-ключи провайдеров»¶
Ключи могут храниться в нескольких местах в зависимости от версии OpenClaw: встроенные в openclaw.json в models.providers.*.apiKey, в ~/.openclaw/.env, в под-объекте "env" в openclaw.json или в agents/main/agent/auth-profiles.json. Миграция проверяет все четыре. Если ключи используют SecretRef с source: "file" или source: "exec", они не могут быть разрешены автоматически — добавьте их через hermes config set.
Навыки не отображаются после миграции¶
Импортированные навыки попадают в ~/.hermes/skills/openclaw-imports/. Начните новую сессию, чтобы они вступили в силу, или выполните /skills для проверки их загрузки.
TTS-голос не перенесён¶
OpenClaw хранит настройки TTS в двух местах: messages.tts.providers.* и конфигурация talk на верхнем уровне. Миграция проверяет оба. Если ваш ID голоса был установлен через UI OpenClaw (хранится в другом пути), вам может потребоваться установить его вручную: hermes config set tts.elevenlabs.voice_id YOUR_VOICE_ID.
* Быстрый старт
* Параметры
* Что переносится
* Личность, память и инструкции
* Навыки (4 источника)
* Конфигурация модели и провайдера
* Поведение агента
* Политики сброса сессий
* MCP-серверы
* TTS (текст-в-речь)
* Платформы обмена сообщениями
* Прочие настройки
* В архиве (нет прямого аналога в Hermes)
* Разрешение API-ключей
* Поддерживаемые целевые ключи
* Обработка SecretRef
* После миграции
* Устранение неполадок
* «Директория OpenClaw не найдена»
* «Не найдены API-ключи провайдеров»
* Навыки не отображаются после миграции
* TTS-голос не перенесён