Multi-Agent Workflow • Handoff • Feedback Loop

Agent Teams.
A real tech crew, scripted.

AgentsRoom Teams chains your AI coding agents like a real engineering team. A Fullstack Dev ships the feature, a QA Engineer validates it, a PM signs it off. Each role is scripted, the workflow is visual, and every handoff carries the feature summary, the diff, the risks and the test hints. No more single agent doing everything badly.

Build your dream AI dev team on a visual canvas, just like an n8n workflow. Conditional edges, feedback loops, parallel review branches, machine-verified quality gates, max-cycles guard. Save it once, run it on every ticket, watch your agents pass the baton like seniors.

AgentsRoom Teams: visual multi-agent workflow editor, automatic handoff between Claude Code agents, Dev to QA feedback loop, MCP-based inter-agent communication.

Agent Teams is the AgentsRoom answer to a brutal truth about AI coding agents: a single agent that tries to do everything ends up doing everything badly. The Fullstack agent that codes, tests, reviews, deploys and writes the spec at the same time forgets half its instructions in the middle. The right answer, the one used by every serious software team in the world, is to split the work into roles. A developer codes. A QA engineer validates. A product manager signs off. A security reviewer audits. Each role has its own context, its own focus, its own tooling.

This is exactly what Agent Teams brings to AgentsRoom. You drop nodes on an infinite canvas (built on React Flow, the same engine as n8n, Make, Retool and Pipedream), each node is an agent running Claude, Codex, GitHub Copilot CLI, Cursor or any of the 10 other agent CLIs AgentsRoom supports, assigned to a specific role, and you wire them together. Run the team on a ticket from your backlog, or attach it to any new agent spawn. AgentsRoom orchestrates the chain: spawn the first agent, wait for the handoff, summarize the work, spawn the next agent with that summary as its inbound context, repeat until the team reaches the end node.

Other tools try to do this with a single super-agent and clever prompts. We tried that, it does not work past three steps. Roles drift, context gets lost, the agent forgets what it was supposed to verify. Agent Teams treats the agents as actual teammates: each one gets a clean session, a focused system prompt, a structured handoff payload, and a shared scratchpad to talk to the others. This is the AI engineering team workflow you actually want.

AgentsRoom Agent Teams visual workflow editor: nodes for Dev, QA, PM, Security and DevOps roles connected on an infinite canvas with conditional edges and feedback loops

AgentsRoom Teams editor: drop nodes for each role, wire them up, add conditions, save the team, run it on any ticket.

Multi-agent orchestration that actually scales

Every node on the canvas is an agent. You pick its role (Fullstack, Frontend, Backend, QA, Security, DevOps, PM, Architect, Mobile, Brainstormer, Marketing, Git, SEO, Localization, or any custom role you have created), its model (Opus, Sonnet, Haiku, GPT-5.6, Gemini 3.1 Pro, etc.), its handoff mode (auto via Stop hook, or manual via a button) and a few lines of step-specific instructions. That is it. No prompt engineering ceremony, no YAML config file to write.

Edges connect the nodes. A simple edge means: when the first agent finishes its step, hand off to the next one. A conditional edge carries a flag check, for example qaPassed equals true. The QA agent sets that flag in its handoff payload, the runner picks the matching edge. This is how you build feedback loops: QA finishes, qaPassed equals false, edge sends back to Dev with the test hints and the risks. Dev fixes, hands off again. Loop until the QA passes or until the max-cycles guard kicks in.

Inter-agent communication is robust by design. AgentsRoom ships a dedicated MCP server (agentsroom-team) that gives every agent in the run a set of tools: read the team context, read the shared NOTES.md scratchpad, post a note for teammates, send a question to another role, read the inbox, read the timeline, read the git diff against the run baseline, and complete the step with a structured payload. These tools are re-injected into the Claude session at every turn, so they survive context compaction. Even after a /compact or a /clear, the agent still sees its team tools.

