MunitasFeature tourAll walkthroughs

All walkthroughs / Health organisation

Health organisation · AI agents

Review what an AI agent produced, and show an auditor what was decided

An AI agent that drafts visit notes from consultation transcripts runs for real in a sandbox. The data engineer who starts a run cannot review what it produced, so a reviewer does: one run is corrected, the drafter is then fixed, and the next run is accepted as it was. The platform records each outcome with who decided, when and how soon after the run ended, and the data protection officer reads the counts for the agent, makes an evidence pack for an auditor and checks that no record was changed.

16Steps
4People
about 13Minutes to read
Who is involved
Devi
Data engineer in the Health organisation
Hartley
Data custodian for the Cardiology department
Imani
De-identification reviewer in the Health organisation
Nakamura
Data protection officer in the Health organisation

How to read this page

Words used on this page

Organisation
A company or hospital group that uses Munitas. Each organisation sees only its own data.
Department
A team inside an organisation that owns some of its data, such as Cardiology.
Custodian
A person who holds the data custodian role, which allows deciding who may read data. A custodian decides for the departments they are an approver for.
Agent
A program registered on Munitas, with a named owner, that Munitas runs on somebody’s behalf instead of a person reading data directly.
Run
One execution of an agent or a pipeline, started for a stated purpose.
Dataset
A named collection of records, such as a table of patient admissions.
Access level
How restricted a dataset is. Raw is the most restricted, and nobody may read it without permission. Published is the most open.
Container
An isolated environment, with no network access of its own, where Munitas runs an agent.
Fingerprint
A value worked out from the exact contents of a file. It changes if even one byte changes, so it shows that a file was not altered.
Data protection officer
A person who watches how an organisation handles personal data. The role decides nothing about who may read it.
De-identification reviewer
A role that allows a person to review data from which identifying details have been removed, and to decide whether it may be released.
Agent registry
A list of every agent in the organisation, open to everybody signed in. It shows the department that owns each agent, its risk level, its sponsor and what needs attention.
Evidence pack
A record, made on request, of everything the platform can back about one agent over a period: its risk level history, each version that ran and who approved it, its runs, how its output was reviewed, suspensions and incidents. It holds identifiers, counts, fingerprints and times, and no personal data.
Chain of records
The oversight records of one agent, each stored with a fingerprint of the one before it. A record changed or removed afterwards no longer matches, so the change shows.
Version
One sealed state of a dataset. Changing the contents means making a new version, never editing an old one.
Version of an agent
One uploaded and sealed copy of an agent’s code. Uploading again makes a new version, and the older ones stay.
Host
The name of a computer on the internet that a program contacts, such as reports.radiology.example. For an agent, a host is an external address that it asks to be allowed to call.
Deploy
To make one version of an agent the one that runs when somebody starts a run. Only one version of an agent is active at a time.
Synthetic
Made up, with no real person in it, such as sentences read aloud by volunteers from invented scripts.
Risk level
One of the levels an organisation writes for how carefully it holds its agents, from the least strict to the most strict. A level says whether a change that lets an agent do more needs a second approver, how often the agent must be confirmed as still needed, and whether an agent at that level may be deployed at all. The person who registers an agent proposes a level, and the AI risk owner confirms it.
Sponsor
The person who answers for an agent. The sponsor is an approver of the department that owns it, and has to confirm from time to time that the agent is still needed and held at the right level.
PART ONE

An agent does some work, and the work waits for somebody else to check it

An AI agent is a program that works on data on somebody's behalf. The agent on this page, consultation-note-drafter, belongs to the Cardiology department. It reads transcripts of consultations and drafts a visit note from each, for a clinician to read, correct and sign. The transcripts here are made up, and the agent's code runs in a sandbox, which means an isolated container with no network access of its own.

1
Devi
Devi asks the agent to draft notes from three transcripts, and the page says who will be asked first
Munitas console · An agent · /agents/<id>, the Runs section

A run is one execution of an agent, started for a stated purpose. Devi, a data engineer in the Health organisation, writes the purpose and chooses the dataset the agent will read: a dataset is a named collection of records, here the three transcripts. The dataset is at the access level called Raw, the most restricted level, where nobody may read without permission. So the page warns Devi before the button is pressed: the agent has to be granted access, and the request goes to an approver of the department that owns the data.

Screenshot: Devi asks the agent to draft notes from three transcripts, and the page says who will be asked first
The box holds the purpose, which ends first batch, and the list holds synthetic-consultation-transcripts v1. The button reads Request access and start. The orange notice says This agent cannot read that dataset on its own (RAW). Starting will ask Hartley, who looks after Cardiology, to grant it access, in your name.
2
Devi
The run is listed, and it waits for a custodian to decide
Munitas console · An agent · /agents/<id>, the Runs section

The run exists at once, but it has not started. A custodian is a person who may decide who reads a department's data. Until the custodian of Cardiology decides, the run does nothing, and it starts by itself afterwards. The tag sandboxed on each row says that the agent's code runs in the isolated container described above.

