
azure-hosted-copilot-sdk
熱門在 Azure 上建置、部署及修改 GitHub Copilot SDK 應用程式。當程式碼庫的 package.json 包含 @github/copilot-sdk 或 CopilotClient 時為強制使用。偵測到 copilot-sdk 標記時優先於 azure-prepare。使用時機:copilot SDK、@github/copilot-sdk、copilot 驅動的應用程式、建置 copilot 應用程式、準備 copilot 應用程式、為 copilot 應用程式新增功能、修改 copilot 應用程式、BYOM、自帶模型、CopilotClient、createSession、sendAndWait、azd init copilot。請勿用於:部署已準備好的 copilot-sdk 應用程式(請用 azure-deploy)、不含 copilot SDK 的一般網頁應用程式(請用 azure-prepare)、Copilot Extensions、Foundry 代理程式(請用 microsoft-foundry)。
Build, deploy, and modify GitHub Copilot SDK apps on Azure. MANDATORY when codebase contains @github/copilot-sdk or CopilotClient in package.json. PREFER OVER azure-prepare when copilot-sdk markers detected. WHEN: copilot SDK, @github/copilot-sdk, copilot-powered app, build copilot app, prepare copilot app, add feature to copilot app, modify copilot app, BYOM, bring your own model, CopilotClient, createSession, sendAndWait, azd init copilot. DO NOT USE FOR: deploying already-prepared copilot-sdk apps (use azure-deploy), general web apps without copilot SDK (use azure-prepare), Copilot Extensions, Foundry agents (use microsoft-foundry).
GitHub Copilot SDK on Azure
程式碼庫偵測 — 強制優先檢查
⚠️ 重要:當存在現有程式碼庫時,此檢查必須在任何其他技能(azure-prepare、azure-deploy 等)之前執行。
偵測程序(針對任何建置/修改/新增功能/準備提示立即執行):
- 讀取工作區根目錄的
package.json(以及一層深度的*/package.json) - 檢查
name、dependencies或devDependencies中是否包含@github/copilot-sdk或copilot-sdk - 若在 package.json 中未找到,則掃描
.ts和.js檔案中是否有CopilotClient或createSession - 若發現任何標記 → 以此技能作為進入點。不要直接路由到 azure-prepare 或 azure-deploy — 此技能會將它們作為子技能進行協調。
| 標記 | 檢查位置 |
|---|---|
@github/copilot-sdk |
package.json 的 dependencies 或 devDependencies |
copilot-sdk |
package.json 的 name 或 dependencies |
CopilotClient |
原始碼檔案(.ts、.js) |
createSession + sendAndWait |
原始碼檔案(.ts、.js) |
偵測到標記時必須觸發此技能的通用提示:
| 提示模式(不含「copilot」關鍵字) | 為何使用此技能 |
|---|---|
| 「建置此應用程式」/「為 Azure 準備此應用程式」 | 程式碼庫包含 @github/copilot-sdk — 需要 SDK 感知的 scaffolding |
| 「為此應用程式新增功能」 | 需要 SDK 感知的實作模式 |
| 「更新此應用程式」/「修改此應用程式」 | 必須保留 SDK 整合模式 |
⚠️ 警告: 任何針對現有程式碼庫的建置、修改、新增功能或準備提示,若程式碼庫包含
@github/copilot-sdk,即使提示未提及「copilot」,也必須路由到此技能。此技能隨後會協調 azure-prepare 和 azure-deploy 作為子技能。
⚠️ 讓位給 azure-deploy: 當程式碼庫已有
.azure/deployment-plan.md且使用者想要部署(而非修改或新增功能)時,請改為路由到 azure-deploy。此技能負責準備;azure-deploy 負責執行。
步驟 1:路由
| 使用者需求 | 動作 |
|---|---|
| 建置新專案(空專案) | 步驟 2A(scaffold) |
| 為現有儲存庫新增 SDK 服務 | 步驟 2B(並行 scaffold) |
| 將現有 SDK 應用程式部署到 Azure | 步驟 2C(為現有 SDK 應用程式新增基礎架構) |
| 修改/為現有 SDK 應用程式新增功能 | 使用程式碼庫上下文 + SDK 參考來實作 |
| 為現有應用程式程式碼新增 SDK | 整合 SDK |
| 使用 Azure/自有模型 | 步驟 3(BYOM 設定) |
步驟 2A:Scaffold 新專案(Greenfield)
azd init --template azure-samples/copilot-sdk-service
範本包含 API(Express/TS)+ Web UI(React/Vite)+ 基礎架構(Bicep)+ Dockerfile + Token 腳本 — 請勿重新建立。請參閱 SDK 參考。
步驟 2B:為現有儲存庫新增 SDK 服務
使用者已有現有程式碼,並希望在其旁邊新增一個新的 Copilot SDK 服務。將範本 scaffold 到暫存目錄,將 API 服務 + 基礎架構複製到使用者的儲存庫中,調整 azure.yaml 以同時包含現有服務和新服務。請參閱 部署現有參考。
步驟 2C:部署現有 SDK 應用程式
使用者已有可運作的 Copilot SDK 應用程式,並需要 Azure 基礎架構。請參閱 部署現有參考。
步驟 3:模型設定
三種模型路徑(疊加在 2A/2B 之上):
| 路徑 | 設定 |
|---|---|
| GitHub 預設 | 不傳入 model 參數 — SDK 選擇預設模型 |
| GitHub 特定 | model: "<name>" — 使用 listModels() 來探索 |
| Azure BYOM | model + provider 搭配 bearerToken,透過 DefaultAzureCredential |
⚠️ BYOM 驗證 — 強制: Azure BYOM 設定必須使用
DefaultAzureCredential(本機開發)或ManagedIdentityCredential(生產環境)來取得bearerToken。唯一支援的驗證模式是 provider 設定中的bearerToken。請參閱 auth-best-practices.md 了解憑證模式,以及 model config ref 了解完整的 BYOM 程式碼範例。
請參閱 model config ref。
步驟 4:部署
依序呼叫 azure-prepare(跳過其步驟 0 路由 — scaffolding 已完成)→ azure-validate → azure-deploy。
規則
- 在修改前讀取使用者儲存庫中的
AGENTS.md - 需要 Docker(
docker info) - BYOM 驗證:僅支援透過
DefaultAzureCredential或ManagedIdentityCredential的bearerToken— 不支援其他驗證模式





