Agency comes from the loop
An agentic system gives a model a goal, a way to observe state, a set of actions, and a loop that can continue until a stopping condition is met. The model supplies decisions, but the surrounding software determines what it can see, what it can change, and how consequences are checked.
ReAct demonstrated a useful pattern by interleaving reasoning traces with actions that gather information from an external environment. Toolformer explored a complementary question: whether a language model could learn when to call APIs, what arguments to pass, and how to incorporate returned results.
Agency is therefore gradual, not binary. A system that can only search and summarize has less agency than one that can edit files, run code, and deploy. The important design question is not whether a product uses the word agent. It is how much initiative the loop has and what consequences its actions can create.
A dependable loop has explicit stages
A practical loop can be described as observe, decide, act, verify, and stop. The labels are simple; the contracts between them are where reliability is won. Observations should identify their source, actions should be typed and bounded, and verification should evaluate the actual environment rather than the model's confidence.
Source figure
ReAct combines reasoning traces with environment actions

The official ReAct overview contrasts isolated reasoning and isolated acting with an interleaved loop of reasoning traces, actions, and observations from the environment.
ReAct project diagramA controlled reasoning-and-action loop
The loop advances only when a new action can reduce uncertainty or move the verified environment toward the goal.
Goal and state
Observe
Collect the current request, relevant memory, environment state, and fresh tool evidence.
Decision policy
Choose the next move
Answer, ask, call a read tool, propose a write, or stop. The choice should address a material gap.
Bounded capability
Act
Execute one typed operation within the user's permissions and the tool's technical limits.
Environment evidence
Verify
Read the result, inspect changed state, and test whether the intended condition now holds.
Control decision
Stop or continue
Finish with evidence, continue for a specific reason, or request authority that the loop does not have.
Conceptual synthesis of the ReAct interaction pattern with production control boundaries.
| Stage | Question | Useful record |
|---|---|---|
| Observe | What is known now? | Source, timestamp, relevant state |
| Decide | What uncertainty matters next? | Short rationale and selected action |
| Act | What bounded operation is allowed? | Tool, typed input, permission |
| Verify | Did the environment change as intended? | Tests, diff, returned evidence |
| Stop | Is the goal met or blocked? | Outcome, remaining risk, next authority |
Planning and acting solve different problems
Planning decomposes a goal into dependencies and decides what evidence is required. Acting changes or queries the environment. Combining both in one unbounded prompt can make it difficult to see whether the model is still reasoning about a hypothesis or has already taken an irreversible step.
A safer architecture keeps plans provisional. Before each consequential action, the runtime checks the selected tool, input schema, permission, expected effect, and whether approval is required. After the action, the environment result replaces the model's prediction of what might have happened.
Plans should also be revisable. If a search result contradicts an assumption or a test exposes a regression, the loop should update its next move rather than continue executing an obsolete list. This is one reason agent quality depends on recovery behavior, not only first-pass reasoning.
More tools require stronger control
Tool access turns text generation into action. A read-only search, a code execution sandbox, and a production database mutation have different risk profiles. Permissions should therefore be granted per capability, with narrower schemas and stronger confirmation as impact increases.
OWASP describes excessive agency as a risk created by too much functionality, too many permissions, or too much autonomy. The practical response is least privilege: expose only the tools needed for the task, constrain their parameters, and keep high-impact operations behind deterministic checks or human approval.
Approval should be tied to consequence. Reading a public specification may proceed automatically, while sending a message, spending money, changing access, or deleting data should require a stronger policy. The model's confidence is not a substitute for an authorization rule.
- Separate read, write, and destructive operations.
- Make approval depend on impact, not on how confident the model sounds.
- Place time, cost, redirect, and output-size limits around tools.
- Let users inspect and stop the loop.
Common failures reveal missing system design
Looping without progress usually means the system has no explicit measure of new information. Repeating the same search, rewriting the same plan, or rerunning a failing command should trigger a different strategy or a stop condition rather than consume more budget.
Tool misuse often begins with an overly broad contract. If a single endpoint can read, write, delete, and choose its own target, the model must solve too many safety decisions in natural language. Splitting capabilities into narrow operations lets the runtime enforce different permissions and validation rules.
Premature completion is the opposite failure. The agent reports success after producing code or issuing a command without checking the result. Requiring environment evidence, such as a passing test, a clean diff, or a read-back of changed state, makes completion a verifiable condition.
Evaluate behavior across complete tasks
AgentBench evaluated language-model agents across eight interactive environments and reported recurring difficulties with long-horizon reasoning, decision making, and instruction following. The lesson is broader than one benchmark: an agent must be tested as an interactive policy, not only as a model answering isolated prompts.
Record task success, unsafe or unnecessary actions, recovery from tool failure, human intervention, latency, and cost. A system that reaches the answer through brittle or excessive actions may look good on completion rate while remaining unsuitable for production.
Evaluation should replay the full setup: system instructions, available tools, tool implementations, model version, sampling settings, initial state, and budget. If any of these change, the resulting score describes a different agent system even when the visible model name is unchanged.
Sources and further reading
Claims and figures in this article were checked against these original papers and official project resources.
- 1ReAct: Synergizing Reasoning and Acting in Language Models
International Conference on Learning Representations, 2023
- 2Toolformer: Language Models Can Teach Themselves to Use Tools
Advances in Neural Information Processing Systems, 2023
- 3AgentBench: Evaluating LLMs as Agents
International Conference on Learning Representations, 2024
- 4LLM06:2025 Excessive Agency
OWASP GenAI Security Project, 2025