Pages Menu
TwitterRssFacebook

Posted by on Sep 18, 2024 in Everything Else

Developers: Here’s what you missed (and what Microsoft didn’t say) about the Copilot Wave 2 release

Developers: Here’s what you missed (and what Microsoft didn’t say) about the Copilot Wave 2 release

Huge thank you to Kevin McDonnell who helped clarify my thinking around this and corrected me on some points. Go listen to the Copilot Connection podcast that he co-hosts.


2 days ago, Microsoft held a significant LinkedIn live event with some big announcements for new features available in Microsoft 365 Copilot.

I’m not going to cover most of those features, as they have been well covered elsewhere.

Instead, I want to focus on the development story. It’s taken me this time to talk to people, discover what’s happening, read the code commits. I’m sorry I wasn’t there with everyone else on day 1, but I hope that you’ll agree that this is a more considered piece and ultimately more informative for taking the time to work out what’s going on.

Going into the event, I really wanted to hear about what was happening with declarative copilots: the capability for developers to build experiences, triggered by Copilot chat, that could invoke custom APIs and perform custom actions, whilst still having access to Microsoft 365 data. Declarative copilots would also be able to be further customised with a system prompt supplied by the developer, meaning they could be scoped to very particular tasks or with very particular personalities, as configured by the developer.

What was in the announcement

For developers, the big change was the announcement of Copilot agents.

Since Copilot was announced, we’ve seen various different extensibility options being proposed. Extensions, plugins, declarative copilots, custom engine copilots, Copilot Studio copilots… it’s a lot. It’s confusing to non-technical users. Heck, it’s pretty confusing to technical users as well!

Microsoft is trying simplify things, so every extensibility option is now a copilot agent.

Whilst this is overly simplistic to me, and presumably to you (the highly technical reader of my blog), I get it. This terminology is aimed at real people, at end users who don’t want to have to choose between a plugin or an extension, or know the difference between them. Having one phrase for everything makes sense, in the same way (depending on your viewpoint) that calling every AI manifestation in Microsoft a Copilot makes sense.

Microsoft made two big announcements in their Wave 2 messaging: Copilot agents, and Agent builder.

Copilot agents is a new term for any type of extension to the Microsoft 365 Copilot experience. I think that this is a very useful term for most people that don’t want or need to think about the actual implementation under the hood. From the smallest embellishment to the greatest autonomous being, if it’s additional functionality in Microsoft 365 Copilot, it’s a Copilot agent. This will cover both no code, low code and pro code solutions. Be in no doubt: I am in favour of this as a means of simplifying the landscape for users, but I also think it will be problematic for those of us that work in the field. When every tool you work with is labelled with the same name, confusion ensues. We will need to come up with our own terms for the different implementations if Microsoft does not or insists on publicly referring to them everywhere by a single name.

Copilot Studio Agent Builder is the name Microsoft have given to their low code solution for creating Copilot experiences. This will allow you to create Copilot agents within Microsoft 365 Copilot Business Chat (BizChat) – the renamed Bing Enterprise Chat – and SharePoint, with no coding skills required.

During Build earlier this year Microsoft talked about how soon you would be able to create a Copilot for a specific SharePoint site. This is the manifestation of that promise.

It’s worth revisiting some of the Build content, in particular this slide, which I blogged at the time, that gave a good overview of all the different solutions. With this announcement, many of these capabilities are now available.

What was NOT in the announcement (and why)

So, like everyone else, I listened to the announcement on LinkedIn Live. And, it was great. I’m a knowledge worker in 2024 and the things that were announced are going to rock my world and make me a lot more productive.

And yet. There was a lot that I was expecting that wasn’t there.

It turns out, this announcement wasn’t for me. It probably wasn’t for you, either. If you’re reading this blog then you’re probably more developer-minded and not from the big pool that makes up the majority of Microsoft 365 users.

There was more stuff that Microsoft released that they didn’t talk about.

Firstly, some stuff got renamed, in line with the “agents” theme:

  • Copilot extensions are now Copilot agents
  • Custom engine copilots (the old Teams AI Library) are now Custom Engine Agents

And, declarative copilots, which up until now have been private preview, have been renamed to Declarative Agents and are now GA!

For me, this is the most exciting part of the entire announcement.

There has also been some tidying up around development experience. You can now start creating a Declarative Agent (yes, I’m going to use capitals until they stop me, it’s that exciting!) within the Agent Builder, or within Visual Studio using the Teams Toolkit.

Just tell me what to use…

This is where (I think) we are at.

There are 3 main ways to build on top of Copilot for pro-code developers:

Copilot agents – extend Copilot capability by registering to answer very specific questions which are invoked in the course of a conversation between a user and Copilot. Whilst the Copilot agents that can be built with the Copilot Studio Agent Builder are more aimed a low-code development, this term seems to also now cover what used to be Copilot plugins, both the ones built with message extensions and the ones built by referencing OpenAPI descriptions.

Whilst this is abstraction is useful for users who don’t need to know the difference, in technical terminology I think that these will continue to be referred to as Message extensions for Microsoft 365 Copilot and API Plugins for Microsoft 365 Copilot, respectively.

Today, API Plugins can only be used in Declarative Agents (see below) not in BizChat.

Using message extensions as plugins in Copilot can be used in BizChat, but they continue to be in public preview. They currently can’t be added from Declarative Agents.

Declarative Agents – a more conscious choice by a user to discuss a particular topic with an agent that is specialist in that topic, delivered and managed via Copilot and with the ability for a developer to provide a system prompt to shape the experience. Declarative Agents will also be triggered in BizChat if the system identifies that it’s the right thing to do.

Custom Engine Agents– a chat experience that the user opts into by starting a chat conversation outside of Microsoft 365 Copilot BizChat, but which continues to use Microsoft technology to deliver the experience. Today, these are conversational Teams bots, but I’m hoping for the day when these can also be invoked from BizChat just like Declarative Agents.

So, what are you going to do?

For me, I have a project in mind. I want to showcase the power of Declarative Agents and so I plan to create one of those. You’ll know if it’s been successful if you follow this blog or subscribe to the newsletter. Alternative, why not listen to my weekly podcast about all the interesting things that have happened in this space.

You can also read Microsoft’s Your Copilot agent options for Microsoft 365 document for more guidance about what approach to use when.

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.