Перейти к основному содержимому

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/....

Перед запуском вспомогательного скрипта:

  1. Предпочтительно использовать установленный путь ~/.vibeos/skills/migration/openclaw-migration/.
  2. Если этот путь не работает, проверьте установленный каталог навыка и найдите скрипт относительно установленного SKILL.md.
  3. Используйте find только как запасной вариант, если установленное расположение отсутствует или навык был перемещён вручную.
  4. При вызове терминального инструмента не передавайте workdir: "~". Используйте абсолютный каталог, например домашний каталог пользователя, или опустите workdir полностью.

С флагом --migrate-secrets также будет импортирован небольшой разрешённый набор совместимых с VibeOS секретов, в настоящее время:

  • TELEGRAM_BOT_TOKEN

Стандартный рабочий процесс​

  1. Сначала выполните предварительный просмотр (dry run).
  2. Предоставьте краткую сводку того, что можно перенести, что нельзя, и что будет заархивировано.
  3. Если доступен инструмент clarify, используйте его для принятия решений пользователем вместо запроса ответа в свободной форме.
  4. Если предварительный просмотр обнаруживает конфликты в каталоге импортированных навыков, спросите, как с ними поступить, перед выполнением.
  5. Попросите пользователя выбрать один из двух поддерживаемых режимов миграции перед выполнением.
  6. Запрашивайте путь к целевой рабочей области только в том случае, если пользователь хочет перенести файл инструкций рабочей области.
  7. Выполните миграцию с соответствующим пресетом и флагами.
  8. Обобщите результаты, особенно:
    • что было перенесено
    • что было заархивировано для ручного просмотра
    • что было пропущено и почему

Протокол взаимодействия с пользователем​

VibeOS CLI поддерживает инструмент 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 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-вывод скрипта источником истины.

  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, не подразумевайте, что существующий навык VibeOS был переименован или сохранён в резервной копии. Скажите только, что импортированная копия была помещена в новое место назначения, и укажите 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 на уровне категорий, но рассматривайте это как расширенный запасной вариант, а не стандартный пользовательский интерфейс.

Команды​

Предварительный просмотр с полным обнаружением:

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 или домашний каталог в качестве цели рабочей области по умолчанию. Сначала запросите явный путь рабочей области.

Важные правила​

  1. Запускайте предварительный просмотр перед записью, если только пользователь явно не попросит немедленно продолжить.
  2. Не переносите секреты по умолчанию. Токены, блобы аутентификации, учётные данные устройства и необработанная конфигурация шлюза не должны попадать в VibeOS, если пользователь явно не запросит миграцию секретов.
  3. Не перезаписывайте молча непустые цели VibeOS, если пользователь явно этого не хочет. Вспомогательный скрипт будет сохранять резервные копии при включённой перезаписи.
  4. Всегда предоставляйте пользователю отчёт о пропущенных элементах. Этот отчёт является частью миграции, а не дополнительной опцией.
  5. Предпочитайте основную рабочую область OpenClaw (~/.openclaw/workspace/) вместо workspace.default/. Используйте рабочую область по умолчанию только как запасной вариант, когда основные файлы отсутствуют.
  6. Даже в режиме миграции секретов переносите только секреты с чистым назначением в VibeOS. Неподдерживаемые блобы аутентификации по-прежнему должны быть указаны как пропущенные.
  7. Если предварительный просмотр показывает большое копирование ресурсов, конфликтующий SOUL.md или переполненные записи памяти, выделите их отдельно перед выполнением.
  8. По умолчанию выбирайте user-data only, если пользователь не уверен.
  9. Включайте workspace-agents только тогда, когда пользователь явно указал путь к целевой рабочей области.
  10. Рассматривайте --include / --exclude на уровне категорий как расширенный запасной вариант, а не как обычный поток.
  11. Не завершайте сводку предварительного просмотра расплывчатым «Что бы вы хотели сделать?», если доступен clarify. Вместо этого используйте структурированные последующие подсказки.
  12. Не используйте открытый запрос clarify, когда подойдёт запрос с реальным выбором. Сначала предпочитайте выбираемые варианты, затем свободный текст только для абсолютных путей или запросов на просмотр файлов.
  13. После предварительного просмотра никогда не останавливайтесь после подведения итогов, если остаётся нерешённое решение. Немедленно используйте clarify для самого приоритетного блокирующего решения.
  14. Порядок приоритета последующих вопросов:
    • конфликт SOUL.md
    • конфликты импортированных навыков
    • режим миграции
    • назначение инструкций рабочей области
  15. Не обещайте представить варианты позже в том же сообщении. Представляйте их, фактически вызывая clarify.
  16. После ответа о режиме миграции явно проверьте, остаётся ли workspace-agents нерешённым. Если да, вашим следующим действием должен быть вызов clarify для инструкций рабочей области.
  17. После любого ответа clarify, если остаётся другое необходимое решение, не описывайте только что принятое решение. Сразу задавайте следующий необходимый вопрос.

Ожидаемый результат​

После успешного выполнения у пользователя должно быть:

  • импортированное состояние персоны VibeOS
  • файлы памяти VibeOS, заполненные преобразованными знаниями OpenClaw
  • навыки OpenClaw, доступные в ~/.vibeos/skills/openclaw-imports/
  • отчёт о миграции, показывающий любые конфликты, пропуски или неподдерживаемые данные