<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: theducttape.io</title>
    <description>The latest articles on DEV Community by theducttape.io (@theducttapeio).</description>
    <link>https://dev.to/theducttapeio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4160719%2F418de99b-3d66-48c7-8037-93a647f87acf.png</url>
      <title>DEV Community: theducttape.io</title>
      <link>https://dev.to/theducttapeio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/theducttapeio"/>
    <language>en</language>
    <item>
      <title>Ten more things that go wrong when you build with a team of AI agents (part 2)</title>
      <dc:creator>theducttape.io</dc:creator>
      <pubDate>Mon, 12 Oct 2026 01:45:32 +0000</pubDate>
      <link>https://dev.to/theducttapeio/ten-more-things-that-go-wrong-when-you-build-with-a-team-of-ai-agents-part-2-i5l</link>
      <guid>https://dev.to/theducttapeio/ten-more-things-that-go-wrong-when-you-build-with-a-team-of-ai-agents-part-2-i5l</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.toPART1_URL"&gt;Part 1&lt;/a&gt; covered the first ten: symptom fixes, hidden sharing, lost messages, "done" without proof, blurry approvals, shared workspaces, fading context, overlapping ownership, plausible inventions and environments that drift. Both posts come from running a small team of agents on one product, which I described in &lt;a href="https://dev.toFIRST_ARTICLE_URL"&gt;How I build a product alone with a team of seven Claude Code agents&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;These ten are quieter. They do not break the build; they waste a day, put the wrong decision on record, or turn up as a bill. Same format: what it looks like, why it happens, what helps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqluhp4kbbizwa82hslw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqluhp4kbbizwa82hslw.png" alt="Overview: ten more failure patterns of agent teams, each with its symptom and the fix" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  11. Agents compete for the same machine
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; a server one agent is using gets restarted by another. Two heavy jobs run at once and both time out. A test fails because another agent's test changed the same account.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; every agent assumes the machine is its own. Commands like "stop the server" or "reset the test data" are written for one person at one desk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; give each agent its own ports, its own test accounts and its own data where it can. Schedule the heavy work: builds, full test runs, recordings. Agents stop only processes they started, never by a broad pattern. And announce shared work: "the test server is busy for the next 40 minutes".&lt;/p&gt;

&lt;h2&gt;
  
  
  12. Agents put words in your mouth
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; "As you said, we will …" about something you never said. A decision appears in a document with your name on it, but it came from another agent's suggestion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; in a chain of messages, the origin of an idea gets lost. An agent that hears "this was decided" from another agent fills in the most likely decider: you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; log every decision with who actually made it, and when. When an agent cites you, ask for the message it comes from. Agents should write "I suggest" and "the product owner decided" in their own words, not "the human wants".&lt;/p&gt;

&lt;h2&gt;
  
  
  13. Time is harder than it looks
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; a test fails every night around midnight. A message says "tomorrow" and two agents read different days. A deadline in a document is an hour off.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; servers run on UTC, people do not. Agents know neither the human's time zone nor which "today" a sentence meant, and many tests quietly use the current date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; write absolute dates, with the time zone, in everything that matters. Report times in the human's local time. Give tests fixed dates instead of "now", and run them once near midnight on purpose.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In our case, the rule became simple: the server runs on UTC, every time reported to a human is local time.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  14. Agents stall silently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; an agent has been "working" for hours. In fact it asked a question at the end of a long output and is waiting for an answer nobody saw.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; asking and stopping is the safe default. But a question buried in the middle of a long report is easy to miss, and the agent cannot tell that nobody read it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; ask and keep going: let the agent do everything that does not depend on the answer, and make the question the first line, not the last. Collect open questions in one place the human checks. A short status line ("waiting for: X, since: 14:20") makes a stall visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  15. The human becomes the bottleneck
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; twenty small questions a day: which word, which colour, retry or not. Each takes a minute; together they take the day, and every agent waits for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; agents are told to ask when unsure, and they are unsure about many small things. Without a rule for what is small, everything goes to the top.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; let one coordinating agent take the small, reversible decisions and log them, so you can read them later and overrule one if needed. Write down what counts as small. Big or irreversible questions still come to you: anything public, money, deleting production data, secrets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwxxrbw5id6gpyej0yw8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwxxrbw5id6gpyej0yw8w.png" alt="Questions from agents go to a coordinating agent: small, reversible ones it decides and logs; big or irreversible ones go to the human" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  16. The written rules contradict each other
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; two documents give two answers to the same question. The rules file still describes how things worked last month. An agent follows an outdated rule perfectly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; rules get added, rarely removed. Each new rule is written with the current task in mind, not with all the older rules next to it. Agents read rules literally and cannot tell which one is stale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; one role that checks every new rule against the existing ones before anything is built on it. Update the rules in the same change that alters the behaviour they describe, not later. When two rules disagree, the agent asks instead of picking one.&lt;/p&gt;