On top of that, a UserPromptSubmit hook reminds the agent of any new notes from teammates before each user message. A NOTES.md file in the workspace is append-only and survives crashes, restarts and machine reboots. A handoff payload schema validated server-side prevents agents from handing off empty or junk payloads. This is the part most multi-agent demos quietly skip, and the reason most of them fall apart at cycle 3.

Everything you need to run an AI engineering crew

Visual workflow, real handoff, real feedback loops, real inter-agent communication. Built so you can ship a feature in one Slack ping instead of fifty.

Visual workflow canvas

Infinite zoomable canvas powered by React Flow, the same engine behind n8n, Retool, Pipedream and Make. Drop nodes, connect them, save the team. No code, no YAML.

14 built-in agent roles

Fullstack, Frontend, Backend, DevOps, QA, Security, PM, Architect, Mobile, Marketing, Git Expert, SEO, i18n, Brainstormer. Plus any custom role you have already saved on your project.

Model and prompt per node

Each node picks its provider, its model and its step instructions. Use Opus for Architect, Haiku for QA, Codex for the heavy backend, Antigravity for the cheap frontend. Mix and match.

Automatic handoff

When an agent calls team_complete_step, AgentsRoom builds the handoff payload (feature summary, changed files, risks, test hints, flags) and spawns the next node with that payload as its starting context.

Manual handoff option

Prefer to validate every step? Switch the node to manual mode. The agent waits, you click 'Hand off' when you are happy with the result. Best of both worlds.

Conditional edges

Each edge can carry one flag check or several, combined with AND or OR. If QA passes go to PM, if the review fails loop back to Dev, if the review AND the analysis fail stop for a human. When two edges match at once, the one with the most conditions wins.

Feedback loops

Dev to QA to Dev to QA. When QA sends the ticket back, the original Dev agent is reused with full memory of the previous cycle, so it actually fixes the regression instead of starting over.

Machine-verified quality gates

Pin a check command on any node (npm test, a lint, a build). The runner executes it when the agent signals done: exit code 0 sets the routing flag to true, anything else to false. The measured result overrides the agent's self-report, always.

Parallel review branches

Draw two unconditional edges out of a node and both targets run at the same time: QA and Security review the same diff side by side, then a join node merges their reports. One red branch keeps the gate closed.

Ask the human, then carry on

An Await node is a pause, not an ending: the run stops, asks you the question you wrote on the node, and the moment you answer it starts again on its own with your answer handed to the next step. An agent that gets stuck routes to it instead of finishing the run, and the notification reaches your phone.

Skills pinned per step

Attach entries from your Skills Library to a node. The agent loads them before starting the step, so your review checklist or deploy runbook is applied on every run, not just when the agent remembers it.

Max-cycles guard

Configurable cap (default 3). Avoids infinite QA-rejects-Dev loops. When the cap is reached, the run pauses on awaiting-finalization and you decide what to do.

Runs survive restarts

Close the app mid-run, reopen it, the run re-enters the step it was on. State, notes and timeline live on disk; the orchestrator picks the work back up instead of leaving a zombie behind.

Team library on your account

Global teams are synced to your account and follow you across machines; project teams travel with the room. Both keep an offline cache, and edits made offline replay when you reconnect.

Shared NOTES.md scratchpad

Every agent in the run reads and writes a markdown file in the workspace. Survives compaction, crash, restart. The single source of truth for the team's reasoning.

Role-to-role inbox

Need the QA to ask a question to the Architect mid-run? team_ask posts a message to the role's inbox. The next agent on that role reads it and replies. Real chat between agents, for the length of the run: the permanent inbox that outlives it is agent messaging.

MCP-based inter-agent comm

All team tools are exposed via an MCP server. Tools survive Claude context compaction (Anthropic re-sends them every turn). Resilient to /clear, /compact and long loops.

Haiku-powered handoff summary

If an agent does not write its own feature summary, a small Haiku call generates one from the git diff. Cheap, fast, and the next agent always lands with context.

Browser MCP propagation

