Autonomous Agent

An AI agent is a system built around a large language model that does not just answer a question but pursues a goal by taking actions in a loop. Where a plain chatbot maps one prompt to one reply, an agent runs a cycle: it reasons about what to do next, calls a tool to actually do it, observes the result, and repeats — continuing until the task is finished. This loop, plus the tools the model can reach, is what turns a fluent text predictor into something that can search the web, run code, query a database, or operate other software on your behalf. Agents are the fastest-moving frontier in applied AI, and the reason "chat" is giving way to "do it for me."

Autonomous Agent — Persistent Action Inside a Delegated Envelope the agent loops without new prompts while external controls enforce authority, budgets, approvals, and shutdown AUTONOMY ENVELOPE · THE AGENT MAY OPERATE ONLY WHILE EVERY INVARIANT HOLDS DELEGATOR goal + success criteria DELEGATED OPERATING BOUNDARY LIVE BUDGETS steps 12 / 40cost $1.80 / $5time 6m / 15m OBSERVEevents + results STATE DECIDEplan next action ACTpermissioned tool PERSISTENTCONTROL LOOP runs without a new user turn ALLOWED: read metrics open ticket draft change deploy: approval only APPROVAL GATEconsequential actionwaits for human KILL SWITCHrevoke tokens · halt loop controls remain outside agent authority AUTONOMY IS SAFE ONLY WHEN ACTIONS ARE OBSERVABLE, INTERRUPTIBLE, AND RECOVERABLE MONITORstate · actions · costprogress · anomalies ESCALATEuncertain · blocked · riskyrequest direction or approval ROLL BACKcompensate reversible effectsrestore last known-good state TERMINATEgoal met · no progressbudget hit · invariant brokenemit final state and evidence Bounded autonomy requires explicit authority, durable state, least privilege, live budgets, approvals, audit logs, recovery, and external shutdown.

The core mechanism is an observe–reason–act loop. The agent is given a goal, the model reasons about the next step, it emits an action (a tool call), the environment runs that action and returns a result, and the result is fed back into the model's context for the next turn. This interleaving of reasoning and acting — popularized as ReAct — is what lets the model course-correct: it can react to what a tool actually returned instead of committing to a plan blindly. The loop ends when the model decides the goal is met and emits a final answer.

Tool use and function calling are how an agent touches the world. The model itself only generates text, so it "acts" by emitting a structured call — typically JSON naming a tool and its arguments. A surrounding harness executes that call (running a search, a code snippet, an API request), then returns the output as a new observation. Function calling is the model-side mechanism; tool use is the general capability. Standards like the Model Context Protocol (MCP) now aim to make these tool interfaces portable across models and applications.

Memory and planning separate a toy from a workhorse. Short-term memory is the context window itself — a scratchpad of the conversation and recent observations — while long-term memory offloads facts to an external store (often a vector database) that the agent retrieves from as needed. Planning adds structure on top of the raw loop: decomposing a big goal into subtasks, reflecting on failures, and retrying. More capable agents plan, criticize their own work, and sometimes delegate subtasks to specialized sub-agents in a multi-agent setup.

Autonomy is a spectrum, and more is not always better. At one end is a single tool call inside an otherwise normal chat; in the middle is a fixed multi-step workflow; at the far end is a self-directed agent that decides its own steps until done. Greater autonomy unlocks harder tasks but sacrifices predictability and control, which is why side-effecting actions (sending email, spending money, changing files) are usually gated behind confirmation or guardrails.

The hard problems are reliability, cost, and safety. Errors compound over long horizons — a wrong step early can derail everything after it — and every turn is another LLM call, so agents are slower and more expensive than a single response. Tools fail, environments change, and evaluating open-ended agent behavior is genuinely hard. Much of real-world agent engineering is about constraining the loop: good tools, retries, verification steps, human approval for risky actions, and tight scoping of what the agent is allowed to do.

PieceRoleFailure mode it guards against
Reason/plan stepchoose the next actionaimless or redundant work
Tool call (function calling)act on the worldhallucinating instead of checking
Observationfeed results back inacting on stale assumptions
Memory (short + long)carry context across stepsforgetting earlier findings
Guardrails / approvalgate risky actionsirreversible mistakes

Read agents through an *action-loop* lens rather than a *smarter-chatbot* lens: the leap is not that the model knows more, but that it is placed inside a loop where it can decide what to do next, do it with a real tool, and react to the outcome. Capability then comes as much from the tools, memory, and control structure around the model as from the model itself — which is why building a good agent is mostly about engineering a reliable loop, not just prompting a smarter one.

Take autonomous agent further

Ask the copilot about this term, or have our engineers assess it against your process.