GitHub Copilot 在 VS Code 中的自訂指示
您可以透過提供 Copilot 關於您團隊的工作流程、工具或專案細節的內容詳細資訊,來增強 Copilot 的聊天回應。您可以建立自訂指示檔案,自動將此資訊與每個聊天要求合併,而無需在每個聊天查詢中手動包含此內容。
Copilot 會將這些指示套用至「聊天」檢視、「快速聊天」或「內嵌聊天」中的聊天提示。這些指示不會顯示在聊天中,而是由 VS Code 傳遞至 Copilot。
您可以為特定目的指定自訂指示
-
程式碼產生指示 - 提供產生程式碼的特定內容。例如,您可以指定私有變數應始終以底線為前綴,或應以特定方式實作單例。您可以在設定或工作區中的 Markdown 檔案中指定程式碼產生指示。
-
測試產生指示 - 提供產生測試的特定內容。例如,您可以指定所有產生的測試都應使用特定的測試架構。您可以在設定或工作區中的 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 設定。您可以在使用者或工作區層級定義自訂指示。
定義提取要求標題和描述產生自訂指示
當您安裝了 GitHub Pull Requests 擴充功能時,您可以使用 Copilot 為提取要求產生標題和描述。您可以定義自訂指示,以協助 Copilot 產生考量到特定於您的專案和開發工作流程的特定格式和結構的標題和描述。
若要設定自訂提取要求標題和描述產生指示,請使用 github.copilot.chat.pullRequestDescriptionGeneration.instructions 設定。您可以在使用者或工作區層級定義自訂指示。
定義自訂指示的訣竅
-
讓您的指示保持簡短且獨立。每個指示都應為單個簡單的陳述。如果您需要提供多個資訊片段,請使用多個指示。
-
請勿在指示中參考外部資源,例如特定的程式碼標準。
-
透過將您的指示儲存在外部檔案中,讓與您的團隊或跨專案共用自訂指示變得容易。您也可以對檔案進行版本控制,以追蹤一段時間內的變更。
可重複使用的提示檔案 (實驗性)
提示檔案 (提示) 可讓您建置和共用可重複使用的提示指示,並提供額外內容。提示檔案是一個 Markdown 檔案,模仿在 Copilot Chat 中撰寫提示的現有格式 (例如,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
檔案。或者,從 [命令面板] (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 使用建立提示命令。
-
使用 Markdown 格式撰寫提示指示。
在提示檔案中,將其他工作區檔案參考為 Markdown 連結 (
[index](../index.ts)
),或在提示檔案中使用#file:../index.ts
參考。您也可以參考其他
.prompt.md
檔案,以建立提示階層,其中包含可在多個提示檔案之間共用的可重複使用提示。
建立使用者提示檔案
使用者提示檔案儲存在您的使用者設定檔中。透過使用者提示檔案,您可以在多個工作區之間共用可重複使用的提示。
您可以像工作區提示檔案一樣,將使用者提示檔案新增至聊天提示。
若要建立使用者提示檔案
-
從 [命令面板] (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 選取建立使用者提示命令。
-
輸入您的提示檔案名稱。
-
使用 Markdown 格式撰寫提示指示。
使用者提示檔案現在可以使用設定同步跨多個裝置同步。請務必在您的 [設定同步] 組態中啟用對提示檔案的支援。從 [命令面板] 選取設定同步:設定,並確定已選取提示。
將提示檔案附加至聊天要求
-
選取附加內容 圖示 (⌘/ (Windows、Linux Ctrl+/)),然後選取提示...。
或者,從 [命令面板] (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 使用聊天:使用提示命令。
-
從 [快速選擇] 中選擇一個提示檔案,將其附加到您的聊天要求。
您可以在 Copilot Chat 和 Copilot Edits 中使用提示檔案。
-
選擇性地附加工作所需的其他內容檔案。
對於可重複使用的工作,請在不使用任何其他指示的情況下傳送提示。
若要進一步精簡可重複使用的提示,請包含其他指示,以提供更多工作內容。
使用 Markdown 連結參考其他內容檔案,例如 API 規格或文件,以為 Copilot 提供更完整的資訊。
設定
自訂指示設定
- github.copilot.chat.codeGeneration.useInstructionFiles:控制是否將來自
.github/copilot-instructions.md
的程式碼指示新增至 Copilot 要求。 - github.copilot.chat.codeGeneration.instructions (實驗性):將新增至產生程式碼的 Copilot 要求的一組指示。
- github.copilot.chat.testGeneration.instructions (實驗性):將新增至產生測試的 Copilot 要求的一組指示。
- github.copilot.chat.reviewSelection.instructions (預覽):將新增至 Copilot 要求的一組指示,用於檢閱目前的編輯器選取範圍。
- github.copilot.chat.commitMessageGeneration.instructions (實驗性):將新增至產生提交訊息的 Copilot 要求的一組指示。
- github.copilot.chat.pullRequestDescriptionGeneration.instructions (實驗性):將新增至產生提取要求標題和描述的 Copilot 要求的一組指示。
提示檔案 (實驗性) 設定
-
chat.promptFilesLocations (實驗性):提示檔案所在資料夾的清單。您可以指定一個或多個提示檔案所在的資料夾。相對路徑會從您工作區的根資料夾解析。支援檔案路徑的 glob 模式。
設定值 描述 ["/path/to/folder"]
為特定路徑啟用提示檔案。指定一個或多個提示檔案所在的資料夾。相對路徑會從您工作區的根資料夾解析。
預設情況下,會新增.github/prompts
,但已停用。
相關內容
- 開始與Copilot Chat 進行 AI 聊天對話。
- 開始使用Copilot Edits 進行 AI 驅動的編輯工作階段。