Consider a fictional demo repository where a signup field needs validation. The change touches a handler, a test file, and a schema. Before dividing it between agents, a developer needs to settle which inputs pass and who checks the combined result. The team also needs to assign write access so it can trace conflicting edits and decide what is ready to merge.

Quick Answer

In this guide, multi-agent AI for software development describes several agents contributing to one code change. The work divides along three arrangements: agents running in separate sessions, a main agent delegating subtasks, and sessions that pass work to each other. These overlap in practice.

Start by recording the acceptance criteria and assigning each agent a write scope. Name a collector who will bring the changes and test evidence together for a developer to review. These are team practices; the product descriptions below identify which parts the checked documentation supports.

The example is a proposed work arrangement, and none of its validation cases or agent tasks was run for this article. The product descriptions draw on official documentation checked on October 16, 2026, without application or interface testing. The VS Code comparison is attributed to its February 5 release post and describes that release, not a complete account of current product availability.

The Example Change and Its Acceptance Criteria

The sample change validates a string field called contact_tag. Its application policy trims leading and trailing whitespace, converts the text to lowercase, and measures the normalized value in Unicode code points. A normalized value must contain between 1 and 254 code points. The limit is a policy chosen for this fictional application.

Check the type before normalization. A non-string returns invalid_type; a string that becomes empty returns required. A normalized string longer than 254 code points returns too_long, and an accepted value is stored in its normalized form.

Input kindSampleExpected behavior
Valid"Atlas" and " Atlas "Both are accepted and stored as "atlas"
Empty"" and " "Both are rejected with required
Type errornull, 42, or []Each is rejected with invalid_type
Boundary"a" repeated 254 times, and repeated 255 timesThe 254-character value is accepted; the 255-character value returns too_long

These rows are acceptance requirements, not observed results. Each agent receives the same rules before it starts, and the collecting developer can use them to check the combined change.

Decide whether the change needs several agents after defining that scope. A small validation function may fit in one session. Dividing the work is an option when the handler, schema, and user-facing error copy require distinct context; it also creates a need to reconcile their results.

Three Arrangements for Dividing the Work

The three arrangements below overlap. A team running parallel sessions may still have one agent delegate a subtask, and delegated work may end in a handoff. What separates them is who assigns the work, how context travels, and which participant collects the result.

For this example, the team assigns separate working copies to two independent sessions. One agent works on the schema change while another writes the handler tests, and a developer reconciles the results. Separate sessions need an explicit checkout arrangement; starting another session does not establish that it has a separate working copy.

A main agent delegating subtasks

A main agent keeps the goal and sends bounded pieces of work to subagents, which report back. Claude Code documents a separate context window, system prompt, tool access, and permissions for each subagent, with its requests counting toward the same usage limits as the main conversation. VS Code's February release post describes context-isolated subagents whose final results return to the main session, keeping intermediate exploration outside its primary context.

One naming point causes confusion. In Claude Code, a background subagent runs in the background within a session, and the separate entry called background agents runs independent sessions that a person monitors from one place. Agent teams, a third mechanism, describes sessions that Claude spawns and supervises. The documentation lists these as four distinct mechanisms alongside cross-session messaging, where separate sessions pass messages to each other.

Sessions that pass work along

In a handoff, one participant finishes a stage and gives the next participant what it needs to continue. VS Code's release post describes handoffs from planning through implementation to review. The team should specify which result and code version the receiving participant uses, along with any unresolved decisions.

Which Code and Context Each Agent Reads

Each agent needs a starting point it can name. A team can record four things for the sample change: the baseline commit the work starts from, the branch or worktree holding the edits, the files that agent may write to, and the acceptance samples from the table above.

VS Code's February release post compares direct-workspace local sessions with background sessions using worktrees and cloud sessions using remote infrastructure. In Claude Code, the isolation: worktree setting gives a subagent an isolated copy of the repository. GitHub documents its Copilot cloud agent editing files and running tests and linters in a temporary cloud development environment. These descriptions concern the specific modes named, so check the current mode before assigning a checkout.

Git documents worktrees as multiple working trees attached to the same repository. Treat that checkout arrangement as one part of the setup. Check network access and credentials separately, including whether different agents can write to a shared external system. Merge and deployment rights also need their own permission checks.

Keeping Two Agents Off the Same Lines

Record which files each agent is assigned to change. For the sample, the team could assign the schema and handler to one writer and ask another agent to propose tests. Where edits overlap, designate one writer and collect the other participant's proposed patch for review. A written assignment needs to be distinguished from a tool restriction that technically enforces it.

Edits to overlapping lines can produce a textual merge conflict, while changes to the same file can also merge cleanly. Even a clean merge may combine incompatible assumptions about the field. The collecting participant needs to reconcile those assumptions whether the work came from independent sessions, delegated subtasks, or a handoff.

Set the collection branch and name the person or agent responsible for it before the work starts. Decide how that participant handles late changes. Separate checkouts help organize edits, while the resulting diff and tests supply evidence about how the collected change behaves.

What the Handoff Contains

A handoff packet carries the evidence a reviewer needs. For the sample change, that is the diff, the baseline commit, the commands run with their output, and a list of what remains unresolved.

