Skip to content

MAF Orchestration Visual Guide

This document provides visual diagrams to help understand the Microsoft Agent Framework (MAF) orchestration architecture.

Table of Contents

  1. Current vs Proposed Architecture
  2. MAF Component Architecture
  3. Agent Workflow Patterns
  4. Migration Strategy
  5. Directory Structure

Current vs Proposed Architecture

Current Architecture (LlamaIndex.TS)

Proposed Architecture (MAF)

Key Changes:

  • ✅ Replace Express.js → FastAPI
  • ✅ Replace LlamaIndex.TS → Microsoft Agent Framework
  • ✅ Replace TypeScript → Python
  • ✅ Keep same API contract (no UI changes)
  • ✅ Keep same MCP tool servers (no changes)

MAF Component Architecture

Agent Workflow Patterns

Sequential Workflow

Parallel Workflow

Conditional Workflow with Agent Handoff

Migration Strategy

Parallel Deployment Approach

Traffic Distribution by Phase:

Directory Structure

Current Structure

src/
├── api/                          # TypeScript API
│   ├── src/
│   │   ├── index.ts             # Express server
│   │   ├── mcp/                 # MCP clients
│   │   │   ├── mcp-http-client.ts
│   │   │   ├── mcp-sse-client.ts
│   │   │   └── mcp-tools.ts
│   │   └── orchestrator/
│   │       └── llamaindex/      # LlamaIndex.TS
│   │           ├── index.ts     # Agent setup
│   │           ├── providers/   # LLM providers
│   │           └── tools/       # Tool config
│   ├── package.json
│   └── tsconfig.json
├── tools/                        # MCP servers
│   ├── customer-query/          # C#/.NET
│   ├── destination-recommendation/ # Java
│   ├── itinerary-planning/      # Python
│   └── echo-ping/               # TypeScript
└── ui/                          # Angular frontend

Proposed Structure (Parallel)

src/
├── api/                          # TypeScript API (existing)
│   └── ...
├── api-python/                   # NEW: Python API
│   ├── src/
│   │   ├── main.py              # FastAPI server
│   │   ├── config.py            # Configuration
│   │   ├── orchestrator/        # MAF orchestration
│   │   │   ├── __init__.py
│   │   │   ├── workflow.py      # Workflow engine
│   │   │   ├── agents/          # Agent implementations
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base.py
│   │   │   │   ├── triage_agent.py
│   │   │   │   ├── customer_query_agent.py
│   │   │   │   ├── destination_agent.py
│   │   │   │   ├── itinerary_agent.py
│   │   │   │   ├── code_eval_agent.py
│   │   │   │   ├── model_inference_agent.py
│   │   │   │   ├── web_search_agent.py
│   │   │   │   └── echo_agent.py
│   │   │   └── tools/           # MCP client integration
│   │   │       ├── __init__.py
│   │   │       ├── mcp_client.py
│   │   │       ├── http_client.py
│   │   │       ├── sse_client.py
│   │   │       └── tool_registry.py
│   │   ├── api/                 # API routes
│   │   │   ├── __init__.py
│   │   │   ├── chat.py
│   │   │   ├── tools.py
│   │   │   └── health.py
│   │   └── utils/               # Utilities
│   │       ├── __init__.py
│   │       ├── telemetry.py
│   │       ├── streaming.py
│   │       └── logging.py
│   ├── tests/                   # Test files
│   │   ├── __init__.py
│   │   ├── test_agents.py
│   │   ├── test_workflow.py
│   │   └── test_api.py
│   ├── pyproject.toml           # Python dependencies
│   ├── Dockerfile               # Container config
│   └── .env.sample              # Environment template
├── tools/                        # MCP servers (no changes)
│   └── ...
└── ui/                          # Angular frontend (no changes)

Technology Stack Comparison

Request Flow Comparison

Current Flow (LlamaIndex.TS)

Proposed Flow (MAF)

Note: The flow is essentially identical from the UI perspective!

Benefits Summary

Next Steps

  1. Review Documentation

  2. Make Decision

    • Stay with LlamaIndex.TS
    • Migrate to MAF
    • Parallel deployment (recommended)
  3. Begin Implementation


Document Version: 1.0
Last Updated: 2025-01-02
Status: Planning Complete