cd /news/ai-agents/ai-should-propose-systems-should-ver… Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-146608] src=dev.to β†— pub= topic=ai-agents verified=true sentiment=Β· neutral

AI Should Propose. Systems Should Verify.

A developer argues that AI agents should be treated as proposing actions rather than executing them directly, with a separate control layer handling validation, authorization, and execution. The proposed architecture routes agent output through system validation and policy checks before infrastructure acts, distinguishing correctness from authority and reasoning from execution. It also recommends scoping controls by actor, action, resource, environment, scope, context, and policy rather than coarse tool-level access.

by read4 min views1 publishedOct 7, 2026

An AI agent can produce the correct action and still have no authority to execute it.

That distinction becomes critical when agents move beyond generating text and start modifying code, calling APIs, changing infrastructure, triggering workflows, or coordinating other agents.

The question is no longer only:

Can the model determine what should happen?

It is also:

What happens between the action the model proposes and the action the system actually executes?

A useful starting point is:

AI proposes. Systems verify. Infrastructure executes.

Consider an AI coding agent working inside a production environment.

The agent receives a task:

Fix the authentication bug and deploy the change.

It analyzes the repository, modifies the code, runs tests, and produces a deployment command.

The code may be correct.

The tests may pass.

The deployment command may be valid.

None of those facts automatically mean the agent should be allowed to deploy to production.

This is the difference between correctness and authority.

A model can correctly determine what should happen while still being unauthorized to perform that action.

If the same component controls reasoning, authorization, and execution, the trust boundary becomes extremely large:

AI decides what to do β†’ AI decides whether it may do it β†’ AI executes it

A safer architecture separates those responsibilities.

Instead of allowing the model to directly invoke sensitive infrastructure, treat its output as a proposed action.

User Intent
    ↓
AI Agent
    ↓
Proposed Action
    ↓
System Validation
    ↓
Policy Check
    ↓
Execution
    ↓
Post-Execution Verification

The model produces the request.

The surrounding system evaluates it.

The infrastructure executes it only after the required controls have been satisfied.

For example:

{
  "action": "deploy",
  "environment": "production",
  "service": "auth-service",
  "version": "2026.10.04"
}

The control layer can independently check whether the request is structurally valid, whether the target exists, whether the requested operation is permitted, and whether additional controls are required.

The model does not need to make those decisions itself.

Imagine the coding agent changes a payment service.

The tests pass.

The security checks pass.

The build succeeds.

The artifact is signed.

The model now proposes:

Deploy to production.

The previous results establish that the software may be technically acceptable.

They do not establish that the current actor is authorized to deploy it.

That gives us an important separation:

Validation β†’ Is this action acceptable as an operation?

Authorization β†’ Is this actor allowed to perform it?

Execution β†’ Perform the approved operation.

These questions belong to different layers.

That separation also makes the architecture easier to audit and change without changing the model's reasoning process.

Separating reasoning from execution does not require making the agent weak.

An engineering agent can still have broad capabilities:

The system can simply apply stronger controls to higher-impact operations such as:

The agent remains capable of reasoning about complex operations.

Its capabilities just do not automatically become unrestricted authority.

Another architectural mistake is defining control only around tool access.

Agent β†’ deploy_tool
Agent β†’ payment_api
Agent β†’ database_api

Tool access is often too coarse.

The more useful question is:

What action is the agent attempting to perform, against which resource, under which constraints?

A control layer can therefore reason about something closer to:

Actor β†’ Action β†’ Resource β†’ Environment β†’ Scope β†’ Context β†’ Policy

Now the system can distinguish between actions that happen to use the same underlying tool.

A deployment API, for example, might be capable of deploying to both staging and production. Access to the API alone does not tell us whether a particular production deployment should be allowed.

The meaningful unit of control is the action and its context, not simply the existence of a tool.

The boundary becomes even more important when one agent delegates work to another.

Consider:

User β†’ Orchestrator Agent β†’ Procurement Agent β†’ Payment Service

The procurement agent may determine that a purchase is necessary.

But the fact that the orchestrator requested the purchase does not automatically give the procurement agent unlimited spending authority.

Now the system needs to understand more than the requested action:

Initiator β†’ Delegator β†’ Acting Agent β†’ Action β†’ Resource β†’ Scope

This introduces a deeper authorization problem: how authority is delegated between actors.

That problem deserves its own layer rather than being squeezed into the basic execution model.

Instead of:

User β†’ AI β†’ Everything

think about:

User β†’ Intent β†’ AI Agent β†’ Proposed Action β†’ System Controls β†’ Infrastructure

The AI sits inside the system.

It does not become the system.

That gives the architecture a stable control boundary around a component whose behavior is probabilistic.

The model can change.

The model can be upgraded.

The model can be replaced.

The surrounding execution controls can remain.

Giving an AI agent more tools does not automatically mean giving it more authority.

The goal is not to prevent AI from acting.

The goal is to separate the ability to propose an action from the authority to execute it.

And once agents start acting on behalf of other agents, the next question becomes unavoidable:

Who actually has the authority to perform the action?

── more in #ai-agents 4 stories Β· sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/ai-should-propose-sy…] indexed:0 read:4min 2026-10-07 Β· β€”