Record the code version, environment, command, and output that a test result actually covers. An agent may have tested its own branch or another prepared version; identify which one. After collecting changes, run the relevant checks on that combined version. GitHub advises teams to review and test the code themselves in addition to reading session logs.

Devin's introduction recommends explicit completion criteria and tasks that are easy to verify. Apply that advice to the packet: mark checks still to be run as pending, and include observed output for checks that were executed.

Packet itemPurposeWho produces it
Diff and baseline commitShows what changed and from whereThe agent that made the change
Commands and outputLets a reviewer repeat the checkThe agent that ran them
Unresolved itemsNames what a person must decideThe collecting participant
Acceptance samplesTies results to the criteria from the startThe team, before work begins

Review, Merge, and Deployment Are Separate Steps

Record who creates the pull request and who reviews the proposed change. Approval, merge, and deployment need their own checks because their permissions and triggers can differ.

GitHub documents its cloud agent handling branch creation, commits, and pushing changes. A user can request refinements before asking for a pull request, or request the pull request in the initial prompt. Its security guidance states that the cloud agent cannot approve or merge a pull request and that its draft pull requests require human review and merge. Repository protections and required checks apply in addition to those product restrictions.

The same guidance says GitHub Actions workflows on the agent's changes wait for review and a user with repository write access to approve running them by default; automatic runs can be configured. Its access guide lists cloud agent on paid Copilot plans, with administrator enablement needed for Business and Enterprise and repository eligibility and opt-out settings also applying. Check these conditions for the team's account before treating the documented workflow as available.

Deployment may follow a merge automatically or require a separate release action. Check the actual trigger and the credentials and environment permissions it uses, including whether approval of the code also authorizes that release.

A Checklist Before Dividing the Work

  • Are the acceptance criteria and sample inputs written, with valid, empty, wrong-type, and boundary cases named?
  • Does each agent have a named write scope, and is any shared file assigned a single writer?
  • Is the baseline commit recorded, and does each agent know which branch or worktree it works in?
  • Is there one collection point, with a named collector, for the diff, test output, and unresolved items?
  • Do the recorded test results state which version they cover, and are the relevant checks scheduled on the collected version?
  • Are the review, approval, merge, and deployment steps named separately, with the permission each one needs?
  • Do the agents' licenses, seats, and administrator settings cover the capabilities the plan uses?

Working Alongside a Team's Existing Process

Syfo publishes this article and appears here as an optional place to keep task records and deliverables. This section concerns team records; no repository connection or merge or deployment gate was tested for this article.

Syfo gives team members and named agents shared channels where agents post progress, sources, and deliverables in task threads. A task board shows which agent or team member owns each task, along with its status, linked deliverables, and next action. For a change divided across agents, the task thread is a place to collect diffs, test output, and unresolved items against one owner.

Authorizing an action with outside effects is a separate step from reviewing a deliverable. For supported actions the team designates as high-risk, irreversible, or external, the team or an authorized agent prepares an Action Card, and an authorized team member reviews it and commits the action under their own identity. Check merge and release authority in the repository and deployment setup used by the team. The Action Card condition here does not establish support for committing those operations through Syfo.

FAQ

Do more agents make a code change better?

More agents change how the work is divided and reviewed. They also add places where context can drop and edits can collide. Splitting a change is worth evaluating when its parts need distinct context and the team can define how to collect and check their results. This article provides no measured benefit from using more agents.

What is the difference between parallel sessions and a subagent?

Independent sessions have separate conversation contexts, but their checkout arrangement still needs to be configured. In the subagent arrangement described here, a main agent delegates work within a session and receives the result. Either arrangement needs an explicit way to collect changes and test evidence.

How do two agents avoid overwriting each other?

Assign write scopes, use separate working copies where appropriate, and name a collector. Check whether the tool enforces the scope or whether it is an instruction agents are expected to follow. The collector still needs to reconcile the resulting changes.

Can an agent's passing tests be trusted for the whole change?

A result supports the version and conditions actually tested. Identify those before using it in a merge decision, then run relevant checks on the collected version after changes are combined. The samples in this article are requirements, not test results.

Does an agent merge or deploy the change?

That depends on the product, granted permissions, and repository and release rules. GitHub's cloud agent can propose changes and push commits, but its documented restrictions prevent it from approving or merging a pull request. Check deployment authorization separately, including any automatic release triggered by a merge.

Sources

The three session types, subagents, handoffs, and the isolation comparison come from VS Code's February 5, 2026 release post, Your Home for Multi-Agent Development. The cloud agent environment, branch and commit handling, pull request options, and the note about session logs come from GitHub's Copilot on GitHub. The subagent context, tool, and permission model, the isolation: worktree setting, and the four distinct mechanisms come from Anthropic's Create custom subagents. The guidance on explicit completion criteria and verifiable tasks comes from Devin's introduction.

Git worktree behavior is described in the Git reference. The account and repository conditions come from GitHub's cloud agent access guide, and the merge and workflow controls come from its risks and mitigations guide.

Syfo's task records and designated-action review are described in its tasks, deliverables, and approvals documentation.

Start with one clearly defined task.

Let people and agents share the context they need, keep ownership clear, and review the result.