&lt;h2&gt;
  
  
  17. Agents propose more than you need
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; every finished task comes back with five ideas for what to do next. Each one is reasonable. Together they turn a two-day feature into a two-week one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; agents are good at seeing what could be better and eager to be useful. They do not know which of their ideas serve the goal of this month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; a proposal is not a task. Keep a "not now" list and tie it to the current strategy: if an idea does not serve the goal, it goes on the list, with no guilt. Review the list now and then; most of it can stay there.&lt;/p&gt;

&lt;h2&gt;
  
  
  18. Secrets end up in the chat
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; an agent needs a key to continue, and the fastest way is to paste it into the conversation. Now it lives in the transcript, maybe in logs, maybe in a summary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; the work is blocked, the key is at hand, and the chat is right there. Nobody plans it; it happens in a hurry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; prepare a safe path before it is needed: the human writes the key into a local, ignored file, and the agent reads it from there without ever printing it. Agents should refuse to echo keys and ask for that path instead. A key that went through a chat counts as exposed: rotate it.&lt;/p&gt;

&lt;h2&gt;
  
  
  19. Quotas and costs surprise you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; in the middle of the month a limit hits: build minutes, an API quota, storage, a plan limit. Work stops, or a bill arrives that nobody expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; agents work much faster than people and repeat things without hesitation: one more build, one more full test run. Nobody adds it up until the limit does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; know your limits before you scale up. Measure what one run costs, set budgets and alerts, and put expensive actions behind a check. Spending money stays a human decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  20. One change ripples through everything connected
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; a repository moves, a key is rotated or a domain changes, and three other things break: a pipeline, an integration, a link in a document, a rule an agent still follows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; connections pile up quietly. Each one was set up once, by someone, for a reason nobody wrote down. The agent making the change sees only the change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; before any infrastructure change, list what is connected to it, make a backup, change one thing at a time, and check each item afterwards. Keep that list in a document, so the next change starts from it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftc4etqsxurzoljzt0502.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftc4etqsxurzoljzt0502.png" alt="One change in the middle, six connected places around it, each with a box to check" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The checklist
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F54gtxltc8bk4hxvery3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F54gtxltc8bk4hxvery3h.png" alt="Checklist: ten more questions for an agent team" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Does every agent have its own ports, accounts and test data?&lt;/li&gt;
&lt;li&gt;Is every decision logged with who actually made it?&lt;/li&gt;
&lt;li&gt;Are dates absolute, with a time zone?&lt;/li&gt;
&lt;li&gt;Does a waiting agent say so, first line, and keep working on the rest?&lt;/li&gt;
&lt;li&gt;Is it written down which decisions agents may take themselves?&lt;/li&gt;
&lt;li&gt;Are new rules checked against old ones, and updated with each change?&lt;/li&gt;
&lt;li&gt;Do proposals go to a "not now" list unless they serve the current goal?&lt;/li&gt;
&lt;li&gt;Is there a safe path for secrets, and are leaked ones rotated?&lt;/li&gt;
&lt;li&gt;Do we measure what a run costs, with a budget?&lt;/li&gt;
&lt;li&gt;Does every infrastructure change come with a map, a backup and a checklist?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Taken together with &lt;a href="https://dev.toPART1_URL"&gt;part 1&lt;/a&gt;, the pattern is the same: agents are fast, capable and literal. Most problems come from what they cannot see, such as other agents, the clock, the human's attention and the connections around a change. Most fixes make that visible and write it down.&lt;/p&gt;




