Home Works Services AI Blog About Contact

AI Workflow Notes · AI Workflow MOFU

AI Agent Teams: 5 Patterns for Solo Founders

Five concrete multi-agent patterns I run daily in my one-person studio, with skill file structures and real failure modes.

Keng · · ~ 8 min read · ai agentsclaude codemulti-agent workflowsolo founderagent architectureautomation patternsskill design

Tuesday, 11pm. A client LINEs me: “Quote the year-end event? 3 cameras, livestream, drone.” I’m in bed. Phone buzzes once. By morning there’s a draft quote in ~/tzukao_inbox/pending/ with the hourly-rate math already checked against my 2,600 NTD/hr floor. I edit two lines and send. Human time: 4 minutes.

That flow used to eat 45. What changed is not the model. What changed is how the agents are wired. One triaged the message, one drafted the quote, one checked the price, one staged the file for me. Four agents, one job, zero collision. I call this an Agent Team.

I’ve been solo since 2015. Over 18 months I rebuilt my studio into 8 agent departments (creative, social, sales, ops, finance, knowledge, trading, life). The biggest lesson: architecture beats model choice. A GPT-5 agent wired wrong loses to a Haiku pipeline wired right, every time.

This is the technical companion to Solo Stack Method. Solo Stack is the framework (Signal / Strategy / Skill / Ship). Agent Teams are the wiring diagrams inside the Skill layer. Below are the 5 patterns I actually run, when each fits, and the failure mode that will bite you.

Pattern 1: Router-Executor

One dispatch agent classifies the request, then hands off to a specialized worker. The router is small and cheap. The workers are focused and swappable.

When to use it. Inputs are varied but fall into known categories. Client messages, incoming leads, mixed asset requests. Anything where the first real question is “which pipeline does this belong to.”

Studio example. My task-dispatch skill is a router. It reads any prompt, checks 71 skills across 8 departments, declares “this belongs to X department,” then invokes the right worker (quote-brief for pricing, client-feedback for angry clients, crew-dispatch for shoot day staffing). The router is under 200 lines. Workers do the heavy work.

Skill file structure.

.claude/skills/
  task-dispatch/
    SKILL.md          # router logic, decision table
    routing_table.md  # keyword → skill mapping
  quote-brief/
    SKILL.md          # worker
  client-feedback/
    SKILL.md          # worker

Common failure. Routers drift. Six months in you have 30 workers and a router that still thinks there are 12. Fix by making the router read a routing table file, not hardcode the map. Updating the map becomes a one-line change. My meeting-notes-router in claude-code-skill-stack is a production router built this way.

Pattern 2: Pipeline

Sequential stages. Stage N’s output is stage N+1’s input. Each stage has one job.

When to use it. Content production, video breakdown, document processing. Any linear flow where each step needs a different skill.

Studio example. My short video pipeline: media-extract (pull YouTube transcript) → topic-researcher (find the angle) → copywriter (draft script) → de-ai (strip AI voice) → persona-manager (Keng-voice check) → auto-post-router (schedule to IG/Threads/FB/X). Six stages, six agents, one Reels post at the end. I trigger it with one sentence and check back in 20 minutes.

Skill file structure. Each stage is its own skill directory. The orchestrator calls them in order and passes state via files in a scratchpad:

scratchpad/
  {job_id}/
    01_transcript.md
    02_angle.md
    03_script_draft.md
    04_deai_cleaned.md
    05_persona_approved.md
    06_scheduled.json

Numbered files make debugging trivial. When stage 4 goes wrong, I open file 3 and know exactly what stage 4 received.

Common failure. Silent cascades. Stage 2 returns garbage, stages 3-6 process the garbage, you get a garbage post scheduled. Fix by adding a verification gate between stages that either signs off or halts. Fail loud, not silent.

Pattern 3: Panel-of-Judges

Multiple evaluator agents run in parallel, each with a different lens. A synthesizer combines their verdicts.

When to use it. Decisions where you want to protect against single-perspective bias. Take this client? Is this quote fair? Does this campaign concept work? Anywhere “asking one smart agent” gives you a plausible-sounding but shallow answer.

Studio example. When a new lead comes in above 200K NTD, my two-stage-review runs three judges in parallel: a skeptic (why this goes wrong), an hourly-rate auditor (does this clear 2,600/hr), a strategic fit (does this move the yearly target). A fourth agent synthesizes and gives me Go/Hold/Kill with reasoning. I’ve killed deals I would have said yes to on instinct, and taken deals I would have refused because my gut was tired.

For high-consensus moments I also run a tenth-man agent — a dedicated devil’s advocate that only attacks framings with 2+ agents already agreeing. Catches groupthink inside my own agent team.

Skill file structure.

patterns/panel-of-judges/
  judges/
    skeptic.md
    hourly_rate_auditor.md
    strategic_fit.md
    tenth_man.md
  synthesizer.md
  README.md

Common failure. Judges converge because they share context. Fix by giving each a distinct system prompt and identity, and forbid them from seeing each other’s output before the synthesizer runs. Independence is the whole point.

