Openclaw Migration
Перенос пользовательских настроек OpenClaw в VibeOS. Импортирует совместимые с VibeOS воспоминания, SOUL.md, списки разрешённых команд, пользовательские навыки и выбранные ресурсы рабочей области из ~/.openclaw, после чего сообщает, что именно не удалось перенести и почему.
Метаданные навыка
| Источник | Опционально — установка: vibeos skills install official/migration/openclaw-migration |
| Путь | optional-skills/migration/openclaw-migration |
| Версия | 1.0.0 |
| Автор | VibeOS (Nous Research) |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | Migration, OpenClaw, VibeOS, Memory, Persona, Import |
| Связанные навыки | vibeos-agent |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Это инструкции, которые видит агент, когда навык активен.
OpenClaw -> VibeOS Migration
Используйте этот навык, когда пользователь хочет перенести свою конфигурацию OpenClaw в VibeOS с минимальной ручной доработкой.
CLI-команда
Для быстрой неинтерактивной миграции используйте встроенную CLI-команду:
vibeos claw migrate # Полная интерактивная миграция
vibeos claw migrate --dry-run # Предварительный просмотр того, что будет перенесено
vibeos claw migrate --preset user-data # Миграция без секретов
vibeos claw migrate --overwrite # Перезапись существующих конфликтов
vibeos claw migrate --source /custom/path/.openclaw # Пользовательский источник
CLI-команда запускает тот же скрипт миграции, что описан ниже. Используйте этот навык (через агента), когда вам нужна интерактивная направляемая миграция с предварительным просмотром и разрешением конфликтов по каждому элементу.
Первоначальная настройка: Мастер vibeos setup автоматически обнаруживает ~/.openclaw и предлагает миграцию до начала конфигурации.
Что делает этот навык
Он использует scripts/openclaw_to_vibeos.py для:
- импорта
SOUL.mdв домашний каталог VibeOS какSOUL.md - преобразования
MEMORY.mdиUSER.mdиз OpenClaw в записи памяти VibeOS - слияния шаблонов одобрения команд OpenClaw со списком разрешённых команд VibeOS
command_allowlist - переноса совместимых с VibeOS настроек обмена сообщениями, таких как
TELEGRAM_ALLOWED_USERS, и сопоставления настроек рабочей области OpenClaw с конфигурацией рабочего каталога VibeOS - копирования навыков OpenClaw в
~/.vibeos/skills/openclaw-imports/ - опционального копирования файла инструкций рабочей области OpenClaw в выбранную рабочую область VibeOS
- зеркалирования совместимых ресурсов рабочей области, таких как
workspace/tts/, в~/.vibeos/tts/ - архивирования несекретных документов, для которых нет прямого назначения в VibeOS
- создания структурированного отчёта со списком перенесённых элементов, конфликтов, пропущенных элементов и причин
Разрешение путей
Вспомогательный скрипт находится в каталоге этого навыка по адресу:
scripts/openclaw_to_vibeos.py
При установке навыка из Skills Hub обычное расположение:
~/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py
Не угадывайте более короткий путь, например ~/.vibeos/skills/openclaw-migration/....
Перед запуском вспомогательного скрипта:
- Предпочтительно использовать установленный путь
~/.vibeos/skills/migration/openclaw-migration/. - Если этот путь не работает, проверьте установленный каталог навыка и найдите скрипт относительно установленного
SKILL.md. - Используйте
findтолько как запасной вариант, если установленное расположение отсутствует или навык был перемещён вручную. - При вызове терминального инструмента не передавайте
workdir: "~". Используйте абсолютный каталог, например домашний каталог пользователя, или опуститеworkdirполностью.
С флагом --migrate-secrets также будет импортирован небольшой разрешённый набор совместимых с VibeOS секретов, в настоящее время:
TELEGRAM_BOT_TOKEN
Стандартный рабочий процесс
- Сначала выполните предварительный просмотр (dry run).
- Предоставьте краткую сводку того, что можно перенести, что нельзя, и что будет заархивировано.
- Если доступен инструмент
clarify, используйте его для принятия решений пользователем вместо запроса ответа в свободной форме. - Если предварительный просмотр обнаруживает конфликты в каталоге импортированных навыков, спросите, как с ними поступить, перед выполнением.
- Попросите пользователя выбрать один из двух поддерживаемых режимов миграции перед выполнением.
- Запрашивайте путь к целевой рабочей области только в том случае, если пользователь хочет перенести файл инструкций рабочей области.
- Выполните миграцию с соответствующим пресетом и флагами.
- Обобщите результаты, особенно:
- что было перенесено
- что было заархивировано для ручного просмотра
- что было пропущено и почему
Протокол взаимодействия с пользователем
VibeOS CLI поддерживает инструмент clarify для интерактивных подсказок, но он ограничен:
- одним выбором за раз
- до 4 предопределённых вариантов
- автоматической опцией «Другое» для свободного текста
Он не поддерживает настоящие флажки множественного выбора в одном запросе.
Для каждого вызова clarify:
- всегда включайте непустой
question - включайте
choicesтолько для реальных выбираемых подсказок - ограничивайте
choices2–4 простыми строковыми опциями - никогда не используйте заполнители или усечённые опции, такие как
... - никогда не дополняйте и не стилизуйте варианты лишними пробелами
- никогда не включайте в вопрос фиктивные поля формы, такие как «введите каталог здесь», пустые строки для заполнения или символы подчёркивания, например
_____ - для открытых вопросов о пути задавайте только простое предложение; пользователь вводит ответ в обычной CLI-подсказке под панелью
Если вызов clarify возвращает ошибку, проверьте текст ошибки, исправьте полезную нагрузку и повторите попытку один раз с корректным question и чистыми вариантами.
Когда clarify доступен и предварительный просмотр выявляет любое необходимое решение пользователя, вашим следующим действием должен быть вызов инструмента clarify.
Не завершайте ход обычным сообщением ассистента, например:
- «Позвольте мне представить варианты»
- «Что бы вы хотели сделать?»
- «Вот варианты»
Если требуется решение пользователя, собирайте его через clarify, прежде чем продолжать прозу.
Если остаётся несколько нерешённых решений, не вставляйте между ними пояснительное сообщение ассистента. После получения одного ответа clarify вашим следующим действием обычно должен быть следующий необходимый вызов clarify.
Считайте workspace-agents нерешённым решением всякий раз, когда предварительный просмотр сообщает:
kind="workspace-agents"status="skipped"- причина содержит
No workspace target was provided
В этом случае вы должны спросить об инструкциях рабочей области перед выполнением. Не рассматривайте это молча как решение пропустить.
Из-за этого ограничения используйте следующий упрощённый поток решений:
- Для конфликтов
SOUL.mdиспользуйтеclarifyс вариантами, такими как:keep existingoverwrite with backupreview first
- Если предварительный просмотр показывает один или несколько элементов
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
- пользователь явно выбирает
- Отсутствие цели рабочей области в предварительном просмотре само по себе не является разрешением на выполнение.
- Не выполняйте, пока остаётся нерешённым любое необходимое решение
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 VibeOS. 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 VibeOS 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-вывод скрипта источником истины.
- Основывайте все подсчёты на
report.summary. - Указывайте элемент в разделе «Успешно перенесено», только если его
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, не подразумевайте, что существующий навык VibeOS был переименован или сохранён в резервной копии. Скажите только, что импортированная копия была помещена в новое место назначения, и укажитеdetails.renamed_fromкак ранее существовавшую папку, которая осталась на месте.
Пресеты миграции
Предпочитайте эти два пресета при обычном использовании:
user-datafull
user-data включает:
soulworkspace-agentsmemoryuser-profilemessaging-settingscommand-allowlistskillstts-assetsarchive
full включает всё из user-data плюс:
secret-settings
Вспомогательный скрипт по-прежнему поддерживает --include / --exclude на уровне категорий, но рассматривайте это как расширенный запасной вариант, а не стандартный пользовательский интерфейс.
Команды
Предварительный просмотр с полным обнаружением:
python3 ~/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py
При использовании терминального инструмента предпочитайте абсолютный шаблон вызова, например:
{"command":"python3 /home/USER/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py","workdir":"/home/USER"}
Предварительный просмотр с пресетом user-data:
python3 ~/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py --preset user-data
Выполнение миграции user-data:
python3 ~/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py --execute --preset user-data --skill-conflict skip
Выполнение полной совместимой миграции:
python3 ~/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py --execute --preset full --migrate-secrets --skill-conflict skip
Выполнение с включением инструкций рабочей области:
python3 ~/.vibeos/skills/migration/openclaw-migration/scripts/openclaw_to_vibeos.py --execute --preset user-data --skill-conflict rename --workspace-target "/absolute/workspace/path"
Не используйте $PWD или домашний каталог в качестве цели рабочей области по умолчанию. Сначала запросите явный путь рабочей области.
Важные правила
- Запускайте предварительный просмотр перед записью, если только пользователь явно не попросит немедленно продолжить.
- Не переносите секреты по умолчанию. Токены, блобы аутентификации, учётные данные устройства и необработанная конфигурация шлюза не должны попадать в VibeOS, если пользователь явно не запросит миграцию секретов.
- Не перезаписывайте молча непустые цели VibeOS, если пользователь явно этого не хочет. Вспомогательный скрипт будет сохранять резервные копии при включённой перезаписи.
- Всегда предоставляйте пользователю отчёт о пропущенных элементах. Этот отчёт является частью миграции, а не дополнительной опцией.
- Предпочитайте основную рабочую область OpenClaw (
~/.openclaw/workspace/) вместоworkspace.default/. Используйте рабочую область по умолчанию только как запасной вариант, когда основные файлы отсутствуют. - Даже в режиме миграции секретов переносите только секреты с чистым назначением в VibeOS. Неподдерживаемые блобы аутентификации по-прежнему должны быть указаны как пропущенные.
- Если предварительный просмотр показывает большое копирование ресурсов, конфликтующий
SOUL.mdили переполненные записи памяти, выделите их отдельно перед выполнением. - По умолчанию выбирайте
user-data only, если пользователь не уверен. - Включайте
workspace-agentsтолько тогда, когда пользователь явно указал путь к целевой рабочей области. - Рассматривайте
--include/--excludeна уровне категорий как расширенный запасной вариант, а не как обычный поток. - Не завершайте сводку предварительного просмотра расплывчатым «Что бы вы хотели сделать?», если доступен
clarify. Вместо этого используйте структурированные последующие подсказки. - Не используйте открытый запрос
clarify, когда подойдёт запрос с реальным выбором. Сначала предпочитайте выбираемые варианты, затем свободный текст только для абсолютных путей или запросов на просмотр файлов. - После предварительного просмотра никогда не останавливайтесь после подведения итогов, если остаётся нерешённое решение. Немедленно используйте
clarifyдля самого приоритетного блокирующего решения. - Порядок приоритета последующих вопросов:
- конфликт
SOUL.md - конфликты импортированных навыков
- режим миграции
- назначение инструкций рабочей области
- конфликт
- Не обещайте представить варианты позже в том же сообщении. Представляйте их, фактически вызывая
clarify. - После ответа о режиме миграции явно проверьте, остаётся ли
workspace-agentsнерешённым. Если да, вашим следующим действием должен быть вызовclarifyдля инструкций рабочей области. - После любого ответа
clarify, если остаётся другое необходимое решение, не описывайте только что принятое решение. Сразу задавайте следующий необходимый вопрос.
Ожидаемый результат
После успешного выполнения у пользователя должно быть:
- импортированное состояние персоны VibeOS
- файлы памяти VibeOS, заполненные преобразованными знаниями OpenClaw
- навыки OpenClaw, доступные в
~/.vibeos/skills/openclaw-imports/ - отчёт о миграции, показывающий любые конфликты, пропуски или неподдерживаемые данные