As the world increasingly embraces the growing phenomenon of AI, emerging new products or features are never too far within reach. Recently announced GitHub’s Copilot features promise significant improvements to narrow the gap with AI-integrated IDE startups and potentially significantly enhance the development process. The features are expected to boost efficiency and reduce dependency on external tools. Andrei Salanoi, VP of AI Engineering at Godel, delves into Copilot’s top new features to look out for.
Custom Instructions
Custom Instructions is a key feature that significantly enhances productivity for developers. Previously, creating prompts for tools like Copilot had to be done from scratch each time, which was cumbersome. Now, Copilot allows developers to integrate custom instructions into their requests, tailoring responses to specific projects or coding practices. This is beneficial because it ensures consistent suggestions that align with the company’s rules and coding standards, and the instructions can be stored with the code, making them accessible to the entire team.
Custom instructions allow developers to include specific natural language statements in their requests to Copilot, making suggestions more relevant to their projects. This feature can help share best practices among the team and improve productivity. We are also looking forward to seeing how custom instructions will evolve into Prompt Templates and Context Providers feature available in similar AI assistant, Continue. To my mind this is the next step to move forward.
Multiple LLM Models
This feature allows developers to select from multiple LLM models, including Claude 3.5 Sonnet (Preview), GPT-4o, o1-mini (Preview) and o1-preview (Preview), from different vendors. This flexibility can help developers find the best model for their needs without switching between tools.
Previously, there wasn’t a way to select a model you would like to use to get suggestions from Copilot, and the only workaround was to use ChatGPT, select the model you like, get some suggestions and copy it back to your IDE.
Now, there is no need to do this. You could select a model from a list of available models such as Claude, GPT-4o, GPT-o1 preview and Google Gemini*, with no need to switch between your IDE and ChatGPT. What also makes this feature interesting is that GitHub is also adding models of other vendors so now developers can play with these models and check which of them works best for them. This feature no longer looks unique to various AI-driven IDEs offered by various startups because it’s already available in Copilot. There are more reasons to stay with Copilot rather than switch to another application.
Copilot Extensions
Copilot Extensions enable new developers to add chat participants to get specific information or perform tasks like creating architectural diagrams, fetching task description and many more. This feature helps maintain workflow without switching between tools.
Previously there were very few extensions or chat participants so extensions were introduced as assistance, which you could talk to to get specific information. So, you could add some questions about your workspace such as how to do certain stuff in Visual Studio code, let’s call it agent, which could provide an answer on configuring a specific command.
Now, there is an option to extend the set of chat participants, which allows you, for example, to ask this participant to create your architectural diagram. You talk to an agent, you ask it to create a diagram of the database, and it does it for you. Without this feature, it was not possible. I believe it’s interesting because this new feature means there is no need to switch between different tools if you have them available in this chat window. If you need to get some information about your ticket in JIRA, you can ask a JIRA chat participant to get more details and it will provide you with this information so you will stay in the flow, so no mental context switch.
Copilot Edits
There is a new way of editing files with Copilot Edits, which allows developers to form a set of files and apply code modifications only to those files. This feature provides more control over the editing process. If you already know in advance which files are affected by your changes, you can form a set of these files. You add these files to an entity called Working Set, and all the queries regarding code modification which you start discussing with Copilot will apply only to these files in this set.
In my opinion, Copilot tries to narrow down the context which needs to be considered. Previously there was no Working Set Copilot and we had to guess what files needed to be modified to accomplish your task. Now you can do this explicitly, and something we need to experiment with to evaluate how useful this feature is, but more control you have over the process.
Workspace Indexing
The workspace indexing feature helps developers find relevant information about their projects more quickly and accurately. This feature is particularly useful for large codebases and new team members and is a way to find relevant information regarding your project quicker and more accurately.
There is an importance of evaluating and adopting these new features to improve the development process. Previously, I don’t remember that Copilot had this feature, and I find it useful for scenarios when you deal with large code bases. So for example, you have a new project, you have no idea what’s inside, and you can start asking all kinds of questions related to the task you’re trying to solve, and you will start to get links to the components which might be relevant to your request.
It also might be a quite useful tool for newcomers who join the project so they could ask as many questions about the project, and get answers from an AI assistant. This feature also looks important because we frequently deal with big legacy code bases, which even the customer isn’t sure about, and you can explore this feature and see how it looks in practice. I would say that this release is a significant step forward.
What is the future of Copilot?
We’re going to evaluate all these features to adopt them and spread this knowledge among our employees and our partners. It might be difficult to convince developers to invest their time and money in studying this tool and the majority may prefer to continue working in the same way they used to. On the other hand, those who start using Copilot will move from simple usage scenarios to more complex ones and finally, they will find that this tool brings them a lot of value. New releases may bring us a lot of new productivity improvements which can make these improvements even more valuable. We’re looking forward to seeing what these new releases will bring us, I would expect that they will extend a set of supported models and improve or extend the features they offer in terms of reusing the prompts.
What I currently lack is a way to create a prompt template that I can store in a centralised location. This template wouldn’t need to be tied to a specific project, but rather specific to the organisation, allowing us to use it across different projects. There is definitely room for improvement in GitHub, particularly in terms of collaboration features. I hope that in the next release, we will see something similar introduced because it would significantly drive higher adoption of this tool.
*This model is planned to be added