GitHub Copilot CLI brings the Copilot coding agent into your terminal. Like Claude Code, it does not run as one monolithic assistant. It ships with a set of built-in agents and delegates work to them in separate context windows, so your main session stays focused instead of filling with file dumps and test output.
There are six default agents, not the three or four you may have seen quoted elsewhere. Here is the accurate set, what each does, and where it earns its keep on a multi-module Spring Boot codebase.
The six default agents
| Agent | What it does | You reach it by |
|---|---|---|
| Explore | Quick codebase analysis so you can ask about your code without adding to the main context | A read prompt; delegated automatically |
| Task | Runs commands like tests and builds, brief summary on success, full output on failure | Delegated automatically when a command runs |
| General purpose | Complex multi-step tasks needing the full toolset, in a separate context | Delegated automatically |
| Code review | Reviews changes, surfacing only genuine issues with minimal noise | /review, or delegated |
| Research | Deep research across your code, related repos, and the web, with a cited report | A research prompt |
| Rubber duck | A constructive critic that gives feedback on non-trivial work | Used automatically; you never call it |
Two of these you never invoke. Rubber duck is consulted on your behalf and will not appear when you run /agent, though Copilot may mention it as it works. The rest the model delegates to automatically based on the task, or you can steer explicitly.
How delegation actually works
The model running the CLI can hand a task to a subsidiary subagent if it judges the work will complete more effectively, or it can handle the work itself in the main agent. The subagent runs in its own context window, so the verbose middle of a task stays out of your main conversation and only the result comes back.
You also have two explicit, user-controlled modes:
- Autopilot runs multi-step tasks locally without approving each step. Cycle into it with
Shift+Tab. /delegatehands the task to the Copilot cloud agent: it commits a checkpoint to a new branch, opens a draft PR, works in the background, and requests your review. Good for long-running work you want off your machine.
Which agent handles which Spring Boot layer
A request rarely lives in one layer. Here is how the work splits across a typical Spring Boot request path, what you type, and why that agent fits.
| Layer | What you prompt | Agent | Why that agent |
|---|---|---|---|
@RestController endpoint |
“Explain the request flow for OrderController” then “Add a GET /orders/{id} endpoint with DTO and test” |
Explore, then General purpose | Explore reads the call graph without bloating context; General purpose reads and writes the new code |
| Service facade | “Show what OrderService orchestrates” then “Add a cancelOrder method” |
Explore, then General purpose | The orchestration spans many beans, so Explore surveys them; the build needs read plus write |
| DAO / repository | “List every query and @Transactional use in OrderRepository” then “Add findByStatusAndRegion“ |
Explore, then General purpose | A read-heavy scan suits Explore; adding a query needs read plus write |
| Kafka consumer / producer | “Find every consumer of order-events” then “Add a @KafkaListener for order-cancelled“ |
Explore, then General purpose | Topic usage is spread across files; wiring a listener is a build task |
| External / stream API call | “Where do we call the payment client?” then “Add a 2s timeout and fallback” | Explore, then General purpose | Explore finds the call sites; General purpose implements the handling |
| Spring Batch job | “Trace the reader, processor, writer in ReconJob” then “Add a nightly reconciliation job” |
Explore, then General purpose | The step graph is read-only discovery; new job config is read plus write |
| Run the test suite | “Run the integration tests and report failures” | Task | Task runs the command and returns only the failures, keeping the @SpringBootTest wall of output out of your context |
| Review a change | “Review my changes to the order flow” via /review |
Code review | Independent review surfaces real issues with minimal noise |
| Evaluate an approach | “Research how to migrate this module to Spring Boot 3 and cite sources” | Research | Pulls from your code, related repos, and the web, with a cited report you can act on |
@Transactional / @Service / @Component boundary move |
Use plan mode (Shift+Tab) to plan moving the boundary, then approve |
Plan mode, then build | A boundary move is expensive to get wrong, so plan and approve before edits |
You never name most agents. The verb in your prompt and the nature of the task do the routing. Reach for /review, plan mode, or a research prompt when you want a specific one.
Seeing cost, tokens, and time
Copilot CLI has built-in usage reporting, which matters because delegation multiplies token spend:
/usageshows GitHub AI Credits used this session, session duration, lines of code edited, and a per-model token breakdown./contextgives a visual overview of how full your context window is./compactmanually compresses history to free up space; the CLI also auto-compresses near 95% of the token limit.
A note on the model: Copilot CLI runs Claude Sonnet by default, with /model to switch to others including GPT-5. So the same Anthropic model family you may use directly is doing the work underneath.
The takeaway for a Spring developer
The pattern mirrors good engineering discipline. Let Explore and Research do the reading so your main thread stays clean. Let Task absorb noisy test output. Use plan mode before boundary moves and migrations. Reserve /review for an independent pass on your diff. On a deep service layer with a heavy integration suite, that division of labor is what keeps the tool useful for hours instead of degrading after twenty minutes.
If you also work in Claude Code, the parallels are close: Explore, a planning step, and a general worker show up in both, and both expose token usage so you can watch what delegation costs. Knowing the default roster in each tool is what lets you steer instead of guess.