ADR 014 · Accepted
AI-Powered Wizard System
Context
Users need to configure LLM providers, models, configurations, and tasks -- a complex multi-step process involving endpoint URLs, API keys, model selection, system prompts, and temperature tuning. Manual CRUD via TYPO3 list module is error-prone and intimidating for non-technical users.
Problem statement
High barrier to entry: First-time setup requires knowledge of API endpoints, adapter types, model capabilities, and prompt engineering.
Model discovery gap: Users don't know which models their provider offers.
Configuration quality: Hand-written system prompts are often suboptimal.
Task chain complexity: Creating a task requires a configuration, which requires a model, which requires a provider -- four entities in sequence.
Decision
Implement an AI-powered wizard system with three wizard types:
Setup Wizard -- Guided provider onboarding (connect, verify, discover, configure, save). Five-step flow driven by Resources/Public/JavaScript/Backend/SetupWizard.js.
Configuration Wizard -- Takes a natural-language description and generates a structured LlmConfiguration via WizardGeneratorService::generateConfiguration().
Task Wizard -- Takes a natural-language description and generates a complete task chain (task + configuration + model recommendation) via WizardGeneratorService::generateTaskWithChain().
Graceful fallback when no LLM is available:
Key architectural components:
SetupWizardController -- AJAX endpoints for detect, test, discover, generate, save.
WizardGeneratorService -- LLM-powered generation with JSON parsing and normalization.
ModelDiscovery / ModelDiscoveryInterface -- Provider-specific model listing.
ProviderDetector -- Endpoint URL pattern matching for adapter type detection.
ConfigurationGenerator -- LLM-powered configuration preset generation.
DTOs: DetectedProvider, DiscoveredModel, SuggestedConfiguration, WizardResult.
Consequences
Positive:
●● Self-service onboarding without requiring LLM expertise.
●● AI-generated prompts are more effective than hand-crafted first attempts.
● Model discovery removes guesswork about available models.
● Fallback defaults ensure the wizard works even without a working LLM.
◐ Five-step flow with progress bar reduces cognitive load.
Negative:
◑ Requires one working LLM configuration to power the AI generation path.
◑ Generated configurations may need manual tuning for specialized use cases.
◑ Additional JavaScript adds bundle size.
Net Score: +5.5 (Strong positive)
Files changed
Added:
Classes/Controller/Backend/SetupWizardController.php
Classes/Service/WizardGeneratorService.php
Classes/Service/SetupWizard/ModelDiscovery.php
Classes/Service/SetupWizard/ModelDiscoveryInterface.php
Classes/Service/SetupWizard/ProviderDetector.php
Classes/Service/SetupWizard/ConfigurationGenerator.php
Classes/Service/SetupWizard/DTO/DetectedProvider.php
Classes/Service/SetupWizard/DTO/DiscoveredModel.php
Classes/Service/SetupWizard/DTO/SuggestedConfiguration.php
Classes/Service/SetupWizard/DTO/WizardResult.php
Resources/Public/JavaScript/Backend/SetupWizard.js