Skip to main content

GitHub Copilot–When to choose what?

A few weeks ago, I did a webinar with a colleague where we talked about GitHub Copilot and the different ways you could use it. At that time, we demonstrated both the Chat mode and the Edits mode. With Microsoft 50-year anniversary the new Agent mode was made general available bringing the number of options to 3.

 


Remark: I didn’t succeed in letting Microsoft Designer generate a pathway splitting in 3 directions….

So now the question becomes:

When to choose what mode?

Great question!

When to choose what mode?

Choosing between GitHub Copilot Chat, Edits, and Agent mode depends on what you're trying to achieve:

  • Copilot Chat: Ideal for conversational interactions where you ask questions, seek explanations, or brainstorm ideas related to coding. It's like having an AI-powered teammate that responds to your queries in real time.

  • Copilot Edits: Best when you're actively modifying code. This mode allows you to start an edit session where Copilot suggests and applies changes directly to your code based on natural language prompts. It's great for refining specific segments without manually searching through the entire codebase.

  • Agent Mode: Designed for more proactive, task-oriented workflows. It goes beyond simple responses and edits, handling multi-step tasks autonomously. If you need Copilot to execute a more complex coding workflow without constant oversight, this is the mode to use.

I typically applied the following rules of thumb when choosing between modes:

  • I used Chat mostly when I need information about my code or guidance.

  • I used Edits when making targeted modifications to existing code.

  • I used Agent Mode when I wanted to setup new projects or build complete features and tests.

That being said I noticed that I used Agent Mode a lot more than the other 2 modes the last weeks. But it is too soon to tell if this is a general pattern or accidently related to the kind of work I’m focusing on the last weeks.

An example

Let’s take a common coding scenario: You’re refactoring an old JavaScript project and need to modernize some functions.

  1. Copilot Chat: You start by asking, "How can I optimize this function?" Copilot gives an explanation of best practices, performance improvements, or alternative methods.

  2. Copilot Edits: You decide on a refactor, highlight the function, and prompt Copilot with "Rewrite this using async/await." Copilot applies the edit directly in your code.

  3. Agent Mode: You need a deeper transformation, so you say "Upgrade this entire module to TypeScript." Copilot autonomously carries out the task across multiple files, making changes where necessary and resolving dependencies.

So, it depends on whether you want a quick explanation, a targeted edit, or a more comprehensive workflow execution.

I asked GitHub Copilot to transform this into a nice diagram and this is what I got back:

 

Hope that helps!

More information

Github Copilot Edits

GitHub Copilot Agent mode (Preview)

Mastering GitHub Copilot: When to use AI agent mode - The GitHub Blog

Popular posts from this blog

Podman– Command execution failed with exit code 125

After updating WSL on one of the developer machines, Podman failed to work. When we took a look through Podman Desktop, we noticed that Podman had stopped running and returned the following error message: Error: Command execution failed with exit code 125 Here are the steps we tried to fix the issue: We started by running podman info to get some extra details on what could be wrong: >podman info OS: windows/amd64 provider: wsl version: 5.3.1 Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM Error: unable to connect to Podman socket: failed to connect: dial tcp 127.0.0.1:2655: connectex: No connection could be made because the target machine actively refused it. That makes sense as the podman VM was not running. Let’s check the VM: >podman machine list NAME         ...

Azure DevOps/ GitHub emoji

I’m really bad at remembering emoji’s. So here is cheat sheet with all emoji’s that can be used in tools that support the github emoji markdown markup: All credits go to rcaviers who created this list.

VS Code Planning mode

After the introduction of Plan mode in Visual Studio , it now also found its way into VS Code. Planning mode, or as I like to call it 'Hannibal mode', extends GitHub Copilot's Agent Mode capabilities to handle larger, multi-step coding tasks with a structured approach. Instead of jumping straight into code generation, Planning mode creates a detailed execution plan. If you want more details, have a look at my previous post . Putting plan mode into action VS Code takes a different approach compared to Visual Studio when using plan mode. Instead of a configuration setting that you can activate but have limited control over, planning is available as a separate chat mode/agent: I like this approach better than how Visual Studio does it as you have explicit control when plan mode is activated. Instead of immediately diving into execution, the plan agent creates a plan and asks some follow up questions: You can further edit the plan by clicking on ‘Open in Editor’: ...