Agent First
Not Rest Inc. · Philosophy · Every capability has an owner
Most software treats AI as a feature — a model bolted onto a product, a chat box in the corner of something that was already finished. not.rest inverts that. Here the agent is not an add-on; it is the unit everything is made of, and it comes first in every design decision.
The first question
Agent-first means every meaningful capability is owned by an agent: something bounded, with an explicit contract that says what it can do, what it needs, and what it is allowed to affect. Not a service that contains an agent — an agent. When we build anything, the first question is not “what screen does this need” or “which model should we call.” It is: who owns this capability, and what are its limits?
A model is not the agent
Models, prompts, tools, code, workflows — even people — are things that implement agents; none of them alone defines one. What defines an agent is its boundary. And agency itself is a spectrum: an agent may be a pure executor, a router choosing among declared options, a planner sequencing bounded actions, or an adaptive actor revising its plans within explicit limits. Higher agency is not better. The discipline is to use the lowest degree that reliably does the job — and to declare it, so anyone can check what an agent is permitted to be.
The declaration is the product
That declaration is not paperwork. An agent that says what it may touch can be trusted with real actions. An agent that declares its failures can degrade honestly instead of pretending. An agent whose authority is written down can be stopped, audited, and replaced. Everything people fear about AI systems — opacity, overreach, unaccountability — is what agent-first design removes by construction, before the first feature is built.
This site practices what it says: the front door of Not Rest is itself an agent, composed of declared constituent agents — the field, the rings, the concierge, the kernel behind them. Their contracts are public at /agents/index.json, and no deploy ships if the code and the declarations disagree. You are not reading about agent-first software. You are standing inside some.