Screenshot: The run is listed, and it waits for a custodian to decide
The new row carries the orange label waiting for data access and the purpose ending first batch. Under it the page says Waiting for a custodian to grant this agent access to the dataset. It starts on its own once they do.
3
Hartley
Hartley, the custodian of Cardiology, sees the request and grants it for one purpose and four hours
Munitas console · Home · /

Hartley is a data custodian for the Cardiology department. The request names the agent's own runtime account, not Devi, because the agent, not Devi, is what reads the data. It also gives the purpose and says what granting does: it covers that purpose only and ends by itself. Hartley presses Grant access. A grant covers one run, so the next run will ask again.

Screenshot: Hartley, the custodian of Cardiology, sees the request and grants it for one purpose and four hours
Under Waiting for your decision the card says Devi asked for health-consultation-note-drafter-runtime to read synthetic-consultation-transcripts v1 with the tag Raw. Below are the buttons Grant access and Refuse, and the sentence Granting gives health-consultation-note-drafter-runtime 4 hours, for this purpose only, and it ends by itself.
4
Devi
The run finishes with three drafts, and Devi is told that somebody else has to review them
Munitas console · An agent · /agents/<id>, the Runs section

The agent read the three transcripts and wrote a draft note for each. Every line of a draft is a line of the transcript, with its number, so that a reader can check it. The drafts are for a clinician, and the platform adds a rule of its own: what a run produced cannot be reviewed by the person who started it. Devi sees the drafts and no way to review them.

Screenshot: The run finishes with three drafts, and Devi is told that somebody else has to review them
The third draft, visit-3.txt, ends with Not placed: 3 of 10 spoken lines fit no heading and are not in this draft. Below the drafts the page says Someone else has to review this.
PART TWO

A reviewer reads the drafts and corrects one

The platform asks only that the reviewer is not the person who started the run. In the Health organisation the de-identification reviewer, Imani, does the checking.

5
Imani
Imani opens the agent from the Agent registry
Munitas console · Agent registry · /agent-registry

Imani has no Agents menu item, because that page is for the people who build and run agents. The Agent registry lists every agent in the organisation for anybody signed in, and each name in it is a link to the agent's own page. The row says which department owns the agent, who registered it, the risk level it is held at, and that nothing needs attention.

Screenshot: Imani opens the agent from the Agent registry
The search box holds consultation-note-drafter, and Showing 1 of 8 follows it. The row shows Cardiology, Registered by Devi, Sponsor: Hartley and High. Active version reads Version 2 and Tools reads Uses no tools.
6
Imani
Imani reads the drafts, and the third one has two greetings under Plan
Munitas console · An agent · /agents/<id>, the Runs section

The agent sorts each line of a transcript under a heading by the words in it, so it can put a line in the wrong place. In the third draft it placed two lines from the start of the visit, the clinician's greeting and a question about the water tablet, under Plan. Imani can see them in the draft above and in the box below it, which holds the same text for editing. The page says that only a fingerprint of the final text is kept, never the text: a fingerprint is a value worked out from the exact contents, which changes if even one character does.

Screenshot: Imani reads the drafts, and the third one has two greetings under Plan
Under Plan: in the third draft are Welcome back. How have the last two weeks been? (line 2) and Are you taking the water tablet as prescribed? (line 4). The box is headed Review what it produced, and below it are Accept it as it is, Save my changes and Refuse it.
7
Imani
Imani removes the two lines, and the button for saving changes becomes available
Munitas console · An agent · /agents/<id>, the review box

Imani deletes the two lines in the box. The box is scrolled to the end of the third draft, where the heading Plan now holds only the line that belongs there. Once the text differs from the draft, the button for saving changes works and the button for accepting the draft is switched off, because the text is no longer the draft as it was.

Screenshot: Imani removes the two lines, and the button for saving changes becomes available
In the box, under the last Plan:, only I will reduce the dose, and schedule a blood test, and see you again in one month. (line 9) remains. The dark button reads Save my changes and the pale one reads Accept it as it is.
8
Imani
The review is recorded with who made it, when, and how soon after the run ended
Munitas console · An agent · /agents/<id>, the Runs section

The platform keeps the outcome, the person, the date and time, the fingerprint of the draft and the fingerprint of the corrected text. It does not keep the corrected text. It also keeps how many seconds passed between the end of the run and the review, so that an auditor can later tell a reviewer who read from one who clicked through. A draft can be reviewed once, and the form has gone.

Screenshot: The review is recorded with who made it, when, and how soon after the run ended
A line under the drafts reads Changed by the reviewer, then by Imani on, a date and time, and a number of seconds after the run ended. The notice “Review recorded.” appears at the foot of the screen.
PART THREE

The drafter is corrected, and a clean run is accepted

A reviewer has three possible outcomes: accept a draft as it was, change it, or refuse it with a reason. A correction is also a signal to the people who own the agent. Here they fix the cause, so that the next run does not repeat the mistake.

9
Devi
Devi uploads a corrected version of the drafter, and it needs no approval
Munitas console · An agent · /agents/<id>, the list of versions

