Knowledge Grounding and Conversation Design

Put maintained facts in an authoritative source and predictable exchanges in topics. Then test each boundary without asking one component to do the other's job.


What you'll learn

  • Assign each requirement to knowledge, instructions, or a topic
  • Write instructions that pin source authority and disclose conflicts
  • Grade grounded answers on five criteria and diagnose the failing boundary
  • Design a branching topic whose confirmations only show collected values
On this page

Two requests arrive a minute apart. "What is our home-office reimbursement limit?" calls for one fact from a policy. "I need to renew my work laptop" calls for a conversation that gathers a known set of details in the right order.

Copilot Studio handles those jobs with different components. Knowledge supports open questions. A topic runs a conversation whose path you can define in advance. You'll build both, then decide where each new requirement belongs so facts, behavior rules, and conversation logic don't drift across the agent.

Is it knowledge, instructions, or a topic?

Most grounding errors start with a sound requirement stored in the wrong place. Copilot Studio has three components for these requirements, and each owns a different kind of decision.

  • Knowledge contains maintained facts such as policies, limits, dates, and procedures. The agent retrieves them when it answers open questions.
  • Instructions define behavior. They say which sources carry authority, whether the agent may guess, how it handles a conflict, and what it says when no answer is available.
  • Topics define conversation paths you can plan in advance, including their questions and branches.

The test is quick:

Requirement Belongs in
The current reimbursement limit and receipt deadline Knowledge
"Do not answer when the authoritative source is silent" Instructions
Collect the request type, then branch to ask for an asset tag A topic

A fact that must stay current lives in knowledge, in exactly one place, because two copies drift apart. A rule about behavior is an instruction. A predictable sequence is a topic. Get the placement right and each piece has one owner you can update. Get it wrong and you'll chase a stale number through three files.

Owners establish source authority

When two documents disagree, an agent needs a rule for which one wins, and the wrong rule is "the newest." A later effective date tells you when something applies. Authority is a different question. The newer file might be a draft, a future policy, or an obsolete copy someone forgot to delete. Authority comes from ownership: the content owner designates one canonical document per subject, and everything else is labeled or removed.

Write instructions that name authority explicitly: which document is authoritative for which subject, and why a later date alone doesn't grant authority. Then handle the case that trips up most agents: two authoritative sources that conflict with no precedence rule. The safe behavior is disclosure. The agent should report both values and their sources and decline to pick. Choosing one and hiding the conflict is the wrong move. A visible conflict is a problem someone can resolve. A hidden one becomes a wrong answer with a confident tone.

When sources disagree, disclose rather than decide

Give the agent a standing rule: if two authoritative sources conflict and no precedence is defined, report both values with their sources and stop. A disclosed conflict is a task for a human owner. A silently resolved one is a wrong answer waiting to be trusted.

Instructions that pin authority and disclose conflict· copilot-studio
Bad example

Answer employee questions using the latest HR documents you can find.

Good example

You are the Remote Work Policy assistant. Answer only from connected documents whose status is Authoritative and whose owner is HR Operations. Treat "Remote Work Policy" as authoritative for schedules and approvals, and "Home Office Reimbursement FAQ" as authoritative for eligible purchases. A later effective date does not make an otherwise unauthorized document authoritative. If two authoritative sources conflict without a precedence rule, report both values and their sources and do not choose one. If the authoritative sources do not contain the answer, say: "I couldn't find that in the connected authoritative HR documents." Do not fill gaps with general knowledge. Name the supporting document and section when you can.

Why this works: An agent that answers only from owner-approved sources, cites the document and section, discloses conflicts instead of guessing, and admits when the answer is not there.

Grounding needs a controlled test

A single passing question proves almost nothing. Test the boundary from four angles: a supported question the source answers, an unsupported question it doesn't, a paraphrase of the supported question, and, when you can set it up, a deliberate conflict between two authoritative sources. Paraphrases matter because equivalent questions should yield equivalent facts. If reordering the words changes the answer, the grounding is fragile.

Grade every run on five criteria: the facts are consistent across phrasings, the correct source and section are used, exact values are preserved, no unsupported detail is added, and uncertainty is disclosed rather than papered over. A response fails if any one criterion fails, even when the prose is excellent.

When something is wrong, resist the urge to blame the model. Diagnose the earliest failing boundary: is the fact missing or unclear in the source, does retrieval fail to reach it, does generation change it, do sources conflict, or does a user receive something they shouldn't? That last one, permission, is part of grounding quality. Practitioners regularly find agents answering worse than plain SharePoint search, and the fix is almost always at one specific boundary. Blaming "the agent" as a whole rarely helps.

The paraphrase-consistency probe· copilot-studio
Bad example

Ask the remote-work question a couple of different ways and check the answers.

Good example

Run these two questions in separate conversations and compare the answers: "Before I start a remote-work schedule, who must approve it and what notice is required?" and "I want to work from home next week. Whose approval do I need, and how far ahead should I ask?"

Why this works: Both answers preserve the same facts (manager approval and the exact notice period) and cite the same document and section. If the facts shift when only the wording does, your grounding is fragile.