A team node with verifyInBrowser switches its agent to browser-access mode automatically. The QA node lands with full browser tools (navigate, click, type, screenshot, get logs).

Ephemeral agents per run

Every team run spawns fresh agents and destroys them on dismiss. Your project agent list stays clean. The team is the workflow, the agents are the runtime.

Global and project teams

Save reusable teams in your global library (~/.agentsroom/teams) or pin them to a specific project (committed with the room). Same editor, different scope.

Four team templates included

Build then verify, Spec build verify, Bug hunt (reproduce, fix, prove), and Release shield with parallel QA and Security. Duplicate, edit, run. Start in 30 seconds.

Run timeline UI

Each handoff appears as a card in the run timeline: which role just finished, what the summary says, which files changed, which flags were set. Auditable, replayable.

Run on any backlog ticket

Drop a ticket on a team and the chain starts on that ticket. The first agent reads the ticket title and body, the rest of the team picks it up from there.

14 specialized roles, ready to be wired

Each role has its own system prompt, focus areas and example tasks. Mix and match them on the canvas. Add your own custom roles at any time.

Fullstack
End-to-end implementation
Frontend
UI, components, design tokens
Backend
API, database, performance
DevOps
CI/CD, infra, deployment
QA
Tests, edge cases, regression
Security
Audit, OWASP, secrets, auth
Architect
System design, refactor
PM
Specs, priorities, scope
Mobile
iOS, Android, React Native
Marketing
Copy, landing, SEO
Git Expert
Branches, rebase, history
SEO
Rankings, structured data
Localization
i18n, l10n, 14 languages
Custom
Bring your own role

Why a real team beats one super-agent

Multi-agent orchestration sounds like a buzzword. Here is the practical difference, on a feature you would actually ship.

Scenario: add a Stripe checkout flow to an e-commerce site

Solo super-agent

  • Reads the ticket. Writes 600 lines across the API, the React form, the webhook, the migration, the tests.
  • Forgets the idempotency key on the webhook. Forgets to test the failure path. Forgets the staging env var.
  • Says 'Done'. You spend two hours hunting bugs in production.

Agent Team (Dev to Security to QA)

  • Fullstack agent ships the implementation, commits, hands off with a summary and a risks list flagging the auth change.
  • Security agent reads the diff, audits the webhook signature check, writes test hints for the QA in the handoff payload.
  • QA agent runs the test hints in the embedded browser, hits an idempotency bug, sets qaPassed equals false, kicks the ticket back to Dev with the exact reproduction.
  • Dev fixes, hands off again. QA passes. The PM finalizes. Run goes to done.

Same ticket, same models, same project. Different shape of work. The team approach catches what the solo agent misses, because every role has a focused brief and a structured handoff.

Two ways to run the same team

The graph says who does what. The mode says how those roles are embodied, and you pick it when you build the team. One keeps the context, the other keeps the independence. There is no version that does both, so the choice is yours to make per team.

One agent, every role

Relay mode

A single session runs the whole team. It plays the first role, hands its work over, then becomes the next one, in the same console, without ever restarting. Nothing is summarised between two roles because nothing is lost between them.

What you gain
What you gain: Full continuity. The QA role already knows why the Dev role made a call, down to the reasoning, so nobody re-explains a decision that was made twenty minutes ago.
What it costs
What it costs: It is one agent wearing hats. The session that wrote the code is the session that reviews it, and a self-review catches less than a fresh pair of eyes.

Pick this for a pipeline where continuity matters more than a second opinion: a refactor, a migration, a long feature where the context is the work.

How role morphing works

One agent per role, talking

Team mode

Every role gets its own session, and they are alive at the same time. They write to each other while they work: the tester tells the front-end developer what broke, the front-end developer asks the back-end developer what the payload really looks like. A teammate nobody has addressed yet starts the moment someone writes to it.

