Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
3d98768
add Agent Framework based code.
Dongbumlee Jan 13, 2026
aa6b4b7
update files
Dongbumlee Jan 13, 2026
d1e3599
update documents
Dongbumlee Jan 13, 2026
0161a4d
update with v2 codes.
Dongbumlee Jan 13, 2026
d3e3a5e
add file headeers and unittest codes.
Dongbumlee Jan 13, 2026
45346d7
refactor: update README and enhance devcontainer setup; add new libra…
Dongbumlee Jan 14, 2026
87bfdec
feat: enhance GroupChatOrchestrator with termination controls and pro…
Dongbumlee Jan 14, 2026
644e5ec
Refactor code for improved readability and consistency
Dongbumlee Jan 14, 2026
230dc4b
feat: enhance documentation and analysis steps with detailed docstrin…
Dongbumlee Jan 14, 2026
c70bd58
feat: enhance module docstrings across various utilities for improved…
Dongbumlee Jan 14, 2026
933c292
feat: enhance orchestrator configuration with max tokens; refactor ex…
Dongbumlee Jan 14, 2026
73610e0
refactor: streamline error detail logging for Azure exceptions
Dongbumlee Jan 15, 2026
bd0efd8
Refactor output folder structure and update timestamp handling across…
Dongbumlee Jan 17, 2026
285876c
refactor: simplify call logging structure in GroupChatOrchestrator; e…
Dongbumlee Mar 10, 2026
e16f0af
fix: resolve flake8 lint failures
Dongbumlee Mar 11, 2026
e5e991b
fix: remove extra blank line to pass flake8 E303
Dongbumlee Mar 11, 2026
db4fe8d
refactor: streamline coordinator prompts, Evidence Pack protocol, out…
Dongbumlee Mar 11, 2026
b160519
style: apply code-quality pass across processor sources
Dongbumlee Mar 11, 2026
5e35c92
fix: update AZURE_OPENAI_API_VERSION to 2025-03-01-preview and apply …
Dongbumlee Mar 11, 2026
a3c8090
fix: progress modal phase tracking and UI improvements
Dongbumlee Mar 12, 2026
65210d4
style: ignore E704 in flake8 for protocol/abstract stubs
Dongbumlee Mar 12, 2026
15d7cd0
Merge pull request #136 from microsoft/fix/progress-modal-phase-tracking
Dongbumlee Mar 12, 2026
b9793de
fix: show phase name in title and reverse recent activity order
Dongbumlee Mar 12, 2026
f93c12e
fix: UI enhancements and agent sign-off scope boundaries
Dongbumlee Mar 12, 2026
d02eee9
fix: expose Coordinator full message for routing display
Dongbumlee Mar 12, 2026
04f9083
fix: dynamic Coordinator badge and truncated instruction
Dongbumlee Mar 12, 2026
fcde8bd
fix: handle hyphenated phase names like Re-Check in regex
Dongbumlee Mar 12, 2026
aacb5ea
fix: show agent response preview and fix response timing
Dongbumlee Mar 12, 2026
7c734b7
fix: propagate actual error messages instead of generic 'Workflow out…
Dongbumlee Mar 12, 2026
fbf4417
fix: increase Coordinator max_tokens from 1500 to 4000 to prevent JSO…
Dongbumlee Mar 12, 2026
d131efc
fix: surface failure reason and step in error message bar
Dongbumlee Mar 12, 2026
84a17cd
fix: smart context trimming - compress old tool results and save_blob…
Dongbumlee Mar 12, 2026
16a2cbb
fix: progressive context trimming - more aggressive on each retry att…
Dongbumlee Mar 12, 2026
daef533
fix: convert step agents should PASS with assumptions, not block for …
Dongbumlee Mar 12, 2026
e57f661
fix: add scope guidance to coordinator prompts to prevent false FAILs…
Dongbumlee Mar 12, 2026
208a503
fix: design coordinator - fix gaps instead of hard_blocked, add scope…
Dongbumlee Mar 12, 2026
313d03b
fix: enforce mandatory sign-off verification notes (minimum 2 bullets)
Dongbumlee Mar 12, 2026
59d8a9b
feat: GitHub-style markdown rendering with GFM tables and Mermaid dia…
Dongbumlee Mar 12, 2026
619d80b
fix: error propagation, smart context trimming, YAML expert self-sign…
Dongbumlee Mar 12, 2026
5be4895
fix: add JSON syntax highlighting support for .json files
Dongbumlee Mar 12, 2026
a83f62b
fix: add JSON highlighting, hide filename header for markdown files
Dongbumlee Mar 12, 2026
a9f5169
fix: move file count into Migration Overview card, remove separate ba…
Dongbumlee Mar 12, 2026
5f34742
feat: enhance mermaid MCP tool with mermaid.js rendering validation
Dongbumlee Mar 12, 2026
3a029d2
fix: mermaid validation handles DOMPurify gracefully, warn about pare…
Dongbumlee Mar 12, 2026
7e77c37
fix: more aggressive progressive trimming floors for context overflow
Dongbumlee Mar 12, 2026
94a1be8
fix: increase context trim defaults for GPT-5.1 272K input window
Dongbumlee Mar 12, 2026
0ed8a88
fix: prevent Coordinator premature finish with FAILs, strengthen Phas…
Dongbumlee Mar 13, 2026
4891969
fix: apply NON-NEGOTIABLE no-finish-with-FAILs rule to all 4 step coo…
Dongbumlee Mar 13, 2026
a93f9b8
fix: design step Chief Architect sign-off PENDING→PASS
Dongbumlee Mar 13, 2026
43e668c
feat: add Qdrant-backed shared memory for cross-agent context sharing
Dongbumlee Mar 13, 2026
217afab
refactor: move memory store lifecycle to workflow level + add 38 unit…
Dongbumlee Mar 13, 2026
4260c42
chore: add INFO-level memory tracking logs
Dongbumlee Mar 13, 2026
f86e075
fix: use sync credentials for embedding client, add debug prints
Dongbumlee Mar 13, 2026
3a6a793
fix: resolve ruff E402 import ordering in migration_processor
Dongbumlee Mar 13, 2026
662b8b3
fix: rename ambiguous variable 'l' to 'line' in mcp_mermaid.py (E741)
Dongbumlee Mar 13, 2026
a00cfa1
feat: Phase 3 context window reduction + prompt cleanup
Dongbumlee Mar 13, 2026
ae1300e
fix: add YAML Expert PENDING detection in convert coordinator STATE-A…
Dongbumlee Mar 13, 2026
b2276b1
feat: Bicep embedding model deployment + remove hardcoded endpoints +…
Dongbumlee Mar 13, 2026
e526a5b
Resilience improvements: retry logic, context trimming, blob listing …
Dongbumlee Mar 19, 2026
c09aa8c
Merge pull request #139 from microsoft/v2-external-memory
Dongbumlee Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
34 changes: 34 additions & 0 deletions src/processor/.dockerignore → .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
# Include any files or directories that you don't want to be copied to your
# container here (e.g., local build artifacts, temporary files, etc.).
#
# For more help, visit the .dockerignore file reference guide at
# https://docs.docker.com/engine/reference/builder/#dockerignore-file