&lt;p&gt;The agent team behind these posts builds &lt;a href="https://theducttape.io/?utm_source=devto&amp;amp;utm_campaign=agent-pitfalls-2" rel="noopener noreferrer"&gt;DuctTape.io&lt;/a&gt;, a diagram editor for AI architectures.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Ten things that go wrong when you build with a team of AI agents (part 1)</title>
      <dc:creator>theducttape.io</dc:creator>
      <pubDate>Sun, 11 Oct 2026 01:30:16 +0000</pubDate>
      <link>https://dev.to/theducttapeio/ten-things-that-go-wrong-when-you-build-with-a-team-of-ai-agents-part-1-dho</link>
      <guid>https://dev.to/theducttapeio/ten-things-that-go-wrong-when-you-build-with-a-team-of-ai-agents-part-1-dho</guid>
      <description>&lt;p&gt;Recently I wrote about &lt;a href="https://dev.toFIRST_ARTICLE_URL"&gt;how I build a product alone with a team of seven Claude Code agents&lt;/a&gt;. One piece of feedback on it stuck with me: the parts where the agents went wrong are usually the most useful for other builders.&lt;/p&gt;

&lt;p&gt;So this post, and &lt;a href="https://dev.toPART2_URL"&gt;part 2&lt;/a&gt;, are only about those parts. Not our specific bugs, but the patterns behind them. If you run more than one agent on the same project, you will meet most of these, whatever model or tool you use. For each one: what it looks like, why it happens, and what helps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb338bk214y2i67cxae7o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb338bk214y2i67cxae7o.png" alt="Overview: ten failure patterns of agent teams, each with its symptom and the fix" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Agents fix the symptom, not the cause
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; the same kind of failure comes back after every fix. Each fix is reasonable on its own: a retry here, a longer timeout there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; an agent sees the error in front of it, not the system around it. Its job, as it understands it, is to make this failure go away. It rarely asks whether the environment it runs in is the problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; after the second fix for the same kind of failure, stop and look one level down. Machine, memory, network, data, versions. Ask the agent explicitly: "What would have to be true about the environment for this to keep happening?"&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In our case, random test failures turned out to be a machine that ran out of memory. No code change would have fixed that.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Scaling up exposes what was shared all along
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; you add a second worker, a second agent or a faster machine, and things that always worked start to fail.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; slowness hides coupling. Two tasks that use the same account, file, port or record never collided because they never ran at the same time. More power makes them meet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; before you scale, list what is shared: test accounts, folders, ports, databases, rate limits. Give each parallel task its own, or make the sharing explicit. And treat the new failures as a gift: they were bugs before, just invisible.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In our case, running tests in parallel showed that two of them had been sharing one account the whole time.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. "Sent" is not "read"
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; an agent hands work to another one, then waits. The other agent never saw the message, or saw it and moved on. Work stalls, and nobody notices for hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; messages between agents fail in boring ways: a send error, a receiver that is busy or restarted, a message dropped as a duplicate. The sender treats "I sent it" as "it is handled".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; every handover that matters gets a short acknowledgement back. Decisions go into a shared document, not only into a message. And a sender who hears nothing follows up instead of assuming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3iduew850pvqfqx5crvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3iduew850pvqfqx5crvq.png" alt="A handover with and without acknowledgement: without it, the sender waits on a message nobody read; with it, the receiver confirms and the decision lands in a document" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. "Done" without proof
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; an agent reports a task as finished. It is not, or only partly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; reporting success is the most likely end of a task, so it is the most likely thing an agent writes. Checking the result is an extra step it skips when nothing forces it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; define done as evidence. A test run, a screenshot, a link that opens, a measured number. Better still, let a different agent check the result, one whose job is to measure, not to build.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In our case, an agent once reported a note as written before it had written it.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Approvals get blurry when they are passed along
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; one agent tells another "the human agreed". The second agent either acts on it and goes too far, or does not trust it and waits forever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; an agent cannot know what you actually said to someone else. A relayed "yes" loses its scope on the way: agreed to what, exactly, and for how long?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; decide up front who may approve what, and write it down. Make approvals explicit and marked, with what exactly is approved. Keep a short list of things only a human can approve, no matter who asks: anything public, money, deleting production data, secrets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F60c8l2r50exxjqxry5ae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F60c8l2r50exxjqxry5ae.png" alt="A relayed yes versus a marked approval: the relayed one loses its scope, the marked one says who approved what" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. One shared workspace leaks half-finished work
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; an agent's test fails because of another agent's unfinished change. A commit includes files that belong to someone else. A build breaks for reasons nobody in the room caused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; several agents in one working copy see each other's work in progress, all of it, all the time. Tools assume one person per workspace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; isolate work in progress. A separate branch or working copy for anything larger, commits that name their files explicitly, and clear rules about who may touch shared folders. Treat the shared copy like a shared kitchen: clean up what you started.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Context fades in long sessions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; a long-running agent forgets a decision from yesterday, repeats a question, or confidently continues with an outdated plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; context is limited. Long sessions get summarised or trimmed, and summaries drop details: a caveat, an exception, the reason behind a rule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; anything that must survive goes into a file, not just the conversation. A living spec, a status document, a short handover note before a long pause. When an agent comes back, it reads the documents first, not its memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Overlapping ownership
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; two agents change the same file, write two versions of the same text, or undo each other's work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; agents are helpful. If they see something they could fix, they fix it, even when it is someone else's area.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; one owner per area, written down where every agent reads it. Others may suggest, the owner decides and changes. When an agent needs something outside its area, it asks the owner instead of doing it itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Plausible inventions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; a menu item that does not exist, a quote nobody said, a number that sounds right, a date that is off by a day. Often in a text that reads perfectly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; agents complete patterns. When a fact is missing, the most plausible version fills the gap, and plausible is hard to spot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; ask for sources on anything a reader will act on: steps, names, numbers, quotes. Make "not verified" an acceptable answer, so the agent has no reason to guess. Review facts separately from style.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In our case, checking every step of a setup guide against official documentation showed that a feature we wanted to recommend was still a limited beta.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Test and production drift into each other
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What it looks like:&lt;/strong&gt; a test writes into real data, a script meant for staging runs against production, or a test environment slowly depends on something live.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens:&lt;/strong&gt; agents use whatever access they are given. If a production connection is within reach, sooner or later something uses it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What helps:&lt;/strong&gt; keep environments strictly apart, with separate data, separate storage and separate credentials. Give each agent only the access its area needs. Make the test environment the default, and production the exception that needs a human.&lt;/p&gt;

