A secure design
Write the machine before the agent: one program per role.
An office assistant, as an example. The model gets the least of all: its weights, on a disk it can read but never change or run, and nothing to speak with. One small program answers the people in the office. The two meet on one disk, and nothing on the box knows a route beyond the office.
DEFINE MACHINE office_assistant AS ( PROFILE hosted, ARCH x86_64, KERNEL linux ) RATIONALE "An office assistant: the model reads, one world speaks" DEFINE CAPABILITY inference AS (GRANT yes) RATIONALE "The model runs on this box, not at a vendor" DEFINE CAPABILITY filesystem AS (GRANT yes) RATIONALE "Each world keeps only the disks it names" DEFINE CAPABILITY network AS (GRANT yes) RATIONALE "One world answers the people in the office" DEFINE MOUNT models AS ( AT "/models", FS ext4, DEVICE "/dev/vda2", OPTIONS [ro, noexec] ) RATIONALE "The weights: read, never changed, never run" DEFINE MOUNT exchange AS ( AT "/exchange", FS ext4, DEVICE "/dev/vda3", OPTIONS [rw, noexec] ) RATIONALE "Where the two worlds meet: questions in, answers out" DEFINE NETWORK office AS ( INTERFACE "eth0", ADDRESS "192.168.1.20/24", EGRESS none ) RATIONALE "The office's own network, and no route beyond it" DEFINE USER reader AS (UID 1001) RATIONALE "The model runs as someone, never as the machine" DEFINE USER clerk AS (UID 1002) RATIONALE "The world that answers people is someone else" DEFINE SERVICE model AS ( RUN ["/app/model"], RESTART always, USER reader, NEEDS [inference, filesystem], SEES [models, exchange], MEMORY 4096, CPU 200, STATE ["/run/model"], READY "/run/model/ready" ) RATIONALE "Reads weights and questions; no network, no new process" DEFINE SERVICE desk AS ( RUN ["/app/desk"], RESTART always, USER clerk, NEEDS [network, filesystem], SEES [exchange], MEMORY 256, STATE ["/run/desk"], READY "/run/desk/ready" ) RATIONALE "Answers the office, and never sees the weights"
The court accepts this machine as written: harb docs --check judges every machine a page of this site shows in full, each time the site changes. A world that runs as an identity owns only the directories it names in STATE, so each of these two signals from a directory of its own. A directory two worlds share, which is what the exchange disk is for, is not built: the machine shows each world's envelope, and not yet the hand-over between them.
What the model gets
No network interface at all, no way to start a program, a process table of its own; its weights, read-only, and the exchange disk. Hijacked, it reaches its own answers — which the desk reads — and its own budget.
What the desk gets
The office network, with no route beyond it, and the exchange disk — never the weights. Hijacked, it reaches the people in the office, and nothing past them.
Reach belongs to the machine
Every program given the network shares every route the machine declares. To give two agents different reach, put them on two machines: reach per program is not built.
Break it yourself
A promise you have watched refuse you is evidence.
Four lessons of the guided tour break a security promise on purpose. harb learn prints each one in full: the file to change, the exact line, the command, what you should see, and how to put it back. The boots run in an emulator on an ordinary computer; the README says what they need.
Hand the network to a program that had none. Its own report changes from no such interface from here to present: this world shares the machine's network — one word in the file, one line in the boot.
Write EGRESS ["0.0.0.0/0"], a perimeter that covers everywhere. harb check refuses it before anything is built: a machine that may go anywhere says so by declaring no EGRESS at all.
Run the test that changes one word of a signed record — verdict=matched becomes verdict=perfect — and read what it requires: the break named at entry two, and entry one still verified.
Check a device's record on your own computer, holding no secret. Then point the same command at the tampered copy, and at a fleet that enrolled a different device.
And one you cannot break: lesson 8. There is nothing to edit — no line in any file gives back one of the 25 calls.
The same machine seen from an agent: The agent floor → From an IT team's three questions: Enterprise → And every limit of the project, not only its security: Where it stands →