На этой странице
Миграция пользовательского следа 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 |
|Теги| Migration, OpenClaw, Hermes, Memory, Persona, Import |
|Связанные навыки| hermes-agent |
Справочник: полный SKILL.md¶
info Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.
Миграция OpenClaw -> Hermes¶
Используйте этот навык, когда пользователь хочет перенести свою настройку OpenClaw в Hermes Agent с минимальной ручной доработкой.
Команда CLI¶
Для быстрой, неинтерактивной миграции используйте встроенную команду CLI:
[code]
hermes claw migrate # Полная интерактивная миграция
hermes claw migrate --dry-run # Предварительный просмотр того, что будет перенесено
hermes claw migrate --preset user-data # Миграция без секретов
hermes claw migrate --overwrite # Перезапись существующих конфликтов
hermes claw migrate --source /custom/path/.openclaw # Пользовательский источник
[/code]
Команда CLI запускает тот же скрипт миграции, который описан ниже. Используйте этот навык (через агента), когда вам нужна интерактивная направляемая миграция с предварительным просмотром и разрешением конфликтов по каждому элементу.
Первоначальная настройка: Мастер hermes setup автоматически обнаруживает ~/.openclaw и предлагает миграцию до начала конфигурации.
Что делает этот навык¶
Он использует scripts/openclaw_to_hermes.py для:
* импорта SOUL.md в домашний каталог Hermes как SOUL.md
* преобразования MEMORY.md и USER.md из OpenClaw в записи памяти Hermes
* слияния шаблонов одобрения команд OpenClaw со списком разрешённых команд (command_allowlist) Hermes
* переноса совместимых с Hermes настроек обмена сообщениями, таких как TELEGRAM_ALLOWED_USERS и MESSAGING_CWD
* копирования навыков OpenClaw в ~/.hermes/skills/openclaw-imports/
* опционального копирования файла инструкций рабочей области OpenClaw в выбранную рабочую область Hermes
* зеркалирования совместимых ресурсов рабочей области, таких как workspace/tts/, в ~/.hermes/tts/
* архивирования несекретных документов, не имеющих прямого назначения в Hermes
* создания структурированного отчёта со списком перенесённых элементов, конфликтов, пропущенных элементов и причин
Разрешение путей¶
Вспомогательный скрипт находится в каталоге этого навыка по пути:
* scripts/openclaw_to_hermes.py
Когда этот навык установлен из Skills Hub, обычное расположение:
* ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py
Не угадывайте более короткий путь вроде ~/.hermes/skills/openclaw-migration/....
Перед запуском вспомогательного скрипта:
1. Предпочитайте установленный путь в ~/.hermes/skills/migration/openclaw-migration/.
2. Если этот путь не работает, проверьте установленный каталог навыка и определите путь к скрипту относительно установленного SKILL.md.
3. Используйте find только как запасной вариант, если установленное расположение отсутствует или навык был перемещён вручную.
4. При вызове терминального инструмента не передавайте workdir: "~". Используйте абсолютный каталог, например домашний каталог пользователя, или опустите workdir полностью.
С --migrate-secrets он также импортирует небольшой разрешённый набор совместимых с Hermes секретов, в настоящее время:
* TELEGRAM_BOT_TOKEN
Стандартный рабочий процесс¶
- Сначала выполните пробный прогон.
- Представьте краткую сводку того, что может быть перенесено, что не может быть перенесено и что будет заархивировано.
- Если доступен инструмент
clarify, используйте его для принятия решений пользователем вместо запроса ответа в свободной форме. - Если пробный прогон обнаруживает конфликты в каталоге импортированных навыков, спросите, как их обработать, перед выполнением.
- Попросите пользователя выбрать один из двух поддерживаемых режимов миграции перед выполнением.
- Запрашивайте путь к целевой рабочей области, только если пользователь хочет перенести файл инструкций рабочей области.
- Выполните миграцию с соответствующим пресетом и флагами.
- Обобщите результаты, особенно:
- что было перенесено
- что было заархивировано для ручного просмотра
- что было пропущено и почему
Протокол взаимодействия с пользователем¶
CLI Hermes поддерживает инструмент clarify для интерактивных запросов, но он ограничен:
* одним выбором за раз
* до 4 предопределённых вариантов
* автоматической опцией «Другое» для свободного ввода
Он не поддерживает настоящие флажки множественного выбора в одном запросе.
Для каждого вызова clarify:
* всегда включайте непустой question
* включайте choices только для реальных запросов с выбором
* ограничивайте choices 2–4 простыми строковыми опциями
* никогда не используйте заполнители или усечённые опции, такие как ...
* никогда не дополняйте и не стилизуйте варианты лишними пробелами
* никогда не включайте фиктивные поля формы в вопрос, такие как «введите директорию здесь», пустые строки для заполнения или подчёркивания вида _____
* для открытых вопросов о пути задавайте только простое предложение; пользователь вводит ответ в обычном приглашении CLI под панелью
Если вызов clarify возвращает ошибку, проверьте текст ошибки, исправьте данные и повторите попытку один раз с корректным question и чистыми вариантами выбора.
Когда clarify доступен и пробный прогон выявляет любое необходимое решение пользователя, вашим следующим действием должен быть вызов инструмента clarify. Не завершайте ход обычным сообщением ассистента, таким как:
* «Позвольте мне представить варианты»
* «Что бы вы хотели сделать?»
* «Вот варианты»
Если требуется решение пользователя, соберите его через clarify, прежде чем продолжать. Если остаётся несколько нерешённых вопросов, не вставляйте пояснительное сообщение ассистента между ними. После получения ответа на один clarify ваше следующее действие обычно должно быть следующим необходимым вызовом clarify.
Считайте workspace-agents нерешённым вопросом всякий раз, когда пробный прогон сообщает:
* kind="workspace-agents"
* status="skipped"
* причина содержит No workspace target was provided
В этом случае вы должны спросить об инструкциях рабочей области перед выполнением. Не трактуйте это молча как решение пропустить.
Из-за этого ограничения используйте следующий упрощённый поток принятия решений:
1. Для конфликтов SOUL.md используйте clarify с вариантами, такими как:
* keep existing (оставить существующий)
* overwrite with backup (перезаписать с созданием резервной копии)
* review first (сначала просмотреть)
2. Если пробный прогон показывает один или несколько элементов kind="skill" со статусом status="conflict", используйте clarify с вариантами, такими как:
* keep existing skills (оставить существующие навыки)
* overwrite conflicting skills with backup (перезаписать конфликтующие навыки с резервным копированием)
* import conflicting skills under renamed folders (импортировать конфликтующие навыки в переименованные папки)
3. Для инструкций рабочей области используйте clarify с вариантами, такими как:
* skip workspace instructions (пропустить инструкции рабочей области)
* copy to a workspace path (скопировать в путь рабочей области)
* decide later (решить позже)
4. Если пользователь выбирает копирование инструкций рабочей области, задайте дополнительный открытый вопрос clarify с запросом абсолютного пути.
5. Если пользователь выбирает skip workspace instructions или decide later, продолжайте без --workspace-target.
6. Для режима миграции используйте clarify с этими 3 вариантами:
* user-data only (только данные пользователя)
* full compatible migration (полная совместимая миграция)
* cancel (отмена)
7. user-data only означает: перенести пользовательские данные и совместимую конфигурацию, но не импортировать разрешённые секреты.
8. full compatible migration означает: перенести те же совместимые пользовательские данные плюс разрешённые секреты, если они присутствуют.
9. Если 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
* Отсутствие цели рабочей области в пробном прогоне само по себе не является разрешением на выполнение.
* Не выполняйте, пока любое необходимое решение 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."}
Сопоставление решений и команд¶
Сопоставляйте решения пользователя с флагами команд точно:
* Если пользователь выбирает 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.
Перед выполнением переформулируйте точный план команды простым языком и убедитесь, что он соответствует выбору пользователя.
Правила составления отчётов после выполнения¶
После выполнения считайте JSON-вывод скрипта источником истины.
1. Основывайте все подсчёты на report.summary.
2. Перечисляйте элемент в разделе «Успешно перенесено», только если его status равен migrated.
3. Не утверждайте, что конфликт был разрешён, если только отчёт не показывает этот элемент как migrated.
4. Не говорите, что SOUL.md был перезаписан, если только элемент отчёта для kind="soul" не имеет status="migrated".
5. Если report.summary.conflict > 0, включите раздел конфликтов вместо молчаливого указания на успех.
6. Если подсчёты и перечисленные элементы не совпадают, исправьте список в соответствии с отчётом перед ответом.
7. Включайте путь output_dir из отчёта, когда он доступен, чтобы пользователь мог просмотреть report.json, summary.md, резервные копии и архивные файлы.
8. Для переполнения памяти или профиля пользователя не говорите, что записи были заархивированы, если отчёт явно не показывает путь архива. Если существует details.overflow_file, укажите, что полный список переполнения был экспортирован туда.
9. Если навык был импортирован в переименованную папку, сообщите конечный путь назначения и укажите details.renamed_from.
10. Если присутствует report.skill_conflict_mode, используйте его как источник истины для выбранной политики обработки конфликтов импортированных навыков.
11. Если элемент имеет status="skipped", не описывайте его как перезаписанный, сохранённый в резервной копии, перенесённый или разрешённый.
12. Если kind="soul" имеет status="skipped" с причиной Target already matches source, скажите, что он остался без изменений, и не упоминайте резервную копию.
13. Если переименованный импортированный навык имеет пустой details.backup, не подразумевайте, что существующий навык Hermes был переименован или сохранён в резервной копии. Скажите только, что импортированная копия была помещена в новое место назначения, и укажите details.renamed_from как предсуществующую папку, которая осталась на месте.
Пресеты миграции¶
Предпочитайте эти два пресета при обычном использовании:
* user-data
* full
user-data включает:
* soul
* workspace-agents
* memory
* user-profile
* messaging-settings
* command-allowlist
* skills
* tts-assets
* archive
full включает всё из user-data плюс:
* secret-settings
Вспомогательный скрипт всё ещё поддерживает категориальные --include / --exclude, но рассматривайте это как продвинутый запасной вариант, а не стандартный UX.
Команды¶
Пробный прогон с полным обнаружением: [code] python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py
[/code] При использовании терминального инструмента предпочитайте абсолютный способ вызова, например: [code]
[/code] Пробный прогон с пресетом user-data: [code] python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --preset user-data
[/code] Выполнение миграции user-data: [code] python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --execute --preset user-data --skill-conflict skip
[/code] Выполнение полной совместимой миграции: [code] python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --execute --preset full --migrate-secrets --skill-conflict skip
[/code] Выполнение с включением инструкций рабочей области: [code] python3 ~/.hermes/skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py --execute --preset user-data --skill-conflict rename --workspace-target "/absolute/workspace/path"
[/code]
Не используйте $PWD или домашний каталог как цель рабочей области по умолчанию. Сначала запросите явный путь рабочей области.
Важные правила¶
- Выполняйте пробный прогон перед записью, если только пользователь явно не попросил продолжить немедленно.
- Не переносите секреты по умолчанию. Токены, блобы аутентификации, учётные данные устройств и сырая конфигурация шлюза должны оставаться вне Hermes, если пользователь явно не запросил миграцию секретов.
- Не перезаписывайте молча непустые цели Hermes, если пользователь явно этого не хочет. Вспомогательный скрипт сохранит резервные копии, когда перезапись включена.
- Всегда предоставляйте пользователю отчёт о пропущенных элементах. Этот отчёт — часть миграции, а не опциональное дополнение.
- Предпочитайте основную рабочую область OpenClaw (
~/.openclaw/workspace/) вместоworkspace.default/. Используйте рабочую область по умолчанию только как запасной вариант, когда основные файлы отсутствуют. - Даже в режиме миграции секретов переносите только те секреты, у которых есть чистое назначение в Hermes. Неподдерживаемые блобы аутентификации всё равно должны быть отмечены как пропущенные.
- Если пробный прогон показывает большое копирование ресурсов, конфликтующий
SOUL.mdили переполненные записи памяти, выделите их отдельно перед выполнением. - По умолчанию используйте
user-data only, если пользователь не уверен. - Включайте
workspace-agents, только когда пользователь явно указал путь целевой рабочей области. - Рассматривайте категориальные
--include/--excludeкак продвинутый запасной вариант, а не обычный поток. - Не завершайте сводку пробного прогона расплывчатым «Что бы вы хотели сделать?», если доступен
clarify. Вместо этого используйте структурированные последующие запросы. - Не используйте открытый запрос
clarify, когда подошёл бы запрос с реальным выбором. Предпочитайте сначала выбираемые варианты, затем свободный текст только для абсолютных путей или запросов на просмотр файлов. - После пробного прогона никогда не останавливайтесь после подведения итогов, если ещё есть нерешённое решение. Используйте
clarifyнемедленно для наиболее приоритетного блокирующего решения. - Порядок приоритета последующих вопросов:
- конфликт
SOUL.md - конфликты импортированных навыков
- режим миграции
- назначение инструкций рабочей области
- конфликт
- Не обещайте представить варианты позже в том же сообщении. Представляйте их, фактически вызывая
clarify. - После ответа о режиме миграции явно проверьте, остаётся ли
workspace-agentsнерешённым. Если да, вашим следующим действием должен быть вызовclarifyдля инструкций рабочей области. - После любого ответа
clarify, если остаётся другое необходимое решение, не пересказывайте только что принятое решение. Задайте следующий необходимый вопрос немедленно.
Ожидаемый результат¶
После успешного выполнения у пользователя должно быть:
* импортированное состояние персоны Hermes
* файлы памяти Hermes, заполненные преобразованными знаниями OpenClaw
* навыки OpenClaw, доступные в ~/.hermes/skills/openclaw-imports/
* отчёт о миграции, показывающий любые конфликты, пропуски или неподдерживаемые данные
- Метаданные навыка
- Справочник: полный SKILL.md
- Команда CLI
- Что делает этот навык
- Разрешение путей
- Стандартный рабочий процесс
- Протокол взаимодействия с пользователем
- Сопоставление решений и команд
- Правила составления отчётов после выполнения
- Пресеты миграции
- Команды
- Важные правила
- Ожидаемый результат