&lt;h2&gt;
  
  
  The checklist
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Farsd8a7secm5dadtkjx7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Farsd8a7secm5dadtkjx7.png" alt="Checklist: ten questions to ask before you add another agent" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After two fixes for the same failure, do we look at the environment?&lt;/li&gt;
&lt;li&gt;Do we know what parallel tasks share before we scale?&lt;/li&gt;
&lt;li&gt;Does every important handover get an acknowledgement?&lt;/li&gt;
&lt;li&gt;Does "done" always come with evidence?&lt;/li&gt;
&lt;li&gt;Is it written down who may approve what, and how an approval looks?&lt;/li&gt;
&lt;li&gt;Is work in progress isolated from everyone else's?&lt;/li&gt;
&lt;li&gt;Does every decision that must survive live in a file?&lt;/li&gt;
&lt;li&gt;Does every area have exactly one owner?&lt;/li&gt;
&lt;li&gt;Do facts a reader will act on have a source?&lt;/li&gt;
&lt;li&gt;Are test and production strictly apart, with narrow access?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these is specific to one model or tool. They are what happens when several capable but forgetful collaborators share one project. Most of the fixes are the same ones a good human team uses: clear ownership, written decisions, proof instead of status, and a few things only one person can approve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.toPART2_URL"&gt;Part 2&lt;/a&gt; has ten more: agents competing for one machine, putting words in your mouth, time zones, silent stalls, the human as bottleneck, and what happens when one change ripples through everything connected to it.&lt;/p&gt;




&lt;p&gt;The agent team I described builds &lt;a href="https://theducttape.io/?utm_source=devto&amp;amp;utm_campaign=agent-pitfalls-1" rel="noopener noreferrer"&gt;DuctTape.io&lt;/a&gt;, a diagram editor for AI architectures.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>How I build a product alone with a team of seven Claude Code agents</title>
      <dc:creator>theducttape.io</dc:creator>
      <pubDate>Wed, 07 Oct 2026 23:30:46 +0000</pubDate>
      <link>https://dev.to/theducttapeio/how-i-build-a-product-alone-with-a-team-of-seven-claude-code-agents-1om2</link>
      <guid>https://dev.to/theducttapeio/how-i-build-a-product-alone-with-a-team-of-seven-claude-code-agents-1om2</guid>
      <description>&lt;p&gt;Someone in a founder group I am part of asked a good question: how do you let several agents work on one product in parallel without them stepping on each other, and without the token bill getting out of hand?&lt;/p&gt;