**/.DS_Store
**/__pycache__
**/.venv
**/.classpath
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/bin
**/charts
**/docker-compose*
**/compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md
# UV and Python cache directories
**/__pycache__/
**/*.py[cod]
Expand Down
2 changes: 1 addition & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
max-line-length = 88
extend-ignore = E501
exclude = .venv, frontend
ignore = E722,E203, W503, G004, G200, F,E711
ignore = E722,E203, W503, G004, G200, F,E711,E704
9 changes: 9 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"chat.tools.terminal.autoApprove": {
"/^cd H:\\\\Works\\\\Code-Migration\\\\Container-Migration-Solution-Accelerator\\\\src\\\\backend-api ; python -m ruff check src/ --fix 2>&1$/": {
"approve": true,
"matchCommandLine": true
},
"npx eslint": true
}
}
263 changes: 218 additions & 45 deletions README.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions TRANSPARENCY_FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What is the Container Migration Solution Accelerator?

This solution accelerator is an open-source GitHub Repository designed to streamline the migration of Kubernetes workloads from various container platforms (EKS, GKE, etc.) to Azure Kubernetes Service (AKS). It automates the analysis, design, configuration transformation, and documentation generation processes to enhance the speed and accuracy of container platform migrations. The solution is built using Azure OpenAI Service, Semantic Kernel Process Framework, Model Context Protocol (MCP) servers, and Azure services integration.
This solution accelerator is an open-source GitHub Repository designed to streamline the migration of Kubernetes workloads from various container platforms (EKS, GKE, etc.) to Azure Kubernetes Service (AKS). It automates the analysis, design, configuration transformation, and documentation generation processes to enhance the speed and accuracy of container platform migrations. The solution is built using Azure OpenAI Service, Microsoft Agent Framework (workflow + group chat orchestration), Model Context Protocol (MCP) servers, and Azure services integration.

## What can the Container Migration Solution Accelerator do?

Expand Down Expand Up @@ -40,7 +40,7 @@ The solution was evaluated using multiple approaches:

3. **Migration Coverage**: Testing across different source platforms (EKS, GKE) and various workload types (stateless applications, databases, monitoring systems, etc.).

4. **Process Framework Reliability**: Evaluation of the Semantic Kernel Process Framework's error handling, retry mechanisms, and failure recovery capabilities.
4. **Process Framework Reliability**: Evaluation of the Agent Framework workflow's error handling, retry mechanisms, and failure recovery capabilities.

5. **Documentation Quality**: Assessment of generated documentation for completeness, accuracy, and actionability.

Expand Down
179 changes: 73 additions & 106 deletions docs/AgenticArchitecture.md
Original file line number Diff line number Diff line change
@@ -1,110 +1,84 @@
# Agentic Architecture - Container Migration Solution Accelerator

Based on your actual implementation, here's the comprehensive agentic architecture that mirrors the style of your reference image:
High-level view of how the 4-step orchestration works (executors, group chat orchestrators, and tools).

## Architecture Overview

```mermaid
graph TB
subgraph "Entry Layer"
WEB[Web App/Queue]
SERVICE[Migration Service]
flowchart LR
%% Top-level orchestration + telemetry
TELEM["Agent & Process Status<br/>(telemetry)"]
COSMOS[("Cosmos DB<br/>telemetry/state")]
PROC["Process Orchestration<br/>Agent Framework WorkflowBuilder"]

TELEM --> COSMOS
PROC --- TELEM

%% Step lanes
subgraph S1["Step 1: Analysis"]
direction TB
S1EXEC["Analysis Executor"] --> S1ORCH["Analysis Chat Orchestrator<br/>(GroupChatOrchestrator)"] --> S1AGENTS["Agents:<br/>Chief Architect<br/>AKS Expert<br/>Platform experts (EKS/GKE/OpenShift/Rancher/Tanzu/OnPremK8s)"]
end

subgraph "Process Engine"
PROC[Process Orchestrator<br/>Semantic Kernel]
subgraph S2["Step 2: Design"]
direction TB
S2EXEC["Design Executor"] --> S2ORCH["Design Chat Orchestrator<br/>(GroupChatOrchestrator)"] --> S2AGENTS["Agents:<br/>Chief Architect<br/>AKS Expert<br/>Platform experts (EKS/GKE/OpenShift/Rancher/Tanzu/OnPremK8s)"]
end

subgraph "Migration Steps"
ANALYSIS[Analysis Step<br/>Platform Discovery]
DESIGN[Design Step<br/>Azure Architecture]
YAML[YAML Step<br/>Configuration Transform]
DOCS[Documentation Step<br/>Report Generation]
subgraph S3["Step 3: YAML Conversion"]
direction TB
S3EXEC["Convert Executor"] --> S3ORCH["YAML Chat Orchestrator<br/>(GroupChatOrchestrator)"] --> S3AGENTS["Agents:<br/>YAML Expert<br/>Azure Architect<br/>AKS Expert<br/>QA Engineer<br/>Chief Architect"]
end

subgraph "AI Agents (7 Specialists)"
AGENTS[Multi-Agent System<br/>• Technical Architect<br/>• Azure Expert<br/>• EKS/GKE Experts<br/>• QA Engineer<br/>• Technical Writer<br/>• YAML Expert]
subgraph S4["Step 4: Documentation"]
direction TB
S4EXEC["Documentation Executor"] --> S4ORCH["Documentation Chat Orchestrator<br/>(GroupChatOrchestrator)"] --> S4AGENTS["Agents:<br/>Technical Writer<br/>Azure Architect<br/>AKS Expert<br/>Chief Architect<br/>Platform experts (EKS/GKE/OpenShift/Rancher/Tanzu/OnPremK8s)"]
end

subgraph "Tool Layer"
MCP[MCP Servers<br/>• Blob Storage<br/>• Microsoft Docs<br/>• DateTime Utils]
end

subgraph "Storage Layer"
STORAGE[Azure Services<br/>• Blob Storage<br/>• Cosmos DB<br/>• OpenAI GPT o3]
end
PROC --> S1
S1 -->|Analysis Result| S2
S2 -->|Design Result| S3
S3 -->|YAML Converting Result| S4

%% Main Flow
WEB --> SERVICE
SERVICE --> PROC
PROC --> ANALYSIS
ANALYSIS --> DESIGN
DESIGN --> YAML
YAML --> DOCS

%% AI Integration
ANALYSIS -.-> AGENTS
DESIGN -.-> AGENTS
YAML -.-> AGENTS
DOCS -.-> AGENTS

%% Tool Access
AGENTS -.-> MCP
MCP -.-> STORAGE

%% Styling for better readability
classDef entryLayer fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#000
classDef processLayer fill:#fff3e0,stroke:#f57c00,stroke-width:3px,color:#000
classDef stepLayer fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#000
classDef agentLayer fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#000
classDef toolLayer fill:#fce4ec,stroke:#c2185b,stroke-width:3px,color:#000
classDef storageLayer fill:#e1f5fe,stroke:#0288d1,stroke-width:3px,color:#000

class WEB,SERVICE entryLayer
class PROC processLayer
class ANALYSIS,DESIGN,YAML,DOCS stepLayer
class AGENTS agentLayer
class MCP toolLayer
class STORAGE storageLayer
```

## Agent Specialization by Phase

### Analysis Phase Agents

- **Technical Architect**: Leads overall analysis strategy and coordination
- **EKS Expert**: Identifies AWS EKS-specific patterns and configurations
- **GKE Expert**: Identifies Google GKE-specific patterns and configurations
- **Chief Architect**: Leads overall analysis strategy and coordination
- **AKS Expert**: Reviews for AKS/Azure migration readiness
- **Platform experts**: Registry-loaded participants (EKS/GKE/OpenShift/Rancher/Tanzu/OnPremK8s); coordinator keeps non-matching experts quiet

### Design Phase Agents

- **Technical Architect**: Defines migration architecture patterns
- **Azure Expert**: Designs Azure service mappings and optimizations
- **EKS Expert**: Provides source platform context for AWS workloads
- **GKE Expert**: Provides source platform context for GCP workloads
- **Chief Architect**: Defines migration architecture patterns and reconciles trade-offs
- **AKS Expert**: Ensures AKS-specific conventions and constraints are applied
- **Platform experts**: Provide source-platform context and constraints for the detected platform

### YAML Conversion Phase Agents

- **YAML Expert**: Performs configuration transformations and syntax optimization
- **Azure Expert**: Ensures Azure service integration and compliance
- **Azure Architect**: Ensures Azure service integration and compliance
- **AKS Expert**: Ensures converted manifests align with AKS expectations
- **QA Engineer**: Validates converted configurations and tests
- **Technical Writer**: Documents conversion decisions and generates reports
- **Chief Architect**: Provides overall review and integration

### Documentation Phase Agents

- **Technical Architect**: Provides architectural documentation and migration summary
- **Azure Expert**: Documents Azure-specific configurations and optimizations
- **EKS/GKE Experts**: Document source platform analysis and transformation logic
- **QA Engineer**: Provides validation reports and testing documentation
- **Technical Writer**: Creates comprehensive migration documentation
- **Azure Architect**: Documents Azure-specific configurations and optimizations
- **AKS Expert**: Documents AKS-focused implementation guidance and caveats
- **Chief Architect**: Provides architectural documentation and migration summary
- **Platform experts**: Document source platform analysis and transformation logic

## Data Flow Architecture

### Input Processing

1. **Queue Service** receives migration requests from web app or direct API
2. **Migration Service** processes queue messages and initiates migration process
3. **Process Orchestrator** manages step-by-step execution with event routing
1. **Web app** creates a migration request
2. **Queue worker service** receives the migration request from **Azure Storage Queue**
3. **Migration Processor** runs the end-to-end workflow (analysis → design → yaml → documentation)

### Step Execution Pattern

Expand All @@ -121,11 +95,13 @@ Each step follows this pattern:

### MCP Server Integration

All agents have access to Model Context Protocol (MCP) servers via Semantic Kernel plugin:
All agents have access to Model Context Protocol (MCP) servers via Microsoft Agent Framework tool abstractions:

- **Blob Operations**: File reading/writing to Azure Blob Storage
- **Microsoft Docs**: Azure documentation lookup and best practices
- **DateTime Utilities**: Timestamp generation and time-based operations
- **Fetch**: URL fetching for validation (e.g., verifying references)
- **YAML Inventory**: Enumerate converted YAML objects for runbooks

## Key Architectural Principles

Expand All @@ -140,22 +116,27 @@ Each step has a focused objective:

### Event-Driven Orchestration

Steps communicate through Semantic Kernel events:

- `StartMigration` → Analysis Step
- `AnalysisCompleted` → Design Step
- `DesignCompleted` → YAML Step
- `YamlCompleted` → Documentation Step
Steps are executed as a directed workflow (with start node and edges) using the Agent Framework workflow engine.
The processor emits workflow/executor events for observability and telemetry.

### Multi-Agent Collaboration

Within each step, specialized agents collaborate through GroupChat orchestration:
Within each step, specialized agents collaborate through group chat orchestration:

- Structured conversation patterns
- Domain expertise contribution
- Consensus building on decisions
- Quality validation and review

### Evaluation and Quality Checks

The processor uses multiple quality signals to reduce regressions and increase reliability:

- **Typed step outputs**: workflow executors and orchestrators exchange typed models per step (analysis → design → yaml → documentation).
- **QA sign-offs**: the QA agent focuses on validation steps and flags missing/unsafe transformations.
- **Tool-backed validation**: steps can call validation tools via MCP (e.g., Mermaid validation, YAML inventory grounding, docs lookups).
- **Unit tests**: processor unit tests live under [src/processor/src/tests/unit/](../src/processor/src/tests/unit/).

### Tool-Enabled Intelligence

Agents access external capabilities through MCP servers:
Expand All @@ -176,41 +157,27 @@ Comprehensive tracking throughout the process:
## File Location Mapping

```text
src/
├── main_service.py # Queue Service Entry Point
├── services/migration_service.py # Migration Orchestration
├── libs/processes/
│ └── aks_migration_process.py # Process Framework Definition
├── libs/steps/
│ ├── analysis_step.py # Analysis Step Implementation
│ ├── design_step.py # Design Step Implementation
│ ├── yaml_step.py # YAML Step Implementation
│ └── documentation_step.py # Documentation Step Implementation
├── libs/steps/orchestration/
│ ├── analysis_orchestration.py # Analysis Agent Orchestration
│ ├── design_orchestration.py # Design Agent Orchestration
│ ├── yaml_orchestration.py # YAML Agent Orchestration
│ └── documentation_orchestration.py # Documentation Agent Orchestration
├── agents/
│ ├── technical_architect/agent_info.py
│ ├── azure_expert/agent_info.py
│ ├── eks_expert/agent_info.py
│ ├── gke_expert/agent_info.py
│ ├── qa_engineer/agent_info.py
│ ├── technical_writer/agent_info.py
│ └── yaml_expert/agent_info.py
└── plugins/mcp_server/
├── MCPBlobIOPlugin.py # Azure Blob Storage MCP Server
├── MCPMicrosoftDocs.py # Microsoft Docs MCP Server
└── MCPDatetimePlugin.py # DateTime Utilities MCP Server
src/processor/src/
├── main_service.py # Queue worker entry point
├── services/queue_service.py # Azure Storage Queue consumer
├── services/control_api.py # Control API (health/kill)
├── services/process_control.py # Process control store/manager
├── steps/migration_processor.py # WorkflowBuilder + step chaining
├── steps/analysis/workflow/analysis_executor.py
├── steps/design/workflow/design_executor.py
├── steps/convert/workflow/yaml_convert_executor.py
└── steps/documentation/
├── orchestration/documentation_orchestrator.py
├── workflow/documentation_executor.py
└── agents/ # Agent prompt files
```

## Summary

This architecture implements a sophisticated agentic system that combines:

- **Semantic Kernel Process Framework** for structured workflow execution
- **Multi-Agent GroupChat Orchestration** for domain expertise collaboration
- **Microsoft Agent Framework Workflow** for structured workflow execution
- **Multi-Agent Group Chat Orchestration** for domain expertise collaboration
- **Model Context Protocol (MCP)** for tool integration and external system access
- **Azure Cloud Services** for scalable storage and data management
- **Event-Driven Architecture** for loose coupling and reliability
Expand Down
Loading
Loading