Copilot SDK 入門
說明 Copilot SDK 的 public preview 邊界、認證方式、安裝、session、sendAndWait 和 streaming。
📖 本篇術語速查表
| 英文 / 縮寫 | 中文 | 一句話解釋 |
|---|---|---|
| SDK getting started | SDK 入門 | 跑通第一個 SDK 示例。 |
| 環境 | env | 依賴和認證準備。 |
| 最小示例 | minimal | 從最小可跑的程式碼開始。 |
不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你按最小路徑跑通 Copilot SDK 的第一個示例。
你是 Copilot SDK 入門顧問。
【角色】
Copilot SDK 入門顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。
【輸入】
- 我的開發語言和環境:___
- 想先驗證的能力:___
- GitHub 認證情況:___
- 目標用途:___
- 經驗水平:___
【工作流程】
1. 確認環境和認證前提
2. 給最小可跑示例
3. 說明關鍵 API 概念
4. 排查常見首次失敗
5. 給下一步
【輸出規範】
▌一、前提確認
▌二、最小示例
▌三、關鍵概念
▌四、常見失敗 + 下一步
【硬約束】
- 先跑通最小示例再擴充套件
- 認證憑據安全處理不打記錄
- 按我的語言給確切程式碼
- 不要替我臆測情況或編造不存在的功能,資訊不全先問清
- 不確定的設定或許可權一律以官方文件為準,禁止照搬過時寫法
- 給的每條結論都要落到具體可照做的步驟或示例,不停留在「建議」「考慮一下」這類沒法直接執行的空泛表述Copilot SDK 入門的重點不是 hello world,而是理解執行邊界:SDK 透過 Copilot CLI 認證和連線 Copilot,用 CopilotClient 建立 session,然後傳送 prompt、監聽事件、管理生命週期——SDK 不會自己管 token,也不會自己管會話狀態。
GitHub 官方文件說明,Copilot SDK 目前是 public preview。教學中的程式碼結構要跟官方文件核對,生產化前要鎖版本並準備回復。
1. 官方 quickstart 關鍵點
官方 quickstart 的基礎事實:
- Copilot SDK 可用於所有 Copilot plans。
- 目前處於 public preview。
- Node.js 需要 18 或更高版本。
- 認證依賴已安裝並認證的 GitHub Copilot CLI。
- JavaScript/TypeScript 包是
@github/copilot-sdk。 - 示例透過
CopilotClient、createSession、sendAndWait傳送第一條訊息。
flowchart TD
Node["Node.js 18+"] --> CLI["安裝並認證 Copilot CLI"]
CLI --> Package["@github/copilot-sdk"]
Package --> Client["new CopilotClient"]
Client --> Session["createSession"]
Session --> Send["sendAndWait / streaming"]
Send --> Stop["client.stop"]
style CLI fill:#fef3c7,stroke:#d97706,stroke-width:2px
style Session fill:#dbeafe,stroke:#2563eb,stroke-width:2px
2. 最小程式碼結構
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
const session = await client.createSession({
model: "gpt-4.1",
});
const response = await session.sendAndWait({
prompt: "What is 2 + 2?",
});
console.log(response?.data.content);
await client.stop();這段程式碼裡要理解 3 個物件:
CopilotClient():管理和 Copilot CLI 的連線。createSession():建立一次會話,並指定模型等設定。sendAndWait():傳送 prompt 並等待完整響應。
3. 什麼時候用 streaming
長回答或互動式 UI 不應該一直等待完整響應。官方 quickstart 展示了 streaming session,並監聽事件:
assistant.message_delta:響應增量。session.idle:響應結束,會話可接收下一條訊息。
適合 streaming:
- Web UI 即時輸出。
- 長文件生成。
- 批次任務進度展示。
- 使用者需要看到 agent 正在工作。
後臺 job 更需要 trace、記錄和可重試狀態,不一定需要逐字 streaming。
4. 入門時先別做的事
不要一上來就:
- 接生產寫介面。
- 註冊大量工具。
- 寫複雜 custom agents。
- 把 SDK 示例直接部署成服務。
- 忽略
client.stop()和會話生命週期。
先做最小閉環:啟動、認證、建立 session、傳送 prompt、收到響應、停止 client、記錄記錄。
5. 從 demo 到工程
要進入團隊試點,至少補齊:
- 設定:模型、超時、重試、環境變數。
- 許可權:工具 allowlist、敏感操作審批。
- 記錄:session id、user id、prompt metadata、tool call。
- 成本:模型和 premium request 口徑。
- 可觀測性:OpenTelemetry 或內部 tracing。
- 回復:關閉 SDK 入口,退回預設 Copilot。
深讀:為什麼 SDK 依賴 CLI 認證很重要
官方 quickstart 要求先安裝並認證 Copilot CLI。這樣 SDK 可以複用 GitHub account 和 Copilot access,而不是讓你在程式碼裡硬編碼 token。
這也意味著 SDK 應用的部署方式要認真設計:本地 CLI、後端服務、GitHub OAuth、Azure Managed Identity 等路徑不能混用。
本章自檢
- 是否確認 Node.js 版本和 Copilot CLI 認證?
- 是否知道目前 SDK 仍是 public preview?
- 是否能解釋
client、session、sendAndWait的職責? - 是否決定什麼時候用 streaming?
- 是否有停止 client 和記錄錯誤的路徑?
透過標準:最小 demo 能跑,但不會被誤當成生產架構。
官方來源
- Getting started with Copilot SDK —— GitHub 官方 quickstart。
- Choosing a setup path for Copilot SDK —— GitHub 官方部署路徑選擇。
- Authenticating with the Copilot SDK —— GitHub 官方認證說明。