&lt;p&gt;I have been doing exactly that for a while. I build DuctTape.io, a diagram editor for AI architectures, as a single person. The rest of the team are Claude Code agents. This post is the honest version of how that works: the setup, the rules, what broke, and what I would tell anyone starting today.&lt;/p&gt;

&lt;h2&gt;
  
  
  The team
&lt;/h2&gt;

&lt;p&gt;Seven Claude Code sessions run in parallel on one server. Each is a long-running session with a name, a role and a clear area it owns. They do not start fresh for every task; they stay open for days and keep their context.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feknhu9ds57r3qqwwz7p0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feknhu9ds57r3qqwwz7p0.png" alt="The team: seven agent sessions around one human who decides. The product owner hands work to requirements, the developers, marketing and UX review; customer success brings feedback back" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Product owner.&lt;/strong&gt; Decides what gets built and in which order, and answers product questions from the others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requirements.&lt;/strong&gt; Writes every decision into the spec, a living document that is the single source of truth for scope.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer.&lt;/strong&gt; The only session that changes the web app code. Writes the code and the tests, runs the test suite and ships.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desktop developer.&lt;/strong&gt; Builds a desktop app for Windows, macOS and Linux in its own repository. The newest role: it came in when a clearly separate second job appeared.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marketing.&lt;/strong&gt; Website copy, e-mails, posts, articles, videos. Prepares everything, publishes nothing on its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UX review.&lt;/strong&gt; Clicks through the real build, measures, and files findings with a number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer success.&lt;/strong&gt; Reads user feedback, reports and requests. Read-only: it can look, it cannot change anything.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then there is me. I decide.&lt;/p&gt;

&lt;p&gt;The direction of work is simple. I talk to the product owner. The product owner sets priorities and hands work to the others. Requirements writes it down, the developers build it, UX review measures it, marketing tells the world. Customer success brings what users say back to the product owner.&lt;/p&gt;

&lt;h2&gt;
  
  
  How they work together
&lt;/h2&gt;

&lt;p&gt;Three things hold it together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Messages between sessions.&lt;/strong&gt; The sessions can send each other short messages. "This is live." "Please write the texts for the contact form, German and English." "The test server is busy for the next 40 minutes, please do not record." Most coordination happens this way, without me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documents as the source of truth.&lt;/strong&gt; The spec, a UX review document with every finding and its status, and a customer success document. Agents forget; documents do not. When a session's context runs out, it reads the documents again and continues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project rules and memory.&lt;/strong&gt; A &lt;code&gt;CLAUDE.md&lt;/code&gt; in the repository holds the rules every session follows: wording ("component", never "block"), how to commit, which folders belong to whom, which conventions differ from what the model learned in training. Each project also has a small memory of decisions and preferences that survive across sessions.&lt;/p&gt;

&lt;p&gt;Here is how one piece of work typically travels, from my idea to a live feature:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feuxww1wudrdiyfwxmfek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feuxww1wudrdiyfwxmfek.png" alt="How a request travels from the human to a live feature" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A recent example: I wanted a third kind of animation on connections in diagrams, for files and uploads. I told the product owner. The product owner asked marketing for the name and the one-line explanation, and requirements for the spec entry. Marketing proposed "Document" and which example architectures should use it; the product owner approved; requirements wrote it down. UX review raised three objections, the product owner settled them, and it is now in the developer's queue. I saw the decisions, not the twenty messages in between.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where a human has to say yes
&lt;/h2&gt;

