💡 Key Takeaway

Autonomy is not the product. Useful, observable, recoverable work is the product. Start with a deterministic baseline and add only the amount of agent behavior that improves the task inside explicit permissions and stop conditions.

An agent is not a vibe

The word “agent” now describes systems with very different behavior. A chatbot answers a message. A prompt chain runs known steps. A workflow automation follows rules. A tool-using assistant selects an action. An agent loop plans, acts, observes the result, and decides whether to continue.

The label matters less than the control surface. Ask:

QuestionWhy it matters
Who chooses the next step?Shows how much decision-making the model controls
Can the system change external state?Separates advice from consequence
Can it continue without the user?Determines timeout, budget, and approval needs
Can you replay what happened?Determines whether failures are diagnosable

A system does not become better because it takes more actions. It becomes harder to trust unless every additional action has a reason, a boundary, and an evaluation.

The decision test: workflow, assistant, or agent?

Use the simplest system that can solve the task.

SituationPreferWhy
The same steps happen every timeDeterministic workflowCheaper, faster, and easier to test
The user needs suggestions but decidesAssistantModel helps without owning action
Several safe tools can solve a variable routeBounded agentTool selection adds useful flexibility
The action changes money, records, access, or communicationAgent with approval gateHuman remains accountable for consequence
Success is not definedDo not automate yetYou cannot evaluate an unclear goal

Build the deterministic baseline first. If the agent cannot improve task success, coverage, user effort, or recovery enough to justify its cost and risk, keep the baseline.

A worked decision: support triage

Consider a support workflow. A customer ticket arrives, needs a category, may need policy context, and may require a reply.

  1. Baseline: rules classify obvious keywords and route everything uncertain to a person.
  2. Assistant: a model suggests a category and drafts a reply; a human approves both.
  3. Bounded agent: the system can retrieve approved policy, ask one clarifying question, and prepare a draft, but cannot send messages or change account records.

The agent is justified only if variable tool selection reduces handling time or improves resolution without increasing unsafe drafts. The comparison should include the baseline, not just multiple agent designs.

Design decision: automate the reversible preparation work first. Earn permission for external action only after evidence shows the preparation stage is reliable.

The bounded agent architecture

A practical agent can be represented as a small state machine:

request -> plan -> choose tool -> validate -> execute -> observe -> stop or ask

Give every run:

  • A clear goal and allowed outcome
  • A limited context window and state budget
  • A typed list of tools
  • Permission checks outside the model
  • Maximum steps and time
  • Retry rules that are safe to repeat
  • A human approval path
  • A trace containing decisions and results

Stop conditions should be explicit: task complete, evidence insufficient, tool failure, budget reached, confidence below threshold, or approval required. “Keep going until it feels done” is not an operational policy.

Design tools as contracts, not shortcuts

A tool is an API with consequences. Keep its contract narrow enough to test.

{
  "name": "create_draft_reply",
  "description": "Prepare a reply for human approval. Does not send.",
  "input": {
    "ticketId": "string",
    "body": "string",
    "citations": "array"
  },
  "sideEffects": "draft_only",
  "requiresApproval": false
}

Validate arguments before execution. Use separate read and write operations. Make writes idempotent where possible. Return structured errors instead of raw stack traces. Tell the model what the tool does not do, especially when a name could imply a stronger action.

Do not expose a general shell, unrestricted database credential, or broad “do anything” tool to make a prototype faster. Broad tools hide the real safety boundary.

Permissions belong outside the model

A model can propose an action; it cannot grant itself permission to perform it.

ActionRecommended control
Read public documentationAllowlisted domains and request limits
Read private documentsApplication authorization before retrieval
Create a draftScoped resource access and audit log
Send a messageExplicit user approval or tightly defined low-risk policy
Delete or modify recordsSeparate permission, confirmation, idempotency, and recovery

Use least privilege. Keep secrets away from prompts and tool results. Partition tenants and workspaces at the data layer. A sentence saying “never reveal private data” is helpful behavior guidance, but it is not an authorization system.

Memory needs a lifecycle

Agents often fail because “memory” means an unbounded transcript. Separate state types:

StateExampleLifecycle
Run stateCurrent plan, tool results, retry countExpires after the run
Session stateUser preferences for a conversationExpires or resets by session policy
Durable memoryApproved project preference or account settingExplicit retention and deletion
Retrieved contextDocuments relevant to this requestRequest-scoped and access-filtered

More context can increase cost, leak sensitive information, and make behavior difficult to reproduce. Store only what has a purpose, owner, retention rule, and deletion path.

Observe every meaningful run

