Adding more agents does not automatically add intelligence. It often adds duplicated work, conflicting edits, and more context to coordinate. A multi-agent harness becomes useful when specialization creates a cleaner control flow than one model carrying every concern at once.

Give each role a boundary

The planner owns decomposition and completion criteria. Scouts gather targeted evidence without editing. Workers receive bounded implementation tasks. A verifier evaluates the resulting state independently. These roles are valuable because they have different permissions and outputs, not because they have imaginative names.

A scout report should contain file paths, observed behavior, and relevant constraints. A worker task should name the intended change and required checks. The verifier should receive the artifact and criteria, not the worker's confidence.

Prefer ephemeral workers

Long-lived agents accumulate stale assumptions. An ephemeral worker starts with a focused brief, reads the current state, performs one bounded job, and exits. This makes failures easier to isolate and context easier to reason about. Durable knowledge belongs in the task ledger or project memory, not in the private history of a worker that happened to stay alive.

Handoffs must carry evidence

A summary such as “the auth code is in middleware” is weaker than a path, symbol, and explanation of how the request flows. Structured handoffs reduce the telephone game between agents. I use small schemas: findings, evidence, decision, files touched, checks run, and remaining uncertainty.

The receiving agent should be able to verify important claims cheaply. Trust is useful for coordination; evidence is necessary for correctness.

Parallelism has a cost

Parallel scouts are effective when they search independent parts of a large system. Parallel workers are safe only when their write sets do not overlap or when a clear integration step exists. Otherwise the apparent speedup becomes merge conflict, repeated tests, and inconsistent local assumptions.

Before spawning work, estimate whether the task can be divided by ownership boundary. If the tasks depend on the same evolving file, sequential execution is usually faster.

Verification needs independence

A worker that checks its own output is better than no check, but it may repeat the same mistaken assumption. A separate verifier can inspect the diff, run the required commands, and compare the result with the original acceptance criteria. Verification should produce a pass or a concrete rejection with evidence.

For code changes, the gate often includes typecheck, targeted tests, broader tests proportional to risk, and a production build. UI work also needs a rendered-browser check.

Control cost and failure

Every agent call consumes time and tokens. Track how often a role changes the outcome, how much duplicate exploration occurs, and where retries cluster. Bound the number of workers and the depth of delegation. Cancel work that is no longer relevant after the plan changes.

The harness should degrade gracefully: a scout timeout should not corrupt state, a worker failure should leave a clear checkpoint, and the planner should know when only a human can provide missing authority.

The best multi-agent system is not the one with the largest cast. It is the one where each boundary makes the overall job easier to understand, safer to execute, and more likely to finish with verified evidence.