Bot profile migration scope (ground truth)
If you only need one answer, this is it: what settings Sharelife migrates today.
Baseline (current implementation)
- AstrBot upstream baseline:
origin/master@9d4472cb2d0108869d688a4ac731e539d41b919e(2026-04-02). - Branch note: AstrBot upstream currently uses
masteras the primary branch, notmain. - Sharelife baseline:
main@7aebf279d074b80df7566c2d957f58d2c3cd6efd. - 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
bot_profile_packmigrates:astrbot_core/providers/plugins/skills/personas/mcp_servers/sharelife_meta/memory_store/conversation_history/knowledge_base/environment_manifestextension_packmigrates:plugins/skills/personas/mcp_servers- Migration is key-preserving replay, without semantic field remapping.
Raw AstrBot input compatibility
- Sharelife import now accepts raw AstrBot backup zip,
cmd_config.json, andabconf_*.json. - 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.
- 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)
| Section | Source key (runtime snapshot) | Current migration behavior | Notes |
|---|---|---|---|
astrbot_core | snapshot["astrbot_core"] | Full export/import/dry-run/apply/rollback | Carries bot core mirror state, not AstrBot full root config |
providers | snapshot["providers"] | Full workflow supported | Supports exclude_secrets / exclude_provider / include_provider_no_key / include_encrypted_secrets |
plugins | snapshot["plugins"] | Full workflow supported | Plugin install metadata triggers plan -> confirm -> execute guard |
skills | snapshot["skills"] | Full workflow supported | Suitable for capability bundle sharing |
personas | snapshot["personas"] | Full workflow supported | Suitable for persona bundle sharing |
mcp_servers | snapshot["mcp_servers"] | Full workflow supported | MCP server declarations can be migrated with the pack |
sharelife_meta | snapshot["sharelife_meta"] | Full workflow (bot_profile_pack only) | Sharelife internal metadata, not AstrBot core config |
memory_store | snapshot["memory_store"] | Full workflow (bot_profile_pack only) | Optional local memory migration; evaluate size/sensitivity before apply |
conversation_history | snapshot["conversation_history"] | Full workflow (bot_profile_pack only) | Optional chat-history migration; may include sensitive user content |
knowledge_base | snapshot["knowledge_base"] | Full workflow (bot_profile_pack only) | Migrates KB config/index metadata; external raw files still need manual sync |
environment_manifest | snapshot["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
- Keys in AstrBot
data/cmd_config.jsonthat are not mirrored into the listed sections are not auto-migrated. - 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.
- Plugin binaries, system dependencies, container runtime state, and external DB/KB raw files are not bundled by profile pack;
environment_manifestonly carries reconfiguration metadata. - Plugin install command execution is default-off; install metadata still needs explicit privileged confirmation and execution-gate config.
- Cross-version support relies on declaration checks (
astrbot_version/plugin_compat), not automatic semantic migration. - If a pack includes
environment_manifestor KB external paths, import will keepcompatibility=degradedwith explicitcompatibility_issues; post-migration reconfiguration is still explicit.
Accuracy and safety controls (current)
- Per-section hash verification on import.
- Optional HMAC manifest signing and trusted-key verification.
include_encrypted_secretssupports encrypted export and decrypt-on-import/dry-run/apply (requiresprofile_pack.secrets_encryption_key).- Apply path is snapshot-backed and rollback-capable.
- Risk and governance evidence are persisted in
capability_summaryandreview_evidence. environment_manifestis converted into explicitenvironment_*_reconfigure_requiredissues to prevent false assumptions about system-level auto-migration.
How users can verify migration content before apply
- Confirm target section data exists in runtime state.
- Export with section control:
/sharelife_profile_export <pack_id> <version> exclude_secrets <sections_csv> - Import with dry-run:
/sharelife_profile_import <artifact_id> --dryrun --plan-id <plan_id> --sections <sections_csv> - Review
selected_sections,changed_sections, anddiffbefore apply. - If
compatibility_issuesincludesenvironment_*_reconfigure_requiredorknowledge_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:
- Update the baseline commit references on this page (AstrBot + Sharelife).
- Diff upstream config keys (see AstrBot config docs).
- Decide section ownership for new keys and extend section adapters if needed.
- Add tests for export/import/dry-run/apply/rollback.
- Sync README and multilingual docs entry points to avoid doc/behavior drift.
References
- AstrBot config docs: https://github.com/AstrBotDevs/AstrBot/blob/master/docs/zh/dev/astrbot-config.md
- Sharelife Bot Profile Pack operations: /en/how-to/bot-profile-pack