AI 程式設計教學中文版
官方教學中文版SDK 與自定義 Agent

Copilot SDK 入門

說明 Copilot SDK 的 public preview 邊界、認證方式、安裝、session、sendAndWait 和 streaming。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
SDK getting startedSDK 入門跑通第一個 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
  • 示例透過 CopilotClientcreateSessionsendAndWait 傳送第一條訊息。
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 到工程

要進入團隊試點,至少補齊:

  1. 設定:模型、超時、重試、環境變數。
  2. 許可權:工具 allowlist、敏感操作審批。
  3. 記錄:session id、user id、prompt metadata、tool call。
  4. 成本:模型和 premium request 口徑。
  5. 可觀測性:OpenTelemetry 或內部 tracing。
  6. 回復:關閉 SDK 入口,退回預設 Copilot。
深讀:為什麼 SDK 依賴 CLI 認證很重要

官方 quickstart 要求先安裝並認證 Copilot CLI。這樣 SDK 可以複用 GitHub account 和 Copilot access,而不是讓你在程式碼裡硬編碼 token。

這也意味著 SDK 應用的部署方式要認真設計:本地 CLI、後端服務、GitHub OAuth、Azure Managed Identity 等路徑不能混用。

本章自檢

  1. 是否確認 Node.js 版本和 Copilot CLI 認證?
  2. 是否知道目前 SDK 仍是 public preview?
  3. 是否能解釋 clientsessionsendAndWait 的職責?
  4. 是否決定什麼時候用 streaming?
  5. 是否有停止 client 和記錄錯誤的路徑?

透過標準:最小 demo 能跑,但不會被誤當成生產架構。

官方來源

接下來去哪

本頁目錄