Wink Pings

Four Models Team Up to Write Code, but the Key Role Does Not Write Code

mirku breaks Claude Code's experimental Agent teams into four roles: Opus 5.5 decomposes tasks, Sonnet 5.5 implements in parallel, Haiku 5.5 scans the repository, and Fable 5.1 finds problems in contracts, test failures, and before merges. The official docs also warn that both token costs and coordination overhead are significant.

mirku has assembled Claude Code's experimental Agent teams into a multi-model pipeline. The entry command is straightforward:

CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 claude --model opus

The official docs state clearly that Agent teams is off by default. After setting this environment variable, one session acts as the lead, and the other teammates are independent Claude Code instances, each with its own context window, communicating directly through a shared task list and mailbox. mirku's setup breaks this mechanism into four roles:

  • Opus 5.5 as team lead: decomposes the epic into a shared task list, arbitrates conflicts, and signs off on PRs.
  • Sonnet 5.5 as builder: writes frontend and backend modules in parallel; teammates communicate peer-to-peer via mailbox, without going through central scheduling.
  • Haiku 5.5 as scout: scans AST call sites, dependencies, and API specs at 340 tok/s.
  • Fable 5.1 as on-call adversary: monitors the peer bus and reviews cross-session messages and edge cases before merges.

The video comes from mirku's tweet. The selling point of this configuration is zero coordinator bottleneck and less token waste: teammates claim tasks themselves and message each other directly, without stuffing routine implementation back into Opus's context. The tweet also mentions that JEV handles millisecond-level micro-branching, while the large model only looks at the truly branching decisions.

The official docs include a diagram that draws the difference between subagents and agent teams very clearly. Subagents report results back to the main agent; agent teams share a task list, teammates claim work themselves, and they communicate directly with one another.

Subagents 与 Agent teams 的架构差异

The most interesting part of this division of labor is when Fable 5.1 steps in. The tweet gives only three trigger points:

  1. Before the contract is locked: Do the frontend payload and backend schema match?
  2. Tests fail twice in a row: Are we fixing the root cause, or patching symptoms?
  3. Before declaring done: Are there security vulnerabilities or invariants that everyone ignored?

Someone in the comments pointed out the risk: peer-to-peer is cool until all agents agree on the same mistake and no one catches it. Fable's position is aimed at this risk. It does not participate in day-to-day implementation; it only finds problems in contracts, failures, and before merges. This design is cheaper than having four models chat with each other the whole time, and it makes problems easier to locate.

In another Harness Engineering article, mirku explains the background more fully. He quotes Dario Amodei's statement at the launch of Claude Code: models need an interface and a harness to be usable. He also quotes Andrej Karpathy's metaphor: the model is the CPU, the context window is RAM, and a CPU without storage and an operating system will crash immediately. The article's core judgment is that when an agent repeatedly fails, don't start by changing the adjectives in the prompt; look at the execution environment outside the model. Prompt engineering adjusts wording; harness engineering builds the infrastructure that executes the wording.

Looking at Agent teams through this framework, the shared task list is the task contract, CLAUDE.md is persistent memory, and tests, hooks, and permissions are sensors and mechanical gates. The official docs also provide hooks: TeammateIdle, TaskCreated, and TaskCompleted; exit code 2 can kick work back and continue. The tweet's line about writing rules into both CLAUDE.md and permission settings is dual-encoding: words let the model understand the goal, while mechanical gates stop it from crossing boundaries.

Time for a reality check. The official docs explicitly say that Agent teams' token cost is significantly higher than a single session, and coordination overhead also increases. It is suitable for parallel exploration, code review, new modules, and cross-layer collaboration. For sequential tasks, editing the same file, or work with many dependencies, a single session or subagents are more cost-effective. Start with a team size of 3 to 5 teammates, keep tasks self-contained, and avoid two teammates editing the same file. There are also experimental limitations: in-process teammates cannot be restored with /resume or /rewind, task status may lag, shutdown may be slow, one session can have only one team, and teammates cannot spawn nested teams.

So what makes this configuration worth bookmarking is not the model list, which is only the surface. The role boundaries, intervention timing, and mechanical gates are the point. Pull Opus out of the routine loop, let Sonnet work in parallel, let Haiku scan the repository, and keep a Fable specifically to find problems. Whether this structure can run stably depends on whether tasks are split independently enough, whether the sensors are hard enough, and whether the permission gates are clear enough.

References:

发布时间: 2026-10-30 18:46