WritingmateWritingmate

How to Build an AI Agent in 2026: A Step-by-Step Guide From No-Code to Custom

I built the same support-ticket triage agent three ways — no-code builder, custom agent with tools, and raw API — and timed the setup, control, and maintenance trade-offs of each.

Build your own custom agent on Writingmate
200+ models
One subscription
No API keys
Cancel anytime
Three side-by-side workflow diagrams showing a support-ticket triage agent built with no-code automation, a custom agent, and raw API function calling
Artem Vysotsky

Author, Co-Founder & CEO

Artem Vysotsky

Sergey Vysotsky

Reviewer, Co-Founder & CMO

Sergey Vysotsky

10 min read
Updated: 08/27/2026

I built the same AI agent three different ways this month, and it turned into one of those experiments where the "obvious" answer wasn't obvious at all. The task was simple on paper: read an incoming support message, check it against a knowledge base, and draft a reply for a human to approve. That's it. No multi-agent orchestration, no autonomous decision-making, nothing fancy. Just a triage assistant.

What surprised me wasn't that all three versions worked. It's that "worked" meant something completely different each time — different setup time, different failure modes, and wildly different amounts of babysitting six weeks later.

My name is Artem, and I write about AI tooling for Writingmate. I've spent the last few years bouncing between no-code automation platforms, custom GPT-style builders, and raw API code, usually because a client asked "why does this cost so much to maintain?" after I'd already shipped something. So instead of writing another generic "5 steps to build an AI agent" post, I actually built the same agent three times and timed myself. Here's what each route really costs you, and which one you should pick depending on who's on your team.

The Test Case: A Support-Ticket Triage Agent

Before comparing tools, I locked the spec so it stayed the same across all three builds:

  • Read an incoming message (email or chat text)
  • Search a small knowledge base (about 40 help-center articles) for relevant context
  • Classify the ticket by urgency (low, medium, high)
  • Draft a reply citing the source article, without sending it automatically

That last point matters. I wanted a "draft, don't send" agent on purpose, because that's the version most support teams actually want in year one — a second pair of eyes, not a robot that emails your customers unsupervised. If your team is more ambitious than that, the setup below still applies; you'd just flip on auto-send once you trust it.

Method 1: The No-Code Agent Builder

