Skip to content

Bot profile migration scope (ground truth)

If you only need one answer, this is it: what settings Sharelife migrates today.

Baseline (current implementation)

  1. AstrBot upstream baseline: origin/master@9d4472cb2d0108869d688a4ac731e539d41b919e (2026-04-02).
  2. Branch note: AstrBot upstream currently uses master as the primary branch, not main.
  3. Sharelife baseline: main@7aebf279d074b80df7566c2d957f58d2c3cd6efd.
  4. Migration model: section-level snapshot/patch from Sharelife runtime state (default runtime_state.json), not a direct full rewrite of AstrBot config files.

Quick answer

  1. bot_profile_pack migrates: astrbot_core/providers/plugins/skills/personas/mcp_servers/sharelife_meta/memory_store/conversation_history/knowledge_base/environment_manifest
  2. extension_pack migrates: plugins/skills/personas/mcp_servers
  3. Migration is key-preserving replay, without semantic field remapping.

Raw AstrBot input compatibility

  1. Sharelife import now accepts raw AstrBot backup zip, cmd_config.json, and abconf_*.json.
  2. Those inputs are never applied directly. Sharelife first projects them into a degraded Sharelife standard pack and then reuses the normal import/validation/submission flow.
  3. Full backup payloads remain out of scope: databases, attachments, knowledge-base raw files, dashboard secrets, and wildcard plugin resolution are omitted or downgraded with explicit compatibility_issues.

Scope matrix (implemented now)

SectionSource key (runtime snapshot)Current migration behaviorNotes
astrbot_coresnapshot["astrbot_core"]Full export/import/dry-run/apply/rollbackCarries bot core mirror state, not AstrBot full root config
providerssnapshot["providers"]Full workflow supportedSupports exclude_secrets / exclude_provider / include_provider_no_key / include_encrypted_secrets
pluginssnapshot["plugins"]Full workflow supportedPlugin install metadata triggers plan -> confirm -> execute guard
skillssnapshot["skills"]Full workflow supportedSuitable for capability bundle sharing
personassnapshot["personas"]Full workflow supportedSuitable for persona bundle sharing
mcp_serverssnapshot["mcp_servers"]Full workflow supportedMCP server declarations can be migrated with the pack
sharelife_metasnapshot["sharelife_meta"]Full workflow (bot_profile_pack only)Sharelife internal metadata, not AstrBot core config
memory_storesnapshot["memory_store"]Full workflow (bot_profile_pack only)Optional local memory migration; evaluate size/sensitivity before apply
conversation_historysnapshot["conversation_history"]Full workflow (bot_profile_pack only)Optional chat-history migration; may include sensitive user content
knowledge_basesnapshot["knowledge_base"]Full workflow (bot_profile_pack only)Migrates KB config/index metadata; external raw files still need manual sync
environment_manifestsnapshot["environment_manifest"]Exported and surfaced in compatibility notices (bot_profile_pack only)Declares container/system/plugin-binary reconfiguration requirements; no automatic system mutation

Explicitly out of scope today

  1. Keys in AstrBot data/cmd_config.json that are not mirrored into the listed sections are not auto-migrated.
  2. There is still no full semantic translator against AstrBot config schema. Current raw AstrBot compatibility is a conservative projection into Sharelife sections, not a full-fidelity restore.
  3. Plugin binaries, system dependencies, container runtime state, and external DB/KB raw files are not bundled by profile pack; environment_manifest only carries reconfiguration metadata.
  4. Plugin install command execution is default-off; install metadata still needs explicit privileged confirmation and execution-gate config.
  5. Cross-version support relies on declaration checks (astrbot_version / plugin_compat), not automatic semantic migration.
  6. If a pack includes environment_manifest or KB external paths, import will keep compatibility=degraded with explicit compatibility_issues; post-migration reconfiguration is still explicit.

Accuracy and safety controls (current)

  1. Per-section hash verification on import.
  2. Optional HMAC manifest signing and trusted-key verification.
  3. include_encrypted_secrets supports encrypted export and decrypt-on-import/dry-run/apply (requires profile_pack.secrets_encryption_key).
  4. Apply path is snapshot-backed and rollback-capable.
  5. Risk and governance evidence are persisted in capability_summary and review_evidence.
  6. environment_manifest is converted into explicit environment_*_reconfigure_required issues to prevent false assumptions about system-level auto-migration.

How users can verify migration content before apply

  1. Confirm target section data exists in runtime state.
  2. Export with section control: /sharelife_profile_export <pack_id> <version> exclude_secrets <sections_csv>
  3. Import with dry-run: /sharelife_profile_import <artifact_id> --dryrun --plan-id <plan_id> --sections <sections_csv>
  4. Review selected_sections, changed_sections, and diff before apply.
  5. If compatibility_issues includes environment_*_reconfigure_required or knowledge_base_storage_sync_required, hand that list to your automation flow after migration and execute environment reconfiguration explicitly.

Maintenance checklist (for developers)

When AstrBot upstream config changes, keep this document and implementation aligned:

  1. Update the baseline commit references on this page (AstrBot + Sharelife).
  2. Diff upstream config keys (see AstrBot config docs).
  3. Decide section ownership for new keys and extend section adapters if needed.
  4. Add tests for export/import/dry-run/apply/rollback.
  5. Sync README and multilingual docs entry points to avoid doc/behavior drift.

References

  1. AstrBot config docs: https://github.com/AstrBotDevs/AstrBot/blob/master/docs/zh/dev/astrbot-config.md
  2. Sharelife Bot Profile Pack operations: /en/how-to/bot-profile-pack