ErisPulse ErisPulse
Open in interactive docs →
On this page
Static mirror — the interactive version is canonical Open in interactive docs →

Migration Guide: From AstrBot to ErisPulse

Tip

When to read this: Read this when you already have an AstrBot robot and want to migrate it to ErisPulse. For new setups, see Quick Start directly.

First, the conclusion: Platform integration, models, personality, and knowledge bases can be transferred; AstrBot plugins cannot be transferred—the plugin APIs are completely different between the two platforms, and plugins need to be rewritten according to the ErisPulse module specifications. Data will not be automatically migrated.

Concept Comparison

In AstrBot In ErisPulse Explanation
Platform Adapters (QQ/WeChat/Telegram…) Platform Adapters The concept is consistent; install the corresponding adapter for ErisPulse.
LLM Provider (API Key, Model) QvQChat Model Pool Both support OpenAI-compatible integration; QvQChat supports model pool self-healing and difficulty routing.
Persona QvQChat Persona System System prompt + opening remarks + tool whitelists, manually migrated.
Knowledge Base QvQChat Knowledge Base Worldbook-style keyword triggers + vector retrieval, requires re-importing.
WebUI Dashboard Module start/stop, configuration, logs, event monitoring; QvQChat also has a separate control panel.
Plugin Module Different APIs, requires rewriting (see below).
Admin/Whitelist Three-dimensional Scope + module-specific permissions (e.g., QvQChat admins) More granular permission model, configured per module.

Migration Steps

  1. Set up the framework: Initialize the project according to Quick Start (either Docker or pip is fine), and install the Dashboard.
  2. Connect to the platform: epsdk install the platform adapter you previously used (install the OneBot adapter for QQ ecosystem, the Telegram adapter for Telegram...), and the login method and protocol implementation selection are the same as in the AstrBot era.
  3. Install the agent: epsdk install ErisPulse-QvQChat, and fill in the original Base URL / API Key / model name in the model pool.
  4. Migrate personality and knowledge base: Create new personality entries one by one on the QvQChat personality page; re-import the knowledge base documents.
  5. Rewrite plugins: Follow the comparison in the next section to translate the original plugin's "command → processing logic" into an ErisPulse module.

Plugin Rewrite Comparison

The same plugin that responds "pong" to a received /ping command, with code written on both sides:

AstrBot Plugin (example, refer to the official AstrBot documentation):

from astrbot.api.event import filter, AstrMessageEvent

@filter.command("ping")
async def ping(self, event: AstrMessageEvent):
    yield event.plain_result("pong")

ErisPulse Module (complete and runnable, see Module Development Introduction):

from ErisPulse.Core.Event import command

@command("ping", help="Test if the bot is online")
async def ping_handler(event):
    await event.reply("pong")

Key differences:

  • Event Model: AstrBot uses platform-specific event objects; ErisPulse uses the unified OneBot12 event model, where event.reply / SendDSL behave consistently across all platforms.
  • Package Structure: ErisPulse modules are standard Python packages, generated using the epsdk create module scaffolding tool, and published to PyPI and the module marketplace.
  • Scheduled Tasks / Storage: Use the Cron module or directly use the framework's built-in storage API, without introducing third-party dependencies.

Parallel Dual Operation: The ErisPulse bot first runs in a test group to verify all functionalities. Once confirmed to be complete, it switches to the main group. The account systems of both platforms are independent (each with its own protocol implementation/Token), so they do not interfere with each other, and the rollback cost is low.

Note

The plugin API and feature list of AstrBot are continuously evolving. This page focuses on general concepts; to determine if a specific plugin has an equivalent in ErisPulse, first search the Module Market. If not found, refer to the previous section for rewriting—most business plugins are actually shorter to implement in ErisPulse.

Next Steps