AgentSkillsCN

add-wizard-handler

【机器人开发者】为向导流程配置 @WizardHandler 注解。适用于新建向导流程、设置向导触发条件、限定作用域,或为 Telegram Bot 库配置状态管理器时使用。

SKILL.md
--- frontmatter
name: add-wizard-handler
description: [Bot developer] Configures @WizardHandler annotation for wizard flows. Use when creating a new wizard, setting wizard triggers, scope, or state managers for the telegram-bot library.

Add Wizard Handler

Structure

Annotate an object or class with @WizardHandler. Nest WizardStep objects inside. KSP generates WizardActivity; no manual Activity class.

kotlin
@WizardHandler(trigger = ["/start"])
object MyWizard {
    object NameStep : WizardStep(isInitial = true) { ... }
    object AgeStep : WizardStep { ... }
}

Parameters

ParameterPurposeDefault
triggerCommands that start the wizardRequired
scopeUpdate types to check for trigger[UpdateType.MESSAGE]
stateManagersState manager classes for step storageMapStringStateManager, MapIntStateManager, MapLongStateManager

Trigger

  • trigger = ["/start"] — single command
  • trigger = ["/start", "/register"] — multiple commands

Scope

  • scope = [UpdateType.MESSAGE] — commands in messages (default)
  • scope = [UpdateType.CALLBACK_QUERY] — button-triggered wizard

State Managers

KSP matches each step's store() return type to a state manager:

  • String?MapStringStateManager
  • Int?MapIntStateManager
  • Long?MapLongStateManager

Override per step with @WizardHandler.StateManager:

kotlin
@WizardHandler(trigger = ["/start"], stateManagers = [CustomStateManager::class])
object MyWizard {
    object NameStep : WizardStep { ... }

    @WizardHandler.StateManager(OtherStateManager::class)
    object AgeStep : WizardStep { ... }
}

Related Skills

  • build-wizard-flow — Full wizard flow overview
  • add-wizard-step — Implement WizardStep for each step

Reference