What you gain
What you gain: Genuine second opinions. A reviewer that never wrote the code reviews it, and a teammate joining mid-run starts from a neutral reading of the diff rather than from its own memory of writing it.
What it costs
What it costs: Context is paid for, not inherited. A teammate that joins reads the shared notes and the diff to catch up, which costs tokens and time the relay never spends.

Pick this when you want the review to be real: a security pass, a design critique, a bug hunt, anything where rubber-stamping the previous step is how it goes wrong.

How agent messaging works

Free-form conversation, or follow the graph

Team mode has a second switch, because a team that can only talk in one direction is a queue with extra steps. Leave it off and a teammate writes only to the roles its node points to: the graph stays the contract, which is what you want when a gate must not be routed around.

Turn it on and anyone writes to anyone, in any direction, and to several at once. The tester briefs the designer and the back-end developer in the same message; the back-end developer answers the designer directly instead of going back through the lead. The graph still starts the run and still ends it, but it stops deciding who is allowed to speak.

Trust is measured, not declared

An agent that grades its own homework will eventually pass itself. Agent Teams keeps the pipeline honest with two mechanisms.

The exit code decides

Any node can declare a check command: npm test, a lint, a build, anything that returns an exit code. When the agent calls team_complete_step, the runner executes the command in the workspace and writes the measured result into the routing flag. Green means the run moves forward. Red means the failure output lands at the top of the next agent's context, with the actual stderr. An agent claiming that all tests pass while the suite is red gets routed by the red suite, not by its claim.

Four eyes, at the same time

Fan a node out into parallel branches: QA exercises the flows while Security audits the diff, each in its own agent, blind to the other's conclusions. A join node waits for every branch, merges summaries, risks and flags, and routes on the combined result. Boolean conflicts resolve to false by design: one failing reviewer is enough to hold the release.

Dev → [ QA ∥ Security ] → Release gate

How a team run works

01

Open the Teams tab

In your project view, the Teams tab lists four seed templates (Build then verify, Spec build verify, Bug hunt, Release shield) plus any team you have already saved. Duplicate a template or click 'New team'.

02

Build the workflow on the canvas

Drop agent nodes on the React Flow canvas. For each node, pick the role (Fullstack, QA, Security, PM, etc.), the provider, the model, and a few lines of step instructions. Wire them with edges. Add conditions on edges if you need branching.

Dev → QA → PM
03

Set the handoff mode per node

Auto handoff: the agent calls team_complete_step when its work is done, the runner takes over. Manual handoff: the agent waits for you to click 'Hand off'. Mix both as needed.

04

Run the team

From a backlog ticket, click 'Run with team'. From an empty agent slot, click 'Create as team'. The first node spawns as an ephemeral agent in the project workspace.

05

Watch the handoff happen

When agent N finishes, AgentsRoom builds the handoff payload (feature summary via the agent or via Haiku, git diff, risks, test hints, flags), appends a note to NOTES.md, picks the right outgoing edge based on the flags, and hands over to agent N+1 with that payload as its inbound context. If the node declares a check command, the runner executes it first: the measured exit code, not the agent's claim, sets the routing flag.

06

Loop, end, finalize

Feedback loops re-enter the original agent (full memory preserved). An Await node parks the run on a question for you and restarts it the second you answer. The end node triggers awaiting-finalization and notifies you, phone included. You click 'Finish run': the agents are destroyed, their PTYs freed, and the backlog ticket the run came from is closed.

Inter-agent communication that survives anything

The detail most multi-agent demos skip. Here is what makes Agent Teams hold over long runs and many cycles.

Claude Code agents have a context window and they compact it. The classic mistake of multi-agent systems is to put the team coordination in the system prompt only. After two cycles of /compact, the agent has no idea it is in a team. AgentsRoom does not do that.

All team coordination lives in three places that survive compaction. First, an MCP server (agentsroom-team) exposes tools (team_get_context, team_read_notes, team_post_note, team_read_inbox, team_ask, team_read_timeline, team_read_diff, team_complete_step). MCP tools are re-sent to Claude at every turn by the CLI, so they are immune to context compression.

Second, a UserPromptSubmit hook runs before every user message and prepends a small reminder if there are new notes or new inbox messages for that role. Cheap when nothing happens, decisive when it does.

Third, NOTES.md and state.json live on disk in the workspace. The agent can re-read them at any moment with a simple Read or with team_read_notes. They survive crashes, restarts, /clear, /compact and machine reboots. The system prompt is never the source of truth, the disk and the MCP tools are.

Beyond the run

The team inbox ends with the run. The project roster does not.

Everything above is scoped to one run: the roles are nodes in a graph, the inbox belongs to the run, and both disappear when it finishes. That is the right shape for a pipeline you replay, and the wrong shape for a question one agent wants to ask another next Tuesday.

Agent messaging is the other layer. The saved agents of the project are permanent members with their own address and their own inbox, they write to each other by name across any CLI, and a message survives a restart, a crash and an agent that was offline when it was sent. Nothing was removed from Agent Teams: a permanent member can start a run, and a run node is never promoted into a permanent member.

See agent to agent messaging

What people build with Agent Teams

Dev to QA pipeline

The classic. Fullstack ships the feature. QA validates it in the embedded browser, runs the test hints, signs off. Two-node team, runs on every ticket from the backlog.

Dev to QA with feedback loop

Same as above, but with a conditional edge: qaPassed equals false sends the ticket back to Dev with the test hints. Max 3 cycles. Catches regressions before they reach a human reviewer.

Dev to Security to QA

For features that touch auth, payments or PII. Security agent reviews the diff, flags risks, writes test hints for QA. Used by teams shipping fintech, healthtech and B2B SaaS.

PM to Architect to Dev

Spec-first workflow. PM agent turns the ticket into a structured spec. Architect picks the approach. Dev implements. Three roles, clean separation, traceable decisions.

Frontend, Backend, DevOps fan-out

Sequential split for full-stack features. Frontend ships the UI. Backend ships the API. DevOps adds the infra config. Each role works in its area, hands off with a clean diff.

Marketing to SEO to i18n

Yes, AgentsRoom Teams is not just for code. Marketing writes the landing copy. SEO injects the keywords. Localization translates to 20 languages. One team, one ticket, one ship.

Release shield: parallel QA and Security

One dev node fans out into QA and Security running side by side, then a release gate merges both reports. Ships with the app as a template. The whole shield loops back to Dev if either branch reports a problem.

Bug hunt: reproduce before you fix

A QA agent reproduces the bug and writes exact steps. A dev fixes the root cause. A second QA replays the same steps to prove the fix. No more 'works on my machine'.

How it compares to other multi-agent approaches

Multi-agent orchestration is a crowded buzzword. Here is what is actually shipping, and where AgentsRoom Teams fits.

Anthropic Subagents (Task tool, .claude/agents) let a single Claude session delegate to specialized helper agents. Great for inline delegation, but the parent session is still the coordinator and a single context. AgentsRoom Teams is one level above: each team node is a separate top-level Claude session with its own window, its own state, its own scrollback. CrewAI, AutoGen and LangGraph are excellent Python frameworks for multi-agent flows, but they live outside your IDE and they do not run real Claude Code, Codex or Antigravity CLIs end-to-end on your local repo. n8n, Make, Pipedream and Retool ship the same kind of canvas editor we use, but they are general-purpose automation platforms, not built for AI coding agents. AgentsRoom Teams is the canvas-style multi-agent workflow editor, but specifically wired to your CLI agents, your project, your git, your terminals and your browser.

Claude subagentsTask toolCrewAIAutoGenLangGraphn8nMakePipedreamRetoolTemporalAirflowPrefectDagster

If you build agentic systems in Python, keep using CrewAI or LangGraph for production pipelines. If you ship code with Claude, Codex, GitHub Copilot CLI, Cursor or any of the 10 other agent CLIs AgentsRoom supports, Agent Teams is the team workflow that runs where you actually code.

FAQ

How is this different from Claude Code subagents (the Task tool, .claude/agents)?