&lt;p&gt;The agents can do almost everything. There are a few things they are not allowed to do on their own, and these rules matter more than any prompt:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbn8ho3hegft0j0p1ua2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftbn8ho3hegft0j0p1ua2.png" alt="The approval points: what agents prepare, what only a human releases" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anything public.&lt;/strong&gt; Posts on LinkedIn, X or DEV, a published article, a video upload. Agents write the draft; I press the button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Releases.&lt;/strong&gt; Agents may prepare a release draft with the notes. Publishing it is mine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production data.&lt;/strong&gt; Deleting or changing production data needs my explicit yes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Money.&lt;/strong&gt; Nothing that costs money happens without me.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secrets.&lt;/strong&gt; Keys and tokens are mine. An agent that needs one asks; it does not go looking.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One rule turned out to be important: a "yes" from one agent to another only counts when it is a real, marked approval. The product owner may release work inside the team, and it writes "approval" and what exactly it approves. Anything public still comes to me. An agent cannot know what I actually said, so a casual "the founder agreed" in a message is not enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  What went wrong
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Flaky end-to-end tests.&lt;/strong&gt; For days the test suite failed at random. Clicks that missed, connections that reset, a dev server that died mid-run. The agents tried retries, longer timeouts, smaller test batches. The real cause was boring: the server was too small. Two cores and 8 GB of memory, shared by six sessions, a production build and a headless browser. The kernel killed processes when memory ran out. Full runs took 30 to 40 minutes when they finished at all; the worst one hung for more than 70 minutes. After upgrading to four cores and 16 GB, the chains of timeouts were gone. A full run takes about as long as before, but every run finishes.&lt;/p&gt;

&lt;p&gt;What remained were three real test bugs. We tried two parallel workers on the bigger machine, and the run dropped to about 15 minutes, but two tests turned out to share one account. On the small machine they had never run at the same time. A faster machine does not only make tests faster, it also shows you which ones depended on being slow. We went back to one worker until those tests are fixed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxeybumpzwx78fmp2yta3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxeybumpzwx78fmp2yta3.png" alt="Full test run: 29 to 41 minutes with random timeouts on 2 cores and 8 GB, no timeouts and every run finishing on 4 cores and 16 GB, about 15 minutes with two workers, which exposed two tests sharing an account" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The lesson: when agents keep fixing symptoms, check the machine they run on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Messages that did not arrive.&lt;/strong&gt; Some sends between sessions failed with an error, one message was dropped by the receiver as a duplicate, and one session was not reachable at all for a while. Work then waited for an answer nobody had seen. Now every important handover gets a short confirmation back, and the shared documents record decisions, so nothing depends on a single message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Done" that was not done.&lt;/strong&gt; An agent will happily report a task as finished before checking the result. The marketing agent once reported a note in the plan as written before it had written it, and the product owner once told another agent a message had been delivered before checking; the send had failed. My rule since then: show me proof. A screenshot, a test run, a link that works, a measured value. The UX review session exists partly for this reason: it measures the real build, not the developer's description of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Too much in one turn.&lt;/strong&gt; Long sessions accumulate context. When it runs out, the session is summarised and continues, and small details can get lost in the summary. Writing the state down in the documents, not only in the conversation, solved most of this.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about the cost?
&lt;/h2&gt;

&lt;p&gt;This was the second half of the question, so here is what I actually do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A subscription, not pay-per-token.&lt;/strong&gt; All sessions run on a Claude subscription with a fixed monthly price. That makes the cost predictable: I pay the same whether the agents have a quiet day or a busy one. The limit is usage within the plan, not a growing invoice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Different models for different roles.&lt;/strong&gt; Not every role needs the strongest model. Each session runs on the model that fits its work: the most capable where the work is hardest, a lighter one where it is routine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Seven sessions open, two or three working.&lt;/strong&gt; All seven sessions stay open, but most of the time only two or three are actively working. The others are waiting: for a message, for a build to finish, for my approval. An idle session costs almost nothing. The approval points act as a natural brake, because nothing public moves until I have looked at it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documents instead of long context.&lt;/strong&gt; Agents that re-read a focused document need less context than agents that drag a whole history around. Clear ownership also prevents duplicate work: two sessions never build the same thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would tell someone starting
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Give every agent one area it owns,&lt;/strong&gt; and write it down. Most coordination problems are ownership problems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep the source of truth outside the chat.&lt;/strong&gt; A spec and a few living documents beat any amount of context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define the approval points before the first agent writes anything.&lt;/strong&gt; Public, money, production data, secrets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask for proof, not for status.&lt;/strong&gt; "Done" means a screenshot, a test run or a link.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size the machine for the agents plus everything they run.&lt;/strong&gt; Builds, browsers and tests need memory too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start with fewer agents than you think.&lt;/strong&gt; Add a role when one session clearly has two jobs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It is not magic, and it is not autonomous. It is a small team with very clear rules, where one person decides and the agents do most of the work.&lt;/p&gt;




