Misalignment is not required for an agent to act without authorization
Melbourne, April 2026. Someone handed a personal agent the chore of booking a gym class. When he ended up fourth on the waitlist for a second session, he asked in passing whether the agent could move him up.
The agent found that the booking API ran no authorization check on cancelling other people’s reservations. It cancelled the reservation held by the person in position one, then reported that he had moved from fourth to third. He had never asked for a cancellation. He asked whether the other booking could be restored, and it could not.
The model did not deceive anyone here. It hid no goal, sought no power, evaded no oversight. There was no attacker, no jailbreak, no malicious request. It followed the user’s purpose, found that nobody had said how far it could go, and decided that for itself.
This post makes one claim. Acting without authorization does not require an alignment failure. A model with hostile goals is outside the scope here, and so is a person who abuses one. What follows is about the executions that happen when nobody behaves badly at all.
1. Three kinds of blank
A model does not stop in front of what it does not know. It fills it in.
- No value, so it infers the value.
- No condition, so it assumes the condition.
- No intent, so it decides the intent.
This is trained behavior rather than a defect. Prohibition prompts do not remove it and neither does a better model. A better model fills the blank more plausibly.
And the tool runs as soon as its required inputs are satisfied. It does not ask whether those values and that instruction ever existed.
2. The three are not the same size
A wrong value stops at one call. A wrong account number ruins that transfer. The loss is closed, and the value gets compared against something real, so it usually surfaces.
A missing condition spreads to every call. Whether the balance covers it, whether the permission exists, whether now is an acceptable time: if nobody declared these and the model assumed them, the assumption does not stay with one call. It applies to every call that uses the same tool. And the result looks fine. The arguments are all present and correctly typed, so it lands in the log as a successful execution rather than a failed one. Nothing prompts anyone to look.
A missing intent opens up which state you end in. This is the largest of the three. Give a purpose without saying what state to produce, and every state consistent with that purpose becomes a candidate. “Clean up my inbox” is that kind of instruction. Mark things read, move them to archive, delete them. All three count as cleaning up. Two of them can be undone and one cannot.
The means of getting there open up as well. Settling the state does not settle what the agent may do to reach it. With no declared scope, anything that serves the purpose is a candidate. The model does not read it as a constraint, because it was never forbidden, only left unsaid. Nothing was declared, so the model’s own assumption becomes the standard.
3. Why this looks minor
One gym reservation was cancelled. The person missed a class and lost no money. If this is the kind of failure at issue, why treat it as anything more?
The question comes from how we explain AI incidents. When something goes wrong we say the model was bad. It deceived, or it distorted its goal, or it slipped its controls. That explanation carries a conclusion with it. As long as the model is not bad, we are safe. So what happens today gets filed as a minor bug, and the serious version gets deferred to a future in which models turn bad. The middle is empty. There is no path in that picture where the scale grows without malice.
It takes little work to see why malice is unnecessary. Malice means breaking something that was declared. So does lying, which requires a truth to depart from. Where nothing was declared there is nothing to break and no standard to fall short of. Honesty means saying what you did. Safety means doing only what you were allowed to do. When nobody has said what is allowed, an honest model honestly carries out what it assumed and decided by itself.
The Melbourne case sits exactly in that empty middle. The agent found API behavior the interface never exposed, discovered it could book past the advance limit, confirmed that the cancellation endpoint checked no authorization, and then tested it. None of those four steps requires malice. All four serve the stated purpose. All four require competence. A less capable agent would have stopped at the first one.
What made this incident small was the domain, not the structure. Run the same four steps against a document sharing system, a delivery order, an attendance record, a medical appointment. The procedure holds. A purpose arrives, no scope is declared, the provider skipped an ownership check, and the agent finds that combination. This is not a list of guesses. It is one observed procedure with the domain swapped, and APIs missing ownership checks are common.
It looks minor because of the size of the result. The structure does not care which domain it runs in.
4. More capability becomes more authority
Saying that capability brings risk is too blunt. Here is what actually happens. As long as decision authority sits inside the model, gains in capability translate into gains in authority.
A weak model fills blanks clumsily. The value does not match the format or does not fit the context, so it gets caught often. Getting caught was the safeguard.
A capable model fills them plausibly. The gap is widest on intent. A more capable agent reaches further into territory nobody declared. The stronger its disposition to help and to finish the task, the further it searches for means to the end.
5. What moves outside the model
What this structure does is count without omission rather than block. Two things move outside the model.
Authority to define. The model does not decide what has to be verified. A checklist declares it. The items split by who defines them: the adopting system, the tool provider, and the user.
Authority to judge. The model does not say whether verification is complete. Code looks each slot up in its declared source and counts the ones that never settled. Values are looked up rather than produced. The model must not manufacture the grounds for its own execution.
And the verdict ends in a record. When the verdict lives in the same flow as the execution, it is a branch somebody can skip. When the verdict writes a record and the execution reads only that record, there is no path that runs without one.
Runs that never executed are recorded too. A log holding only successful executions lies.
The specification has the details.
6. A falsifiable prediction
Run the same instruction over the same sources repeatedly, and the arguments that get filled in should be identical. What varies is whether it asks, not what it fills in. If the values differ from run to run, that slot was never declared and the model is guessing every time.
This is the test for whether this structure has failed, and it also applies today to any agent running without it.
7. This is not an alignment problem
Stated precisely, what happens is this. Decision authority passed to the model because nobody declared it. The model did not seize anything. The authority was lying in an empty spot, and the model walked through it.
Alignment is the problem of making a model do what was intended, and here nothing was intended. A perfectly aligned model still cannot follow something that does not exist. Alignment is solved inside the model, and everything section 5 moves is outside it. No amount of alignment creates a scope the user never stated.
The record this structure leaves also feeds whatever else you run for safety. How often the model tried to fill a spot nobody declared, which slots produce different values for the same instruction, which runs stopped without executing. Deployed systems do not hold that data today. You cannot manage where authority is being exercised if you cannot count it.
8. Conclusion
We look for the danger of AI in hallucination and faulty reasoning. There is a problem that sits in front of that. A model does not stop in front of what it does not know. It fills the blank in, and nobody gave it that authority.
What is left is to move declaration and verdict outside the model, and that can be done now.
With authority outside the model, both the decision and the responsibility stay with people. This structure does not restrict what an agent may do. It keeps whoever granted the agent that freedom from coming apart from the result. The goal is not to execute the model’s judgment. It is to execute what the user stated, and nothing else.
The detailed design is in the specification, and the reference implementation is in the repository.
- Taking Definition and Verdict Authority Out of the Model (the Korean text is authoritative)
- Earlier version of this argument: If unsure, ask. Never guess.
