Building Agents in Microsoft 365

A 1-hour hands-on training: Agent Builder & Copilot Studio

Welcome

In the next hour you'll learn what agents are, how to build a simple declarative agent inside Microsoft 365 Copilot Agent Builder, and how to graduate to Copilot Studio for richer capabilities. You'll leave with two working demo agents.

Agenda

0:00–0:05
Intro to Agents — what they are and why now
0:05–0:10
Intro to Agent Builder
0:10–0:25
Demo 1: Build the "Icebreaker Architect" in Agent Builder
0:25–0:35
Intro to Copilot Studio & capabilities tour
0:35–0:50
Demo 2: Build the "Office Plant Whisperer" in Copilot Studio
0:50–1:00
Tweaking instructions, icons, testing & Q&A

Modules

How to use these docs: Every prompt the instructor uses (descriptions, instructions, knowledge URLs, test questions) appears in a dark "copy block" with a Copy button. Click it and paste straight into the tool.

What you need before we start

What is an agent?

An agent is a purpose-built AI assistant that combines four things:

A regular chatbot answers from a fixed script. An agent reasons over your instructions and grounding to handle situations you didn't explicitly script.

Two flavors of "agent" in the Microsoft stack

Declarative agent Custom / Pro agent
Built on top of Microsoft 365 Copilot's reasoning. Configured with instructions + knowledge + (optionally) actions. Built in Copilot Studio. Can use custom topics, generative orchestration, your own AI models, multi-channel publishing.
Authored in Agent Builder (inside Copilot Chat) or Copilot Studio "agent builder" experience. Authored in Copilot Studio.
Lives inside Microsoft 365 Copilot Chat. Can live in Teams, a website, Slack, custom apps, the Copilot Chat surface, and more.

When to use which

The "Describe" superpower

Both tools include a Describe experience where you type a plain-English description of what you want, and Copilot configures the agent for you — name, icon, instructions, starter prompts, and (in Studio) suggested topics. We'll use it in both demos today rather than configuring fields manually.

Why we always start with Describe: it gets you to a working, on-brand agent in under a minute, and gives you a strong starting point to refine. Hand-typing instructions from a blank field is a great way to burn 20 minutes of class time.

What is Agent Builder?

Agent Builder is the lightweight authoring experience inside Microsoft 365 Copilot Chat. You launch it directly from the Copilot Chat sidebar, describe what you want, and the agent shows up alongside your other Copilot agents — no separate portal, no admin center detour.

License note for this demo: We intentionally use no connectors, no Power Platform actions, and no premium knowledge sources. Our Icebreaker Architect is pure instructions — it works on a standard Copilot Chat seat.

Demo: "Icebreaker Architect"

Our agent helps anyone running a meeting, workshop, all-hands, or team offsite generate creative, low-cringe icebreakers tuned to the size of the group, time available, and vibe of the meeting.

Step 1 — Open Agent Builder

  1. Open Microsoft 365 Copilot Chat.
  2. In the left rail, click Agents+ Create agent (or "Build an agent"). This opens the Agent Builder pane.
  3. You'll land on the Describe tab — that's where the magic starts.

Step 2 — Use Describe to bootstrap the agent

Paste this into the Describe box and let Copilot generate the name, icon, instructions, and starter prompts.

Describe prompt
Create an agent called "Icebreaker Architect" that helps anyone running a meeting, workshop, all-hands, or offsite invent creative, low-cringe icebreaker activities.

When a user starts a conversation, ask three quick questions in a single message:
1. Group size (small under 8, medium 8-25, large 25+)
2. Time available for the icebreaker (under 5 minutes, 5-15 minutes, 15+ minutes)
3. The vibe they want (energetic, reflective, getting-to-know-you, team-bonding, or creative-thinking)

Then propose three different icebreaker options at that exact size/time/vibe. For each one, give:
- A catchy name
- One-sentence "why this works"
- Step-by-step instructions the facilitator can read aloud
- An optional twist to make it harder or funnier
- An accessibility-friendly variation for remote or hybrid attendees

Tone: warm, witty, never cheesy. Avoid trust falls, anything involving touching, anything that singles out introverts, and anything that requires personal disclosure people might regret on Monday.

If the user pushes back on an idea, generate fresh alternatives — never repeat one you've already suggested in this conversation.

End each response with: "Want me to remix one of these, or generate three more?"
  1. Click Create (or "Generate"). Agent Builder fills in the Name, Description, Instructions, and Starter prompts automatically.
  2. Review the generated fields. The instructor will point out which fields came from which part of the Describe prompt.

Step 3 — Refine the instructions (optional polish)

The Describe output is usually 90% there. Drop this refinement into the Instructions field (or have students replace what was generated) so everyone is on the same page for the live test:

Instructions (refined)
You are the Icebreaker Architect. Your job is to design memorable, inclusive icebreaker activities for meetings, workshops, all-hands, and offsites.

OPENING TURN
On the very first message, ask all three of these in one short message:
- Group size? (S: under 8, M: 8-25, L: 25+)
- Time available? (under 5, 5-15, 15+ minutes)
- Vibe? (energetic / reflective / getting-to-know-you / team-bonding / creative-thinking)

EVERY RECOMMENDATION
Always return THREE distinct options. Each option must include:
- Name (catchy, 2-5 words)
- Why it works (1 sentence)
- Step-by-step facilitator script
- Optional twist
- Hybrid/remote variation

RULES
- Never repeat an icebreaker you've already proposed in this conversation.
- Never suggest trust falls, anything physical-contact-based, anything that singles out introverts, or anything requiring disclosures people might regret.
- Keep tone warm and witty. Do not use the words "synergy," "circle up," or "let's unpack."
- If the user pushes back, generate new options.

CLOSING LINE
End every response with: "Want me to remix one of these, or generate three more?"

Step 4 — Starter prompts

Starter prompts are the buttons users see the first time they open the agent. Use these in the Starter prompts section (replace whatever Describe generated):

Starter prompt 1
I have a 30-person all-hands tomorrow. Need a 5-minute energetic icebreaker.
Starter prompt 2
Give me a getting-to-know-you activity for a new team of six, 15 minutes.
Starter prompt 3
Design a creative-thinking warmup for a hybrid design workshop.
Starter prompt 4
I hate every icebreaker I've ever done. Convince me with three weird ones.

Step 5 — Set the icon

  1. Click the agent's icon in the top-left of the builder.
  2. Choose Generate icon and paste this prompt:
Icon generation prompt
A friendly minimalist illustration of a melting ice cube being broken open with a tiny architect's blueprint scroll spilling out, soft pastel palette, flat vector style, white background.

Or upload a PNG/SVG if you have a brand asset.

Step 6 — Save and test

  1. Click Create (top right). The agent is saved to your personal agents.
  2. The test pane opens on the right. Click a starter prompt — verify the agent asks the size/time/vibe question first.
  3. Try the test prompts below:
Test 1 — Standard path
Medium group, 10 minutes, team-bonding vibe. We're a remote engineering team.
Test 2 — Guardrail check
Give me a trust fall variation.
Test 3 — No-repeat check
I don't love any of those. Give me three more.
What the audience should notice: Test 2 should be refused gracefully. Test 3 should return three new icebreakers, not repeats. That's the instructions doing their job.

Step 7 — Share

Click Share in the top right → copy the link. Anyone in your tenant with Copilot Chat can open it instantly. No deployment, no admin approvals, no Teams app package.

What is Copilot Studio?

Copilot Studio is the pro-grade, low-code authoring environment for agents. Same "Describe to start" experience as Agent Builder, but you get the full toolbox: topics, actions, knowledge, generative orchestration, channels, and analytics.

Capabilities at a glance

Capability What it does
Topics Structured conversation flows triggered by phrases. Can branch, ask questions, call actions, return generative answers.
Generative answers Lets the agent answer freely from your knowledge sources (web pages, SharePoint, files, Dataverse, custom data) without you scripting every path.
Generative orchestration Agent decides at runtime which topic, action, or knowledge source best fits the user's intent — no rigid trigger phrases needed.
Actions Call Power Automate flows, Power Apps connectors, REST APIs, prompts, AI Builder models, or other agents.
Knowledge Public web search, specific URLs, SharePoint, OneDrive, uploaded files, Dataverse, enterprise data via Graph connectors.
Entities & variables Capture user input (locations, dates, custom lists) and pass through the conversation.
Channels Publish to Teams, custom websites, Microsoft 365 Copilot, Facebook, Slack, custom apps via Direct Line.
Analytics Sessions, resolution rate, top topics, abandoned conversations, customer satisfaction.
Authentication Entra ID, OAuth providers, no-auth, end-user auth for connector calls.

Demo: "Office Plant Whisperer"

A friendly agent for office workers who don't know what their desk plant wants. It greets the user, helps diagnose a sick plant via a guided topic, and falls back to generative answers grounded on a public houseplant care website for everything else.

This demo uses licensed Copilot Studio features: generative answers with a public web knowledge source and a custom topic with branching dialog. No connectors, no Power Automate — we're keeping it tight for the time we have.

Step 1 — Create the agent in Copilot Studio

  1. Go to copilotstudio.microsoft.com.
  2. Click CreateNew agent.
  3. You'll land on a chat with Copilot. This is the Describe experience — same idea as Agent Builder, expanded.

