An AI agent is useful when a task requires choosing among several steps, interpreting information, and using tools within a defined boundary. It is not simply a chatbot with a more ambitious name, and it should not be given broad access merely because it can describe a plausible plan.
Consider an illustrative operations assistant asked to investigate why a shipment is delayed. It might inspect an order, check a carrier update, review an internal note, and draft a response. The useful result is an evidence-based explanation or a prepared next action. Issuing a refund, changing a delivery address, or contacting a customer introduces additional permissions and consequences.
This guide explains the difference between a fixed workflow and an agent, how tools and state should be designed, and what makes an agent suitable for production. The emphasis is on bounded responsibility and verifiable outcomes rather than a promise of unlimited autonomy.
Key takeaways
- Use an agent when flexible step selection solves a real problem that a simpler workflow cannot handle well.
- Keep permissions, budgets, and consequential action rules outside the model’s control.
- Verify the resulting system state rather than accepting the agent’s claim that a task is complete.
- Expand autonomy gradually after representative evaluations and operational safeguards are in place.
Distinguish an agent from a fixed workflow
A fixed workflow follows an explicit sequence or decision structure defined by the application. An agent has more discretion over which steps or tools to use in pursuit of a goal. Anthropic’s engineering guidance makes a similar distinction and recommends starting with simple approaches before adding complexity.
The distinction is practical rather than promotional. Extracting fields from an invoice, validating them, and routing exceptions may work well as a fixed pipeline. Investigating an ambiguous support issue across several systems may benefit from flexible tool selection. Both can use language models without needing the same architecture.
Ask where uncertainty exists. Is the input varied but the process stable? A model inside a workflow may be enough. Does the process itself depend on what is discovered? A bounded agent may be appropriate. Is the task already solved reliably by a deterministic rule? Keep the rule.
Document why agentic behavior is necessary for the selected use case. This prevents the system from acquiring planning loops, memory stores, and multiple agents before the team has evidence that any of them improve the customer or operational outcome.
Define the goal and a verifiable completion condition
A goal such as improve customer service is too broad for an individual agent task. A better goal is to assemble the evidence needed to explain a particular delayed shipment and produce a draft response for review. The narrower goal has identifiable inputs, boundaries, and a result that can be checked.
Specify what completion means. The investigation might require a current carrier status, a matching order identifier, a summary of relevant internal notes, and an explicit statement of unresolved uncertainty. A fluent paragraph without those elements should not count as success.
Define prohibited actions and escalation conditions. If the agent cannot identify the correct order, encounters conflicting records, or needs access outside its scope, it should stop or ask for help. The application should enforce these boundaries rather than relying only on instructions in a prompt.
Include a time, step, and cost budget. An agent that can continue searching indefinitely may never produce a useful result and can create unpredictable spending. A bounded task should return a clear incomplete state when it reaches a limit.
Design tools as narrow application interfaces
A tool should describe a specific capability with validated inputs and a predictable result. Retrieve an order by an authorized identifier is easier to control than execute an arbitrary query. Draft a support response is a different capability from send a message to any address.
Keep business rules inside the tool implementation or the service it calls. The model can propose an action, but the server must check permissions, resource ownership, valid state transitions, and limits. The tool should reject an invalid request even if the agent confidently explains why it wants to make it.
Return useful structured results. Include status, relevant data, and recoverable error information without exposing unnecessary fields. Distinguish not found, access denied, temporary failure, and invalid input where appropriate, so the agent can respond without guessing what happened.
Version tool contracts and test them directly. A small change in field meaning or error behavior can alter an agent’s decisions. Keep descriptions clear enough for the model while making the actual enforcement independent of how the model interprets those descriptions.
Manage state explicitly across the task
A conversation transcript is not a complete operational state model. Track the task identifier, initiating user, authorized scope, completed steps, pending actions, and relevant versions in application state. This makes retries and investigation possible even when the model’s context changes.
Separate observed facts from generated interpretations. A carrier status returned by a tool is evidence; the agent’s explanation of why it changed is an inference unless another source supports it. Preserve provenance so reviewers can distinguish the two.
Define how state survives interruptions. If a worker stops after creating a draft but before recording completion, the retry should discover the existing result rather than create another one. Use stable operation identifiers and durable checkpoints for consequential work.
Be cautious with long-term memory. Store only information that has a clear purpose, permission basis, and update or deletion process. A remembered customer preference can become stale or belong to a previous account context. Memory should not bypass current access checks or silently become a second source of truth.
An agent needs a stateful loop—and a way out
Treat retrieved content as untrusted input
An agent may read emails, documents, web pages, tickets, or tool results containing instructions. Those instructions are part of the data being inspected, not authority to change the task or its permissions. A malicious document can ask the agent to reveal information or call an unrelated tool.
Keep the trusted task definition and tool policy separate from retrieved text. Restrict which tools are available for the current operation, validate every call, and limit data returned to the scope needed. Prompt wording can help, but it is not a substitute for these application controls.
Test indirect instruction attacks in realistic content. A support ticket might include a request to ignore prior rules, while an attachment might contain a fabricated administrative instruction. The correct behavior should be assessed through actual tool activity and data exposure, not only the final answer.
Log security-relevant decisions with appropriate privacy controls. When a tool request is denied, the team should be able to understand the attempted operation and its context without retaining unnecessary sensitive material from the entire task.
Exploring an agent for a specific task?
Bring one workflow and its exceptions. We can help define where automation fits and where review belongs.
Use approval where consequences justify it
Separate preparation from execution. An agent can gather evidence, fill a form, or draft a change before a person reviews the proposed result. This keeps the human step focused on a concrete decision rather than requiring approval for every harmless read.
A meaningful approval identifies the target, action, important parameters, and expected effect. For a refund, that includes the account, amount, reason, and relevant policy context. A generic continue button is insufficient when the underlying proposal could change between review and execution.
Bind execution to the approved proposal and revalidate conditions that may have changed. Permissions, account state, or available inventory can become stale while an approval waits. The tool should detect that change and return an appropriate result instead of blindly applying an old plan.
Do not use human review as an excuse for poor preparation. Reviewers need concise evidence and clear uncertainty. If every output requires reconstructing the entire investigation, the agent may be shifting work rather than reducing it.
Plan for retries, cancellation, and partial completion
Multi-step tasks can fail after some actions have succeeded. Record those actions and provide a result that distinguishes completed, pending, and failed work. A single success or failure label can conceal the state a support team needs to recover.
Make side-effecting tools idempotent where possible. If a request times out after creating a ticket, retrying should not create another ticket. Use an operation key tied to the task and inspect existing state before repeating uncertain actions.
Define cancellation behavior. A user may stop a task while a tool call is in progress. The application should prevent further steps, explain any action already completed, and avoid claiming that cancellation reversed effects it could not undo.
Use compensation carefully for operations that can be reversed. A compensating action is often a new business operation, not a perfect erasure of history. Document what can be restored automatically and what requires review. These recovery rules should be designed before granting the agent write access.
Evaluate outcomes across representative tasks
Build a task set that reflects ordinary work, ambiguous inputs, missing information, denied access, and dependency failures. Include tasks where the correct result is to ask a question or stop. An agent that always produces an answer can appear productive while making unsupported decisions.
Check both the final output and the underlying state. Did the agent inspect the right order? Did it use permitted tools? Did it create exactly one draft? Did it avoid changing records outside the task? These checks make success more concrete than a general quality score.
Run repeated trials for tasks where behavior can vary. Record the model, prompt, tool versions, and relevant configuration so results can be compared. Use human review for judgments that cannot be expressed reliably through deterministic checks, and calibrate any model-based grading against reviewed examples.
Promote discovered failures into the evaluation set. The set should evolve with the product while preserving a stable core for comparisons. A successful demonstration is the beginning of evaluation, not evidence that the agent is ready for broad access.
Release autonomy in stages
Start with a read-only or draft-producing version for a bounded group of users. Observe task quality, escalation frequency, latency, and cost. This provides evidence about the agent’s reasoning and tool use without immediately exposing the business to every possible side effect.
Introduce write actions individually, beginning with reversible, low-impact operations whose behavior is well understood. Define limits and stop conditions for each capability. A successful read-only investigation does not automatically justify autonomous refunds or account changes.
Use a capability-level kill switch so a failing tool can be disabled while other useful functions remain available. Provide a fallback to the existing workflow and make the transition understandable to users and operators.
Review autonomy after changes in models, tools, policies, or customer scope. An agent’s reliability is a property of the complete configuration and environment. A new version should earn its production access through evidence rather than inheriting trust solely because the previous version performed well.
Assess value using completed work and review effort
Measure the total process: automated work, human review, exceptions, correction, and support. An agent that drafts quickly but produces frequent errors may not save time once reviewers verify every detail. Track successful tasks and the effort required to reach a dependable result.
Segment tasks by difficulty and consequence. Straightforward investigations may benefit substantially while complex cases remain better handled by people. The product can route work accordingly instead of pursuing a single automation percentage across all requests.
Use the results to simplify the system. Some agent-discovered patterns may become deterministic rules or better product interfaces. That is a successful outcome. The purpose of the agent is to improve work, and the best long-term implementation may use less autonomy once the process becomes better understood.
Frequently asked questions
Does an AI agent need multiple models or multiple agents?
No. A single model with a small set of well-designed tools may be sufficient. Additional agents introduce coordination, state, evaluation, and cost. Add them only when a specific decomposition improves measured task quality or operational behavior enough to justify that complexity.
Can an agent make business decisions independently?
Only within the scope the organization has deliberately authorized and the application enforces. Consequential actions need clear policies, permissions, limits, and appropriate review. The ability to generate a plausible plan is not evidence that an agent should have authority over every system involved.
What is the safest useful starting point?
A narrow read-only investigation or a draft-producing workflow with verifiable evidence and a clear handoff. It lets the team evaluate task understanding, retrieval, tool use, and review effort before introducing write actions. The scope should still be meaningful enough to test business value.
How do we know an agent is finished?
Define completion through observable requirements and resulting system state. Check the required evidence, output, and side effects rather than relying on the final message. If the task reaches a budget, permission, or uncertainty limit, return an explicit incomplete or escalated state.
Let’s work through your next step.
Tell us what you’re building, what you’ve tried, and where you need a hand. We’ll work with you to define a practical way forward.