&lt;p&gt;If you want to see what this team builds: &lt;a href="https://theducttape.io/?utm_source=devto&amp;amp;utm_campaign=agent-team" rel="noopener noreferrer"&gt;DuctTape.io&lt;/a&gt; is a diagram editor for AI architectures, and your own agents can draw in it over MCP.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>10 AI reference architectures you can copy</title>
      <dc:creator>theducttape.io</dc:creator>
      <pubDate>Mon, 05 Oct 2026 09:38:34 +0000</pubDate>
      <link>https://dev.to/theducttapeio/10-ai-reference-architectures-you-can-copy-22e2</link>
      <guid>https://dev.to/theducttapeio/10-ai-reference-architectures-you-can-copy-22e2</guid>
      <description>&lt;p&gt;Most AI architecture diagrams are grey rectangles with "LLM" written on one of them. You can read them only if the person who drew them is in the room.&lt;/p&gt;

&lt;p&gt;Below are ten architectures that show up in almost every AI project, drawn so that every component has a defined role: a model, a vector database, an agent, an MCP server, a guardrail. They are vendor-neutral on purpose. Replace the generic blocks with whatever you actually run.&lt;/p&gt;

&lt;p&gt;Each diagram is interactive. Follow the link under it to pan, zoom and export it as PNG or SVG. No account needed.&lt;/p&gt;

