> ## Documentation Index
> Fetch the complete documentation index at: https://academy.pathfindr.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Start Building With Copilot

> A practical guide to building your first agent using Agent Builder (Copilot Studio Lite) inside Microsoft 365 Copilot.

export const Quiz = ({question, options, correctIndex, explanation}) => {
  const [selected, setSelected] = useState(null);
  const [showResult, setShowResult] = useState(false);
  const handleSelect = index => {
    if (showResult) return;
    setSelected(index);
    setShowResult(true);
  };
  const isCorrect = selected === correctIndex;
  return <div className="my-8 p-6 rounded-2xl border border-zinc-200 dark:border-zinc-700 bg-gradient-to-br from-zinc-50 to-white dark:from-zinc-900 dark:to-zinc-800 shadow-sm">
      <div className="flex items-center gap-3 mb-4">
        <div className="flex items-center justify-center w-10 h-10 rounded-xl bg-blue-100 dark:bg-blue-900/40">
          <span className="text-xl">📝</span>
        </div>
        <div className="flex flex-col">
          <p className="font-semibold text-zinc-800 dark:text-zinc-100 m-0">Knowledge Check</p>
          <p className="text-xs text-zinc-500 dark:text-zinc-400 mt-0.5 m-0">Select the best answer</p>
      </div>
      </div>
      
      <p className="text-zinc-700 dark:text-zinc-200 font-medium mb-5 text-lg leading-relaxed">{question}</p>
      
      <div className="space-y-3">
        {options.map((option, index) => {
    const isSelected = selected === index;
    const isCorrectOption = index === correctIndex;
    let optionStyles = "border-zinc-200 dark:border-zinc-600 hover:border-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20";
    if (showResult) {
      if (isCorrectOption) {
        optionStyles = "border-green-500 bg-green-50 dark:bg-green-900/30";
      } else if (isSelected && !isCorrectOption) {
        optionStyles = "border-red-500 bg-red-50 dark:bg-red-900/30";
      } else {
        optionStyles = "border-zinc-200 dark:border-zinc-700 opacity-60";
      }
    }
    return <button key={index} onClick={() => handleSelect(index)} disabled={showResult} className={`w-full text-left p-4 rounded-xl border-2 transition-all duration-200 ${optionStyles} ${!showResult && 'cursor-pointer'} ${showResult && 'cursor-default'}`}>
              <div className="flex items-start gap-3">
                <div className={`flex-shrink-0 w-6 h-6 rounded-full border-2 flex items-center justify-center text-xs font-bold ${showResult && isCorrectOption ? 'border-green-500 bg-green-500 text-white' : showResult && isSelected && !isCorrectOption ? 'border-red-500 bg-red-500 text-white' : 'border-zinc-300 dark:border-zinc-500 text-zinc-500 dark:text-zinc-400'}`}>
                  {showResult && isCorrectOption ? '✓' : showResult && isSelected ? '✗' : String.fromCharCode(65 + index)}
                </div>
                <span className="text-sm text-zinc-700 dark:text-zinc-200 leading-relaxed">{option}</span>
              </div>
            </button>;
  })}
      </div>
      
      {showResult && <div className={`mt-5 p-4 rounded-xl ${isCorrect ? 'bg-green-100 dark:bg-green-900/40 border border-green-200 dark:border-green-800' : 'bg-amber-100 dark:bg-amber-900/40 border border-amber-200 dark:border-amber-800'}`}>
          <div className="flex items-start gap-3">
            <span className="text-xl">{isCorrect ? '🎉' : '💡'}</span>
            <div className="flex flex-col">
              <p className={`text-sm font-semibold m-0 mb-1 ${isCorrect ? 'text-green-800 dark:text-green-200' : 'text-amber-800 dark:text-amber-200'}`}>
                {isCorrect ? 'Correct!' : 'Not quite right'}
              </p>
              <p className="text-sm text-zinc-600 dark:text-zinc-300 m-0 leading-relaxed">{explanation}</p>
          </div>
          </div>
        </div>}
    </div>;
};

export const GlossaryRow = ({title, description, children, flip = false, titleClassName = "text-2xl font-semibold tracking-tight text-zinc-950 dark:text-white", descriptionClassName = "mt-3 text-base leading-7 text-zinc-700 dark:text-zinc-300"}) => {
  return <div className="not-prose my-12">
      <div className="grid grid-cols-1 sm:grid-cols-[1fr_1.6fr] gap-10 items-start">
        {}
        <div className={flip ? "sm:order-2" : "sm:order-1"}>
          <div className={titleClassName}>{title}</div>
          {description ? <div className={descriptionClassName}>{description}</div> : null}
        </div>

        {}
        <div className={flip ? "sm:order-1" : "sm:order-2"}>
          <div className="rounded-2xl overflow-hidden bg-transparent pointer-events-auto">
            {children}
          </div>
        </div>
      </div>
    </div>;
};

## What you'll learn

Agent Builder — now officially called **Copilot Studio Lite** — is built directly into Microsoft 365 Copilot. No extra licence, no extra software. This guide shows you how to go from idea to working agent.

<CardGroup cols={4}>
  <Card title="Understand agents" icon="square-1">
    What agents are and when to use one
  </Card>

  <Card title="Plan your agent" icon="square-2">
    Define the right scope and instructions
  </Card>

  <Card title="Build and connect" icon="square-3">
    Set up your agent with knowledge and tools
  </Card>

  <Card title="Share and scale" icon="square-4">
    Publish and hand off to your team
  </Card>
</CardGroup>

***

## What is an agent?

An agent is a custom version of Copilot with a specific job. You give it a name, a set of instructions, and optionally a knowledge source — and it behaves consistently every time you or your team uses it, without you needing to re-explain the context.

Think of it as building a specialist assistant that already knows your processes, your tone, and your reference material.

The difference between a regular Copilot conversation and an agent:

| Regular Copilot                | Agent                        |
| ------------------------------ | ---------------------------- |
| You explain context every time | Instructions are baked in    |
| One-off tasks                  | Recurring, consistent tasks  |
| Personal use                   | Shareable with your team     |
| No persistent knowledge        | Can reference your documents |

***

## What agents are good for

Not everything needs an agent. Agents work best for tasks that are:

* **Repetitive** — the same type of task you do multiple times per week
* **Context-heavy** — the task requires background knowledge your team shouldn't have to re-explain
* **Multi-person** — the task is done by multiple people who should get consistent results

<AccordionGroup>
  <Accordion title="Examples from real teams" icon="briefcase">
    <GlossaryRow title="Internal policy checker" description="An agent that knows your HR policies, compliance guidelines, or procurement rules. Team members ask it questions in plain language and get accurate, consistent answers — without the policy owner needing to field repetitive queries." />

    <GlossaryRow title="Meeting prep assistant" description="An agent loaded with your agenda templates, past meeting notes, and team context. Before each meeting, it generates a briefing document and a suggested agenda in your preferred format." />

    <GlossaryRow title="Onboarding guide" description="An agent that answers new starter questions based on your onboarding documentation. Available 24/7, consistent in tone, and never forgets to mention the things that always get missed in face-to-face onboarding." />
  </Accordion>
</AccordionGroup>

<Accordion title="Test your understanding">
  <Quiz
    question="Which scenario is best suited to an agent?"
    options={[
  "A one-off email you need to write this afternoon",
  "A weekly report that 5 team members produce in different formats",
  "A brainstorming session for a new project",
  "A quick grammar check on a document"
]}
    correctIndex={1}
    explanation="Agents shine when a task is repetitive, involves consistent context, and is completed by multiple people. A weekly report with inconsistent formats across a team is the ideal agent use case — the agent can enforce the format and apply shared knowledge automatically."
  />
</Accordion>

***

## Where to find Agent Builder

Agent Builder is now called **Copilot Studio Lite** and is built into Microsoft 365 Copilot. You do not need a separate Copilot Studio licence.

