Let's Talk
Insights/AI & Development
AI & Development9 min read

Copilot Agent Mode: Run Frontend, Backend & Tester Together

I'm running three Copilot agents on the same codebase right now — one writing React components, one building the API, one running tests and filing issues. Here's exactly how the setup works and where it breaks.

Web Designer & Digital Marketing Consultant

Featured image for: Copilot Agent Mode: Run Frontend, Backend & Tester Together

Six months ago I would have described GitHub Copilot as a very good autocomplete. Fast, accurate on boilerplate, good at explaining code it didn't write. Useful. Worth the subscription.

That description is now outdated in a way that matters commercially. What Copilot's agent mode actually does in 2026 is closer to "gives you an extra developer who works at 4am and doesn't need a standup." That's a different product.

Here's what I've actually set up — and where the limitations still are.

The setup: three agents, one codebase

I'm working on a client project right now — a Next.js app with a Node/Express API and a PostgreSQL database. Standard enough stack. The team is me plus two other people, and we're under timeline pressure.

The agent setup that's actually been useful:

Agent 1 — Frontend. Assigned to a specific VS Code workspace window with the /app and /components directories as context. Task: build out the UI components from the design spec, handle loading states, wire up the API calls. Running in Copilot Chat agent mode with access to the terminal to run npm run dev and check for component errors.

Agent 2 — Backend. Separate VS Code window, focused on /api and /lib. Task: build out the API routes, write the database queries, handle validation. This agent has an MCP server connected to our local PostgreSQL instance so it can actually run queries and verify schema against real data rather than guessing.

Agent 3 — QA and integration. Runs Claude Code from the terminal (different tool — more on that below). Task: write integration tests for whatever Agent 1 and Agent 2 produce, run them, and file issues in our linear board for anything that fails. This is the one that runs largely unsupervised while I focus on reviewing what the other two produce.

Does this fully automate the project? No. I'm still reviewing every PR, catching places where Agent 1's component assumptions don't match Agent 2's API shape, and making architectural decisions that neither agent is scoped to make. But the amount of implementation work I'm doing personally has dropped significantly — I'm doing more architecting and reviewing, and less writing repetitive CRUD endpoints.

How to actually set up Copilot agent mode

The setup is simpler than most people expect. In VS Code:

Open Copilot Chat (the chat panel, not the inline completion). At the top of the chat, switch from "Ask" or "Edit" mode to "Agent" mode using the dropdown. From here, Copilot can use tools — terminal, file system, web search, and any MCP servers you've configured.

The critical configuration is your settings.json or workspace settings for MCP. A basic MCP server connection looks like:

{
  "mcp": {
    "servers": {
      "postgres": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/yourdb"]
      }
    }
  }
}

With this, the agent can query your database directly as context — not guess at schema, not hallucinate column names, but actually inspect and query real data.

For running multiple parallel agents: open separate VS Code windows (not split panes — actual separate windows) for separate domain scopes. Each window has its own chat history and its own terminal session. They share the same filesystem, which is both the power and the risk.

The orchestrator pattern — and why it's not magic yet

There's a lot of excitement in the developer community about "orchestrator + worker agents" — one master agent that breaks a large task into subtasks and delegates to specialist worker agents. The pattern is real and useful at a conceptual level. In practice, as of April 2026, the orchestration is still largely manual.

What this means: you write the orchestration yourself. You define the task split, tell each agent what the other is building, and periodically sync context between them. There's no VS Code plugin that automatically routes tasks between Copilot agents and resolves their conflicts. Someone floated an n8n workflow that claims to do this — I tried it. It works for toy examples. On a real codebase with evolving interfaces, it creates more merge conflicts than it resolves.

The practical pattern that works: write a shared AGENTS.md file in your repo root. Document the current task split, the agreed API interfaces between domains (e.g., "the /api/users endpoint returns this shape — both agents are committed to this contract"), and any constraints each agent should respect. Paste the relevant section of this file into each agent's context at the start of each session. This gives each agent "awareness" of what the others are doing without requiring automated orchestration that doesn't reliably exist yet.

Where Copilot agent mode actually breaks

Honest assessment, because the hype is real and so are the limitations.

Context window degradation. In a long agent session — say, 40+ back-and-forths while building out a complex feature — the early context starts dropping out of the window. The agent forgets constraints you set at the start of the session. I've had agents reintroduce code patterns I specifically asked them to avoid, because the instruction was 30 exchanges back. Mitigation: keep agent sessions focused and short (one feature, not one sprint), and re-anchor constraints at the start of each session with a brief context paste.

Merge conflicts between parallel agents. If Agent 1 (frontend) and Agent 2 (backend) both touch a shared utility file — say, a validation schema or a shared TypeScript type — you will get conflicts. There's no coordination mechanism. The fix is strict domain separation: shared code is owned by nobody, and changes to it must be made by you, not by either agent.

