‹ Culture 3.14 · What we ask ourselves
Question · Operations
Which responsibilities must stay deterministic in an agent system?
The agent can choose the route; permissions, calculations and writes should behave the same way in every execution.
An agent contributes something real when the route cannot be fixed in advance: context has to be interpreted, a choice has to be made between tools, and it has to adapt to whatever each of them returns. That is its place.
Outside that place, variability only adds cost. We have gradually moved into deterministic code everything that gains nothing from being decided at run time. Permissions, which must not depend on how a request happens to be worded. Calculations, which a model can approximate and a function cannot. Writes to external systems, which always go through tools with a typed contract. The workflow’s state transitions, which are declared in the graph and improvised by nobody.
The resulting split is simple to explain: the agent decides what to do next within a set of permitted routes; the system decides what is possible and what happens afterwards.
This has an effect we had not expected with such clarity. The traces become readable. When something goes wrong, the question shifts from “what did the model think” to “which route did it take and which policy allowed it”, and that second question does have an answer.
It also simplifies evaluation: the deterministic part is tested like any other software, and the evaluation effort concentrates where there is genuine uncertainty.