About Copilot 확장
Copilot 확장 are integrations that expand the functionality of Copilot 채팅, allowing developers to bring external tools, services, and custom behaviors into the Chat experience. You can use Copilot 확장 to extend the capabilities of Copilot 채팅 in a variety of ways, including:
- Querying documentation: A Copilot 확장 can allow Copilot 채팅 to query a third-party documentation service to find information about a specific topic.
- AI-assisted coding: A Copilot 확장 can use a third-party AI model to provide code suggestions.
- Data retrieval: A Copilot 확장 can allow Copilot 채팅 to query a third-party data service to retrieve information about a specific topic.
- Action execution: A Copilot 확장 can allow Copilot 채팅 to execute a specific action, such as posting to a message board or updating a tracking item in an external system.
About building GitHub Copilot 확장
GitHub Copilot 확장 are a type of Copilot 확장 built with GitHub Apps. GitHub Copilot 확장 are best suited for developers who want cross-platform compatibility and app management and support from GitHub.
Supported clients and IDEs
클라이언트 및 IDE | GitHub Copilot 확장 지원 |
---|---|
Visual Studio Code | |
Visual Studio | |
GitHub.com | |
GitHub Mobile | |
JetBrains IDE | |
GitHub Codespaces | |
Vim/Neovim | |
CLI의 Copilot | |
Xcode |
About visibility of GitHub Copilot 확장
GitHub Copilot 확장 can be private, public and shareable, or public and listed on the GitHub Marketplace. Which visibility option you choose will depend on your use case and the audience you are targeting.
- Private extensions are often preferred by large enterprises or companies that:
- Want more customization and controls over data access
- Need to integrate with a large volume of internal documents and databases
- Have strict security policies making it difficult to authorize permissions for third-parties
- Public extensions are suitable for:
- Open-source projects
- Collaborative development and use across organizations within an enterprise
- Sharing your tool and getting feedback before publishing to the GitHub Marketplace
- GitHub Marketplace extensions are ideal for third-parties that want to:
- Offer their service to a broader audience
- Integrate their tool into the developer workflow on GitHub and the IDE
- Leverage the GitHub ecosystem to raise awareness for their product
About GitHub Copilot 확장 permissions
사용 권한은 확장에 따라 다르며, 쿼리에 응답하기 위해 확장에 필요한 권한 부여 수준에 따라 달라집니다. 청구 정보 단계 뒤와 설치 및 권한 부여 단계 전에 위치한 확장의 설치 페이지에서 필요한 권한을 볼 수 있습니다.
개발자의 경우: 최소한 Copilot 채팅 권한을 "Read-only"로 설정해야 합니다. 추가 권한에는 다른 화면에서 쓰기 작업을 실행하고 GitHub에서 리포지토리 및 조직 수준 데이터에 대한 읽기 액세스 권한을 부여하는 작업이 포함될 수 있습니다.
작성기의 경우: 위에 언급한 내용 외에도 사용자의 편집기에서 로컬 컨텍스트를 요청하여 응답을 추가로 조정할 수도 있습니다. 이렇게 하려면 Copilot 편집기 컨텍스트 사용 권한을 "읽기 전용"으로 설정해야 합니다. 사용자에게는 필요한 권한 부여를 제공하라는 알림이 표시됩니다.
GitHub App 사용 권한에 대한 자세한 내용은 GitHub 앱의 권한 선택을(를) 참조하세요.
Granting permissions to access organization resources
Only organization admins can grant permissions for Copilot 확장 to access organization resources. To grant organization members access:
- The organization admin must install the extension.
- The organization admin must grant the extension permission to access specific repositories.
- The organization admin must authorize access for all, or specific repositories.
About skillsets and agents
기술 세트와 에이전트는 Copilot 확장성 플랫폼을 통해 Copilot의 기능과 컨텍스트를 확장하는 두 가지 방법입니다. 외부 서비스와 API를 Copilot 채팅에 통합할 수 있지만 각각 다른 사용 사례를 제공하고 다양한 수준의 제어와 복잡성을 제공합니다.
- 기술 세트는 Copilot가 최소한의 설정으로 특정 작업(예: 데이터 검색이나 간단한 작업)을 수행해야 하는 개발자를 위해 가볍고 간소화되었습니다. 라우팅, 프롬프트 작성, 함수 평가, 응답 생성을 자동으로 처리하므로 빠르고 간단한 통합에 적합합니다. For more information about skillsets, see About skillsets for Copilot Extensions.
- 에이전트는 요청이 처리되고 응답이 생성되는 방식을 완전히 제어해야 하는 복잡한 통합을 위한 것입니다. 사용자 지정 논리를 구현하고, 다른 LLM 및/또는 Copilot API와 통합하고, 대화 컨텍스트를 관리하고, 사용자 상호 작용의 모든 측면을 처리할 수 있습니다. 에이전트는 더 많은 엔지니어링과 유지 관리가 필요하지만, 정교한 워크플로를 위한 최대 유연성을 제공합니다. 에이전트에 대한 자세한 내용은 About agents for Copilot Extensions을(를) 참조하세요.
About context passing
You can allow your Copilot 확장 to receive context from the editor, such as the currently opened file, by enabling the Read-only access level for the "Copilot Editor Context" permission in your GitHub App settings. See step 10 of Configuring your GitHub App.
The GitHub Copilot 확장성 플랫폼 automatically handles messaging when implicit and explicit context is unavailable or unauthorized. To enable context passing, you are required to request permissions from users. To enable context passing, you are required to:
- Update your APIs to handle new reference types.
- Request permissions from users. When requesting permissions, follow these best practices:
- Clearly communicate what context you need and what you need it for.
- Implement appropriate error handling for unavailable context that your own application logic and API calls.
- If context is unavailable, provide value where possible without this data.
- Request only the minimum required permissions for your extension.
Context passing respects content exclusions, which refers to any files listed in your context exclusion settings, including files that begin with .
.
For more information about context passing, see Context passing for your agent.
Using APIs in GitHub Copilot 확장
Building GitHub Copilot 확장 requires using the GitHub API. Optionally, the Copilot API can be used for additional capabilities. For details on request and response formatting, see the OpenAI API documentation.
참고 항목
The Copilot API is available for Copilot 확장 builders, but only GitHub Apps and VS Code Chat extensions can be used to access these endpoints.
Resources for building GitHub Copilot 확장
GitHub provides a comprehensive toolkit for extension builders, with code samples, a CLI debugging tool, quickstart SDKs, and a user feedback repository. For more information, see the copilot-extensions organization on GitHub.
Before creating your own GitHub Copilot 확장 from scratch, you may want to explore an existing Copilot 에이전트, then integrate it with a GitHub App to see how it works. GitHub provides a few example Copilot 에이전트 that you can clone and use as the basis for your own GitHub Copilot 확장:
-
Blackbeard: A simple Copilot 에이전트 that responds to requests like a pirate, using Copilot's LLM API and special system prompts. It is a good starting point for learning how to build a GitHub Copilot 확장. For more information, see the Blackbeard Copilot 확장.
-
GitHub Models: A more complex Copilot 에이전트 that lets you ask about and interact with various LLMs listed on the GitHub Marketplace from within Copilot 채팅. For more information, see the GitHub Models Copilot 확장.
참고 항목
GitHub Models are in 공개 미리 보기 and subject to change. To request access, join the waitlist.
-
Function calling: an example agent written in Go that demonstrates function calling and confirmation dialogues. For more information, see the Function calling extension.
-
RAG extension: an example agent written in Go that demonstrates a simple implementation of retrieval augmented generation. For more information, see the RAG extension.
-
Preview SDK: An SDK that simplifies the process of building GitHub Copilot 확장 by handling request verification, response formatting, and API interactions. It allows builders to focus on their extension's core functionality rather than boilerplate, by streamlining the integration of tools, APIs, and data sources into Copilot 채팅. For more information, see the Preview SDK.
About building Copilot 지원 Visual Studio Code 확장
참고 항목
The GitHub documentation focuses on building GitHub Copilot 확장, not Copilot 지원 Visual Studio Code 확장.
You can build a Copilot 확장 that is exclusive and native to Visual Studio Code, called a Copilot 지원 Visual Studio Code 확장. This option is best suited for developers who want to build extensions that use VS Code-specific APIs and functionality, or extend existing VS Code extensions.
Also known as VS Code Chat extensions, Copilot 지원 Visual Studio Code 확장 function similarly to GitHub Copilot 확장 by extending the capabilities of Copilot 채팅, with a few notable differences:
- VS Code Chat extensions are only usable in VS Code.
- VS Code Chat extensions have more access to VS Code's features and APIs, allowing more editor-specific interactions like accessing local workspace data, manipulating Visual Studio Code's interface, and read/write access to local files.
- VS Code Chat extensions are published to the VS Code Marketplace, not the GitHub Marketplace.
- VS Code Chat extensions are local to the user's machine, and cannot be controlled by an organization or enterprise's policies.
For more information on Copilot 지원 Visual Studio Code 확장, see Chat extensions in the Visual Studio Code documentation.