
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 的通用 Web 应用(使用 azure-prepare)、Copilot Extensions、Foundry 代理(使用 microsoft-foundry)。
在 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 的通用 Web 应用(使用 azure-prepare)、Copilot Extensions、Foundry 代理(使用 microsoft-foundry)。
GitHub Copilot SDK on Azure
代码库检测 — 必须首先检查
⚠️ 关键:当存在现有代码库时,此检查必须在任何其他技能(azure-prepare、azure-deploy 等)之前运行。
检测步骤(对于任何构建/修改/添加功能/准备提示,立即执行):
- 读取工作区根目录下的
package.json(以及一级子目录中的*/package.json) - 检查
@github/copilot-sdk或copilot-sdk是否出现在name、dependencies或devDependencies中 - 如果在 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 感知的脚手架 |
| "为此应用添加新功能" | 需要 SDK 感知的实现模式 |
| "更新此应用" / "修改此应用" | 必须保留 SDK 集成模式 |
⚠️ 警告: 任何针对现有代码库的构建、修改、添加功能或准备提示,如果代码库包含
@github/copilot-sdk,即使提示未提及 "copilot",也必须路由到此技能。然后此技能将 azure-prepare 和 azure-deploy 作为子技能进行编排。
⚠️ 让位于 azure-deploy: 当代码库已包含
.azure/deployment-plan.md且用户想要部署(而不是修改或添加功能)时,请路由到 azure-deploy。此技能处理准备;azure-deploy 处理执行。
步骤 1:路由
| 用户需求 | 操作 |
|---|---|
| 构建新项目(空项目) | 步骤 2A(脚手架) |
| 向现有仓库添加新的 SDK 服务 | 步骤 2B(并行脚手架) |
| 将现有 SDK 应用部署到 Azure | 步骤 2C(向现有 SDK 应用添加基础设施) |
| 修改/为现有 SDK 应用添加功能 | 使用代码库上下文 + SDK 参考进行实现 |
| 向现有应用代码添加 SDK | 集成 SDK |
| 使用 Azure/自有模型 | 步骤 3(BYOM 配置) |
步骤 2A:新建脚手架(绿地项目)
azd init --template azure-samples/copilot-sdk-service
模板包含 API(Express/TS)+ Web UI(React/Vite)+ 基础设施(Bicep)+ Dockerfile + 令牌脚本 — 请勿重新创建。请参阅 SDK 参考。
步骤 2B:向现有仓库添加 SDK 服务
用户已有现有代码,并希望在其旁边添加新的 Copilot SDK 服务。将模板脚手架到临时目录,将 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 了解凭据模式,以及 模型配置参考 了解完整的 BYOM 代码示例。
请参阅 模型配置参考。
步骤 4:部署
依次调用 azure-prepare(跳过其步骤 0 路由 — 脚手架已完成)→ azure-validate → azure-deploy。
规则
- 在修改前读取用户仓库中的
AGENTS.md - 需要 Docker(
docker info) - BYOM 认证:仅支持通过
DefaultAzureCredential或ManagedIdentityCredential获取的bearerToken— 不支持其他认证模式





