An open API service indexing awesome lists of open source software.

https://github.com/microsoft/spec-to-agents

A multi-agent event planning workflow built with Microsoft Agent Framework - combining Semantic Kernel's enterprise orchestration with AutoGen's multi-agent patterns.
https://github.com/microsoft/spec-to-agents

agent-framework autogen azure-ai-foundry semantic-kernel

Last synced: about 16 hours ago
JSON representation

A multi-agent event planning workflow built with Microsoft Agent Framework - combining Semantic Kernel's enterprise orchestration with AutoGen's multi-agent patterns.

Awesome Lists containing this project

README

          


Spec-to-Agents Logo

# Event Planning Multi-Agent System

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/microsoft/spec-to-agents)

A multi-agent event planning workflow built with **[Microsoft Agent Framework](https://github.com/microsoft/agent-framework)** - combining Semantic Kernel's enterprise orchestration with AutoGen's multi-agent patterns.

> [!NOTE]
> **Ignite 2025 Lab**: [LAB513 - Build A2A and MCP Systems Using SWE Agents and Agent Framework](https://github.com/microsoft/ignite25-LAB513-build-a2a-and-mcp-systems-using-swe-agents-and-agent-framework/blob/main/lab/instructions/instructions.md)

## ๐ŸŽฏ What This Demonstrates

This sample shows you how to build a production-ready multi-agent system with:

- **Multi-Agent Orchestration**: 5 specialized agents coordinating event planning
- **Human-in-the-Loop**: Interactive approval and feedback during workflow execution
- **Tool Integration**: Web search, weather APIs, calendar management, and code interpreter
- **Azure Deployment**: One-click deployment with Azure Developer CLI (azd)

## ๐Ÿ—๏ธ Architecture

### Multi-Agent Workflow Design

The system uses a **coordinator-centric star topology** where the Event Coordinator routes tasks to specialized agents and synthesizes their outputs into a comprehensive event plan:

![Event Planning Agent Design](assets/Event%20Planning%20Agent%20Design.png)

### Agent Tools & Capabilities

Each specialist agent has access to domain-specific tools for their area of expertise:

![Agent Tools](assets/Agent%20Tools.png)

**Tool Integration:**
- **Venue Specialist**: Web Search (Bing Grounding)
- **Budget Analyst**: Code Interpreter (Python REPL)
- **Catering Coordinator**: Web Search (Bing Grounding)
- **Logistics Manager**: Weather API (Open-Meteo) + Calendar Tools (iCalendar)
- **All Agents**: MCP Sequential Thinking (Model Context Protocol for complex reasoning)

## ๐Ÿš€ Quick Start

### Prerequisites

- Python 3.11+
- [uv](https://docs.astral.sh/uv/) - Python package manager
- [Azure CLI (az)](https://learn.microsoft.com/cli/azure/install-azure-cli)
- [Azure Developer CLI (azd)](https://learn.microsoft.com/azure/developer/azure-developer-cli/install-azd)
- Azure subscription

### Deploy to Azure

```bash
# Clone and navigate to the repository
git clone https://github.com/microsoft/spec-to-agents.git
cd spec-to-agents

# Login to Azure
az login
azd auth login

# Deploy everything (provisions resources, generates .env, installs dependencies)
azd up
```

**What happens:**
- โœ… Provisions Microsoft Foundry + OpenAI models
- โœ… Generates `.env` with connection details
- โœ… Installs Python dependencies via `uv sync`

### Run Locally

**Interactive Console (Recommended):**
```bash
uv run console
```

**DevUI (Visual Interface):**
```bash
uv run app
```

Then navigate to the URL shown (by default `http://localhost:8080`)

### Example Input

Try this event planning request:

```
Plan a corporate holiday party for 50 people on December 6th, 2025 in Seattle
with a budget of $5,000. Include venue options, catering for dietary restrictions,
and check the weather forecast.
```

The agents will collaborate to:
1. Search for suitable venues
2. Calculate budget breakdown
3. Recommend catering options
4. Check weather and create calendar event
5. Synthesize a comprehensive plan

## ๐Ÿ› ๏ธ Project Structure

```
spec-to-agents/
โ”œโ”€โ”€ src/spec_to_agents/
โ”‚ โ”œโ”€โ”€ main.py # DevUI entry point (uv run app)
โ”‚ โ”œโ”€โ”€ console.py # Interactive CLI entry point (uv run console)
โ”‚ โ”œโ”€โ”€ agents/ # Agent definitions (budget_analyst, venue_specialist, etc.)
โ”‚ โ”œโ”€โ”€ prompts/ # System prompts for each agent
โ”‚ โ”œโ”€โ”€ tools/ # Tool implementations (web search, weather, calendar, mcp)
โ”‚ โ”œโ”€โ”€ workflow/ # Workflow orchestration logic
โ”‚ โ””โ”€โ”€ utils/ # Shared utilities and clients
โ”œโ”€โ”€ tests/ # Unit and integration tests
โ”œโ”€โ”€ infra/ # Azure infrastructure (Bicep templates)
โ””โ”€โ”€ scripts/ # Post-provisioning hooks
```

## ๐Ÿ”‘ Key Features

### Service-Managed Threads
All agents use `store=True` for automatic conversation history management via Azure AI Service - no manual message tracking required.

### Human-in-the-Loop
Framework-native `ctx.request_info()` enables pausing workflows for user input with automatic state preservation.

### Structured Output Routing
Agents return Pydantic models with explicit routing decisions (`next_agent` field), enabling dynamic workflow orchestration.

## ๐Ÿงช Development

**Run Tests:**
```bash
uv run pytest
```

**Detailed Setup:**
See [DEV_SETUP.md](./DEV_SETUP.md) for debugging instructions and manual configuration.

## ๐Ÿ“ฆ Azure Resources

Provisioned automatically by `azd up`:

- **Microsoft Foundry**: AIServices resource and Project for service managed agents
- **Azure OpenAI**: gpt-5-mini (primary) and gpt-4.1-mini (web search)
- **Bing Search**: Grounding API for web searches
- **Container Registry & App**: For deployment (optional)
- **Application Insights**: Telemetry and monitoring

# ๐Ÿค Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA).

# ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.