Moving from Experiments to Workflows
AI governance is a clear record of who decided, on what evidence, and who answers for it.
You already do this for people. Nobody lets a new temp send a letter to a student unchecked: someone briefs them, someone reads the draft, someone signs it, and a name goes on the file. An AI agent is a very fast temp with no memory of your department. Today you build three, chain them into a loop, and decide where the person sits.
Person, prompt, output. Useful, but variable: different inputs, checks and judgement give different results, and nothing is written down.
People, information, AI and tools, a human decision, a service outcome. Repeatable, accountable and measurable, because the steps and the checks are written down.
Your data is safe here. Sign in with your work account and look for the green shield. Copilot with Enterprise Data Protection is approved for confidential and highly confidential (C1/C2) work data and nothing is used to train models. Today's job description and CV are invented, so paste freely.
The reference frame is the UK Government's AI Risk Management Toolkit ↗. It asks five things of any AI in a service: what could go wrong, how likely and how bad, what you will do about it, whose name is on it, and how you will keep checking. The exercises answer all five with your own hands.
Part 1. Is this the right tool for this data?
Before anything is built: is this the right tool for this data? Ask five questions of the job description, then the CV, then a task of your own, then set your risk appetite. About seven minutes.
Step 1: Open Copilot and look for the green shield at the top of the chat. It means your work data stays protected and is not used for training. Answer the five questions for the job description, then again for the CV. Say the answers out loud at the table.
The job description is public. The CV is personal data about a named person. Ask yourself: who approved M365 Copilot for it, and does that approval cover health and religion data in a hiring decision? A public chatbot is not.
Writing interview questions is inside what the tool can do. Ranking the candidate is not the task, and the CV will tempt it.
Inside the university tenant, not used to train models. Check where the CV came from and where the bank will live.
The CV names health, family, religion and immigration status. Ask yourself: does the task need the CV at all? The questions are for any candidate. If it stays in, the agents need rules and a person needs to read what comes out.
Yes. The questions go to a panel and are asked of real people. Where the review sits is Exercises 06 and 07.
Step 2: Now the same five for one task from your own work. If any answer is no or do not know, write the task down for Exercise 09. It does not get built today.
Step 3: Set the risk appetite before anything is built: how much you are willing to let go wrong. The toolkit has five levels, from Averse (none at all) through Minimal, Cautious and Open to Eager (a lot, for an exceptional benefit). Pick one for fairness in this hiring task and write it down. Exercise 07 turns it into things you can count.
What to notice: the check takes two minutes, and it turns on the data and where it goes, not on how clever the tool is. Ask yourself: if this went wrong, who would be harmed, and how badly? That sets how much checking it needs. This is proportionate governance: heavy checks where the harm is serious, light ones where it is not, so low-risk work is not slowed down. Ask yourself too: who is missing from this table? The toolkit wants a mixed team: someone leading on governance, a senior leader who sets the appetite, data, security and legal people, someone who knows the work, and the people who will use it.
Click to open Copilot
m365.cloud.microsoft/chat ↗
One task all day. Build a bank of interview questions for one role. Three small agents do the work: a Taxonomy Mapper that turns the job into a skills matrix, a Question Generator that drafts one question at a time in a fixed shape, and a Question Evaluator that checks each draft against six fixed tests (a rubric). FAIL sends a critique back to the Generator, up to three times. PASS puts the question in the AI question pool. Then a person reviews the pool: pass moves a question into the final interview bank, fail drops it permanently. Nobody edits the matrix and the AI hears nothing about a dropped question. You are the go-between: you carry each draft and critique from one agent to the next, you count the attempts, and you are the human review. Remember the dropped pile for Exercise 08.
Four questions run through the day, the same four you would ask of any tool handling your data: is this the right tool for this data, what could go wrong, who is accountable, and how will you provide assurance. Nine exercises, about ninety-five minutes of doing, after the tool check above.
The exercises follow the workflow above. Each one says which of its four steps it builds or tests.
If New agent is missing on your account, paste the instruction block as the first message of a fresh chat, then the input as the second. Keep one chat open per agent. Where a step says @Question Generator or @Question Evaluator, paste into that agent's chat instead.
The role: job description (standard path)
The candidate: a fictional CV (enriched path). Invented, and it carries the traps.
Workflow: plan before you build
A warm-up for the day’s two key ideas. A task becomes a workflow once you name its trigger, steps, tools and human check. And not every step is safe to hand over. Plan only: nothing is built. About five minutes.
Step 1: Open a New chat in Copilot and paste the prompt below. Replace [REPETITIVE TASK] with a chore from your own work, such as booking rooms for a monthly meeting or chasing late timesheets.
Step 2: Read the map. For each step marked safe to automate, ask yourself: if this went wrong, who would notice, and how badly? Move any step you are unsure about into the human check.
What to notice: “Safe to fully automate” is Copilot’s suggestion, not a decision: you are the one who answers for it. Compare your map with today’s workflow above. A person sets the rules at the start and checks the result at the end. The rest of the day builds that shape.
Part 2. Build and chain What could go wrong is easier to see once it has.
Workflow Step 2: AI agents map and write
Build your first agent: it turns a job description into a skills matrix, the list of what every question will test. Run it once. In today's design the matrix goes straight to the next agent; you read it, you do not edit it. About eight minutes.
Step 1: In Copilot choose Agents, then New agent, then Skip to configure. Type the name Taxonomy Mapper. Paste the description and the instructions below. Leave Knowledge empty. Under Capabilities, leave both switches off. Create.
Description
Instructions
Step 2: Open Taxonomy Mapper from My agents, paste the job description, send. Read the matrix, then copy it into Word or Notepad and keep that file open; every later exercise uses it as it stands. Note one row you would have removed and one you would have added. In today's design nobody gets to. Hold that thought for Exercise 06.
What to notice: the matrix decides what every question will be about, and in today's design no person touches it. Ask yourself: which step shapes everything after it, and does anyone check it?
Workflow Step 2: AI agents map and write
Build your second agent: it writes one interview question at a time from a row of your matrix, always in the same seven-line shape. Run the same row twice and compare. About eight minutes.
Step 1: Build it the same way as the first: Agents, New agent, Skip to configure. Name it Question Generator. Paste the description and instructions below. No knowledge, no capabilities. Create.
Description
Instructions
Step 2: Open Question Generator in a new chat. Copy the first row of the matrix with the header line above it, paste both, and send. Then New chat, same row again. Put the two questions side by side and count the differences.
What to notice: the Generator gave two different questions for the same row. Neither is wrong. Nobody has yet said what a good one looks like. And a model update could change the answers again without you changing anything. Ask yourself: if the same request gives different answers, what would you need to write down to know which one is good?
Workflow Step 3: AI agent checks and improves
Build the agent whose only job is to check a question against six lines and say PASS or FAIL with a critique. Then test it on three questions where you already know the right answer, and count how often it gets them wrong. That is a unit test. About twelve minutes.
Step 1: Agents, New agent, Skip to configure. Name it Question Evaluator. Paste the description and instructions below. No knowledge, no capabilities. Create.
Description
Instructions
Step 2: Unit test it. Three questions follow, each with a known answer. For each: New chat with the Evaluator, paste the question, send. Write the verdict you got next to the verdict you expected.
Test 1: a good question. Expected: PASS
Test 2: a closed, leading question. Expected: FAIL, line 2
Test 3: a question built on the CV. Expected: FAIL, line 5
| Test | Expected | Got | Hit or miss |
|---|---|---|---|
| 1 good question | PASS | ||
| 2 closed and leading | FAIL, line 2 | ||
| 3 built on the CV | FAIL, line 5 |
What to notice: three tests with known answers show whether the Evaluator catches what you already know is there, which live runs cannot. Three is a start, not proof: run them again and a verdict may change. If Test 3 passed, your fairness line is not doing its job, and only a person reading will catch that. Keep the three tests; they are the start of a test set someone owns. Ask yourself: who wrote these tests, and did the same person build the agent? The toolkit suggests testing by people independent of the builders, because builders share its blind spots and are slow to find fault in their own work.
Workflow Steps 2 and 3: the agents run as a loop
Generator to Evaluator and back, up to three attempts, on one row of your matrix. You are the conveyor belt: copy and paste, do not read. Then read it all, and ask who would answer for a question nobody read. About twelve minutes.
Step 1: Pick one row from your saved matrix, ideally a practised or expert one. Go back to plain Copilot, not an agent, and choose New chat. Type @Question Generator, paste the row, send. Do not read the reply.
Step 2: In the same chat type @Question Evaluator, paste the row and the Generator's seven lines under it, send. If the verdict is PASS, it is in the AI question pool: stop. If FAIL, type @Question Generator, paste the row, the last seven lines and the numbered critique, with Critique of attempt n: in front, using the attempt number. Send the new seven lines to @Question Evaluator with the row, as before. Stop at PASS, or after the third FAIL, when the row is dropped. Still no reading.
Step 3: Now read the whole chat. Fill the table.
| Attempt | Verdict | Lines failed | What changed in the question |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 |
Loops can fix the sentence the critique named and nothing else. Compare the first and last attempt: better question, or same question tidied?
Read line 5 of each verdict against the question. A question fair on its face can still assume a background.
Two agents agreed and nobody read a word. If that question were asked in an interview tomorrow, whose name is on it?
What to notice: the loop is fast and it feels rigorous, because there is a critique and a retry. But the Evaluator can only check what its six lines describe, and the Generator can only fix what the critique names. Whatever neither of them was told to look for gets through with a PASS stamp on it. That is diffused responsibility: no one answers for it. Ask yourself: is the checker independent of what it checks? Here both agents may run on the same model, with the same blind spots.
Part 3. What could go wrong? Where the person sits, and how you find out.
Workflow Step 4: the human checks and approves
On screen, before you run the whole workflow. Start with people doing everything, hand stages to AI one at a time, and watch the risk picture change. Predict how today's design will score, then run it for real in Exercise 07. About five minutes.
Step 1: The page opens with a human at every stage: how hiring panels write questions today. Read the three bars and the five rows. Green is low risk on this page's scoring. People doing everything is not risk-free: panels have biases of their own. Note the Speed number.
Step 2: Click the AI token, then click Generate. Watch what moves. Then hand over Evaluate, then Skill matrix. Stop when the verdict turns red and say which row did it.
Step 3: Load Today's design: AI maps, generates and evaluates, a person reviews the pool. Then Matrix reviewed first, the design where the person also reads the matrix before any question exists. Write down Errors caught and any row that is not green for each.
Step 4: Load Conveyor belt: that was Exercise 05 up to the pool. Read "Whose name is on it?". Then write one line: in today's design, what do you expect to reach the pool that a person at the matrix would have stopped?
What to notice: speed goes up as people leave the chain, and the risk rows change colour one at a time. Ask yourself: is the person where the risk enters, or only where it comes out, could they say no, and do they know enough to spot what is wrong? Today's design has nobody at the matrix. The page's numbers are a teaching model, argued over in five minutes; the live run next is the measurement.
Also there: Where does the human go? asks the same question across five real tasks, from no AI to no human, as a table sort with real cases in the reveal. Good for a mixed table with time to argue.
Workflow All four steps, tested end to end
Agree what good looks like, then run the whole workflow on both paths with you as the human review: pass into the bank, or fail and drop, with no feedback to the AI. Count what reaches the pool, what you drop, and how long it takes. About twenty-five minutes.
Step 1: Before the first run, write the acceptance criteria down. Not "good questions": things you can count. This is your risk appetite from the tool check turned into limits you can check; the toolkit calls them defined acceptable limits. Copy the list and change any line your table disagrees with.
Step 2: Copy the three lists below into your Word or Notepad file, under the matrix. Note the time now, and again when each path ends.
Standard path: the job description
Take four rows from the matrix from Exercise 02. For each row, run the loop exactly as in Exercise 05, in a new chat. A PASS goes into the pool. When all four are done, do human review: read each pooled question, then pass it into the bank with your name, or fail it and drop it with a reason. Do not tell the agents. A row that failed three times is dropped without reaching the pool.
Enriched path: the job description and the CV
Open Taxonomy Mapper from My agents in a New chat. Paste the job description, then the CV below it, in one message, and send. Do not edit the matrix; in today's design it goes straight to the Generator. Take four rows through the loop, then human review on the pool. Only afterwards read the matrix slowly, especially the evidence and gap columns and the last line, and note what came in.
Score the run
Seven traps sit in the CV: age, health, caring, nationality, religion, the career break, the pasted instruction. A trap "reached the pool" if any pooled question or matrix row was built on it. Cells are editable.
| Path | Minutes | Attempts, total | Into the bank | Dropped by you | Traps in the pool (of 7) | Criteria met (of 6) |
|---|---|---|---|---|---|---|
| Standard | n/a | |||||
| Enriched |
What to notice: Ask yourself: where did the risk enter in your run, and was a person standing there? The CV's traps can enter at the matrix, before any question is written, where today's design has no person. The model can bring its own assumptions too, CV or no CV. A Generator with a fairness rule can still be handed a row that already carries the bias. And look at your dropped list: every entry is something the Evaluator passed into the pool. The agents will never hear about them.
Part 4. Who is accountable, and how will you provide assurance? Trust, but verify.
Workflow All four steps: what went wrong, and one change
Score the run against questions a hiring manager wrote, using a plain Copilot prompt with a five-line rubric built in. Read what the dropped list says that the bank does not. Change one thing, rerun one row, log both scores. About fifteen minutes.
Step 1: The standard: three questions a hiring manager wrote for this role, one per tier. Read them first. They are what good looks like for this panel.
Step 2: New chat with plain Copilot, no agent. Paste the prompt below. Replace each [paste] line with the standard, your final bank and your dropped list, in that order. Delete the quote marks at the start and end. Send. Read the score, the "where it went wrong" lines and what the dropped list told it.
Step 3: Make one change only. Add a rule to the Taxonomy Mapper or the Generator, sharpen one line in the Evaluator, or change the design so a person reads the matrix before the Generator sees it. To change an agent, open it from My agents and choose Edit. Put a first line in any changed instructions that says v2, today's date. Rerun one row from the enriched path through the loop and human review, and run the post-mortem prompt again on the bank as it now stands.
Step 4: Record both scores and the change in the issues log. It is the first entry in the record that Exercise 09 turns into a register.
What to notice: in today's design human review drops bad questions and tells the AI nothing. So the agents cannot improve, and the same kind of bad question comes back next week. The dropped list is the only feedback loop the system has, and it only works when a person reads it and changes the instructions or the design. Three cautions for the log too: a judge like this tends to be lenient, and may favour text that reads like its own, so use it to compare versions, not to sign one off; it only knows what the standard contains; and a score without the evidence lines is the rubber stamp again, one level up.
Workflow All four steps: the written record
Hunt for risks with the checklist, put the top three in the register with a name on each, answer the four accountability questions, and write down how you will keep checking. Then let Copilot draft the register and check its work. About fifteen minutes.
Step 1: Risk hunt. Go through the toolkit's nine categories below with your notes from Exercises 05, 07 and 08. Tick every one that showed up, even nearly.
A question that treats some candidates worse, or leans on something that stands in for age, health or background.
Equality law, data protection for the CV's personal detail, recruitment policy.
Does the candidate know AI helped? Can you say why a question is in the bank, and why one was dropped?
Is there a name on each banked question, and on the matrix?
Could a candidate challenge a question, and who would put it right?
Invented systems, two runs differ, loops that tidy rather than fix.
The CV told the agents what to do. The toolkit calls this prompt injection.
A bad hire, a tribunal, rework.
Could a question distress a candidate, or wear down a panel that trusts the bank? Is the compute worth eight questions?
Reputation is not on the list: the toolkit treats it as a result of the others. Score it under how bad in Step 2.
Step 2: Scroll to the Risk register below. Two rows are done. Add your top three from the hunt: what went wrong or nearly did, how likely on 1 to 5 (1 rare, under 1 in 20; 3 possible; 5 almost certain, over 4 in 5), how bad on 1 to 5 (1 negligible, 3 moderate, 5 catastrophic), which of the four treatments you choose (stop it, reduce it, hand it on, live with it), what you would do about it, and who owns that.
Step 3: Who is accountable? Four questions, four real roles, no "the team". Copy the block and fill it in.
Step 4: How will you keep checking? Governance is not a one-off. Copy the assurance plan and fill in the four measures, the log owner and the retest trigger.
Step 5: The stretch. In a New chat with plain Copilot, no agent, paste the prompt below with your notes and issues log under it. Read the five rows it drafts.
Step 6: Check the draft as the Evaluator would: is every row traceable to something you actually saw, or did Copilot invent a risk? Cross out anything you did not observe. Put a real role, not "the team", in every owner cell.
What to notice: the four questions from the start of the day are now one page: the tool check, the risks, the names, and the plan to keep checking. None of it is paperwork for its own sake. It is what you learned in the last two hours, written so the next person does not learn it the hard way. Copilot can draft it in a minute. You still own it.
The AI Risk Management Toolkit ↗ comes with a spreadsheet, the AI Risk Management Framework workbook ↗. Its language maps onto what you did today like this.
| The toolkit says | Plain words | Where you did it today |
|---|---|---|
| Risk identification | What could go wrong? | The CV route in 07, the risk hunt in 09 |
| Risk appetite, from Averse to Eager | How much are we willing to let go wrong? | Tool check Step 3, then the criteria in 07. Where the human review sits is a treatment chosen to stay inside it |
| AI risk management team | Who needs to be in the room? | Who is missing from your table, in the tool check |
| Likelihood times impact, 1 to 5 each | How likely, how bad? | The register rows |
| Treatment: avoid, limit, transfer, accept | Stop it, reduce it, hand it on, live with it | The Evaluator, the critique loop and the human review all reduce it. Leaving the CV out would stop it |
| Accountable owner | Whose name is on it? | The four questions in 09, and Exercise 05 |
| Monitoring: there is no final version | Keep checking after it goes live | The post-mortem in 08, the assurance plan in 09 |
| Nine risk categories | The places to look | The category column below |
Starter register: two rows done, three for you
Score is likelihood times impact. Cells are editable.
| Category | What could go wrong | Likely | Bad | Score | What we do about it | Owner |
|---|---|---|---|---|---|---|
| Fairness | A question built on the candidate's caring responsibilities reaches the panel because the Evaluator passed it into the pool and human review skimmed | 3 | 5 | 15 | Reduce it: fairness line in the Evaluator, a named person reads every pooled question, and consider a person at the matrix | Recruiting manager |
| Security | A line in a CV tells the agents to rate the candidate as exceptional and the Mapper's gap column goes soft, unread | 3 | 4 | 12 | Reduce it: the Mapper reports instructions; today nobody reads the matrix, so the report must reach the human review | Information security lead |
The nine categories, so you know where to look: financial; legal and regulatory compliance; transparency and explainability; fairness; accountability and governance; contestability and redress; technical robustness; security; environment and people.
Most prompts are tried two or three times, then put to use because the answer “looked fine”. Nobody can then say how well the prompt works, or if it still works after Copilot is updated.
The governance view: AI governance is a clear record of who decided, on what evidence, and who answers for it. For a prompt, the evidence is a written list of what “good” means, a few test examples, and a score anyone can rerun and compare.
Where this comes from: people who build AI tools test their prompts all the time, using code and many examples. You do not need code to use the idea. Here is a simple version for Copilot. If you did the exercises, you have met each step already: the Evaluator’s six lines and its three tests in 04, and one change then a rerun in 08.
Five or six lines in a Word or Notepad file, each one you can answer yes or no, such as “asks one question only” or “never mentions age”. “A good answer” is not a line.
Save five example requests in the same file: three ordinary, one borderline, and one that tries to trick it. Each time you change the prompt, try each one in a New chat and check the reply against your list.
If a check keeps failing, add it to the prompt in plain words (for an agent: My agents, Edit). Run the five again, tick the checklist, and note the date, what you changed and how many passed.
Want the longer version? The prompt evaluation module ↗ has a ten-minute read for non-coders, plus the code.
Every workflow that goes live gets a one-page card. Copy the template into Word and fill it in for the first real task you want to try. If you cannot fill a line, the workflow is not ready.
Eight questions to ask of any AI workflow
AI changes faster than any rulebook. You will not have every answer. These are the questions worth asking every time, drawn from the exercises.
Designing a real one? Start with Place the human: begin with people everywhere, hand over one stage at a time, and read the rows before you build anything. Then put it on the board at Where does the human go? and flip its stakes.
Pick one real task. Save examples of the input and of a good output. Map the steps, the data and where people decide. Classify the data.
Agree what good looks like first. Test normal, hard and nasty cases against a baseline. Name the owner and the data owner. Fill the register.
Train the whole task, not just the clicks. Measure outcomes and rework, not usage. Retest after change. Keep a non-AI route. Improve, restrict or retire.
When you outgrow Agent Builder
Built inside Copilot Chat in minutes, no extra licence. Knowledge from M365 files, SharePoint and websites if you want it. Few actions, no approval steps: you are the handoff between agents. Right for one person or a small team, and an agent can be moved to Copilot Studio later.
Its own portal and licence, built by makers and developers. Connectors, workflows and custom actions, built-in human approval steps, enterprise governance, monitoring and analytics, and publishing to Teams and other channels. Right for a department. It automates the gates you placed by hand today; it does not choose where they go.
Two habits that keep it honest: if a task is beyond what the AI can reliably do, choosing not to use it is not a failure. And measure with timed comparisons on real work including checking and rework, because asking people whether AI helped gets a yes almost regardless of the truth.
We're here to help: