Subagent vs Re in Act

Why subagents and Re in Act are different architectural directions, and how subagents can still use Re in Act as an action space.

Subagent vs Re in Act

Re in Act is not a subagent architecture.

The short answer is: they are different directions.

  • Subagents add more reasoning actors.
  • Re in Act strengthens action.

At first glance, Re in Act can look similar to subagents or agent teams. In all three patterns, top-level reasoning does not execute every step directly in the outer loop.

The difference is what is being created.

In Re in Act, top-level reasoning defines and orchestrates one action phase inside a Reason-able Action Space (RAS). The RAS program can call reason() locally, use deterministic control flow, call tools through act(), and return one final observation to the outer loop.

In a subagent or agent-team design, delegation usually creates another reasoning actor with its own prompt, context, handoff protocol, and coordination surface.

Re in Act can still be used inside a subagent. If a larger architecture already has subagents, a subagent can use a RAS as its action space. The important boundary is that the subagent and the RAS are not the same thing: the subagent is a reasoning unit, while the RAS is the action space used to carry work out.

So there is no contradiction in saying both of these at once:

  • Re in Act is not a subagent pattern.
  • A subagent can use Re in Act internally.

The Short Version

If you only keep one distinction in mind, keep this one:

  • Subagent: create another agent-like reasoning unit.
  • Re in Act: create a better action space for the same agent.

That is why these two patterns solve different problems:

  • subagents separate reasoning roles
  • Re in Act strengthens action

They are not two versions of the same architecture. They point in different design directions.

Re in Act does not answer "which additional agent should do this?" It answers "how should this work execute once top-level reasoning has decided to do it?"

So the two ideas can be combined:

  • a system may use subagents for decomposition
  • each subagent may use Re in Act for action

That combination is often stronger than either pattern alone: subagents can decompose the work, and Re in Act can make action inside each subagent more reliable.


Why They Feel Similar

The surface similarity is real:

  • The surrounding workflow assigns a bounded unit of work.
  • The action unit can make local decisions.
  • The surrounding workflow gets back a more useful result than a raw tool response.

That is why a fresh local reason() call can look superficially similar to a subagent call.

But that similarity is only at the edge of the interface. Architecturally, Re in Act is not about creating another planner. It is about giving action more local structure.

This page should not be read as "Re in Act versus subagents" in the sense of two competing variants of the same idea. One pattern changes the reasoning topology. The other changes the action architecture.


The Architectural Difference

The core Re in Act idea is still the Cerebrum/Cerebellum split introduced in Introduction:

  • The Cerebrum defines the structure, constraints, and return conditions of the RAS.
  • The RAS absorbs local disturbances in the action phase under that structure.

That means the RAS in Re in Act is usually best thought of as a bounded, orchestrable action space, not as a peer agent.

Put more sharply:

  • a subagent is another reasoning center
  • a RAS is an action environment

Inside that workspace:

  • reason() starts with a fresh inference context and produces structured JSON.
  • loops, branches, validation, and retries happen in code or shell, not by re-prompting the outer loop.
  • intermediate logs, tool outputs, and failed attempts stay inside the RAS unless the RAS program decides they matter.

In that sense, they are fully different architectural moves:

  • subagents split work across reasoning actors
  • Re in Act makes one actor's action better structured and easier to control

That is why the relationship is best stated this way:

  • subagents answer "who should handle this sub-problem?"
  • Re in Act answers "how should this orchestrated action space run reliably once it has the work?"

Why Re in Act Is Often Better for Action

When the problem is action rather than role separation, Re in Act often has practical advantages over a subagent-style design.

  • Better explainability: the action path is usually easier to inspect because control flow lives in code or shell, reason() returns bounded structured output, and the trace stays in one runtime instead of being spread across handoffs.
  • Better observability: logs, retries, tool calls, and intermediate artifacts stay in one place, so it is easier to see what happened and why.
  • Stronger control: retries, branching, validation, and stop conditions can be enforced directly by the runtime instead of being left to another conversational agent loop.
  • Less coordination overhead: action does not need another agent prompt, another transcript, and another handoff boundary just to work through local issues.
  • Cleaner intermediate-data handling: local observations, logs, and intermediate data stay inside the RAS instead of being copied across agent boundaries.
  • More reusable action: RAS programs and reusable definitions are easier to replay, compose, and standardize as action building blocks.

These are not arguments against subagents in general. They are arguments for using Re in Act when the real need is a better action layer.

If the system needs more reasoning actors, use subagents. If the system needs better action, use Re in Act. If it needs both, use both.


Comparison at a Glance

QuestionSubagents / Agent TeamsRe in Act
What gets created?Another reasoning actorOne orchestrated action space
What stays primary?Multiple reasoning contextsOne top-level reasoning context
How is control expressed?Prompts, handoffs, role boundariesCode, shell, schemas, and runtime control
Where does local judgment happen?In another agent contextInside the action space through reason()
Where does intermediate data live?Across handoffs or multiple transcriptsInside one RAS runtime
What is easier to explain?High-level role decisionsConcrete action traces and local checks
What is the common failure mode?Misalignment across agent boundariesAction failure near the tool boundary
What does reuse look like?Reusable specialists or rolesRiffs and reusable RAS programs

This table is about architectural direction. Re in Act itself is an action pattern, and a subagent may still choose to use it internally.


Where Riff Fits

If you are looking for the closest Re in Act analogue to a reusable helper, it is usually a Riff.

A Riff can replay a proven action flow, be composed into a larger program, and behave like a fast subroutine. That makes it similar to a specialized helper in practice.

The difference is that Riffs are built on the same RAS model:

  • they do not require a new long-lived planning authority,
  • they reuse a proven RAS program instead of introducing a new conversational role,
  • and they keep the action boundary local to the action layer.

So Riffs may look like reusable helpers from the outside, but internally they are still RAS-native action patterns.


When Re in Act Fits Best

Re in Act is usually the better fit when the hard part of the problem is:

  • absorbing noisy tool feedback,
  • keeping intermediate data out of the top-level context,
  • enforcing deterministic branches, loops, and validation,
  • reducing the round-trip tax of repeated outer-loop reasoning.

This is especially true for coding, research, shell automation, and tool-heavy workflows where top-level reasoning should define the RAS once and receive a denoised result.


When Separate Agents Still Make Sense

Separate subagents or agent teams can still be useful when the system genuinely needs:

  • distinct long-lived roles,
  • separate planning authorities,
  • different incentives or review responsibilities,
  • coordination across parallel workstreams that should stay conceptually separate.

Re in Act does not claim those patterns are wrong. Its claim is narrower and more practical: many workflows that look like they need more agents actually need a better action layer.

If the problem is local adaptation during action, reach for the RAS first. If the problem is organizational separation of reasoning roles, separate agents may still be the right abstraction.

If a larger system happens to use subagents elsewhere, Re in Act can still be used inside one of those systems as its action space. But Re in Act itself should not be described as a subagent design.