All walkthroughs / Health organisation
An AI agent is a program that works on data on somebody's behalf. Before a new version of one can be deployed, the network architect decides which external hosts it may call. A data engineer uploads a version and lists the one host it needs. Neither the engineer nor the custodian who owns the agent can decide the list. The network architect approves it with a written reason, and an approved version can then be deployed. The same code, listing a host that nobody can account for, is refused and cannot be deployed.
An AI agent is a program that works on data on somebody's behalf, with a named owner, under the same rules as a person. Before a new version of an agent can be put to work, Munitas asks one more question: which external computers will this code contact? Those computers are called hosts, and a host is the name of a computer on the internet, such as reports.radiology.example.
Devi is a data engineer in the Health organisation. The agent is called radiology-intake-triage, and it ranks radiology intake documents for a person to review. It belongs to the Radiology department. Each version of an agent is one uploaded and sealed copy of its code, and a sealed version can never be changed. This agent already has one version, version 1, uploaded on the page before this one. It calls no external host.
Devi chooses the zip file that holds the agent's code, says that it calls no model, and opens the part of the form for tools and hosts. A tool is something the agent may do, here reading a version of a dataset. In this example the code needs to fetch report templates from the hospital group's own reporting service, so Devi lists that one host. The form says plainly that a list of hosts has to be approved before the version can be deployed.
Munitas seals the upload as version 2 and records who registered it and the fingerprints of what it holds. Deploying a version means making it the one that runs when somebody starts a run. Because this version asked to call a host, it has filed an egress approval, which is a request for a network architect to decide the list of hosts. Until that is decided, the Deploy button does not work.
The list of hosts is decided by a network architect, a person who holds a role of that name. The person who uploaded the version cannot decide it, and neither can a custodian who does not hold the role, even the custodian of the department that owns the agent.
Devi follows the link to the request. The page shows what the version asked for, and a box for the reason behind a decision. The platform does not let the person who uploaded a version decide its hosts, so both buttons are greyed out for Devi, and the page says why.
Okonjo is the data custodian for the Radiology department, which owns the agent, and decides who may read Radiology's data. Choosing which external hosts an agent may call is a different decision, and it belongs to a role of its own. Okonjo can open the request but has no way to decide it.
Turner holds the network architect role, so the home page is about one thing: the requests that wait for a decision on hosts. A tile counts them, and the first of them is listed with the agent, the host it asks to call, who uploaded the version and when.
The same request is on the Egress approvals page, which keeps every request, those waiting and those already decided. Each line names the agent version, the hosts it asks for, its state and who submitted it.
Turner opens the request and reads what the version asked for. A decision needs a reason, written before the buttons work, because whoever reads the decision later will not have this screen in front of them. Turner holds the right role and did not upload the version, so nothing blocks the decision.
The decision is recorded with who made it, when, and the reason, which is kept with the decision. The label changes from waiting to approved. The page also repeats what the approval is: it lets the version be deployed, and it does not claim that any call to the host has been made.
The decision is the only thing that changes whether a version can be deployed. The same code, with a different list of hosts, can end up on either side of it.
Devi opens the agent again. The label on version 2 has changed from waiting to approved, and the Deploy button, which was greyed out, now works.
Devi presses Deploy. Version 2 is now the active version of the agent, which means it is the one that runs when somebody starts a run. Version 1, which was active until now, stops being the active version and gets a Deploy button of its own.
Devi uploads the same code again as version 3, this time listing files.unknown-host.example, and the version waits for a decision in the same way. A script checked that, and there is no picture of it. Turner reads the request and refuses it, with a reason that says what is missing. The decision is about the list of hosts, not about the code, which is why the same code can be approved once and refused once.
On the agent's page, version 3 is marked as refused and its Deploy button is greyed out. The grey button is not the only barrier: a script asked Munitas itself to deploy version 3, signed in as Devi, and Munitas refused with the reason that this version asks to call files.unknown-host.example, that the request is refused, and that a network architect has to approve it before the version can run. Nothing was deployed, and there is no picture of that check. Version 2 is untouched: it is still the active version, and it still carries its approval.