Technical walkthrough · version 1.0.0
An agent with no owner should not get a single call through.
Run a small offline example: three made-up agents, five tool requests and the rules that decide each one. Every result below comes from the downloadable files.
Published October 16, 2026
What this example is
Synthetic data written by Kosmoy to show the method. The script runs on your machine, calls no model and connects to nothing. It is not Kosmoy product output or an export format.
1. Download and run it.
Download evaluate.mjs, inventory.json and sample-audit.json into one folder. With Node.js 22 or newer, run the commands below. Nothing to install, no credentials.
Also included: inventory.schema.json · README.md
node evaluate.mjs inventory.json > reproduced-audit.json
diff reproduced-audit.json sample-audit.jsonIf diff prints nothing, you reproduced the published result (on Windows, use fc). The input fingerprint is SHA-256 over the parsed inventory. It shows whether the input changed; it is not a signature or proof of origin.
Input fingerprint: 75be3a17a6605d70c06c250de799967f2aa71708c2a0e4d067f35f19bc293abf
2. Read the five decisions.
One request passes: an approved agent with an owner and a fresh source, calling a tool it may use, within budget. Four are denied: a tool the agent may not use, a request that costs more than the remaining budget, an agent with no owner that was never approved, and an agent whose source was last seen 45 days ago against a seven-day limit. The output keeps the reason for every decision.
| Request | Agent | Decision | Reasons |
|---|---|---|---|
| allow-demo | support-demo | Allowed | All checks passed |
| denied-tool-demo | support-demo | Denied | Tool not allowed |
| budget-demo | support-demo | Denied | Over budget |
| unknown-owner-demo | unassigned-demo | Denied | No owner; Not approved; Tool not allowed |
| stale-source-demo | stale-demo | Denied | Source not seen within the 7-day limit |
Each agent record holds: id, owner, purpose, source, last_seen, status, allowed_tools, budget_cents and spent_cents. Already using the agent registry worksheet? Its Agent name, Owner, Business purpose, Platform / runtime and Tools columns map to id, owner, purpose, source and allowed_tools.
Break it on purpose
- Set the first agent's owner to null and rerun: its allowed request is now denied.
- Set a request's cost to -1: validation fails instead of enlarging the budget.
- Retire the first agent: none of its requests pass.
- Point a request at an agent ID that is not in the inventory: it is denied.
3. Know what it leaves out.
The script handles requests one at a time. It does not reserve budget for concurrent calls, reconcile invoices, discover agents or store an audit trail. A real pilot must test those and record failures and gaps next to the results.
In Kosmoy these checks live in separate layers: the registries hold owners and approvals, the AI Gateway enforces tool and budget policy on routed calls, and an Action Capsule contains the agent's runtime. Registering an agent does not contain it. The README (download) lists the acceptance steps for a real deployment. For evaluation evidence, compare the reproducible red-team report.
4. See the same checks in Kosmoy.
- Owner, purpose and approval state for each agent: Agents Master Registry record
- Allowed and denied calls on a governed route: AI Gateway acceptance test
- Budget warning and block: AI FinOps budget test
- One policy from approval to evidence: AI Governance evidence chain

