A 40-person logistics company in Columbus had a problem that looked small and wasn't. Every morning, an operations coordinator spent the first two hours of her day copying shipment statuses from three carrier portals into a spreadsheet, flagging delays, and emailing the affected customers. Two hours, every day, one person. When she took vacation, the whole thing fell over. The company didn't need more staff. It needed an AI agent that could do the copying, the flagging, and the drafting on its own.
That's the difference between a chatbot and an agent. A chatbot answers. An agent acts. It reads data, makes decisions, uses tools, and completes multi-step work with limited supervision. Building one for your business isn't a research project anymore, but it isn't a weekend either. Here's how to do it properly.
Start with the workflow, not the model
The most common mistake is picking a model first. Teams get excited about a capable LLM, then go hunting for something to point it at. Reverse that. The workflow comes first, and the best workflow to automate has four traits:
- It's repetitive. Someone does it dozens of times a week.
- It's rule-heavy but judgment-light. The steps are knowable, even if there are many of them.
- It touches systems, not just text. It reads a CRM, updates a ticket, sends an email.
- A wrong answer is recoverable. You're not automating wire transfers on day one.
The Columbus coordinator's morning routine fits all four. Map it as a flowchart before you write a line of code. Where does data come from? What decisions get made? What's the output? If you can't draw it, the agent can't run it. And if a step secretly depends on a human "just knowing" something, that's the step that will break in production.
Write the workflow down as explicit steps. "Log into carrier portal, pull shipments updated in last 24 hours, compare promised delivery date to current ETA, if the gap exceeds one day, draft a notification." That level of specificity becomes the agent's instructions later. Vague workflows produce vague agents.
Give the agent tools and the right permissions
An agent is only as capable as the tools you hand it. A tool is any function the agent can call: query a database, send an email through your provider, create a ticket, look up an order. Modern agents decide which tool to use and when, based on the task in front of them.
Two principles matter here. First, scope permissions tightly. The shipment agent needs read access to carrier data and permission to draft emails. It does not need write access to your billing system. Give each agent the narrowest set of tools that lets it finish the job. This is the single biggest lever on how safe your deployment is.
Second, prefer read and draft over write and send, at least early on. An agent that drafts customer emails for a human to approve delivers most of the time savings with a fraction of the risk. You can widen its autonomy once you trust it. This is exactly the kind of tradeoff we work through with clients when we build custom AI software around an existing tool stack rather than forcing a rip-and-replace.
If you're wiring an agent into a CRM, a help desk, and email all at once, the integration work is usually larger than the model work. Budget for it. The demo takes an afternoon. The production integration takes weeks.
Build in guardrails before you build in autonomy
Guardrails are the rules the agent can't break no matter what it decides. They're not the same as the instructions in the prompt. Instructions say "please stay on topic." Guardrails say "this action is physically impossible for you to take."
Practical guardrails for a first agent:
- Action allowlists. The agent can only call the specific tools you registered. Everything else returns an error.
- Spend and volume caps. No more than 200 emails a day. No refund over a set dollar amount without escalation.
- Human approval gates. Certain actions pause and wait for a person to click approve.
- Immutable logging. Every decision and tool call is recorded somewhere the agent cannot edit.
Guardrails are what let you sleep at night when an autonomous system is acting on your behalf. They deserve their own design pass, not a footnote. We cover the full playbook in our guide to keeping AI agents accountable, but the short version is: decide what the agent must never do, and make it structurally impossible rather than merely discouraged.
Evaluate the agent like you'd evaluate a new hire
Here's where most builds go wrong. Someone runs the agent three times, it works, and they ship it. Three successes tell you almost nothing. You need an evaluation set: a collection of real cases, including the weird ones, with known correct outcomes.
Pull 50 to 100 real examples from the workflow's history. For the shipment agent, that's 50 past mornings of carrier data with the notifications a human actually sent. Run the agent against all of them and measure:
- Accuracy. Did it flag the right delays and skip the on-time shipments?
- False positives. Did it alarm customers about shipments that were fine? These erode trust fast.
- False negatives. Did it miss a real delay? Usually the more expensive error.
- Recovery. When a portal was down or data was malformed, did it fail loudly or silently do the wrong thing?
Set a bar before you look at results. "The agent must match the human on at least 95% of cases and never miss a delay of more than two days." If it clears the bar, you have evidence, not a hunch. If it doesn't, the eval tells you exactly which cases to fix. Keep the eval set around forever; you'll rerun it every time you change the prompt or swap the model.
Deploy narrow, then widen
Launch to one team, one region, or one customer segment. Keep a human in the loop reviewing outputs for the first few weeks. Watch the logs. The agent will do things you didn't anticipate, and a narrow deployment means those surprises are cheap.
Instrument everything. You want dashboards showing volume, escalation rate, approval rate, and error rate. When the escalation rate is stable and low and the approvals are rubber stamps, that's your signal to widen the autonomy and reduce the human review. This is the natural graduation from "agent that drafts" to "agent that acts."
Build vs. buy
The honest question: should you build this at all? Buy when your workflow is common and a packaged product already does it well. Off-the-shelf tools exist for standard support deflection, meeting notes, and lead routing. If your problem looks like everyone else's problem, buy.
Build when the workflow is specific to how your business works, when it touches proprietary systems, or when the automation is a competitive advantage rather than a cost center. The Columbus company's morning routine wove together three specific carrier portals and their own customer database. No packaged product knew that shape. That's a build.
There's a third path that most mid-market companies land on: build on top of a platform rather than from scratch. You get the model, the tool-calling framework, and the guardrail infrastructure off the shelf, and you supply the workflow logic and integrations. It's faster than pure build and more flexible than pure buy. When we scope engagements, that's usually the sweet spot, and it's why our pricing is structured around outcomes rather than seat licenses.
Whichever path you choose, the sequence stays the same: workflow, tools, guardrails, evaluation, narrow deployment. Skip the eval and you're gambling. Skip the guardrails and you're gambling with someone else's money. Do them in order and the logistics coordinator gets her mornings back, and the company gets an operation that doesn't collapse when someone takes a week off.
Frequently Asked Questions
How long does it take to build a production AI agent?
A working prototype for a well-defined workflow takes days. Production readiness, meaning integrations, guardrails, an evaluation set, and monitoring, typically takes four to twelve weeks depending on how many systems the agent has to touch. The model work is the fast part; the integration and testing work is where the calendar goes.
What's the difference between an AI agent and a chatbot?
A chatbot responds to messages within a conversation. An agent takes actions: it uses tools, queries systems, makes multi-step decisions, and completes work with limited supervision. A chatbot tells a customer their order is delayed; an agent detects the delay, drafts the notification, and updates the record.
Do I need to train my own model to build an agent?
Almost never. Modern agents are built on top of existing capable models, and the value you add is the workflow logic, the tool integrations, and the guardrails. Training a custom model is expensive and rarely necessary for business process work. Focus your effort on the surrounding system.
How do I know if my agent is safe to let run without supervision?
You earn that trust with data. Run the agent against a large evaluation set of real cases, deploy it narrowly with human review, and watch the escalation and error rates. When human approvals become rubber stamps and errors stay near zero over weeks, you can safely widen its autonomy. Hard guardrails stay in place regardless.
Should I build one big agent or several small ones?
Start with one agent for one workflow. It's easier to evaluate, debug, and trust. You move to multiple coordinated agents only when a single agent is juggling too many unrelated responsibilities and the instructions start conflicting. Get one right before you orchestrate several.