The two greetings were filed under Plan because the drafter's rules look for words, and two of the words matched inside other lines: the letters of come back are inside Welcome back, and a question about a prescription matched the word prescribed. The corrected code looks for whole words and never files a question under Plan. The platform seals it as version 3, which is finished and closed for good, and compares it with version 2. Nothing that the platform watches has changed: not the tools, the model, the data it is given or the hosts it calls. So no approval is asked for, and the Deploy button works at once.

Screenshot: Devi uploads a corrected version of the drafter, and it needs no approval
The list has three rows. v3 is at the top, with by Devi under its date and Tools: uses no tools. v2 carries the green label active. The Deploy button on v3 is blue, and there is no explanation under it.
10
Devi
Devi deploys version 3, and it becomes the version that runs
Munitas console · An agent · /agents/<id>, the list of versions

Only one version of an agent is active at a time, so the green label moves from version 2 to version 3. Version 2 stays in the list, with its fingerprints, and every earlier run still names the version that actually produced it.

Screenshot: Devi deploys version 3, and it becomes the version that runs
v3 now carries the green label active, and the notice “v3 deployed.” appears at the foot of the screen. v2 has a Deploy button again.
11
Devi
Devi starts another run, and it asks for access again
Munitas console · An agent · /agents/<id>, the Runs section

A grant covers one run, so the page warns Devi again that Hartley, who looks after Cardiology, will be asked. Hartley grants it, as before, and the run starts by itself.

Screenshot: Devi starts another run, and it asks for access again
The purpose ends after the correction, the list holds synthetic-consultation-transcripts v1, and the button reads Request access and start. The earlier run is listed above with the label succeeded.
12
Imani
Imani reads the new drafts, and the third one no longer has the greetings under Plan
Munitas console · An agent · /agents/<id>, the Runs section

The same three transcripts give three new drafts. In the third one, Plan now holds only the line that belongs there, and the two greetings are among the lines that fit no heading, so the count of lines not placed has gone up from three to five. Imani reads the drafts and finds nothing to correct, so the button that accepts the drafts is the one to press.

Screenshot: Imani reads the new drafts, and the third one no longer has the greetings under Plan
Under the last Plan: in the third draft there is one line, I will reduce the dose, and schedule a blood test, and see you again in one month. (line 9) It ends Not placed: 5 of 10 spoken lines fit no heading and are not in this draft. The dark button reads Accept it as it is.
13
Imani
The acceptance is recorded with the same facts as the correction
Munitas console · An agent · /agents/<id>, the Runs section

The record holds the decision, who made it, when, and how soon after the run ended. Judging whether a decision was right stays with the organisation, and the record is what lets an auditor ask whether the drafts were really being read.

Screenshot: The acceptance is recorded with the same facts as the correction
The line reads Accepted as it was, then by Imani on, a date and time, and a number of seconds after the run ended. “Review recorded.” appears at the foot of the screen.
PART FOUR

The data protection officer shows an auditor what happened

An evidence pack is a record of everything the platform can back about one agent over a period. It holds identifiers, counts, fingerprints and times, and no personal data.

14
Nakamura
Nakamura reads the figures for the agent, counted for the agent and never for a person
Munitas console · An agent · /agents/<id>, the section on how its output is reviewed

Nakamura is the data protection officer, a person who watches how the organisation handles personal data. Nakamura reaches the same page from the registry. The section adds up every review of this agent's output: how many were accepted as they were, how many changed and how many refused, how many different people decided, and the middle length of time they took. It is counted for the agent. It never names a person.

Screenshot: Nakamura reads the figures for the agent, counted for the agent and never for a person
“2 reviewed: 1 accepted as they were, 1 changed, 0 refused.” is followed by 1 different person decided. The section is headed How its output is reviewed and says Counted for the agent, never for a person.
15
Nakamura
Nakamura makes the evidence pack for the agent
Munitas console · An agent · /agents/<id>, the Evidence pack section

The pack covers the risk level history, each version that ran and who approved it, the runs, how the output was reviewed, and any suspensions or incidents. It records who decided what and when, and how many runs there were. It holds no personal data, so the text of the drafts is not in it. With no dates chosen it covers the last 90 days. Making a pack is itself recorded. The page shows the fingerprint of the pack, so that a copy given to an auditor can later be matched to it. It also says how many records the agent's own chain holds. The chain is the agent's oversight records, each stored with a fingerprint of the one before it, so that a change to an old record shows.

Screenshot: Nakamura makes the evidence pack for the agent
Evidence pack says Everything the platform can back about this agent over a period. After Make the evidence pack the page says Made for two dates, then Hash: followed by a value that starts sha256:, and Nothing was changed. The buttons Download it as a file and Check that the records have not been changed are offered.
16
Nakamura
Nakamura checks that no record was changed, removed or added outside the platform
Munitas console · An agent · /agents/<id>, the Evidence pack section

The check reads every record again, works out its fingerprint, and compares it with the one stored when the record was written and with the link to the record before it. A record altered afterwards, a record removed from the middle, or one added without the platform would show. Here nothing does, so the page says so. The same check can be run again at any time, by anybody who may make the pack.

Screenshot: Nakamura checks that no record was changed, removed or added outside the platform
Check that the records have not been changed is followed by records checked. None was changed, removed or added outside the platform.