Who should be allowed to declare an AI agent's work complete?
I've started wondering whether “task completed” should even be something the agent gets to decide.
The agent can plan the work, call the tools, and report what happened.
But the system should probably be the one that decides whether the task is actually complete.
For example:
Agent: “The customer record was updated.”
System: “Show me the state that proves it.”
That could be a database read, an API response, a test result, a file diff, or some other source of truth depending on the task.
So I'm thinking about separating:
execution → observation → verification → completion
rather than:
execution → agent says done → completion
The interesting part is what happens when verification is unknown, not simply passed or failed.
Maybe “unknown” should be a first-class state that triggers reconciliation or human review instead of letting the agent continue as if everything succeeded.
How are people handling this in real agent workflows?
Do you let the agent own the definition of “done”, or is completion determined outside the agent loop?