Openclaw Migration
Переносит пользовательские настройки OpenClaw в Hermes Agent. Импортирует совместимые с Hermes записи памяти, SOUL.md, списки разрешённых команд, пользовательские навыки и выбранные ресурсы рабочего пространства из ~/.openclaw, а затем точно сообщает, что перенести не удалось и почему.
Метаданные навыка
| Источник | Опциональный — установка через hermes skills install official/migration/openclaw-migration |
| Путь | optional-skills/migration/openclaw-migration |
| Версия | 1.0.0 |
| Автор | Hermes Agent (Nous Research) |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | Migration, OpenClaw, Hermes, Memory, Persona, Import |
| Связанные навыки | hermes-agent |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое Hermes загружает при срабатывании этого навыка. Именно это агент видит как инструкции, когда навык активен.
OpenClaw -> Hermes Migration
Используйте этот навык, когда пользователь хочет перенести свою конфигурацию OpenClaw в Hermes Agent с минимальной ручной доработкой.
CLI Command
Для быстрого неинтерактивного переноса есть встроенная команда CLI:
hermes claw migrate # Full interactive migration
hermes claw migrate --dry-run # Preview what would be migrated
hermes claw migrate --preset user-data # Migrate without secrets
hermes claw migrate --overwrite # Overwrite existing conflicts
hermes claw migrate --source /custom/path/.openclaw # Custom source
Команда CLI запускает тот же скрипт миграции, что описан ниже. Этот навык (через агента) пригодится, когда нужен интерактивный пошаговый перенос с предпросмотром в режиме dry-run и разрешением конфликтов по каждому элементу.
Первоначальная настройка: мастер hermes setup автоматически находит ~/.openclaw и предлагает миграцию ещё до начала конфигурации.
What this skill does
Навык использует scripts/openclaw_to_hermes.py, чтобы:
- импортировать
SOUL.mdв домашний каталог Hermes какSOUL.md - преобразовать
MEMORY.mdиUSER.mdиз OpenClaw в записи памяти Hermes - объединить шаблоны одобрения команд OpenClaw с
command_allowlistв Hermes - перенести совместимые с Hermes настройки сообщений, например
TELEGRAM_ALLOWED_USERS, и сопоставить настройки рабочего пространства OpenClaw с конфигурацией рабочего каталога Hermes - скопировать навыки OpenClaw в
~/.hermes/skills/openclaw-imports/ - при необходимости скопировать файл инструкций рабочего пространства OpenClaw в выбранное рабочее пространство Hermes
- продублировать совместимые ресурсы рабочего пространства, например
workspace/tts/, в~/.hermes/tts/ - заархивировать несекретные документы, у которых нет прямого назначения в Hermes
- сформировать структурированный отчёт со списком перенесённых элементов, конфликтов, пропущенных элементов и причин
Path resolution
Вспомогательный скрипт находится в каталоге этого навыка по пути:
scripts/openclaw_to_hermes.py
Когда навык установлен из Skills Hub, обычное расположение такое:
~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py
Не подставляйте более короткий путь вроде ~/.hermes/skills/openclaw-migration/....
Перед запуском вспомогательного скрипта:
- Сначала используйте установленный путь внутри
~/.hermes/skills/migration/openclaw-migration/. - Если он не сработал, изучите каталог установленного навыка и определите путь к скрипту относительно установленного
SKILL.md. - Прибегайте к
findтолько как к запасному варианту, когда установленное расположение отсутствует или навык перемещали вручную. - При вызове терминального инструмента не передавайте
workdir: "~". Укажите абсолютный каталог, например домашний каталог пользователя, либо вовсе опуститеworkdir.
С флагом --migrate-secrets скрипт также импортирует небольшой разрешённый набор совместимых с Hermes секретов, сейчас это:
TELEGRAM_BOT_TOKEN
Default workflow
- Сначала проверьте через dry run.
- Покажите простую сводку: что можно перенести, что перенести нельзя и что будет заархивировано.
- Если доступен инструмент
clarify, используйте его для пользовательских решений вместо запроса свободного текстового ответа. - Если dry run обнаружил конфликты каталогов импортируемых навыков, спросите, как с ними поступить, до выполнения.
- До выполнения попросите пользователя выбрать один из двух поддерживаемых режимов миграции.
- Запрашивайте путь к целевому рабочему пространству только в случае, когда пользователь хочет перенести файл инструкций рабочего пространства.
- Выполните миграцию с подходящим пресетом и флагами.
- Подведите итоги, особенно:
- что было перенесено
- что заархивировано для ручной проверки
- что пропущено и почему
User interaction protocol
Hermes CLI поддерживает инструмент clarify для интерактивных запросов, но у него есть ограничения:
- один выбор за раз
- до 4 заранее заданных вариантов
- автоматический вариант со свободным текстом
Other
Он не поддерживает настоящие чекбоксы с множественным выбором в одном запросе.
При каждом вызове clarify:
- всегда указывайте непустой
question - добавляйте
choicesтолько для реальных запросов с выбором - держите
choicesв пределах 2-4 простых строковых вариантов - никогда не выдавайте заглушки или обрезанные варианты вроде
... - никогда не дополняйте и не украшайте варианты лишними пробелами
- никогда не вставляйте в вопрос фиктивные поля формы вроде
enter directory here, пустые строки для заполнения или подчёркивания вида_____ - для открытых вопросов о пути задавайте только простое предложение; пользователь введёт ответ в обычной строке CLI под панелью
Если вызов clarify вернул ошибку, изучите текст ошибки, исправьте полезную нагрузку и повторите попытку один раз с корректным question и аккуратными вариантами.
Когда clarify доступен и dry run выявляет любое требующее решения действие пользователя, ваше следующее действие должно быть вызовом инструмента clarify.
Не завершайте ход обычным сообщением ассистента вроде:
- “Let me present the choices”
- “What would you like to do?”
- “Here are the options”
Если требуется решение пользователя, соберите его через clarify, прежде чем продолжать прозу.
Если осталось несколько неразрешённых решений, не вставляйте между ними поясняющее сообщение ассистента. После получения одного ответа clarify вашим следующим действием обычно должен быть следующий обязательный вызов clarify.
Считайте workspace-agents неразрешённым решением всякий раз, когда dry run сообщает:
kind="workspace-agents"status="skipped"- причину, содержащую
No workspace target was provided
В этом случае перед выполнением вы обязаны спросить про инструкции рабочего пространства. Не трактуйте это молча как решение пропустить.
Из-за этого ограничения используйте упрощённую схему принятия решений:
- Для конфликтов
SOUL.mdиспользуйтеclarifyс вариантами вроде:keep existingoverwrite with backupreview first
- Если dry run показывает один или несколько элементов
kind="skill"соstatus="conflict", используйтеclarifyс вариантами вроде:keep existing skillsoverwrite conflicting skills with backupimport conflicting skills under renamed folders
- Для инструкций рабочего пространства используйте
clarifyс вариантами вроде:skip workspace instructionscopy to a workspace pathdecide later
- Если пользователь выбирает скопировать инструкции рабочего пространства, задайте дополнительный открытый вопрос
clarifyс просьбой указать абсолютный путь. - Если пользователь выбирает
skip workspace instructionsилиdecide later, продолжайте без--workspace-target. - Для режима миграции используйте
clarifyс этими 3 вариантами:user-data onlyfull compatible migrationcancel
user-data onlyозначает: перенести пользовательские данные и совместимую конфигурацию, но не импортировать разрешённые секреты.full compatible migrationозначает: перенести те же совместимые пользовательские данные плюс разрешённые секреты, когда они есть.- Если
clarifyнедоступен, задайте тот же вопрос обычным текстом, но всё равно ограничьте ответ значениямиuser-data only,full compatible migrationилиcancel.
Барьер выполнения:
- Не выполняйте миграцию, пока остаётся неразрешённым пропуск
workspace-agents, вызванный причинойNo workspace target was provided. - Разрешить это можно только так:
- пользователь явно выбирает
skip workspace instructions - пользователь явно выбирает
decide later - пользователь указывает путь к рабочему пространству после выбора
copy to a workspace path
- пользователь явно выбирает
- Отсутствие целевого рабочего пространства в dry run само по себе не даёт разрешения на выполнение.
- Не выполняйте миграцию, пока остаётся неразрешённым любое обязательное решение
clarify.
Используйте эти точные формы полезной нагрузки clarify как шаблон по умолчанию:
{"question":"Your existing SOUL.md conflicts with the imported one. What should I do?","choices":["keep existing","overwrite with backup","review first"]}{"question":"One or more imported OpenClaw skills already exist in Hermes. How should I handle those skill conflicts?","choices":["keep existing skills","overwrite conflicting skills with backup","import conflicting skills under renamed folders"]}{"question":"Choose migration mode: migrate only user data, or run the full compatible migration including allowlisted secrets?","choices":["user-data only","full compatible migration","cancel"]}{"question":"Do you want to copy the OpenClaw workspace instructions file into a Hermes workspace?","choices":["skip workspace instructions","copy to a workspace path","decide later"]}{"question":"Please provide an absolute path where the workspace instructions should be copied."}
Decision-to-command mapping
Сопоставляйте решения пользователя с флагами команды точь-в-точь:
- Если пользователь выбирает
keep existingдляSOUL.md, не добавляйте--overwrite. - Если пользователь выбирает
overwrite with backup, добавьте--overwrite. - Если пользователь выбирает
review first, остановитесь до выполнения и просмотрите соответствующие файлы. - Если пользователь выбирает
keep existing skills, добавьте--skill-conflict skip. - Если пользователь выбирает
overwrite conflicting skills with backup, добавьте--skill-conflict overwrite. - Если пользователь выбирает
import conflicting skills under renamed folders, добавьте--skill-conflict rename. - Если пользователь выбирает
user-data only, выполняйте с--preset user-dataи не добавляйте--migrate-secrets. - Если пользователь выбирает
full compatible migration, выполняйте с--preset full --migrate-secrets. - Добавляйте
--workspace-targetтолько тогда, когда пользователь явно указал абсолютный путь к рабочему пространству. - Если пользователь выбирает
skip workspace instructionsилиdecide later, не добавляйте--workspace-target.
Перед выполнением заново изложите точный план команды простыми словами и убедитесь, что он соответствует выбору пользователя.
Post-run reporting rules
После выполнения считайте JSON-вывод скрипта источником истины.
- Все подсчёты основывайте на
report.summary. - Перечисляйте элемент в разделе “Successfully Migrated” только тогда, когда его
statusравен ровноmigrated. - Не утверждайте, что конфликт разрешён, пока отчёт не показывает этот элемент как
migrated. - Не говорите, что
SOUL.mdбыл перезаписан, пока у элемента отчёта дляkind="soul"нетstatus="migrated". - Если
report.summary.conflict > 0, добавьте раздел о конфликтах вместо молчаливого намёка на успех. - Если подсчёты и перечисленные элементы расходятся, приведите список в соответствие с отчётом, прежде чем отвечать.
- Включайте путь
output_dirиз отчёта, если он доступен, чтобы пользователь мог проверитьreport.json,summary.md, резервные копии и заархивированные файлы. - Для переполнения памяти или профиля пользователя не говорите, что записи заархивированы, пока отчёт явно не показывает путь архива. Если существует
details.overflow_file, скажите, что полный список переполнения был выгружен туда. - Если навык был импортирован под переименованной папкой, сообщите конечное назначение и упомяните
details.renamed_from. - Если присутствует
report.skill_conflict_mode, используйте его как источник истины для выбранной политики конфликтов импортируемых навыков. - Если у элемента
status="skipped", не описывайте его как перезаписанный, сохранённый в резервную копию, перенесённый или разрешённый. - Если у
kind="soul"указанstatus="skipped"с причинойTarget already matches source, скажите, что он остался без изменений, и не упоминайте резервную копию. - Если у переименованного импортированного навыка пустое поле
details.backup, не намекайте, что существующий навык Hermes был переименован или сохранён в резервную копию. Скажите только, что импортированная копия помещена в новое назначение, и сошлитесь наdetails.renamed_fromкак на ранее существовавшую папку, которая осталась на месте.
Migration presets
В обычной работе предпочитайте эти два пресета:
user-datafull
user-data включает:
soulworkspace-agentsmemoryuser-profilemessaging-settingscommand-allowlistskillstts-assetsarchive
full включает всё из user-data плюс:
secret-settings
Вспомогательный скрипт по-прежнему поддерживает --include / --exclude на уровне категорий, но относитесь к этому как к продвинутому запасному варианту, а не к UX по умолчанию.
Commands
Dry run с полным обнаружением:
python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py
При работе с терминальным инструментом предпочитайте абсолютный вид вызова, например:
{"command":"python3 /home/USER/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py","workdir":"/home/USER"}
Dry run с пресетом user-data:
python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --preset user-data
Выполнить миграцию user-data:
python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --execute --preset user-data --skill-conflict skip
Выполнить полную совместимую миграцию:
python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --execute --preset full --migrate-secrets --skill-conflict skip
Выполнить с включёнными инструкциями рабочего пространства:
python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --execute --preset user-data --skill-conflict rename --workspace-target "/absolute/workspace/path"
Не используйте $PWD или домашний каталог как целевое рабочее пространство по умолчанию. Сначала запросите явный путь к рабочему пространству.
Important rules
- Запускайте dry run перед записью, если только пользователь явно не сказал продолжать немедленно.
- Не переносите секреты по умолчанию. Токены, блобы аутентификации, учётные данные устройств и сырая конфигурация шлюза не должны попадать в Hermes, пока пользователь явно не попросит перенести секреты.
- Не перезаписывайте молча непустые цели Hermes, если пользователь этого явно не хочет. При включённой перезаписи вспомогательный скрипт сохранит резервные копии.
- Всегда выдавайте пользователю отчёт о пропущенных элементах. Этот отчёт — часть миграции, а не необязательное дополнение.
- Предпочитайте основное рабочее пространство OpenClaw (
~/.openclaw/workspace/) каталогуworkspace.default/. Используйте рабочее пространство по умолчанию как запасной вариант только тогда, когда основные файлы отсутствуют. - Даже в режиме миграции секретов переносите только те секреты, у которых есть чистое назначение в Hermes. Неподдерживаемые блобы аутентификации всё равно должны быть отмечены как пропущенные.
- Если dry run показывает копирование крупного ресурса, конфликтующий
SOUL.mdили переполненные записи памяти, отметьте это отдельно до выполнения. - По умолчанию выбирайте
user-data only, если пользователь не уверен. - Включайте
workspace-agentsтолько тогда, когда пользователь явно указал путь к целевому рабочему пространству. - Относитесь к
--include/--excludeна уровне категорий как к продвинутому обходному пути, а не к обычному процессу. - Не завершайте сводку dry run расплывчатым «What would you like to do?», если доступен
clarify. Используйте структурированные уточняющие запросы. - Не используйте открытый запрос
clarify, когда сработает запрос с реальным выбором. Сначала предпочитайте выбираемые варианты, а свободный текст — только для абсолютных путей или запросов на просмотр файлов. - После dry run никогда не останавливайтесь на сводке, пока остаётся неразрешённое решение. Сразу используйте
clarifyдля самого приоритетного блокирующего решения. - Порядок приоритета уточняющих вопросов:
- конфликт
SOUL.md - конфликты импортируемых навыков
- режим миграции
- назначение инструкций рабочего пространства
- конфликт
- Не обещайте показать варианты позже в том же сообщении. Показывайте их фактическим вызовом
clarify. - После ответа о режиме миграции явно проверьте, остаётся ли
workspace-agentsнеразрешённым. Если да, вашим следующим действием должен быть вызовclarifyоб инструкциях рабочего пространства. - После любого ответа
clarify, если остаётся ещё одно обязательное решение, не пересказывайте только что принятое. Сразу задавайте следующий обязательный вопрос.
Expected result
После успешного запуска у пользователя должны быть:
- импортированное состояние персоны Hermes
- файлы памяти Hermes, заполненные сконвертированными знаниями OpenClaw
- навыки OpenClaw, доступные в
~/.hermes/skills/openclaw-imports/ - отчёт о миграции со всеми конфликтами, пропусками или неподдерживаемыми данными