The out-of-scope probe· copilot-studio
Bad example

Check whether home internet is reimbursed and give me the amount.

Good example

Does the policy reimburse home internet service?

Why this works: The agent says it could not find that in the authoritative HR documents and invents no amount. It treats the silence as "not addressed," never as "prohibited."

Topics collect data through branches

When a request follows a predictable shape, a topic beats a grounded answer: you decide the questions and branches in advance. Start with trigger phrases: examples of how someone might open the topic, said in whatever words feel natural to them. The best triggers pair the object with the outcome: "I need to replace my broken work laptop" clearly signals a replacement request, while "my laptop is broken" could just as easily mean troubleshooting.

That ambiguity is why near-miss testing matters. Before you trust a topic, feed it phrases that shouldn't start it, such as "how do I connect my laptop to a monitor?" or "where is my existing order?", and confirm it stays out of the way. A topic that grabs troubleshooting questions is worse than no topic.

Inside the topic, order the questions so every value a later step needs is collected first. Use a structured choice for anything that controls routing, like new-versus-replacement, because a branch needs predictable values to compare. Use free text for descriptive answers that don't steer the conversation. Capture each answer in a variable, and keep a small worksheet mapping your logical names to whatever the editor stores them as. Those stored names shift between builds, and the worksheet saves you from guessing later.

Branch state determines topic correctness

The defect that ships most often is a confirmation message that references a variable the current path never collected. Picture a topic that asks for an asset tag only on the replacement path, then ends every path with one shared confirmation that lists the asset tag. On the new-equipment path, that value doesn't exist, so the confirmation is broken by design.

The fix is to track branch state explicitly. Collect every variable both branches need before the condition that splits them, and collect branch-specific values only on the paths that use them. Then give each path its own confirmation that references only what that path has.

Path position type date details asset tag
Before the condition yes yes yes no
New-equipment confirmation yes yes yes no
Replacement confirmation yes yes yes yes

Read the table as an invariant: every value a confirmation displays must show "yes" in that row. If it doesn't, split the confirmation instead of padding a path with a question it doesn't need. This bookkeeping is tedious, but skip it and a topic ships a blank value in front of a user.

The empty-variable trap

A confirmation that references a variable the current path never collected will show a blank or an error. The user won't know why. Before you ship a branching topic, check every confirmation value against the branch-state table: each one must exist on its path.

Try it yourself

Catch the branch-state bug before it ships

Design a two-branch topic on paper and prove no confirmation references a variable its path never collected. Ten minutes, no tenant needed.

  1. 01

    Sketch a "Request work equipment" topic that collects request type (new or replacement), required date, and details on every path, and collects an asset tag only on the replacement path.

  2. 02

    Fill a branch-state table: for the new-equipment confirmation and the replacement confirmation, mark which of the four variables exist on that path.

    Hint: Everything collected before the branch exists on both paths. The asset tag doesn't.

  3. 03

    Write each confirmation message, inserting only the variables its own path collected.

  4. 04

    Confirm the new-equipment confirmation never references the asset tag. If it does, split into path-specific confirmations rather than collecting an asset tag on every path.

  5. 05

    Run two near-miss utterances in your head: "how do I connect my laptop to a monitor?" and "where is my existing order?" Confirm neither should start the topic.

A topic whose every confirmation value exists on its path, plus a near-miss check that keeps troubleshooting out of a request flow.

Key takeaways

  • Knowledge supplies facts, instructions govern behavior, topics script known paths: put each requirement in the component that owns it.
  • Authority comes from an owner-designated canonical source, not the latest date. Make the agent disclose unresolved conflicts.
  • Grade grounding on five criteria and diagnose the earliest failing boundary: source, retrieval, generation, authority, or permission.
  • Good trigger phrases pair the object with the outcome. Near-miss tests keep troubleshooting from hijacking a request topic.
  • Collect every shared variable before the branch condition, and never let a confirmation reference a variable its path never collected.

Check your understanding

  1. 1. Your agent must always state the current reimbursement limit, which changes each year. Where should that number live?

  2. 2. A newer document appears with a different limit, but it is marked "Draft" and owned by a different team than the authoritative policy. How should the agent treat it?

  3. 3. A topic collects request type, date, and details on every path but an asset tag only on the replacement path. Its single shared confirmation displays all four values. What is the smallest sound fix?

  4. 4. Which is the strongest trigger phrase for a "request work equipment" topic?

  5. 5. SharePoint search finds your policy document, but the agent does not use it. Which boundary should you inspect first?

Frequently asked questions

Terms used in this lesson

knowledge source
Maintained content (a SharePoint location, website, or uploaded file) that an agent retrieves facts from when answering.
canonical source
The one document a content owner has designated as authoritative for a subject, regardless of which copy is newest.
topic
A defined conversation path for a single user goal, built from questions, conditions, and messages in the classic experience.
trigger phrase
An example utterance that signals a topic's goal. It guides matching without being a script the user must repeat.
variable
A named value captured during a topic so a later step can evaluate it or display it back to the user.

Further reading