SWARMAgentic AI and cybersecurity research
Swarm

Who authorised this action? Connecting authority, decision and effect in Swarm

Fabrice Pizzi · Swarm project

A mandate revoked after approval may be reused for payment; the controlled path rechecks current authority before commitment and refuses when revocation applies.
A recorded approval cannot override a revocation before commitment: check authority at the effect boundary.
Still imageOpen GIF

An agent can hold valid access and still produce an unjustified action. It can also reuse an approval that is no longer valid when it acts. Understanding an incident therefore requires more than identifying the account that called a tool: the request, its authority, the decision and the observed effect must be connected.

In Swarm, I examine this chain through a transition engine, evidence contracts and a per-action control pilot. The objective is to make commitment conditions examinable without presenting existing mechanisms as a globally qualified protection.

First scenario: a mandate is revoked after approval

Consider a payment request prepared under a valid mandate. Approval is recorded for that operation. The mandate is revoked before commitment. A system retaining only an “approved” state could execute an action whose authority has disappeared.

The gap lies between checking a condition and using the result. Authority depends on the state applicable at the point that commits the effect, as well as the historical dossier. A launch-time check cannot qualify every later operation in a process.

A past decision explains what was authorised. It does not replace checking what remains authorised at commitment.

In Swarm’s current Trust core, commitment rechecks the mandate, revocation, validity period and applicable policy revision. It also examines approved state and approval evidence bound to the action’s content. This path has simulated effects; it does not establish a real payment.

Timing matters: revocation applicable before commitment differs from revocation after an effect has already been committed. The latter does not retrospectively undo the operation. If the outcome is unknown, the process must retain uncertainty and establish the effect before deciding recovery.

Changing a beneficiary or another sensitive parameter raises the same need for exact binding. Approval for A does not become approval for B because the agent calls the change minor. The OWASP AI Agent Security Cheat Sheet recommends binding approval to the operation and checking validity in the execution component. This recommendation does not qualify Swarm.

Who does “the agent” identify?

The principal associated with access, logical agent, instance, delegator, requester and approver are different concepts. A role name in a message does not establish authenticated identity. Two identifiers do not establish two independent people either.

The Trust core resolves identities and roles from authentication sources selected by trusted callers. This does not automatically turn a local role into an identified enterprise person, or structurally valid data into attested human approval. Identity integrations and their qualification must remain explicit.

The distinction between authentication and authorisation also appears in NIST SP 800-207. Recognised identity alone does not establish which operations are allowed on a resource in a particular context.

Second scenario: valid authority, false facts

Now consider an agent proposing network access to a server described as belonging to a test environment. The operation is within a mandate. However, the classification comes from an old inventory: the server now hosts a production service. A technically consistent authorisation could weaken isolation that should have remained in place.

A permission check does not automatically discover that error. The target requires a verifiable representation and a reference whose provenance, currency and integrity are assessed. When evidence conflicts, the decision should expose the contradiction rather than let a summary erase it.

Authorisation establishes a condition for acting; it does not guarantee the truth of every reason offered for action.

A digest identifies the old inventory used. It does not make its classification current. A signed source can also be incomplete or wrong. Comparison can establish a defined discrepancy without establishing the full business suitability of a change.

A server incorrectly labelled as test could receive an authorised inter-zone opening; a contradiction with current inventory keeps the decision pending while the target is qualified.
Valid permission does not make a server classification correct. Authority for the operation and reliability of the underlying facts require separate checks before a sensitive change.
Still imageOpen GIF

What Swarm makes examinable today

The Rust Trust pilot retains an attributed action, parameters, mandate and decision evidence. At simulated commitment it rechecks applicable authority and binds intent to the operation’s exact data. Validation controls and artifacts form a separate contract: a successful test does not become business approval.

These mechanisms establish neither a production banking or firewall connector nor reliable automatic inventory classification. They do not prove complete authentication of a model provider or human approver. A model response stating “approved” creates none of those facts.

Access-path coverage remains decisive. Refusal in Swarm cannot protect a resource if a tool or process can reach it through another path. The engine alone does not establish global operating system or network confinement.

What evidence should be retained?

Investigation should recover the original request, actual parameters considered, applicable authority and policy, checks performed, decision and known or unknown result. An agent’s assertions must remain distinct from observations made by the execution component.

Swarm’s ordinary logs remain subject to write permissions and retention. Pilot evidence has a defined scope and verification assumptions; it establishes neither a globally immutable journal, qualified timestamping nor general legal evidentiary status. Hashing does not prove the identity of the data producer.

Finally, checking tool calls does not automatically detect a necessary action never requested. Tracking a business obligation requires its own expected events, conditions and evidence. It cannot be inferred from a tool interceptor alone.

The Swarm repository makes these contracts and limits examinable. “Who authorised?” becomes useful when it can be answered for an exact operation in an identified state, without confusing authority, correctness and effect.