title | description | author | ms.author | ms.topic | ms.localizationpriority | ms.date |
---|---|---|---|---|---|---|
Knowledge and Capabilities for Agents in Microsoft 365 Copilot |
Learn about capabilities that you can add to your declarative agent and how to enable them. |
lauragra |
lauragra |
concept-article |
medium |
03/24/2025 |
You can enhance the user experience of your declarative agent by adding capabilities. The capabilities element in the manifest reference and the Capabilities and Knowledge sections in the Copilot Studio agent builder provide several options for you to unlock features for your users. This article describes the capabilities and knowledge sources that you can add to your agents.
The following table shows which capabilities and knowledge sources you can configure by using agent builder or Teams Toolkit and whether a your users require a Microsoft 365 Copilot license or metered usage to access the agent.
Capability or knowledge source | Agent builder | Teams Toolkit | License or metered usage required? |
---|---|---|---|
Code interpreter | ✅ | ✅ | No |
Image generator | ✅ | ✅ | No |
Microsoft Graph connectors | ✅ | ✅ | Yes |
SharePoint and OneDrive | ✅ | ✅ | Yes |
Web search | ✅ | ✅ | No |
Scoped web search | ✅ | ✅ | Yes |
Dataverse | ❌ | ✅* | Yes |
❌ | ✅* | Yes | |
People | ❌ | ✅ | Yes |
Teams messages | ❌ | ✅* | Yes |
* Option to scope the knowledge is available.
Code interpreter is an advanced tool designed to solve complex tasks via Python code. It uses the reasoning model to write and run code, enabling users to solve complex math problems, analyze data, generate visualizations, and more. After the code runs, code interpreter outputs the results and generated code. It can also produce images or files based on the scenario, and accepts files as input for modifications and analysis.
Note
Support for in-context agents that have code interpreter enabled varies by host.
The user prompt "Graph the first 20 numbers in a Fibonacci sequence" generates both a line graph and, when the user clicks the </> Code
button, provides the corresponding Python code.
The following images show examples of the results of a data graphing request.
:::image type="content" source="assets/images/code-interpreter-python-1.png" alt-text="Graph response to the user prompt":::
:::image type="content" source="assets/images/code-interpreter-python-2.png" alt-text="Python code response to the user prompt":::
The user prompt "Create a word cloud of top pet names" generates a word cloud that includes the top names, as shown in the following example.
:::image type="content" source="assets/images/code-interpreter-pet-word-cloud.png" alt-text="Word cloud response to the user prompt":::
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable code interpreter, add the CodeInterpreter
value to the capabilities property in your manifest file, as shown in the following example.
Note
You must be using version 1.2 or later of the declarative agent manifest schema to add the CodeInterpreter
capability.
{
"capabilities": [
{
"name": "CodeInterpreter"
}
]
}
If you're using Copilot Studio agent builder to create your agent, on the Configure tab, under Capabilities, choose the toggle next to Code interpreter.
:::image type="content" source="assets/images/capabilities-toggle.png" alt-text="Screenshot of the Capabilities section of the agent builder":::
The image generator capability enables declarative agents to generate images based on user prompts. Image generator uses the existing Designer functionality to create visually appealing and contextually relevant graphics, and includes the following features:
- Multiple image generation: For each user prompt, the agent generates four images.
- Interactive image options: Users can click on each generated image to view it in full size. They can download, copy, or view content credentials for the full-size image. They can also click the side arrow to scroll through the four images.
- Image modification: Users can follow up with subsequent prompts to modify the original images without losing context. For example, first prompt: "Create a photo of a happy puppy running around in a yard." Second prompt: "Include a tennis ball."
- Feedback mechanism: Users can provide feedback on the generated images by giving a thumbs up or thumbs down. This helps improve the quality of future image generations.
- Clipboard and sharing: Users can copy the generated images to their clipboard to paste into other applications, or they can share the generated images directly from the interface.
The following examples show what users can do with the image generation capability in your agent.
User prompt: Create an image of a serene beach at sunset with palm trees and gentle waves.
The following image shows the result.
:::image type="content" source="assets/images/image-gen-beach-prompt.png" alt-text="Beach image response to the user prompt":::
User prompt: Design a flyer for a summer music festival and add a date for May 15, 2024.
The following image shows the result.
:::image type="content" source="assets/images/image-gen-flier-prompt.png" alt-text="Festival flyer image response to the user prompt":::
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable image generator in your agent, add the GraphicArt
value to the capabilities property in your manifest file, as shown in the following example.
Note
You must be using version 1.2 or later of the declarative agent manifest schema to add the GraphicArt
capability.
{
"capabilities": [
{
"name": "GraphicArt"
}
]
}
If you're using Copilot Studio agent builder to create your agent, on the Configure tab, under Capabilities, choose the toggle next to Image generator.
:::image type="content" source="assets/images/capabilities-toggle.png" alt-text="Screenshot of the Capabilities section of the agent builder":::
Note
The image generator doesn't currently work in the test pane in Copilot Studio agent builder.
Microsoft Graph connectors enable you to add organizational data to your agent as grounding information. You can use Microsoft Graph connectors to ingest your line-of-business data into Microsoft Graph and Copilot can reason over your data as grounding information in responses to user prompts. For more information, see Microsoft Graph connectors for Microsoft 365 Copilot.
For information about how to add Microsoft Graph connectors as knowledge to your agent manifest in Teams Toolkit, see Microsoft Graph connectors object.
For information about how to add Microsoft Graph connectors to your agent in Copilot Studio agent builder, see Microsoft Graph connectors.
When you configure your agent to use OneDrive and SharePoint content as knowledge, Copilot searches SharePoint and OneDrive sites that a user has access to for grounding information.
For information about how to add the OneDrive and SharePoint as knowledge capability to your agent manifest in Teams Toolkit, see OneDrive and SharePoint object.
For information about how to enable the OneDrive and SharePoint as knowledge capability to your agent in Copilot Studio agent builder, see Add knowledge sources.
The web search capability enables agents to use the search index in Bing to respond to user prompts. If you enable web search in your agent, you can have your agent return any web data in its responses. You can also scope the web search to up to four public websites.
Note
You must be using version 1.2 or later of the declarative agent manifest schema to add scoped web search to your agent.
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable web search, you add the WebSearch
value to the capabilities property in your manifest file. If you want to scope your web search to specific sites, add the sites property and specify up to four URLs, as shown in the following example.
{
"capabilities": [
{
"name": "WebSearch",
"sites": [
{
"url": "cnn.com"
},
]
}
]
}
If you're using Copilot Studio agent builder to create your agent, on the Configure tab, under Knowledge, list the website URLs that you want to reference.
Dataverse knowledge allows agents to respond in natural language to user queries about their CRM data or data from tables in Microsoft Dataverse. This capability allows you to add a Dataverse instance as a knowledge source and to add synonyms and a glossary to help the system better interpret customized data in your tables. For more information, see Add a dataverse knowledge source.
Note
Dataverse knowledge is not currently available in Copilot Studio agent builder.
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable Dataverse knowledge, add the Dataverse
value to the capabilities property in your agent manifest file, as shown in the following example.
Note
You must be using version 1.3 of the declarative agent manifest schema to add the Dataverse
capability.
{
"capabilities": [
{
"name": "Dataverse",
"knowledge_sources": [
{
"host_name": "organization.crm.dynamics.com",
"skill": "DVCopilotSkillName",
"tables": [
{
"table_name": "account"
},
{
"table_name": "opportunity"
}
]
}
]
}
]
}
The email capability allows you to scope your agent to a personal or shared mailbox, and optionally, a specific mailbox folder. You can reference multiple mailbox folders but only one shared folder.
Note
Email knowledge is not currently available in Copilot Studio agent builder.
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable email knowledge, add the Email
value to the capabilities property in your agent manifest file, as shown in the following example.
Note
You must be using version 1.3 of the declarative agent manifest schema to add the Email
capability.
"capabilities": [
{
"name": "Email",
"shared_mailbox": "sample@service.microsoft.com",
"folders": [
{
"folder_id": "sentitems"
}
]
}
]
In the folder_id field, you can reference either well-known folder names or folder IDs. For a list of well-known folder names, see mailFolder resource type. To get a list of folder IDs, use the following query in Graph Explorer:
https://graph.microsoft.com/v1.0/me/mailFolders
In the shared_mailbox field, use the SMTP address of the shared mailbox.
If you reference both a shared mailbox and a folder, the agent scopes responses to the folder within the shared mailbox. If you reference a folder only, the agent scopes responses to the contents of the folder within the personal mailbox.
If you don't reference a shared mailbox or a folder, the agent search is not scoped to any folder or mailbox and it returns results from all email content, based on the user's query.
The people capability allows you to scope your agent to answer questions about individuals in an organization. For example, your agent can respond to queries such as "How do I contact <person>" or "List the direct reports of <person>". This capability is not scoped.
Note
People knowledge is not currently available in Copilot Studio agent builder.
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable people knowledge, add the People
value to the capabilities property in your agent manifest file, as shown in the following example.
Note
You must be using version 1.3 of the declarative agent manifest schema to add the People
capability.
"capabilities": [
{
"name":"People"
}
]
The Teams messages capability allows agents to use Teams channels, meeting chats, group chats, 1:1 chats, and teams as a knowledge source. You can choose to specify up to five links to teams, channels, group, 1:1, or meeting chats to scope Copilot search, or you can allow your agent to use all the user's Teams content, including channels, teams, meetings, and individual and group chats, as knowledge sources.
Agents can return links to files shared in Teams messages, but they can't return links to files stored in a Teams channel, unless the agent also has the OneDriveAndSharePoint
capability enabled. For information about how to optimize SharePoint content for Copilot, see optimize SharePoint content retrieval.
If you're using Teams Toolkit and Visual Studio Code to create your agent, to enable the Teams messages capability, add the TeamsMessage
value to the capabilities property in your manifest reference. If you want to scope Teams knowledge to up to five Teams resources, add the links to the urls property, as shown in the following example.
Note
You must be using version 1.3 of the declarative agent manifest schema to add the TeamsMessage
capability.
{
"capabilities": [
{
"name": "TeamsMessages",
"urls": []
}
]
}
To get the URL for a Teams team or channel, choose the three dots (...) next to the team or channel name and choose Get link to team or Get link to channel.
To get the URL for a Teams meeting, open the meeting, choose the arrow next to Join, and choose Copy join link.
To get the URL for a group or 1:1 chat, you need a deep link that includes the chatId. The deep link has the following format: https://teams.microsoft.com/l/chat/<chatId>/conversations
. The chatId value is different for each chat.
To get the chatId value for a group or 1:1 chat:
- In Microsoft Teams, go to any message in the chat.
- Hover over the message and choose the three dots (...).
- Select Copy link.
- Paste the link into Notepad or a similar application. The link will look similar to the following:
https://teams.microsoft.com/l/chat/19:12ab3c4d-a123-12a3-a123-123ab12c12de_12a3bcd4-1234-1234-123a-1b2345c678d9@unq.gbl.spaces//1743033793614?context=%7B%22contextType%22%3A%22chat%22%7D
. - Copy the segment of the URL that falls between
chat/
and the next/
. The segment is generally prefaced with19:
. This is the chatId. In the previous example, the chatId is19:12ab3c4d-a123-12a3-a123-123ab12c12de_12a3bcd4-1234-1234-123a-1b2345c678d9@unq.gbl.spaces
. - Add the chatId to the deep link. For example:
https://teams.microsoft.com/l/chat/19:12ab3c4d-a123-12a3-a123-123ab12c12de_12a3bcd4-1234-1234-123a-1b2345c678d9@unq.gbl.spaces/conversations
.
For more information, see Deep link to Teams chat.