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

Kubernetes–Limit your environmental impact

Reducing the carbon footprint and CO2 emission of our (cloud) workloads, is a responsibility of all of us. If you are running a Kubernetes cluster, have a look at Kube-Green . kube-green is a simple Kubernetes operator that automatically shuts down (some of) your pods when you don't need them. A single pod produces about 11 Kg CO2eq per year( here the calculation). Reason enough to give it a try! Installing kube-green in your cluster The easiest way to install the operator in your cluster is through kubectl. We first need to install a cert-manager: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml Remark: Wait a minute before you continue as it can take some time before the cert-manager is up & running inside your cluster. Now we can install the kube-green operator: kubectl apply -f https://github.com/kube-green/kube-green/releases/latest/download/kube-green.yaml Now in the namespace where we want t...

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.

DevToys–A swiss army knife for developers

As a developer there are a lot of small tasks you need to do as part of your coding, debugging and testing activities.  DevToys is an offline windows app that tries to help you with these tasks. Instead of using different websites you get a fully offline experience offering help for a large list of tasks. Many tools are available. Here is the current list: Converters JSON <> YAML Timestamp Number Base Cron Parser Encoders / Decoders HTML URL Base64 Text & Image GZip JWT Decoder Formatters JSON SQL XML Generators Hash (MD5, SHA1, SHA256, SHA512) UUID 1 and 4 Lorem Ipsum Checksum Text Escape / Unescape Inspector & Case Converter Regex Tester Text Comparer XML Validator Markdown Preview Graphic Col...