Terminal hallucinations. Occasionally the agent will run a terminal command, misread the output, and declare success on a task that actually failed. This is less common than it was 6 months ago but it still happens. Verify task completion outputs yourself, especially for anything that touches your database or deployment pipeline.

It needs a good codebase to work well. This is the one nobody wants to say out loud. Copilot agent mode on a codebase with inconsistent patterns, poor type coverage, and no test infrastructure makes worse decisions than Copilot on a codebase with strong TypeScript types, clear module boundaries, and existing test patterns to follow. Investing in codebase quality before investing heavily in AI-assisted development isn't just good practice — it's the condition under which the AI tooling actually works well.

The specific tasks where Copilot agent mode saves the most time

Not every task benefits equally. The biggest gains I've seen:

CRUD endpoints. Writing a new resource (model, migration, controller, route, types) is tedious and repetitive. With a properly set up agent that knows your stack conventions from existing examples, it completes a full CRUD resource in 8–12 minutes. That used to take me 45–60 minutes including the inevitable typos I'd only catch at test time.

Test coverage gaps. "Write unit tests for everything in /lib/calculations.ts that doesn't have coverage yet" is a perfect agent task. Measurable, bounded, verifiable. I run this at the end of a sprint and the coverage jumps.

Documentation. Tedious. Exactly the right shape of task for an agent. "Write JSDoc comments for every exported function in this file that is currently undocumented" — done in under 3 minutes, reasonably accurate, rarely requires more than minor edits.

Migration writing. Given the before and after schema, write the migration. Obvious one — but it consistently works and I stopped writing migrations by hand months ago.

Is this going to change how teams are structured?

Probably yes, over 2–3 years. Not because one agent replaces one developer — the "replace the junior dev" narrative is oversimplified and often wrong in ways I'll cover in a separate post. But because the output ratio changes. A mid-senior developer with good AI agent tooling can handle more surface area without the output quality suffering. That's not a headcount reduction claim — it's a scope-per-person shift. What structures form around that shift is a team and company culture question, not a technology one.

The developers who are building familiarity with this tooling now — not superficially, but actually understanding how to write good agent prompts, manage context windows, design domain splits, and review AI-generated code critically — will be disproportionately valuable in 18 months. Not because the technology is a magic moat. Because the practice and judgment compound.

Interested in how to integrate Copilot agent mode into your client projects or internal tooling? Get in touch. Also see: GitHub Copilot vs Claude Code — the honest comparison.

Further reading

Frequently asked questions

What is GitHub Copilot agent mode?

GitHub Copilot agent mode (available in VS Code from Copilot Chat) lets the AI autonomously complete multi-step tasks — not just suggest code line by line but actually run terminal commands, edit multiple files, read error output, and iterate until the task is complete. It's the difference between Copilot as an autocomplete tool and Copilot as an autonomous developer. As of April 2026, agent mode supports tool use including terminal execution, file system operations, web search, and custom MCP server connections.

How many Copilot agents can run at the same time?

In VS Code, you can run multiple Copilot Chat conversations in parallel, each in agent mode with their own task scope. The practical limit is your machine's ability to handle multiple terminal sessions and the context window for each agent. In real setups I've tested, 2–3 parallel agents on the same codebase work reliably. Beyond that, merge conflicts and overlapping file edits start creating more problems than the parallelism solves. The right mental model is: one agent per clearly bounded domain (frontend, backend, tests) — not one agent per file.

What is the difference between GitHub Copilot agent mode and Claude Code?

Copilot agent mode lives inside VS Code — it has deep IDE integration, sees your current file, open tabs, terminal output, and can make small targeted edits with full context of your development environment. Claude Code runs from the terminal and is built for larger autonomous refactors, codebase-wide analysis, and tasks that benefit from detachment from a specific IDE context. They're complementary rather than competitive: Copilot agent is better for active development sessions; Claude Code is better for running overnight refactors or asking 'find every place in this codebase where X pattern happens and fix it.'

Does GitHub Copilot agent mode support MCP servers?

Yes — as of early 2026, VS Code's Copilot integration supports MCP (Model Context Protocol) servers, which means you can connect Copilot agents to external tools, databases, APIs, and internal systems. This is a significant expansion of what the agent can do: instead of only operating on local files and terminal, it can query your database, read from your CMS, check your CI pipeline status, or call your internal APIs as part of completing a task. MCP server setup in VS Code requires a JSON config in your workspace settings pointing to the server's stdio or HTTP endpoint.

Ready to grow your business?

Get a free 30-minute strategy call

GitHub Copilotagent modeAI agentsVS Codemulti-agentdeveloper tools

Want to apply this?

Book a free consultation

30 minutes, no obligations. I'll look at your current site and tell you exactly what I'd do differently.

Free Consultation
Call Now
WhatsApp