So many organisations continue to have their eyes on AI, with products like Copilot in the limelight. In this post, I'm going to show you how to get the 80% chunk of value out of Microsoft 365 Copilot by extending it with enterprise data sources using Graph Connectors and declarative agents.
Who wants their Copilot to get them organised and remind them of the things to do?
Okay so let's look at a scenario we'll implement in this post. I am going to explore a couple of different agents. These work really well together, each with a specialised focus. One of my agents is going to be a support agent for a Software Engineering practice both supporting the practice colleagues and engineers, but also reducing their workload by handling queries that might come their way pulling their attention away from coding. Colleagues not in the practice will be able to ask the agent queries about code, repositories in the organisation, technologies such as Microsoft Graph and others we choose to give it knowledge in, and the current activities and work items open in the practice.
Then we're going to have a second agent focused more on personal administrative activities support. I'm going to have an agent support me with keeping my inbox together, my tasks in one place and other things like that.
Pre-configured Graph Connectors
To begin with, let's take a look at some configuration I have going on in the Microsoft 365 Admin Center to index data from external enterprise data sources into my tenant which I can later easily use with declarative agents built with agent builder.
So here I am in the search & intelligence area in the Microsoft 365 Admin Centre. This lets me configure the enterprise data sources I want to index data from to enhance various Microsoft 365 experiences. Graph Connectors lets us extend various experiences like Microsoft 365 Copilot, custom engine agents, Microsoft Search, context IQ in Outlook for the web and more!
Here we can see I have a couple of connectors configured. I'll call out three of them being
- Microsoft Graph documentation - This connector indexes documentation from Microsoft Learn on all things relevant to Microsoft Graph
- Azure DevOps - This connector indexes work items in my Azure DevOps organisation. This is the out of the box available connector from Microsoft.
- GitHub Repositories Connector - This connector indexes the repositories I have in my GitHub. This can be linked to an organisational GitHub. Here is a sample https://github.com/microsoftgraph/msgraph-sample-github-connector-python
At Ignite, Microsoft announced some new admin centre available connectors coming to Graph connectors. One of these is for GitHub but is currently in private preview.
Let's create an agent in agent builder
Okay so now let's take a look at an the agent I have built for the Software Engineeing Practice...
Heading over to microsoft365.com, followed by selecting Copilot, I'm able to select create agent and then switch to all agents to edit existing ones.
Now let's take a look at my Software Engineering Practice agent.
Here I have a couple of things configured before we even look at knowledge, but this is super simple! Anyone can build an agent here. All I have done is provided the agent with a name, description and then I've given it some natural language instructions. It's important to write descriptive instructions for your agent to follow highlighting things like knowledge sources or actions it should use if they are present. At this current point actions cannot be used with agents built in agent builder. That can currently be achieved with Copilot Studio or Teams Toolkit.
The next thing I have turned on for this agent is the three Graph Connectors I called out. This is as simple as toggling those on for your agent and makes for a super simple experience for colleagues to use enterprise data in their agents even if it is IT configuring them at the tenant level which whilst is slightly more complex, isn't overly technical. Keep in mind that for the connectors I've switched on I've used instructions that tell the agent when it should possibly reference the knowledge sources.
I've also switched on code interpreter and I've added some starter prompts for people to get familiar with the agent using.
Another agent...
Now that's as simple as it is to configure a declarative agent built with agent builder to use enterprise data sources (Graph Connectors) to enhance it's responses. Now I have one more agent which I've provisioned from Teams Toolkit. This agent uses the OpenAPI description of a few Microsoft To Do endpoints within the Microsoft Graph REST API.
Above you can see the json configuration of the declarative agent. In other files I've included the instructions for the agent, and I've added the plugin using Teams Toolkit by providing a .yml file containing the OpenAPI description.
We'll go into building declarative agents with Teams Toolkit in more detail in a future post.
Let's test out a workflow
Now, let's test out a workflow in Microsoft 365 Copilot using our two new declarative agents, one built with Graph Connectors and agent builder, and the other built with Teams Toolkit which uses a REST API plugin.
So the first thing I'll do is @ tag the Software Engineering Practice agent and ask for it to suggest some internal repositories surrounding AI, as that is a topic I'm currently looking to upskill in.
And check it out! Copilot, or my declarative agent, has responded providing me with a repository that I can use to upskill in AI! Perfect.
Okay now step 2... which is a common need... I'm not going to be able to focus time on this right now, and I'm going to need a centralised reminder to come back to it later.
I'm going to click the X to stop chatting with the Software Engineering Practice agent, and next I'll @ tag the Personal Assistant agent which I built using Teams toolkit, and that has the Microsoft Graph endpoints to create tasks in Microsoft To Do. It also gets my task lists so it can determine which list to create the task in preventing the user from needing to provide a list id which they won't know.
Now the agent asks me to confirm whether it can create the task. This will happen before plugins are called. I'll confirm and then check this out...
I've now got a task to pick up in my usual tasks list where I keep track of all of the things I need to do. I also use Notion for organisation so the next agent I build will definitely be for creating records in Notion databases.
Summary and resources
So! In this post, we explored some Graph Connectors already configured in my tenant. We'll go into more detail around how to build and configure Graph Connectors in a future post. Then we built a declarative agent in agent builder and explored one built in Teams Toolkit. Finally we pulled everything together with a simple workflow to explore how we can extend Microsoft 365 Copilot with declarative agents and Graph Connectors. We will go into more detail around API plugins in a future post focused on extensibility through Teams Toolkit.
You can check out the resources below to get started with Microsoft 365 Copilot extensibility.
Thanks for stopping by this post for an intro on how Graph Connectors and declarative agents work well together to extend Microsoft 365 Copilot. Subscribe below for more around these topics coming up soon.