GPT plugins in Microsoft Copilot for Security

GPT skill settings

Setting Name Type Description Required
ModelName string Selects which GPT model to use. Must be one of the available model names. Yes
Template string GPT prompt template. Supports upto 80,000 chars. Yes, if TemplateUrl isn't specified.
TemplateUrl string Public URL to download the GPT prompt template (upto 80,000 chars) from. Yes. Specify either TemplateUrl or Template but not both.
PackageUrl string Public URL for the zip file with the GPT prompt template in it. Note: this is specified at SkillGroup level example. Yes, if Template or TemplateUrl aren't specified.
TemplateFile string Relative path to the GPT prompt template (upto 80,000 chars) within PackageUrl zip file. Yes, if PackageUrl is specified.

Available model names

Model Name Model Family Max Tokens
gpt-4o GPT 4o 128k

GPT plugin manifest

Descriptor:
  Name: SampleGPT
  DisplayName: My Sample GPT Skillset
  Description: Skills for defanging URLs

SkillGroups:
  - Format: GPT
    Skills:
      - Name: DefangUrls
        DisplayName: Defang URLs
        Description: Defangs URLs in the given text
        Inputs:
          - Name: text
            Description: The text containing URLs to be defanged
        Settings:
          ModelName: gpt-4o
          Template: |-
            To 'defang' a URL means to change the scheme to either hxxp or hxxps and replace '.' with '[.]' in the domain so that the URL is still easily readable by a human but doesn't automatically render as a hyperlink if rendered in a rich client such as Outlook. This is often done when sharing potentially malicious links to prevent the reader accidentally clicking on them and visiting a malicious website.

            Some examples of defanging URLs:
            1. https://example.com --> hxxps://example[.]com
            2. http://subdomain.example.com/path.with.dots/ --> hxxp://subdomain[.]example[.]com/path.with.dots/

            Defang any URLs in the following text and return the new text:
            {{text}}

Tip

For production plugins the preferred implementation is to put the GPT template in a separate file and point to it using the TemplateUrl or PackageUrl setting.

TemplateURL

Descriptor:
  Name: SampleGPTTemplate
  DisplayName: My Sample GPT Skillset With Template
  Description: Skills for defanging URLs

SkillGroups:
  - Format: GPT
    Skills:
      - Name: DefangUrls
        DisplayName: Defang URLs
        Description: Defangs URLs in the given text
        Inputs:
          - Name: text
            Description: The text containing URLs to be defanged
        Settings:
          ModelName: gpt-4o
          TemplateUrl: https://[domain]/template.txt

PackageUrl

Descriptor:
  Name: SampleGPTTemplateWithPackageUrl
  DisplayName: My Sample GPT Skillset With PackageUrl
  Description: Skills for defanging URLs

SkillGroups:
  - Format: GPT
    Settings:
        PackageUrl: https://[domain]/GPTTemplates.zip
    Skills:
      - Name: DefangUrls
        DisplayName: Defang URLs
        Description: Defangs URLs in the given text
        Inputs:
          - Name: text
            Description: The text containing URLs to be defanged
        Settings:
          ModelName: gpt-4o
          TemplateFile: GPTTemplates/SampleGPTTemplate.txt