Skip to content

Latest commit

 

History

History
108 lines (65 loc) · 10.7 KB

setting-up-copilot-extensions.md

File metadata and controls

108 lines (65 loc) · 10.7 KB
title intro defaultTool versions topics shortTitle
Setting up Copilot Extensions
Follow these steps to start building {% data variables.product.prodname_copilot_extensions_short %}.
agents
feature
copilot-extensions
Copilot
Set up Copilot Extensions

{% data reusables.copilot.copilot-extensions.public-preview-note %}

This article is designed to help you build an entirely new {% data variables.product.prodname_copilot_extension %}. To instead learn how to quickly build and test a demo {% data variables.product.prodname_copilot_extension_short %} created by {% data variables.product.github %}, see "AUTOTITLE."

{% data reusables.copilot.copilot-extensions.differences-between-agents-and-skillsets-1 %} For more information about skillsets, see "AUTOTITLE." {% data reusables.copilot.copilot-extensions.differences-between-agents-and-skillsets-2 %}

{% agents %}

1. Learn about {% data variables.product.prodname_copilot_agents_short %}

{% data variables.product.prodname_copilot_agents_short %} contain the custom code for your {% data variables.product.prodname_copilot_extension_short %}, and integrate with a {% data variables.product.prodname_github_app %} to form the {% data variables.product.prodname_copilot_extension_short %} itself. For more information, see "AUTOTITLE."

To successfully build a {% data variables.product.prodname_copilot_agent_short %}, you need to understand how the agent communicates with:

  • The {% data variables.product.prodname_copilot_short %} platform using server-sent events. See "AUTOTITLE."
  • The {% data variables.product.github %} API. See "AUTOTITLE."

2. Review example {% data variables.product.prodname_copilot_agents_short %} and the {% data variables.product.prodname_copilot_extensions_short %} SDK

To see the previous concepts in practice and learn about agent implementations, review the following example agents and software development kit (SDK), all of which are available in the copilot-extensions organization:

  • Blackbeard (best starting point): A simple agent that responds to requests like a pirate using {% data variables.product.prodname_copilot_short %}'s large language model (LLM) API and special system prompts.
  • {% data variables.product.prodname_github_models %}: A more complex agent that lets you ask about and interact with various LLMs listed on the {% data variables.product.prodname_marketplace %} through {% data variables.product.prodname_copilot_chat_short %}. The {% data variables.product.prodname_github_models %} agent makes use of function calling.
  • Function Calling: An example agent written in Go that demonstrates function calling and confirmation dialogs.
  • RAG Extension: An example agent written in Go that demonstrates a simple implementation of retrieval augmented generation.
  • Preview SDK: An SDK that streamlines the development of {% data variables.product.prodname_copilot_extensions_short %} by handling request verification, payload parsing, and response formatting automatically. This SDK allows extension builders to focus more on creating core functionality and less on boilerplate code.

3. Build a {% data variables.product.prodname_copilot_agent_short %}

Using the reference material from the previous steps, plan and build your {% data variables.product.prodname_copilot_agent_short %}. You can choose to implement any of the following options:

  • To avoid building and managing your own LLM deployment, your agent can call the Copilot LLM deployment. See "AUTOTITLE."
  • To quickly interpret user input and choose from a variety of predefined functions to execute, you can implement function calling in your agent. To learn more, see How to use function calling with Azure OpenAI Service in the Azure OpenAI documentation and Function calling in the OpenAI documentation.

4. Deploy your {% data variables.product.prodname_copilot_agent_short %}

To make your {% data variables.product.prodname_copilot_agent_short %} accessible to the {% data variables.product.prodname_copilot_short %} platform and {% data variables.product.github %}, you need to deploy it to a server that is reachable by HTTP request. See "AUTOTITLE."

5. Create a {% data variables.product.prodname_github_app %} and integrate it with your {% data variables.product.prodname_copilot_agent_short %}

To create a {% data variables.product.prodname_copilot_extension_short %}, you need to create and configure a {% data variables.product.prodname_github_app %}, then integrate it with your {% data variables.product.prodname_copilot_agent_short %}. See "AUTOTITLE" and "AUTOTITLE."

6. Choose the availability of your {% data variables.product.prodname_copilot_extension_short %}

Choose one of two visibility levels for your {% data variables.product.prodname_copilot_extension_short %}:

  • Public: Any user or organization account with the installation page link for the extension can install it.
  • Private: Only the user or organization account that created the extension can install it.

If you make your {% data variables.product.prodname_copilot_extension_short %} public, you can then choose to list it on the {% data variables.product.prodname_marketplace %}.

To learn how to change the visibility of your {% data variables.product.prodname_copilot_extension_short %} and list it on the {% data variables.product.prodname_marketplace %}, see "AUTOTITLE."

Next steps

To learn how to use your {% data variables.product.prodname_copilot_extension_short %}, see "AUTOTITLE."

{% endagents %}

{% skillsets %}

1. Learn about {% data variables.product.prodname_copilot_skillsets %}

{% data variables.product.prodname_copilot_skillsets %} contain the custom code for your {% data variables.product.prodname_copilot_extension_short %}, and integrate with a {% data variables.product.prodname_github_app %} to form the {% data variables.product.prodname_copilot_extension_short %} itself.

Unlike {% data variables.product.prodname_copilot_agents_short %}, {% data variables.product.prodname_copilot_skillsets_short %} handle the logic behind prompt crafting, function evaluation, and response generation, making them an ideal choice for developers seeking quick and effective integrations with minimal effort. For more information, see "AUTOTITLE."

2. Build a {% data variables.product.prodname_copilot_skillset_short %}

To explore an example of a skillset implementation, see the skillset-example repository in the copilot-extensions organization.

To build a skillset, see "AUTOTITLE."

3. Deploy your {% data variables.product.prodname_copilot_skillset_short %}

To make your {% data variables.product.prodname_copilot_skillset_short %} accessible to the {% data variables.product.prodname_copilot_short %} platform and {% data variables.product.github %}, you need to deploy it to a server that is reachable by HTTP request. See "AUTOTITLE."

4. Create a {% data variables.product.prodname_github_app %} and integrate it with your {% data variables.product.prodname_copilot_skillset_short %}

To create a {% data variables.product.prodname_copilot_extension_short %}, you need to create and configure a {% data variables.product.prodname_github_app %}, then integrate it with your {% data variables.product.prodname_copilot_skillset_short %}. See "AUTOTITLE" and "AUTOTITLE."

5. Choose the availability of your {% data variables.product.prodname_copilot_skillset_short %}

Choose one of two visibility levels for your {% data variables.product.prodname_copilot_extension_short %}:

  • Public: Any user or organization account with the installation page link for the extension can install it.
  • Private: Only the user or organization account that created the extension can install it.

If you make your {% data variables.product.prodname_copilot_extension_short %} public, you can then choose to list it on the {% data variables.product.prodname_marketplace %}.

To learn how to change the visibility of your {% data variables.product.prodname_copilot_extension_short %} and list it on the {% data variables.product.prodname_marketplace %}, see "AUTOTITLE."

Next steps

To learn how to use your {% data variables.product.prodname_copilot_extension_short %}, see "AUTOTITLE."

{% endskillsets %}