Skip to main content

Recommendation Feature Architecture

This document provides a detailed architecture overview of the Recommendation feature in the DevOps AI Toolkit.

Overview

The Recommendation feature provides AI-powered Kubernetes deployment recommendations. It analyzes user intent, discovers cluster capabilities, and generates deployment solutions with full manifest generation and deployment capabilities.

High-Level Architecture

Recommendation Workflow Stages

The recommendation tool operates as a unified multi-stage workflow:

Component Details

MCP Server (dot-ai)

The MCP server is the core recommendation engine:

ComponentFileDescription
recommend toolsrc/tools/recommend.tsEntry point, routes to stages, generates solutions
chooseSolutionsrc/tools/choose-solution.tsLoads selected solution, returns questions
answerQuestionsrc/tools/answer-question.tsProcesses answers, manages stage progression
generateManifestssrc/tools/generate-manifests.tsAI manifest generation with validation loop
deployManifestssrc/tools/deploy-manifests.tsDeploys via kubectl or helm
ResourceRecommendersrc/core/schema.tsAI-powered solution ranking and filtering
CapabilityVectorServicesrc/core/capability-vector-service.tsSemantic search for capabilities
PatternVectorServicesrc/core/pattern-vector-service.tsOrganizational pattern matching
PolicyVectorServicesrc/core/policy-vector-service.tsPolicy enforcement
GenericSessionManagersrc/core/generic-session-manager.tsSession state management
ArtifactHubServicesrc/core/artifacthub.tsHelm chart discovery

Controller (dot-ai-controller)

The Kubernetes controller manages deployed solutions:

CRDDescription
SolutionGroups related resources, manages ownerReferences, aggregates health
ResourceSyncConfigSyncs resource metadata to MCP for semantic search
CapabilityScanConfigScans cluster for resource capabilities
RemediationPolicyEvent-driven remediation (separate feature)

Web UI (dot-ai-ui)

Provides visualization for recommendation results:

  • Visualization Page (/v/{sessionId}) - Renders solution comparisons
  • Mermaid Diagrams - Architecture and flow diagrams
  • Resource Cards - Solution component details
  • Code Blocks - Generated manifests with syntax highlighting
  • Tables - Configuration summaries

Integration Points

MCP Server ↔ Vector DB (Qdrant)

  • Capability Storage: Resource capabilities with semantic embeddings
  • Pattern Storage: Organizational patterns for solution enhancement
  • Policy Storage: Policy intents for configuration enforcement
  • Semantic Search: Natural language queries matched to stored data

MCP Server ↔ Kubernetes API

  • Resource Discovery: kubectl api-resources, kubectl explain
  • Schema Retrieval: OpenAPI schemas for manifest generation
  • Manifest Validation: kubectl apply --dry-run=server
  • Deployment: kubectl apply, helm upgrade --install

MCP Server ↔ AI Provider

  • Solution Assembly: Ranking and filtering discovered capabilities
  • Question Generation: Creating configuration questions from schemas
  • Manifest Generation: Generating YAML from solution + answers
  • Helm Values: Generating values.yaml for chart installations

MCP Server ↔ Web UI

  • Session Storage: Solution data stored with session IDs
  • Visualization API: /api/visualize/{sessionId} endpoint
  • URL Generation: WEB_UI_BASE_URL/v/{sessionId}

Controller ↔ MCP Server

  • Resource Sync: Controller syncs resource metadata to MCP
  • Capability Scan: Controller triggers capability discovery
  • Solution CR: MCP generates Solution CR for controller management

Session Management

Sessions persist workflow state across tool calls:

Session ID Format: sol-{timestamp}-{uuid8}
Example: sol-1765409923079-fa3f055c

Session Data:
├── toolName: 'recommend'
├── stage: 'recommend' | 'generateManifests' | ...
├── intent: "Deploy PostgreSQL database"
├── type: 'single' | 'combination' | 'helm'
├── score: 96
├── description: "Multi-cloud PostgreSQL via DevOps Toolkit"
├── resources: [{kind, apiVersion, group, description}]
├── chart: {repository, chartName, version} (if Helm)
├── questions: {required, basic, advanced, open}
├── answers: {questionId: value}
├── appliedPatterns: ["DevOps Toolkit DB Pattern"]
├── generatedManifests: {type, files, helmCommand}
└── timestamp: ISO date

Output Formats

The recommendation tool supports three output formats for capability-based solutions:

FormatDescriptionFiles Generated
rawPlain YAML manifestsmanifests.yaml
helmHelm chart structureChart.yaml, values.yaml, templates/*.yaml
kustomizeKustomize overlaykustomization.yaml, base/, overlays/

Error Handling

The recommendation workflow includes robust error handling:

  1. Intent Refinement: Vague intents get guidance, not failure
  2. Validation Loops: Up to 10 retries for manifest generation
  3. Capability Gaps: Clear error when enhancement isn't possible
  4. Session Expiry: Graceful handling of expired sessions
  5. AI Service Errors: Fallback to original solution on enhancement failure

See Also