Visual Studio Code 中 GitHub Copilot 的自訂指示
您可以提供 Copilot 有關您團隊的工作流程、工具或專案細節的內容詳細資訊,以增強 Copilot 的聊天回應。您可以建立自訂指示檔案,自動將此資訊與每個聊天請求合併,而無需在每個聊天查詢中手動包含此內容。
Copilot 會將這些指示套用至「聊天」檢視、「快速聊天」或「內嵌聊天」中的聊天提示。這些指示不會顯示在聊天中,而是由 VS Code 傳遞給 Copilot。
您可以為特定目的指定自訂指示
-
程式碼產生指示 - 提供產生程式碼的特定內容。例如,您可以指定私有變數應始終以底線為前綴,或單例應以某種方式實作。您可以在設定中或工作區的 Markdown 檔案中指定程式碼產生指示。
-
測試產生指示 - 提供產生測試的特定內容。例如,您可以指定所有產生的測試都應使用特定的測試架構。您可以在設定中或工作區的 Markdown 檔案中指定測試產生指示。
-
程式碼檢閱指示 - 提供檢閱目前編輯器選取範圍的特定內容。例如,您可以指定檢閱者應在程式碼中尋找特定類型的錯誤。您可以在設定中或工作區的 Markdown 檔案中指定檢閱選取範圍指示。
-
提交訊息產生指示 - 提供產生提交訊息的特定內容。您可以在設定中或工作區的 Markdown 檔案中指定提交訊息產生指示。
自訂指示包含自然語言指示,且應為簡短、獨立的陳述,以新增內容或相關資訊來補充聊天問題。
定義程式碼產生自訂指示
Copilot 可以協助您產生程式碼,例如作為重構、產生單元測試或實作功能的一部分。您可能想要在專案中使用特定的程式庫,或想要為 Copilot 產生的程式碼遵循特定的編碼樣式。
Copilot 不會將程式碼產生指示套用至程式碼完成。
使用設定
您可以使用 github.copilot.chat.codeGeneration.instructions 設定來設定自訂程式碼產生指示。您可以在使用者或工作區層級定義自訂指示,也可以指定語言特定的指示。取得有關語言特定設定的更多資訊。
下列程式碼片段顯示如何在 settings.json
檔案中定義一組指示。若要直接在設定中定義指示,請設定 text
屬性。若要參考外部檔案,請設定 file
屬性。
"github.copilot.chat.codeGeneration.instructions": [
{
"text": "Always add a comment: 'Generated by Copilot'."
},
{
"text": "In TypeScript always use underscore for private field names."
},
{
"file": "code-style.md" // import instructions from file `code-style.md`
}
],
code-style.md
檔案內容範例
Always use React functional components.
Always add comments.
使用 .github/copilot-instructions.md
檔案
您也可以將自訂指示儲存在工作區或儲存庫中的 .github/copilot-instructions.md
檔案中,並讓 VS Code 自動挑選此檔案。
如果您在 .github/copilot-instructions.md
檔案和設定中都定義了自訂指示,Copilot 會嘗試合併來自這兩個來源的指示。
Visual Studio 中的 GitHub Copilot 也會偵測 .github/copilot-instructions.md
檔案。如果您在 VS Code 和 Visual Studio 中都使用工作區,則可以使用同一個檔案來定義這兩個編輯器的自訂指示。
-
將 github.copilot.chat.codeGeneration.useInstructionFiles 設定為
true
,以指示 VS Code 中的 Copilot 使用自訂指示檔案。 -
在工作區的根目錄建立
.github/copilot-instructions.md
檔案。如果需要,請先建立.github
目錄。提示在 VS Code 的「檔案總管」檢視中,您可以透過輸入完整路徑作為檔案名稱,一次操作建立資料夾和檔案。
-
將自然語言指示新增至檔案。您可以使用 Markdown 格式。
指示之間的空白字元會被忽略,因此指示可以寫成單一段落、每行一個,或以空白行分隔以提高易讀性。
定義測試產生自訂指示
您可以使用 Copilot 為您的程式碼產生測試,例如在「聊天」檢視中使用 @workspace /tests
提示。您可以定義自訂指示,以協助 Copilot 產生特定於您的專案和開發工作流程的測試。
若要設定自訂測試產生指示,請使用 github.copilot.chat.testGeneration.instructions 設定。您可以在使用者或工作區層級定義自訂指示。
下列程式碼片段顯示如何在 settings.json
檔案中定義一組指示。若要直接在設定中定義指示,請設定 text
屬性。若要參考外部檔案,請設定 file
屬性。
"github.copilot.chat.testGeneration.instructions": [
{
"text": "Always use vitest for testing React components."
},
{
"text": "Use Jest for testing JavaScript code."
},
{
"file": "code-style.md" // import instructions from file `code-style.md`
}
],
code-style.md
檔案內容範例
Always add code comments.
Always use React functional components.
定義程式碼檢閱自訂指示
您可以使用 Copilot 檢閱編輯器中選取的程式碼。您可以定義自訂指示,以協助 Copilot 考量與您的專案和開發工作流程相關的特定程式碼檢閱準則。
若要設定自訂程式碼檢閱指示,請使用 github.copilot.chat.reviewSelection.instructions 設定。您可以在使用者或工作區層級定義自訂指示。
定義提交訊息產生自訂指示
在「原始檔控制」檢視中,您可以使用 Copilot 為擱置中的程式碼變更產生提交訊息。您可以定義自訂指示,以協助 Copilot 產生提交訊息,該訊息會考量特定於您的專案和開發工作流程的特定格式和結構。
若要設定自訂提交訊息產生指示,請使用 github.copilot.chat.commitMessageGeneration.instructions 設定。您可以在使用者或工作區層級定義自訂指示。
定義自訂指示的秘訣
-
讓您的指示保持簡短且獨立。每個指示都應為單一、簡單的陳述。如果您需要提供多個資訊,請使用多個指示。
-
請勿在指示中參考外部資源,例如特定的編碼標準。
-
將您的指示儲存在外部檔案中,以便輕鬆與您的團隊或跨專案共用自訂指示。您也可以對檔案進行版本控制,以追蹤隨時間的變更。
可重複使用的提示檔案 (實驗性)
提示檔案 (提示) 可讓您建置和共用具有額外內容的可重複使用提示指示。提示檔案是 Markdown 檔案,可模擬在 Copilot 聊天中撰寫提示的現有格式 (例如,Rewrite #file:x.ts
)。這允許混合自然語言指示、額外內容,甚至連結到其他提示檔案作為相依性。
雖然自訂指示有助於為每個 AI 工作流程新增程式碼庫範圍的內容,但提示檔案可讓您為特定的聊天互動新增指示。
常見的使用案例包括
- 程式碼產生:為元件、測試或移轉建立可重複使用的提示 (例如,React 表單或 API 模擬)。
- 領域專業知識:透過提示共用專業知識,例如安全性實務或合規性檢查。
- 團隊協作:使用規格和文件參考記錄模式和指南。
- 入門:為複雜的流程或專案特定的模式建立逐步指南。
提示檔案範例
-
react-form.prompt.md
- 記錄用於產生表單的可重複使用工作Your goal is to generate a new React form component. Ask for the form name and fields if not provided. Requirements for the form: - Use form design system components: [design-system/Form.md](../docs/design-system/Form.md) - Use `react-hook-form` for form state management: - Always define TypeScript types for your form data - Prefer *uncontrolled* components using register - Use `defaultValues` to prevent unnecessary rerenders - Use `yup` for validation: - Create reusable validation schemas in separate files - Use TypeScript types to ensure type safety - Customize UX-friendly validation rules
-
security-api.prompt.md
- 記錄 REST API 的可重複使用安全性實務,可用於執行 REST API 的安全性檢閱Secure REST API review: - Ensure all endpoints are protected by authentication and authorization - Validate all user inputs and sanitize data - Implement rate limiting and throttling - Implement logging and monitoring for security events …
用法
若要啟用提示檔案,請設定 chat.promptFiles VS Code 設定。依預設,提示檔案位於您工作區的 .github/prompts
目錄中。您也可以指定提示檔案所在的其他資料夾。
建立提示檔案
-
在您工作區的
.github/prompts
目錄中建立.prompt.md
檔案。 -
使用 Markdown 格式撰寫提示指示。
在提示檔案中,將其他工作區檔案參考為 Markdown 連結 (
[index](../index.ts)
),或作為提示檔案中的#file:../index.ts
參考。您也可以參考其他
.prompt.md
檔案來建立提示的階層,其中可重複使用的提示可以在多個提示檔案之間共用。
將提示檔案附加至聊天請求
-
選取附加內容 圖示 (⌘/ (Windows、Linux Ctrl+/)),然後選取提示...。
-
從「快速選取」中選擇提示檔案,以將其附加至您的聊天請求。
您可以在 Copilot 聊天和 Copilot 編輯中使用提示檔案。
-
選擇性地附加工作所需的其他內容檔案。
對於可重複使用的工作,請在不包含任何其他指示的情況下傳送提示。
若要進一步精簡可重複使用的提示,請包含其他指示,以提供更多有關手邊工作的內容。
使用 Markdown 連結參考其他內容檔案,例如 API 規格或文件,以向 Copilot 提供更完整的資訊。
設定
自訂指示設定
- github.copilot.chat.codeGeneration.instructions (實驗性):一組將新增至產生程式碼的 Copilot 請求的指示。
- github.copilot.chat.codeGeneration.useInstructionFiles (預覽):控制是否將來自
.github/copilot-instructions.md
的程式碼指示新增至 Copilot 請求。 - github.copilot.chat.testGeneration.instructions (實驗性):一組將新增至產生測試的 Copilot 請求的指示。
- github.copilot.chat.reviewSelection.instructions (預覽):一組將新增至用於檢閱目前編輯器選取範圍的 Copilot 請求的指示。
- github.copilot.chat.commitMessageGeneration.instructions (實驗性):一組將新增至產生提交訊息的 Copilot 請求的指示。
提示檔案 (實驗性) 設定
-
chat.promptFiles (實驗性):啟用提示檔案並指定提示檔案資料夾。設定為
true
以使用預設位置 (.github/prompts
),或使用{ "/path/to/folder": boolean }
標記法來指定不同的路徑。相對路徑從您工作區的根資料夾解析。設定值 描述 false
(預設)停用提示檔案。 true
啟用提示檔案。使用預設提示檔案位置 ( .github/prompts
)。{ "/path/to/folder": boolean }
啟用提示檔案。指定一或多個提示檔案所在的資料夾。相對路徑從您工作區的根資料夾解析。
相關內容
- 使用Copilot 聊天開始 AI 聊天對話。
- 使用Copilot 編輯開始 AI 驅動的編輯工作階段。