<Columns cols={2}>
  <Card title="The Agents panel">
    <img src="https://mintcdn.com/pathfindr/I3XbhzOlK6BeuXVO/images/allAgentsTab.webp?fit=max&auto=format&n=I3XbhzOlK6BeuXVO&q=85&s=2babd9fb85ce3b1e9210f0758fc8817e" alt="All Agents tab in Microsoft 365 Copilot" title="All Agents tab" style={{ width:"100%" }} width="1920" height="853" data-path="images/allAgentsTab.webp" />

    In Microsoft 365 Copilot (web or desktop), click the **Agents** icon in the right panel. This opens the Agents tab, where you can browse available agents and create new ones.

    Click **Create agent** to open Copilot Studio Lite.
  </Card>

  <Card title="The builder interface">
    <img src="https://mintcdn.com/pathfindr/I3XbhzOlK6BeuXVO/images/agentModePanel.webp?fit=max&auto=format&n=I3XbhzOlK6BeuXVO&q=85&s=5deaffc68f2bc736129f8714c36597a5" alt="Agent Mode Panel in Copilot Studio Lite" title="Agent Mode Panel" style={{ width:"100%" }} width="1920" height="1080" data-path="images/agentModePanel.webp" />

    Inside the builder, you will see a **Configure** tab and a **Test** panel. The Configure tab is where you set up your agent's name, instructions, knowledge sources, and capabilities.
  </Card>
</Columns>

<Tip>
  Agent Builder was previously called "Agent Builder" in Microsoft 365 Copilot. Microsoft officially renamed it to **Copilot Studio Lite** in early 2026. Both names refer to the same tool — the no-code agent builder included in your Microsoft 365 Copilot licence.
</Tip>

***

## Planning your agent

Before you open the builder, spend five minutes answering these three questions. Agents built without clear planning are harder to test and rarely work well on the first try.

<Steps>
  <Step title="What does the agent do?">
    Write one sentence describing the task. Example: "This agent helps people managers write consistent performance review summaries using our company template."

    If you cannot write it in one sentence, the scope is too broad. Narrow it down.
  </Step>

  <Step title="What does it need to know?">
    List the documents, policies, or data sources your agent should draw from. These become your knowledge sources. Examples: an SOP document, a policy PDF, a SharePoint folder, or a past project brief.
  </Step>

  <Step title="Who will use it?">
    If it is just for you, save it privately. If your whole team will use it, you will need to share it — plan for this before you build so you set up permissions correctly.
  </Step>
</Steps>

<Accordion title="Test your understanding">
  <Quiz
    question="What is the most important thing to define before building an agent?"
    options={[
  "The agent's profile picture and name",
  "A one-sentence description of the task the agent will do",
  "The list of team members who will use it",
  "Whether to use SharePoint or OneDrive for the knowledge source"
]}
    correctIndex={1}
    explanation="Clear scope is the foundation of a useful agent. If you cannot describe what the agent does in one sentence, it is trying to do too much. Define the task first — everything else follows from it."
  />
</Accordion>

***

## Building your agent

<Columns cols={2}>
  <Card title="Step 1 — Name and instructions">
    <img src="https://mintcdn.com/pathfindr/0Og7YOK8gX91P7mj/images/microsoftAgents.webp?fit=max&auto=format&n=0Og7YOK8gX91P7mj&q=85&s=c342fa3e25158b5234b5933e4a0ed54c" alt="Microsoft 365 Copilot agent setup" title="Agent setup" style={{ width:"100%" }} width="1920" height="1080" data-path="images/microsoftAgents.webp" />

    Give your agent a clear, specific name. In the **Instructions** field, describe:

    * What the agent does
    * What tone or format to use
    * What it should and should not do

    *Example instruction:*

    ```text theme={null}
    You are a performance review assistant for managers at [Company]. 
    When asked, help the user write a performance summary using the 
    standard STAR format. Always keep summaries under 300 words. 
    Do not make assumptions about the employee's performance — only 
    work from what the user tells you.
    ```
  </Card>

  <Card title="Step 2 — Add knowledge">
    <img src="https://mintcdn.com/pathfindr/I3XbhzOlK6BeuXVO/images/appSkillsPanel.webp?fit=max&auto=format&n=I3XbhzOlK6BeuXVO&q=85&s=20b03055e887c3f557ea76f3dd3e0c4b" alt="App Skills Panel showing knowledge sources" title="Knowledge sources" style={{ width:"100%" }} width="1920" height="1080" data-path="images/appSkillsPanel.webp" />

    Click **Add knowledge** and connect:

    * A **SharePoint site** — for team documents and wikis
    * A **OneDrive folder** — for personal or departmental files
    * An **uploaded document** — for a specific PDF, Word doc, or policy

    <Note>
      **New in 2026:** Agents can now accept **file uploads from users mid-conversation** — not just at build time. This means your agent can analyse a document a user drops in during the chat, without you having to pre-load everything.
    </Note>
  </Card>