Step 2 — Describe the agent to Copilot

Paste this and let Copilot ask any follow-ups. Accept its suggestions; you can refine later.

Describe prompt
Build an agent called "Office Plant Whisperer." It helps office workers care for the houseplants on their desks and in shared spaces.

The agent should:
- Greet users warmly and ask if they want general care help or to diagnose a struggling plant.
- Answer questions about watering schedules, light needs, common pests, repotting, and propagation for popular office plants like pothos, snake plants, ZZ plants, monsteras, succulents, and peace lilies.
- Ground its answers on a reputable public houseplant care website.
- Include a guided "diagnose my plant" topic that asks the user a few quick questions (what plant, what's wrong: yellow leaves / brown tips / drooping / pests / something else, and how often they water) and then suggests the most likely cause and three things to try.

Personality: kind, encouraging, a little whimsical. Talks to plants like they're tiny green coworkers. Never shames the user for killing a plant.

End general answers with a one-line "Plant tip of the day" — a fun, surprising fact about the plant being discussed.
  1. When Copilot asks follow-ups (tone, scope, languages), accept defaults or paraphrase what's in the prompt.
  2. Click Create. The agent opens to the Overview page with generated name, description, instructions, and starter topics.

Step 3 — Refine the instructions

Go to OverviewInstructions (or SettingsGenerative AI → instructions, depending on UI version). Replace with:

Instructions
You are the Office Plant Whisperer — a warm, slightly whimsical houseplant care assistant for office workers.

CORE BEHAVIOR
- Greet new users and ask if they want general care help or to diagnose a struggling plant.
- If they want diagnosis, hand off to the "Diagnose my plant" topic.
- For general questions, answer from your grounded knowledge sources. If the source doesn't cover it, say so honestly and suggest where to look.

STYLE
- Kind, encouraging, slightly whimsical. Refer to plants as "tiny green coworkers" or by name.
- Never shame the user for over- or under-watering. Killing a plant is part of becoming a plant person.
- Keep responses scannable: short paragraphs, bullets when listing care steps.

TIP OF THE DAY
- End every general answer with: "🌱 Plant tip of the day:" followed by one surprising, true fact about the plant being discussed (origin, biology, history, etc.).

OUT OF SCOPE
- Outdoor landscaping, vegetable gardening, hydroponic farming — politely redirect.
- Plant identification from photos — explain you can't see images and ask for a description instead.

Step 4 — Add a knowledge source

  1. Go to the Knowledge tab.
  2. Click + Add knowledgePublic websites.
  3. Add this URL as the grounding source (a well-known public houseplant care site):
Knowledge URL
https://www.thesill.com/blogs/plant-care

Name the source The Sill — Plant Care Blog and give it this description so the orchestrator knows when to use it:

Knowledge source description
Authoritative guide to indoor houseplant care, watering, light, common problems, pests, and repotting for popular species like pothos, snake plants, ZZ plants, monsteras, peace lilies, fiddle-leaf figs, and succulents.
Substitute as needed: If your tenant blocks that domain, swap in any public plant-care site your org allows. The agent works the same way.

Step 5 — Add the "Diagnose my plant" topic

  1. Go to the Topics tab → + Add a topicCreate with Copilot.
  2. This is the in-Studio "Describe" experience for topics. Paste:
Topic Describe prompt
Topic name: Diagnose my plant.

Trigger phrases: my plant is dying, my plant looks sad, help my plant, something is wrong with my plant, plant emergency, diagnose my plant.

Conversation flow:
1. Acknowledge the user warmly ("Okay, let's check on your tiny green coworker.").
2. Ask: "What kind of plant is it?" — store the answer in a variable called PlantType.
3. Ask: "What's it doing?" with these multiple-choice options: Yellow leaves, Brown crispy tips, Drooping, Pests / bugs, Something else. Store in Symptom.
4. Ask: "How often do you water it?" with options: Every few days, Once a week, Every couple of weeks, Honestly I forget. Store in WateringHabit.
5. Generate a diagnosis: use generative answers grounded on the agent's knowledge sources, passing PlantType, Symptom, and WateringHabit. Return the most likely cause and three concrete things to try, in a kind tone.
6. Ask: "Want me to set a reminder routine for this plant?" — if yes, give a simple text-based care schedule (don't actually create a calendar event).
7. End with the Plant tip of the day for the user's plant type.
  1. Click Create. Studio generates the full topic with question nodes, variables, and a generative-answer node.
  2. Open the generated topic, click through each node, and tell the class what Copilot built. Show the variables on the right pane.
  3. Save the topic.

Step 6 — Set conversation starters

On the Overview tab, replace the auto-generated starters with these:

Starter 1
How often should I water my pothos?
Starter 2
My snake plant is dying — help.
Starter 3
What's a low-light plant that won't die on my desk?
Starter 4
Diagnose my plant.

Step 7 — Set the icon

Top of the Overview page → click the agent icon → Generate, and use:

Icon prompt
A cute minimalist illustration of a smiling monstera leaf wearing tiny round glasses, soft green and cream palette, flat vector style, white background.

Step 8 — Test in the side pane

Use the Test your agent panel on the right. Click refresh after saving topic/knowledge changes.

Test 1 — Generative answer + grounding
How much light does a ZZ plant need, and how do I know if it's getting too much?
Test 2 — Triggers the diagnose topic
My pothos has yellow leaves and I water it every couple of weeks.
Test 3 — Out of scope check
Can you identify my plant if I send a photo?
Test 4 — Persona check
I killed another plant. I'm a monster.
Watch the right pane. Studio shows you which topic was triggered, which knowledge source was queried, and the citations. That visibility is the killer feature that Agent Builder doesn't have.

Step 9 — Publish (optional, if time allows)

  1. Publish button (top right) → confirm.
  2. Go to Channels → enable Microsoft 365 Copilot or Teams.
  3. For Teams: click Availability optionsShow to people in my organization (requires admin approval depending on tenant settings).

The "first draft" rule

Describe gets you to a working agent fast. It is never the final version. Expect to iterate on instructions 3–5 times before sharing.

Tweaking instructions

Good instructions follow a predictable shape:

  1. Identity — one sentence: who the agent is and what it does.
  2. Core behavior — what to do on the first turn, on follow-ups, on completion.
  3. Style — tone, voice, words to use or avoid.
  4. Rules / guardrails — things to never do, things to always do.
  5. Out-of-scope — what to politely refuse or redirect.

Drop this template into either tool to start from a clean structure:

Instructions template
You are [AGENT NAME] — [one-sentence identity].

CORE BEHAVIOR
- On the first message: [what to ask or say].
- On follow-ups: [pattern to follow].
- On completion: [what to summarize or hand off].

STYLE
- Tone: [adjectives].
- Always: [phrases, formats, structures you want].
- Never: [words, idioms, patterns you want to avoid].

RULES
- [Hard rule 1]
- [Hard rule 2]

OUT OF SCOPE
- [Topic 1] — [how to redirect]
- [Topic 2] — [how to redirect]

Common tweaks after first test

Setting the icon

Generate from a prompt

Both Agent Builder and Copilot Studio let you generate an icon with Copilot. Tips:

Reusable icon prompt template
A [adjective] [subject] [optional action or accessory], [color palette], [style: flat vector / minimalist / line art / 3D], white background.

Upload your own

For internal corporate use, prefer a PNG sized 512×512 or an SVG. Keep it readable at 32×32 — that's how small it shows in the Copilot Chat sidebar.

Testing — the right loop

Use the Test pane in both tools. Every change to instructions, knowledge, or topics should be tested with at least these four prompt types:

Prompt type Why Example
Happy path The core thing the agent exists to do. "Plan a 5-minute icebreaker for 10 people."
Edge case Same task, unusual input. "Plan an icebreaker for 200 people in 90 seconds."
Guardrail Something the agent should refuse or redirect. "Suggest a trust fall." / "Identify my plant from a photo."
Memory / persona Make sure the agent stays in character across turns. "Now do it in pirate voice." (Should keep its actual persona.)
Universal "smoke test" prompts
1. [Happy path] — Ask the agent to do exactly what it was built for.
2. [Edge case] — Same task with an unusual constraint (huge group, tiny time, weird tone).
3. [Guardrail] — Ask for something explicitly forbidden in instructions.
4. [Out of scope] — Ask about a topic outside the agent's purpose.
5. [Persona drift] — Ask the agent to pretend to be something else.
6. [Knowledge grounding] — Ask a question only your knowledge source can answer.
7. [Citation check] (Studio only) — Look for source citations on grounded answers.

Studio-specific testing tips

Wrap-up checklist

  • ✅ Name is clear and on-brand
  • ✅ Icon is readable at 32×32
  • ✅ Description tells a stranger what the agent does in one sentence
  • ✅ Instructions follow the 5-section shape
  • ✅ At least 3 starter prompts cover the main use cases
  • ✅ All 4 prompt types from the smoke test were tried
  • ✅ (Studio) Knowledge sources have descriptions so the orchestrator picks correctly
  • ✅ (Studio) At least one structured topic for the most important flow

Questions to leave the class with

  1. What's a workflow on your team where someone is the bottleneck answering the same questions?
  2. What information would the agent need to ground on?
  3. Could it start as an Agent Builder agent, or does it need Copilot Studio from day one?