Claude subagents are inline delegations from a single parent Claude session. The parent decides when to call a subagent, the subagent runs in an isolated context window, returns a result, and the parent keeps going. AgentsRoom Teams is one level above: each node is a top-level Claude Code session with its own terminal, its own state and its own scrollback. You see every agent run live in its own tab, you can talk to any of them at any moment, you can pause the team, change the workflow and resume. It is not a replacement for Claude subagents, you can absolutely use both. A team node can use subagents internally.

Does this only work with Claude Code?

It works with all 14 agent CLIs AgentsRoom supports (Claude Code, Codex CLI, GitHub Copilot CLI, Cursor and 10 more). Each team node picks its own provider and model. The MCP-based team coordination tools work identically across providers because they are exposed through the standard Model Context Protocol. You can run a team with Codex on the heavy backend node and Haiku on the QA node if that is what fits your budget and your latency.

What is a handoff payload?

A structured object that travels from one agent to the next. Fields: featureSummary (a short description of what was just shipped), changedFiles (git diff name-status), touchedAreas (UI, API, DB, config), risks (anything the next agent should worry about), testHints (priorities for QA), flags (booleans like qaPassed, used by conditional edges). The agent calls team_complete_step with this payload, the runner validates it server-side, the next agent receives it as its starting context.

Can agents really go back and forth (Dev to QA to Dev)?

Yes. When a node is re-entered (cycle greater than 1), AgentsRoom does not spawn a new agent. It reuses the original agent of cycle 1, writes the new handoff payload directly into its existing terminal, and the agent keeps its full Claude session memory of the previous cycles. This is critical: a Dev agent that already knows what QA flagged last time fixes the bug. A fresh Dev agent without memory would just repeat the same mistake.

What happens if QA keeps rejecting Dev forever?

The team config has a max-cycles guard, default 3. When the cap is reached, the run pauses with a 'blocked' status and waits for you. You can finalize the run, manually hand off one more time, or cancel everything. No infinite loops, no surprise overnight bills.

Do all team agents share the same git workspace?

Yes. The team runs in a single workspace and a single branch (or worktree if you use the AgentsRoom Worktrees feature). Each agent sees the work of the previous one through git. The handoff payload includes a git diff against the run baseline so the next agent knows exactly what is new.

Does this require an extra subscription?

No. Teams are part of AgentsRoom. You bring your own provider keys (Claude, Codex, GitHub Copilot CLI, Cursor and 10 other agent CLIs) and you pay only for the tokens you use, like with a single agent. Running a Dev to QA team on a small ticket typically costs the same as running a single Fullstack agent, because Haiku/Sonnet on the QA step is cheap.

Where are the teams stored? Are they committed to git?

Project-scoped teams live with the room, synced to your account and cached in {project}/.agentsroom/teams-cache.json (gitignored). Global teams are synced to your account too, so your team library follows you across machines, with ~/.agentsroom/teams/ as the offline cache. Seeded templates stay local: every machine seeds them in its own language.

What if an agent crashes or the app restarts mid-run?

Run state is persisted to disk in {workspace}/.agentsroom/team-runs/{runId}/ (state.json, NOTES.md, inbox/, timeline.jsonl), with atomic writes and an append-only notes file. An interrupted run resumes on app restart: the orchestrator re-enters the step that was active, reopens the terminal, and the agent gets its context back from the notes and the team tools. A run whose team definition was deleted is closed automatically instead of lingering forever.

Can I run several teams in parallel on different tickets?

Yes. Each team run is independent and identified by its runId. You can have three different teams live on three tickets in the same project. Inside a single run, execution follows your graph: sequential by default, parallel where you draw parallel branches (for example QA and Security reviewing at the same time), always merging back on one deterministic join node.

Can two agents really run at the same time?

Yes. Draw two unconditional edges out of a node and both targets run as parallel branches, each in its own agent and terminal. Branches are one node deep and must converge on a common join node, which the editor validates before you can run. When every branch has completed, the join receives one merged payload: summaries labeled by role, deduplicated risks and test hints, and flags merged with a fail-safe rule (a boolean conflict resolves to false).

