Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
25651cb
Created WhatTheHack template stub
Apr 13, 2026
d0f7368
Add devcontainer configuration for FoundryAgents
anahitaafsh Apr 13, 2026
6dd39a0
Challenge 00 getting setup
alexistj Apr 15, 2026
46a558a
challenge00-edit
alexistj Apr 23, 2026
11a61a1
challenge 1, 2
alexistj Apr 28, 2026
8f8e79b
Add News Agent Challenge 02 student notebook
Silicon-beep May 22, 2026
0e34fcb
Add cleanup cell to news agent notebook
ana-codes-1 May 26, 2026
c50bd5c
Update News Agent notebook
Silicon-beep May 26, 2026
b70cef6
Challenge 02 and 03
alexistj May 26, 2026
c72b8f2
Challenge 04: add CH-04-HostedAgents.ipynb
ana-codes-1 Jun 4, 2026
3baeb1a
Challenge 04: add Dockerfile
ana-codes-1 Jun 4, 2026
453e168
Challenge 04: add requirements.txt
ana-codes-1 Jun 4, 2026
e6c2fde
Challenge 04: add .dockerignore
ana-codes-1 Jun 4, 2026
e969130
Challenge 04: add Challenge-04.md
ana-codes-1 Jun 4, 2026
2da4b68
Challenge 04: add CH-04-HostedAgents-Solution.ipynb
ana-codes-1 Jun 4, 2026
8fb3d19
Challenge 04: add Dockerfile
ana-codes-1 Jun 4, 2026
e4c6f5c
Challenge 04: add requirements.txt
ana-codes-1 Jun 4, 2026
a59b6ab
Challenge 04: add .dockerignore
ana-codes-1 Jun 4, 2026
6402ac7
Challenge 04: add main.py
ana-codes-1 Jun 4, 2026
9c53cd3
Challenge 04: add agent.yaml
ana-codes-1 Jun 4, 2026
fe0cffb
Challenge 04: add coach solution guide
ana-codes-1 Jun 4, 2026
9ce375e
Challenge 04: update challenge listing in README
ana-codes-1 Jun 4, 2026
a057d31
Challenge 04: update challenge listing in Coach README
ana-codes-1 Jun 4, 2026
33492a7
Add Challenge 05 observability lab and coach solution notebooks
melody-N07 Jun 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .devcontainer/xxx-FoundryAgents/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"name" : "xxx-FoundryAgents",
"image": "mcr.microsoft.com/devcontainers/python:3.11",
"workspaceFolder": "/workspace/xxx-FoundryAgents/Student/Resources",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
"hostRequirements": {
"cpus": 2
},
"waitFor": "onCreateCommand",
"updateContentCommand": "python3 -m pip install -r requirements.txt",
"postCreateCommand": "",
"features": {
"ghcr.io/devcontainers/features/azure-cli:1": {
"installBicep": true
}
},
"customizations": {
"codespaces": {
"openFiles": []
},
"vscode": {
"extensions": [
"ms-toolsai.jupyter",
"ms-python.python",
"github.copilot",
"github.copilot-chat"
]
}
}
}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -336,4 +336,5 @@ ASALocalRun/
.mfractor/
.DS_Store

.env
.env
.venv/
Binary file added xxx-FoundryAgents/Coach/Lectures.pptx
Binary file not shown.
85 changes: 85 additions & 0 deletions xxx-FoundryAgents/Coach/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# What The Hack - FoundryAgents - Coach Guide

## Introduction

Welcome to the coach's guide for the FoundryAgents What The Hack. Here you will find links to specific guidance for coaches for each of the challenges.

This hack includes an optional [lecture presentation](Lectures.pptx) that features short presentations to introduce key topics associated with each challenge. It is recommended that the host present each short presentation before attendees kick off that challenge.

**NOTE:** If you are a Hackathon participant, this is the answer guide. Don't cheat yourself by looking at these during the hack! Go learn something. :)

## Coach's Guides