&lt;p&gt;Disclosure: we drew these with &lt;a href="https://theducttape.io/?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;DuctTape.io&lt;/a&gt;, the diagram editor we build. The architectures themselves are common patterns and not tied to the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. RAG architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzo8exxoyd32j9uyyp9nr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzo8exxoyd32j9uyyp9nr.png" alt="RAG architecture" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A RAG system has two paths. The ingestion path loads documents, splits them into chunks, turns each chunk into a vector with an embedding model and stores it in a vector database. The query path takes the user's question, retrieves the most similar chunks and sends them to the LLM together with the question. The diagram shows both paths meeting at the vector database. Use it as the starting point for any assistant that has to answer from your own documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; You need answers grounded in your own documents and can live with semantic search only.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/rag-architecture?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Advanced RAG with hybrid search and reranking
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1k7e4ubd5lfpwc20rf15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1k7e4ubd5lfpwc20rf15.png" alt="Advanced RAG with hybrid search and reranking" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basic RAG misses exact terms such as product codes or names. Hybrid search runs a vector query and a keyword query (BM25) side by side. A reranker scores the merged candidates against the question and passes only the top few to the answer model. A small model can rewrite the question first, and tracing records what was retrieved for each answer. This is the usual next step when a basic RAG setup returns the wrong passages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Basic RAG returns the wrong passages, or users search for exact terms such as product codes and names.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/advanced-rag?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. AI agent with MCP servers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmfund8yn3xk45ryv1qgr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmfund8yn3xk45ryv1qgr.png" alt="AI agent with MCP servers" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Model Context Protocol gives an agent a standard way to discover and call tools. In this architecture the agent talks to one MCP server per backend system: code, tickets and data. Each server holds its own credentials and exposes only what the agent may do, for example read-only access to the database. The LLM decides which tool to call; the conversation state lives in short-term memory. Swap in your own servers to document what your agent can touch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Your agent needs to act on several systems and you want one place per system that defines what it may do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/ai-agent-mcp?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Multi-agent system: orchestrator and workers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5k5diwwghoy5b3k4zd2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5k5diwwghoy5b3k4zd2w.png" alt="Multi-agent system: orchestrator and workers" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the orchestrator-worker pattern one agent breaks a task into steps and hands each step to a specialised worker. Here a research agent searches the web, a coding agent runs code in a sandbox, and a review agent checks the result before a human approves it. The pattern pays off when sub-tasks need different tools or different prompts. It also costs more tokens than a single agent, so start with one agent and split only where it helps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Sub-tasks need different tools or prompts. If one agent can do the job, stay with one agent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/multi-agent-system?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. LLM gateway with model fallback
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcic0kjjgygheom46s0oc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcic0kjjgygheom46s0oc.png" alt="LLM gateway with model fallback" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An LLM gateway is the single entry point for every model call in your company. Applications, batch jobs and agents send requests to the gateway instead of to a provider. The gateway answers repeated questions from a semantic cache, routes simple tasks to a small model, and falls back to a second model when the primary one fails or is rate limited. Because every call passes through it, cost and latency are traced in one place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; More than one team or application calls models, and you want caching, fallback and cost tracking in one place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/llm-gateway?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Guardrails and human-in-the-loop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flbnibkgsuuab66tzxegf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flbnibkgsuuab66tzxegf.png" alt="Guardrails and human-in-the-loop" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Guardrails sit on both sides of the model. Input guardrails reject prompt injection and off-topic requests; a PII filter redacts personal data before it reaches the model. Output guardrails check the draft answer against policy. Actions that cannot be undone, such as a refund or an outgoing e-mail, wait for a human approval. Every decision is written to an audit log. The diagram is a template for systems that must be explainable to compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; The system handles personal data or can trigger actions that cannot be undone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/guardrails-human-in-the-loop?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. LLM observability and evaluation pipeline
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy53p9h6g3cdorx4avfx8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy53p9h6g3cdorx4avfx8.png" alt="LLM observability and evaluation pipeline" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You cannot improve an LLM application you cannot see. This architecture records every model call as a trace and stores it. Online evals score a sample of live traffic and raise alerts. Interesting traces and user feedback are curated into an evaluation dataset. Offline evals run that dataset in CI whenever a prompt or model changes, so a regression is caught before release. Prompts live in a registry, not in the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; You change prompts or models regularly and want to know whether a change made things better or worse.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/llm-observability-evals?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Customer support chatbot architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frb79z9t5dycmottwngnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frb79z9t5dycmottwngnb.png" alt="Customer support chatbot architecture" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A support chatbot needs three things beyond a model: knowledge, actions and an exit. Knowledge comes from a vector index of the help center. Actions are tools, here an order lookup against the shop and CRM API. The exit is the handoff to a human agent when the customer asks for it or the bot is unsure. Conversation state is kept in a session store so the customer does not have to repeat themselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Support questions are repetitive, answers exist in a help center, and a human must stay reachable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/customer-support-chatbot?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Voice agent architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3fvk8nzz4gqwqitkoonr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3fvk8nzz4gqwqitkoonr.png" alt="Voice agent architecture" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A voice agent is a pipeline that has to finish in well under a second. Audio from the phone line is streamed to a speech-to-text model. The agent receives the transcript, calls the LLM and, if needed, tools such as a booking system. The reply is streamed through a text-to-speech model back to the caller. Call context is held in short-term memory. The diagram marks the two streaming edges where latency matters most.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; The conversation happens on the phone and latency decides whether it feels natural.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/voice-agent?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Document processing pipeline with LLMs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbihc77ek14mcgqqo4zjs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbihc77ek14mcgqqo4zjs.png" alt="Document processing pipeline with LLMs" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Invoices, contracts and forms arrive as PDFs and scans. A queue decouples the inbox from the workers. Each worker runs OCR and parsing, then asks an LLM to extract the fields as JSON. A validation step checks the result against a schema. Valid records go to the database; low-confidence results go to a review queue where a person corrects them. The pattern scales by adding workers and keeps humans on the difficult cases only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to use it:&lt;/strong&gt; Documents arrive in volume and the result has to land in a database as structured records.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://theducttape.io/examples/document-processing-pipeline?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;Open the interactive diagram&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use these
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Pick the diagram closest to your system.&lt;/li&gt;
&lt;li&gt;Redraw it with your own components. The generic "LLM" becomes the model you call, the "vector DB" becomes the store you run.&lt;/li&gt;
&lt;li&gt;Share the link in the design review, the README or the customer call, instead of a screenshot that is outdated the next day.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All ten are collected at &lt;a href="https://theducttape.io/examples?utm_source=devto&amp;amp;utm_campaign=launch" rel="noopener noreferrer"&gt;theducttape.io/examples&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Which architecture is missing from this list? Tell us in the comments and we will draw it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>rag</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
