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

Official ReAct diagram comparing reason-only, act-only, and combined reasoning and action loops

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 diagram

A controlled reasoning-and-action loop

The loop advances only when a new action can reduce uncertainty or move the verified environment toward the goal.

  1. Goal and state

    Observe

    Collect the current request, relevant memory, environment state, and fresh tool evidence.

  2. Decision policy

    Choose the next move

    Answer, ask, call a read tool, propose a write, or stop. The choice should address a material gap.

  3. Bounded capability

    Act

    Execute one typed operation within the user's permissions and the tool's technical limits.

  4. Environment evidence

    Verify

    Read the result, inspect changed state, and test whether the intended condition now holds.

  5. 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.

A reviewable agent loop
StageQuestionUseful record
ObserveWhat is known now?Source, timestamp, relevant state
DecideWhat uncertainty matters next?Short rationale and selected action
ActWhat bounded operation is allowed?Tool, typed input, permission
VerifyDid the environment change as intended?Tests, diff, returned evidence
StopIs 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.

  1. 1
    ReAct: Synergizing Reasoning and Acting in Language Models

    International Conference on Learning Representations, 2023

  2. 2
    Toolformer: Language Models Can Teach Themselves to Use Tools

    Advances in Neural Information Processing Systems, 2023

  3. 3
    AgentBench: Evaluating LLMs as Agents

    International Conference on Learning Representations, 2024

  4. 4
    LLM06:2025 Excessive Agency

    OWASP GenAI Security Project, 2025