Skip to content

Start your workshop app

We’ll start our own copy of the workshop app and open its home page. The starter has the Blazor interface and supporting projects ready for us. We’ll create the coach in the next chapter.

Starting with a shell gives us somewhere to try each agent change. A working home page also separates local startup problems from later model or tool failures.

Keep the completed example in its own folder. Our new working folder will hold all the changes we make through the course.

Download interview-coach-lab-starter.zip once and extract it into a new folder named interview-coach-lab, beside interview-coach-example, not inside it. Open interview-coach-lab in your editor. You should see apphost.cs, apphost.settings.json, and InterviewCoach.slnx at its root. If the archive created an extra enclosing folder, use the directory containing those files.

Keep working in this same interview-coach-lab project from here through Chapter 14. You won’t need another clone or starter download. Later checkpoint archives are optional comparison or recovery copies. Extract them separately so they don’t overwrite your work.

This starter runs entirely locally. Its AppHost starts the agent service shell and webui. Model access, database services, and document parsing remain inactive.

What you start with and what you build

The starter provides the application plumbing. You implement the agent behavior and connect it to those services.

  1. Supplied interface. The chat components, streaming client, and file upload code are provided. You will connect the agent endpoint they use.
  2. Supplied services. The projects, service defaults, and interview repository are provided. You will expose and connect their capabilities.
  3. Your first agent. You create the Agent Framework agent, connect a Foundry model, and wire streaming replies into the UI.
  4. Tools and data. You expose a C# function, connect MCP tools, and implement the interview lifecycle.
  5. Specialist workflow. You define the specialist agents and the routes they may use to transfer a conversation.

Open a terminal at the interview-coach-lab root and run:

Terminal window
dotnet build InterviewCoach.slnx
aspire start --apphost ./apphost.cs

Open the dashboard URL printed by Aspire, then open the webui endpoint. The page should say:

Your application shell is running.
Coaching is not connected to this page yet.

The dashboard should show agent and webui running without a Foundry deployment or tool-service containers. If an Azure provisioning prompt appears, stop and check that you opened interview-coach-lab-starter.zip in the new folder.

These are the files we’ll use to create the first coach:

File What we’ll add
src/InterviewCoach.Agent/AgentDelegateFactory.cs The agent and its coaching instructions
src/InterviewCoach.Agent/Program.cs Hosting and development-interface activation
apphost.cs The model resource reference

Use the root apphost.cs throughout the course. Leave the project-based AppHost unchanged. The optional deployment guide explains how to prepare that separate entry point if you choose to use it.

What is already supplied?

The starter includes chat and upload components, the database repository, and service defaults. These support the interview application. A console agent does not need all these projects.

WorkshopHosting.cs contains the model-client, authentication, provider, and DevUI setup we’ll activate next. It stays dormant until we call builder.AddWorkshopHosting(). The current startup creates no runtime model client.

The throwing agent-factory methods mark the code we’ll replace. You can leave the supplied helper implementations as they are.

If startup fails, read the build output or the failing resource’s logs. Use the starter archive above to compare files. Extract it into another folder to keep your work.

Once the shell is running, stop it from the same root before the next chapter’s edits:

Terminal window
aspire stop --apphost ./apphost.cs
Chapter 1 · Getting started

Next: 2. Ask your first agent a question