- Challenge 00: **[Prerequisites - Ready, Set, GO!](./Solution-00.md)**
- Prepare your workstation to work with Azure.
- Challenge 01: **[Title of Challenge](./Solution-01.md)**
- Description of challenge
- Challenge 02: **[Title of Challenge](./Solution-02.md)**
- Description of challenge
- Challenge 03: **[Title of Challenge](./Solution-03.md)**
- Description of challenge
- Challenge 04: **[Deploy a Hosted Weather Agent](./Solution-04.md)**
- Build a weather agent with a custom tool, containerize it, deploy to Foundry, and invoke it
- Challenge 05: **[Title of Challenge](./Solution-05.md)**
- Description of challenge
- Challenge 06: **[Title of Challenge](./Solution-06.md)**
- Description of challenge
- Challenge 07: **[Title of Challenge](./Solution-07.md)**
- Description of challenge
- Challenge 08: **[Title of Challenge](./Solution-08.md)**
- Description of challenge

## Coach Prerequisites

This hack has pre-reqs that a coach is responsible for understanding and/or setting up BEFORE hosting an event. Please review the [What The Hack Hosting Guide](https://aka.ms/wthhost) for information on how to host a hack event.

The guide covers the common preparation steps a coach needs to do before any What The Hack event, including how to properly configure Microsoft Teams.

### Student Resources

Before the hack, it is the Coach's responsibility to download and package up the contents of the `/Student/Resources` folder of this hack into a "Resources.zip" file. The coach should then provide a copy of the Resources.zip file to all students at the start of the hack.

Always refer students to the [What The Hack website](https://aka.ms/wth) for the student guide: [https://aka.ms/wth](https://aka.ms/wth)

**NOTE:** Students should **not** be given a link to the What The Hack repo before or during a hack. The student guide does **NOT** have any links to the Coach's guide or the What The Hack repo on GitHub.

### Additional Coach Prerequisites (Optional)

_Please list any additional pre-event setup steps a coach would be required to set up such as, creating or hosting a shared dataset, or deploying a lab environment._

## Azure Requirements

This hack requires students to have access to an Azure subscription where they can create and consume Azure resources. These Azure requirements should be shared with a stakeholder in the organization that will be providing the Azure subscription(s) that will be used by the students.

_Please list Azure subscription requirements._

_For example:_

- Azure resources that will be consumed by a student implementing the hack's challenges
- Azure permissions required by a student to complete the hack's challenges.

## Suggested Hack Agenda (Optional)

_This section is optional. You may wish to provide an estimate of how long each challenge should take for an average squad of students to complete and/or a proposal of how many challenges a coach should structure each session for a multi-session hack event. For example:_

- Sample Day 1
- Challenge 1 (1 hour)
- Challenge 2 (30 mins)
- Challenge 3 (2 hours)
- Sample Day 2
- Challenge 4 (45 mins)
- Challenge 5 (1 hour)
- Challenge 6 (45 mins)

## Repository Contents

_The default files & folders are listed below. You may add to this if you want to specify what is in additional sub-folders you may add._

- `./Coach`
- Coach's Guide and related files
- `./Coach/Solutions`
- Solution files with completed example answers to a challenge
- `./Student`
- Student's Challenge Guide
- `./Student/Resources`
- Resource files, sample code, scripts, etc meant to be provided to students. (Must be packaged up by the coach and provided to students at start of event)
20 changes: 20 additions & 0 deletions xxx-FoundryAgents/Coach/Solution-00.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Challenge 00 - <Title of Challenge> - Coach's Guide

**[Home](./README.md)** - [Next Solution >](./Solution-01.md)

## Notes & Guidance

This is the only section you need to include.

Use general non-bulleted text for the beginning of a solution area for this challenge

- Then move into bullets
- And sub-bullets and even
- sub-sub-bullets

Break things apart with more than one bullet list

- Like this
- One
- Right
- Here
67 changes: 67 additions & 0 deletions xxx-FoundryAgents/Coach/Solution-01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Challenge 01 - Your First Foundry Agent (Portal) - Coach's Guide

[< Previous Solution](./Solution-00.md) - **[Home](./README.md)** - [Next Solution >](./Solution-02.md)

## Notes & Guidance

This challenge is intentionally portal-based to give students a low-friction first experience with Microsoft Foundry agents. The goal is to build intuition for how agents, system instructions, and model connections work before moving to code in later challenges.

### Key Coaching Points

- **Portal vs. Production:** Make sure students understand the portal is for prototyping and experimentation. In production, agents are deployed and managed via the Azure CLI, Bicep/Terraform, and the Agent Framework SDK. Ask students: *"Why wouldn't you use the portal to deploy 50 agents across 3 environments?"* The answer should touch on repeatability, version control, CI/CD pipelines, and infrastructure-as-code.

- **This is NOT Copilot Studio:** Students coming from Power Platform backgrounds may confuse this with Copilot Studio. Key differences to emphasize:
- Microsoft Foundry = pro-developer, code-first, full Azure AI model access, extensible with custom tools and code
- Copilot Studio = low-code/no-code, business user focused, Microsoft 365 ecosystem, pre-built connectors
- If a student asks "how is this different from Copilot Studio?" — the short answer is: Foundry gives you full control over the model, the infrastructure, and the deployment pipeline. Copilot Studio abstracts most of that away.

### Agent 1: TravelAgent Walkthrough

Students should navigate to [ai.azure.com](https://ai.azure.com), open their project, and create a new agent. The portal flow is:

- Open the project created in Challenge 00
- Go to the **Agents** section in the left nav
- Click **+ New agent**
- Set agent name to `TravelAgent`
- Under model selection, pick the `gpt-5.1` deployment that was created during infrastructure setup
- Paste the system instructions provided in the student guide into the **Instructions** field
- Use the **Playground** panel on the right to test conversations

Expected behavior for the TravelAgent:
- When asked about a trip to Japan, it should ask clarifying questions about budget, interests (culture, food, nature, etc.), and travel dates before suggesting an itinerary
- When asked about packing for Patagonia, it should give practical hiking/weather-specific advice
- When asked to compare beach destinations, it should ask about budget constraints and then provide a structured comparison

If the agent is not asking clarifying questions, the student's system instructions may not have been entered correctly. Have them double-check.

### Agent 2: Custom Agent Guidance

This is where students get creative. Coach should:

- Encourage students to pick a domain they are genuinely interested in (sports analyst, recipe assistant, code reviewer, fitness coach, etc.)
- Review their system instructions for specificity — vague instructions like "be helpful" produce generic responses
- Challenge them to add guardrails (e.g., "If asked about medical advice, redirect the user to consult a professional")
- Have them demonstrate at least one multi-turn conversation where context is maintained across turns

Good system instructions typically include:
- A clear role/persona
- Tone and style guidance
- Domain expertise boundaries
- What the agent should and should not do
- When to ask clarifying questions

### Common Issues

- **Student can't find the Agents section:** Make sure they are in the correct project. The Agents tab appears in the left navigation under the project.
- **Model not available for selection:** The `gpt-5.1` model deployment must have been created in Challenge 00. If it's missing, they need to go back and deploy the model.
- **Agent gives random/unrelated responses:** System instructions were likely not saved. Have the student re-enter them and confirm the save.
- **Student asks about API/SDK access:** Tell them to hold that thought — Challenge 02 will move them to code-based agent creation. The purpose of this challenge is to build understanding of the concepts first.

### Discussion Prompt (Optional)

After both agents are working, consider asking the squad:
- *"What made a system instruction effective vs. ineffective?"*
- *"If you needed to deploy 100 of these agents with slightly different instructions, would the portal work? What would you use instead?"*
- *"How would you version-control your system instructions?"*

These questions set up the transition to later challenges where students work with the SDK and CLI.
Loading