A user report that “the agent did something strange” is not enough to debug a system. Record a trace with:

  • Request and user or workspace identity
  • Model and prompt versions
  • Selected tools and validated arguments
  • Tool results and errors, redacted as required
  • Step count, retries, latency, and cost
  • Stop reason and final outcome
  • Human approvals, edits, and takeovers

Build a replayable test mode with synthetic data. Traces should help answer what the system saw, what it decided, what it was allowed to do, and why it stopped. Avoid logging secrets or full private documents when metadata is enough.

Threat model the agent, not just the prompt

Agents cross boundaries between untrusted content and trusted tools. Treat every web page, email, document, and tool result as data that may contain instructions.

ThreatControl
Prompt injection in a documentKeep retrieved content separate from system rules; validate tools outside the model
Data exfiltrationLeast-privilege tools, secret isolation, output checks, and tenant boundaries
Runaway loopMaximum steps, time, spend, and repeated-action detection
Unsafe retryIdempotency keys and confirmation for external effects
Memory poisoningRequire approval before durable memory changes
Overbroad tool resultMinimize returned fields and redact sensitive values

Security controls must remain effective when the model is confused, manipulated, or simply wrong.

Evaluate the workflow, not the prose

Agent evaluation needs more than a final-answer rubric. Test whether the agent chose the right tool, used valid arguments, recovered from failure, stopped when it should, and avoided unnecessary actions.

MeasureQuestion
Task successDid the user’s goal complete?
Tool correctnessWere the right tools called with safe arguments?
Recovery rateDid the system handle tool and provider failures?
Unnecessary action rateDid it take steps that added risk or cost?
Human takeoverHow often did a person need to intervene?
Cost and latencyIs the workflow better than the baseline?

Include cases where the correct behavior is to ask, refuse, or stop. An agent that always acts may be less capable, not more.

Three useful patterns

Research assistant

The assistant searches approved sources, collects citations, and prepares a brief. It should show sources, distinguish draft synthesis from verified fact, and avoid treating retrieved instructions as permission.

Job-search assistant

It can filter roles, summarize requirements, and prepare a checklist. Editing personal materials, sending messages, or applying should require explicit user review.

Operations assistant

It can inspect dashboards, explain anomalies, and propose a next action. It should not mutate production state without a separate approval and audit path.

Each pattern benefits from bounded tool use. None needs unrestricted autonomy to be useful.

A safer implementation sequence

  1. Write the deterministic baseline.
  2. Define task success and unacceptable actions.
  3. Add one read-only tool.
  4. Log the proposed plan and tool call.
  5. Add a bounded write or draft-only tool.
  6. Require approval for consequential actions.
  7. Test prompt injection, malformed inputs, timeouts, and repeated runs.
  8. Compare against the baseline on task success, cost, latency, and takeover rate.
  9. Only then add another tool or more autonomy.

This sequence gives every increase in autonomy a reason and an acceptance test.

What this means for your career

Employers do not only need people who can attach the word “agent” to a demo. They need people who can decide whether autonomy is appropriate, design reliable tools, measure behavior, and protect users when the system is wrong.

A small bounded agent with clear permissions and evaluation is better career evidence than an impressive autonomous loop nobody can trust. Explain the baseline, the added value, and the boundary you refused to cross.

Frequently asked questions

What is the difference between an AI agent and a chatbot?

A chatbot generally responds to messages. An agent can select actions, use tools, observe results, and continue toward a goal. The exact boundary depends on the system design.

Do AI agents need multiple models?

No. One model can coordinate a bounded workflow. Multiple models may help with specialization, cost, or verification, but they add complexity and more failure surfaces.

Are agents safe without human approval?

Some low-risk, reversible actions may be automated after testing. Consequential actions should use authorization, validation, confirmation, and appropriate human review.

Should beginners build an agent first?

Usually start with a deterministic workflow. Add limited tool use only when you can explain why it improves the task and how you will detect failure.

How do I test prompt injection?

Put adversarial instructions in documents, web pages, emails, and tool results. Confirm that the agent treats them as untrusted data and cannot use them to bypass application permissions.

Earn autonomy with evidence

The strongest agent systems are not the most autonomous. They are the systems that make useful decisions inside a boundary people can understand, inspect, and recover from.

Start with a workflow. Add one tool. Measure it. Protect it. Then decide whether more autonomy is worth the added risk.

Learn RAG foundationsLearn AI evaluationSearch AI jobs

Frequently Asked Questions

A chatbot generally responds to messages. An agent can select actions, use tools, observe results, and continue toward a goal. The exact boundary depends on the system design.