I started with a visual, drag-and-drop automation tool (the kind you'll find under names like n8n, Zapier Agents, or similar workflow builders). You wire together a trigger (new ticket), an AI step (classify + draft), a knowledge lookup node, and an output step.

Setup took about 40 minutes, most of which was fiddling with the knowledge-lookup node's matching settings rather than writing anything resembling code. The upside is real: if your team already lives in one of these tools for other automations, adding an AI step feels native. You get built-in triggers for Zendesk, Gmail, Slack, and dozens of other apps without touching an API key.

The catch showed up a week later. When I wanted the agent to weigh urgency differently for enterprise customers versus free-tier ones, I had to add a branching node, then another, then a third for an edge case where the sender's domain didn't match anything in the CRM. The workflow canvas went from "clean diagram" to "small maze" fast. No-code tools are genuinely great at the first 80% of an agent and noticeably harder to reason about once the logic branches more than two or three times.

Method 2: A Custom Agent With Instructions and Tools

Next I built the identical agent as a custom agent — one model, a written system prompt, and a defined set of tools, but no infrastructure to host or maintain. I did this in Writingmate, since it's the platform I use daily, but the shape applies to any tool-plus-instructions agent builder.

The required fields were just four: a name, a model, a description, and instructions (the system prompt). From there I uploaded the 40 help-center articles directly as a knowledge base — PDFs and markdown files up to 10MB each — and turned on tool access under Agent Integrations so the agent could search that knowledge base and use core integrations rather than me writing a retrieval pipeline by hand. I also set the temperature low (around 0.2) since I wanted consistent, citation-heavy drafts rather than creative ones, and capped the context length so old tickets didn't bleed into new ones.

Writingmate custom agent setup screen showing name, model, description, instructions, and knowledge base upload fields

Total setup time: about 25 minutes, and almost all of it was writing the instructions well — telling the agent exactly when to escalate versus draft a routine reply, and what tone to use. That's the real difference from the no-code version: the "branching logic" I struggled with in Method 1 became a paragraph of plain-English instructions here instead of a maze of nodes. When I needed to add the enterprise-vs-free-tier distinction, I edited two sentences in the system prompt and re-tested. No new nodes, no new canvas.

This is the approach I'd point most teams toward if you want full control over instructions and tool access without owning a hosting environment, a database, or an on-call rotation for when the agent falls over.

Method 3: Raw API and Function Calling

The last build was the "real" version — calling a model API directly and writing the tool-calling loop myself, the way OpenAI's own function calling documentation describes it. The flow is five steps: send the model a request with available tools, get back a tool call, execute it in your own code, send the result back, and get the final reply. I defined two tools — search_knowledge_base and classify_urgency — as JSON schemas, wrote the Python functions behind them, and wired up a small FastAPI endpoint to receive incoming tickets.

This took about four hours, not because the code is hard (it's genuinely maybe 150 lines) but because of everything around the code: handling malformed tool-call arguments, retrying on rate limits, logging every tool call for debugging, and deciding where the knowledge base actually lives — I ended up standing up a small vector store just for this test. Anthropic's own engineering team makes a point I kept running into myself: they say they "spent more time optimizing tools than the overall prompt" when building their own agent, and that tracked exactly with my experience. Getting the tool descriptions precise enough that the model didn't guess wrong parameters took more iteration than the classification logic itself.

The payoff is real control. I can deploy this anywhere, swap models with one line, add a fourth tool without touching a vendor's UI, and version the whole thing in git. But six weeks from now, I'm the one who gets paged if the vector store falls out of sync or a dependency update breaks the tool schema. That maintenance cost doesn't show up on day one — it shows up quietly, later.

"I spent three weeks building an agent for a client when a 200 dollar per month workflow would have done the job." — a commenter on r/AI_Agents

That thread on Reddit is worth reading in full if you're weighing these three routes — it's full of people describing agents that "fail quietly, by spending your money while you sleep," which is a much bigger risk with the raw API route than with a hosted agent that has its own usage limits baked in.

What Each Approach Actually Costs You

Here's the honest comparison, based on building the exact same triage agent all three ways:

Approach

Setup time

Who can build it

Control over logic

Ongoing maintenance

No-code builder

~40 min

Anyone on the team

Limited past 2-3 branches

Low, until logic gets complex

Custom agent (instructions + tools)

~25 min

Non-engineers with clear writing

High, via plain-English instructions

Low — edit a prompt, not a pipeline

Raw API + function calling

~4 hours

Requires a developer

Total — you own the whole stack

High — you own hosting, retries, logging, upgrades

The pattern that jumped out at me: setup time and long-term control move in almost opposite directions for the no-code and API routes, but the custom-agent middle ground breaks that trade-off. You get instruction-level control (rewrite behavior in a sentence, not a workflow diagram) without inheriting the API route's infrastructure bill.

How I Tested Each Version

I ran the same 25 sample tickets through all three builds — a mix of routine password resets, billing disputes, and two intentionally ambiguous messages that don't clearly belong to any single category. I checked three things for each: did it retrieve the right knowledge-base article, did it classify urgency correctly, and did the drafted reply actually sound like something a human would send without heavy editing.

All three passed on the routine tickets. The no-code build and the custom agent build both handled the ambiguous tickets reasonably well because I could tune the instructions/prompt directly. The raw API build needed one extra round of tool-description tuning before it stopped occasionally calling classify_urgency with a malformed argument — exactly the "tool design matters more than prompt design" lesson from Anthropic's building effective agents writeup.

Comparison table view of triage agent test results across no-code, custom agent, and API builds

"You can now build an AI agent that sends emails, scrapes websites, updates docs, and books meetings. But most people don't know about the AI agent builders." — @JafarNajafov on X

That's the trap, honestly. Most people default to whichever route they heard about first, not the one that fits the task. A support triage agent that drafts replies for human review doesn't need a custom-coded stack. A multi-step agent that needs to call five internal APIs and make judgment calls across systems probably does.

Decision Checklist: Which Approach Fits Your Team

After building this thing three times, here's the checklist I'd actually use before starting:

  • Pick no-code if: your team already lives inside that automation tool, the logic has at most two or three branches, and nobody on the team wants to touch a system prompt.
  • Pick a custom agent (instructions + tools) if: you want the logic controlled in plain language, you need a real knowledge base and tool access without standing up infrastructure, and you want to hand the agent off to a non-engineer for future tweaks.
  • Pick raw API + function calling if: you need to deploy inside your own infrastructure, chain the agent into an existing codebase, or the task genuinely needs custom logic that a prompt can't express — think multi-system orchestration with strict transactional guarantees.

For most support, research, and drafting agents — the kind that read something, check a reference, and produce a draft — the middle option covers 90% of what people actually need. I set up the same triage agent as a saved agent on Writingmate in under half an hour, gave it the knowledge base, turned on tool access, and it's been drafting replies ever since without me touching any code. If you want to compare model options before committing to one, the pricing page lists what's included at each tier, including how many custom agents and which models are available.

So here's my honest recommendation: don't start with the API route unless you already know you need it. Start with instructions and tools, see where the agent actually breaks, and only reach for raw code once you've hit a wall that a system prompt genuinely can't solve. In my experience, that wall shows up a lot less often than people assume when they start building.

See you in the next one!

Artem

Frequently Asked Questions

Artem Vysotsky

Written by

Artem Vysotsky

Ex-Staff Engineer at Meta. Building the technical foundation to make AI accessible to everyone.

Sergey Vysotsky

Reviewed by

Sergey Vysotsky

Ex-Chief Editor / PM at Mosaic. Passionate about making AI accessible and affordable for everyone.

Ready to experience the power of AI?

Access 200+ AI models, custom agents, and powerful tools - all in one subscription.