</Columns>

***

## Testing and refining

Before you share your agent, test it properly. A quick test protects your reputation and your team's time.

<AccordionGroup>
  <Accordion title="How to test well" icon="flask">
    <Steps>
      <Step title="Use real tasks">
        Send the agent a task you would actually give it in real life. Do not test with "Hi" or simple greetings — test with the kind of complex request it was built to handle.
      </Step>

      <Step title="Check the format">
        Does the response use the right structure? Is it the right length? Does it match the tone in your instructions?
      </Step>

      <Step title="Test the edges">
        Try asking the agent something it should not do. Does it stay within scope, or does it go off-topic? If it drifts, tighten the instructions.
      </Step>

      <Step title="Ask a colleague">
        Before sharing broadly, ask one person who was not involved in building it to test it. Fresh eyes find gaps faster than the builder does.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Common instruction fixes" icon="wrench">
    <GlossaryRow title="Responses are too long" description="Add a specific word or sentence limit to your instructions. 'Keep all responses under 250 words' is more effective than 'Be concise'." />

    <GlossaryRow title="The agent goes off-topic" description="Add a constraint: 'Only answer questions about [topic]. If asked about anything else, say that this is outside your scope and suggest the user contact [team/resource].'" />

    <GlossaryRow title="The tone is wrong" description="Add a tone instruction with an example. 'Use a professional but approachable tone, similar to this example: [paste example].'" />

    <GlossaryRow title="It misses key information" description="Check your knowledge source. If the agent is not finding relevant content, confirm the document is connected correctly and that the content is in a supported format (Word, PDF, or SharePoint page)." />
  </Accordion>
</AccordionGroup>

***

## Sharing your agent

<Columns cols={2}>
  <Card title="Share with your team">
    <img src="https://mintcdn.com/pathfindr/vxED2dxssEHZg3yn/images/shareAgentOption.webp?fit=max&auto=format&n=vxED2dxssEHZg3yn&q=85&s=2e5981ac0a457a7e78ef0c9041131588" alt="Share agent option in Copilot Studio Lite" title="Share agent" style={{ width:"100%" }} width="1920" height="706" data-path="images/shareAgentOption.webp" />

    Click **Share** in the builder and enter the names or email addresses of colleagues you want to give access to. They will see the agent in their Agents panel inside Microsoft 365 Copilot.
  </Card>

  <Card title="Publish to new channels">
    <img src="https://mintcdn.com/pathfindr/I3XbhzOlK6BeuXVO/images/channelsToDeployAgents.webp?fit=max&auto=format&n=I3XbhzOlK6BeuXVO&q=85&s=ecc9fdf9158d8419484cb09cc741f40f" alt="Channels to deploy agents" title="Deploy channels" style={{ width:"100%" }} width="1920" height="1080" data-path="images/channelsToDeployAgents.webp" />

    **New in 2026:** Agents built in Copilot Studio Lite can now be published to **WhatsApp** and **SharePoint pages** — not just Microsoft Teams. This means your agent can be embedded in a SharePoint intranet page that your whole organisation visits.
  </Card>
</Columns>

<Tip>
  If you want more advanced control — lifecycle management, approval workflows, or publishing to more channels — you can **upgrade your agent to full Copilot Studio with one click**. Look for the "Upgrade" option in the builder. Your agent and its settings carry over automatically.
</Tip>

***

## Quick checkpoint

You are done with this module when you can do the following:

<CardGroup cols={4}>
  <Card title="Scope your agent" icon="circle-check">
    You can describe your agent in one clear sentence
  </Card>

  <Card title="Write instructions" icon="circle-check">
    You have written instructions that constrain the agent's scope and tone
  </Card>

  <Card title="Connect knowledge" icon="circle-check">
    You have connected at least one knowledge source
  </Card>

  <Card title="Share it" icon="circle-check">
    You have shared the agent with at least one colleague
  </Card>
</CardGroup>

<div className="mt-8" />

<Card title="Ready to build?" icon="chess-knight-piece" href="/participant/startBuildingWithTool/copilot-challenge">
  Complete the challenge to build and test your first Copilot agent
</Card>