Pattern 4: Loop-Until-Done

A worker produces output. A verifier checks it against a spec. If the spec fails, the loop retries with the verifier’s feedback appended. Max N iterations, then escalate.

When to use it. Quality-critical outputs where “close enough” costs money. Client-facing quotes, contracts, code that ships, translations, subtitles.

Studio example. My quote-pdf skill runs a loop: draft the PDF → verify against 12 checklist items (total math, VAT, delivery date, deliverables list, hourly-rate compliance, keng@tzukao.com in the footer, and 6 more) → if any fail, feedback goes back to the drafter with “these lines are wrong, fix.” Max 3 loops, then it stops and pings me. In 4 months of use, most quotes clear in 1 loop, some need 2, and I’ve had 3 escalations total. All 3 were cases where the client brief itself was contradictory.

Skill file structure.

patterns/loop-until-done/
  worker.md          # drafter
  verifier.md        # checklist runner
  spec/
    checklist.md     # what pass looks like
  orchestrator.md    # runs the loop, tracks iterations

Common failure. Infinite loops when verifier and worker disagree forever. Always cap iterations. Require the verifier to output structured pass/fail, not vibes. Escalate to human when the cap hits. If your verifier can’t articulate a checklist, this pattern won’t work — go to Pattern 5.

Pattern 5: Human-in-the-Loop

Agent drafts. Human approves at a defined gate. Downstream agents execute. The gate is non-negotiable.

When to use it. High-stakes actions where a wrong move costs real money or real trust. Sending emails to clients, publishing to public channels, signing anything, replying to complaints.

Studio example. My outbound sales agent drafts cold emails to a lead list, but the emails land in ~/tzukao_inbox/pending/ as staged drafts. I get a Slack ping. I approve or reject, and the auto-shipper only sends after my thumb goes up. Same for IG DMs, contract clauses, any spend above a small credit threshold. My CLAUDE.md hardcodes the rule: “never auto-send: contracts, LINE messages to important clients, quotes above 50K, new partnerships, money moves, urgent complaints.”

The gate is not a bottleneck if you set it right. Standard IG posts, routine reply drafts, quote drafts under 50K, internal notes — those auto-execute. Only the top 20% of actions hit the human gate. That’s roughly 15 minutes of my day, gating maybe 40 actions.

Skill file structure.

patterns/human-gate/
  drafter.md          # produces staged output
  staging/            # file drop, one per pending item
  approval_hook.sh    # user runs approve/reject
  shipper.md          # executes after approval

Common failure. Gate creep. You approve one thing without reading carefully, then two, then twenty, and the gate is theater. Fix by keeping each item small enough to read in under 30 seconds, and by running a monthly audit where you re-check 10 approved items. If you wouldn’t approve more than 1 today, the gate is broken.

Which pattern for which job

A decision table I keep pinned:

SituationPattern
Varied inputs, known categoriesRouter-Executor
Linear content productionPipeline
Decisions with bias riskPanel-of-Judges
Quality-critical outputLoop-Until-Done
High-stakes external actionHuman-in-the-Loop

Most real workflows combine 2-3 patterns. My video breakdown workflow is a Pipeline whose stage 4 is a Loop-Until-Done. My lead intake is a Router-Executor whose “high-value” branch triggers a Panel-of-Judges. Composability is where the leverage compounds.

Where to go from here

The 5 patterns above are the load-bearing 20% of everything I run. The claude-code-skill-stack repo has four anonymized production skills from my studio built on these patterns. Star it if it saves you time, fork it if you want to adapt. The claude-skill-starter is a lighter template for a first skill from scratch.

For the strategic layer above these patterns — how to decide what to automate at all — read Solo Stack Method. If you’re evaluating whether this fits your business shape, the framework and ROI calculator live at /en/ai/enterprise.

FAQ

How many agents should a solo founder actually run?

Start with 3-5 total across 1-2 departments. My 8-department setup took 18 months of iteration. Every agent is maintenance cost. Add one only when the same manual task has cost you >2 hours in the last 2 weeks. If it hasn’t, you’re building infrastructure for a problem you don’t have.

Do I need Claude Code specifically, or does this work in ChatGPT/Cursor/other tools?

The patterns are model-agnostic. I run them in Claude Code because the skill file system and subagent invocation are first-class primitives, which makes Pipelines and Panels trivial to wire. You can build the same patterns in any framework with tool use and file I/O. The claude-skill-starter repo shows the file layout if you want to fork and adapt.

Which pattern breaks first when scaled?

Router-Executor. Routers get brittle as the worker count grows past 15-20. When routing errors climb, split one router into 2 domain routers (“sales router” + “creative router”) behind a top-level triage. That’s what I did at month 10.

What’s the cost of running an Agent Team all day?

My 8-department setup runs $8-15 USD/day in API costs, driving 40-60 agent-hours of work. Under $500/month for what used to require a $3,500/month virtual assistant. The math only works because I pick cheap models (Haiku) for routers and verifiers, and reserve expensive ones (Opus, Sonnet) for drafters and judges. Model dispatch is a discipline, not a default.