How do quality gates work exactly?

You type a shell command on the node, for example npm test, and optionally a flag name (checkPassed by default). When the agent signals completion, AgentsRoom runs the command in the workspace with a five-minute cap. Exit code 0 writes true into the flag, anything else writes false, overriding whatever the agent reported about itself. On failure, the last kilobytes of output travel to the next agent so the loop-back lands with the actual stack trace, and the result shows on the run timeline.

Can a step load my Skills Library procedures?

Yes. Every node can pin skills from your Skills Library, project or global. The agent is instructed to load each one before starting the step, so a review checklist, a deploy runbook or a testing procedure is applied on every single run instead of depending on the agent's memory.

Does AgentsRoom check my team graph before running it?

Yes. The editor runs a set of graph checks and separates blocking errors from warnings. Errors stop the run: a missing Start or End node, duplicate edges, two edges carrying the same conditions, an edge whose own conditions contradict each other, an invalid fan-out. Warnings do not: a flag name padded with spaces, a condition on an edge leaving Start, a node whose outgoing edges are all conditional so the run can dead-end. Both are listed in a checks panel and the guilty edges are recoloured on the canvas, so you fix the graph before losing a run to it.

Can an agent modify the team it is running in?

No, and that is deliberate. While a run is alive, the team definition is frozen against writes coming from the MCP tools: nodes, edges, max cycles, step instructions, skills, check command, role, provider and model are read-only for agents, a skill loaded by the run cannot be rewritten either, and the freeze cannot be bypassed by deleting and recreating the team. An agent must not rewrite the rule that governs it. You keep editing everything from the interface at any time.

Can I launch and follow a team run from my phone?

Yes. The mobile companion can start a team on a project, shows a run banner with the progress of each step, and gives access to the terminal of the agent currently working. The run itself still executes on your desktop, through the real CLIs, exactly as if you had started it there.

Should I pick relay mode or team mode?

Ask what the run would fail on. If it would fail by losing the thread, pick relay: one session plays every role and never re-explains a decision to itself. If it would fail by agreeing with itself, pick team: the roles run as separate agents, so the one that reviews the code is not the one that wrote it. Relay is the default because it is what every team built before the setting existed already does, not because it is better.

In team mode, do all the agents start at once?

No. A teammate starts the first time it is needed, either because the graph reaches its step or because another agent writes to it, and then it stays alive for the rest of the run. So a four-role team does not burn four sessions to answer a question that only concerns two of them, and a role that is addressed on cycle three is still the same agent that answered on cycle one.

Does a teammate remember what the others did?

Only what it can read. A teammate that joins mid-run has its own session and no memory of the work, which is exactly why its opinion is worth something. It catches up through the shared notes, the run timeline and the git diff since the run started, all of which it reads through its own tools. That reading is the cost of the mode, and it is the reason relay mode still exists.

Can I stop agents from messaging each other in any order?

Yes, and that is the default. With free-form conversation off, a teammate may only write to the roles its node points to in the graph, so a gate cannot be routed around by asking someone else. Turn it on when you want a real team: anyone writes to anyone, in any direction, and to several at once. The graph still starts the run and still ends it either way.

Further reading

Build your dream AI dev team

Four templates ship with the app. Open AgentsRoom, drop nodes, draw edges, run on any ticket. Your AI engineering crew is one click away.

FreeDownload AgentsRoom

Companion app: monitor your agents on the go

Bring your own: Claude, Codex, Antigravity CLI, or other AI provider.

Get the extension
Chrome Web Store

Push bugs and requests straight to your public backlog.

A glimpse of AgentsRoom in action.

Multiple projects
Multi-provider
Multiple agents
Live status
File diff & commit
Mobile companion
Live preview
Agent teams
Browser automation
Backlog-driven dev
Prompt Library
Skills Library
View all features