SDK 與自定義 Agent
按 GitHub 官方 SDK 文件梳理 Copilot SDK、custom agents、hooks 和 OpenTelemetry 可觀測性。
📖 本篇術語速查表
| 英文 / 縮寫 | 中文 | 一句話解釋 |
|---|---|---|
| SDK & custom agents | SDK 與自定義代理 | 程式化擴充套件 Copilot。 |
| 何時自建 | when | 現成能力不夠才自建。 |
| 維護成本 | cost | 自建 agent 的長期負擔。 |
不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你判斷是否該用 SDK 自建 Copilot agent、從哪入手。
你是 Copilot SDK 導航顧問。
【角色】
Copilot SDK 導航顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。
【輸入】
- 我想用 SDK 解決什麼:___
- 現成功能為什麼不夠:___
- 團隊的開發能力:___
- 維護投入:___
- 經驗水平:___
【工作流程】
1. 判斷是否真需要自建
2. 說明 SDK 能做什麼
3. 評估開發和維護成本
4. 給入門路徑
5. 給第一步
【輸出規範】
▌一、是否需要自建
▌二、SDK 能力
▌三、成本評估
▌四、入門路徑 + 第一步
【硬約束】
- 現成夠用就不自建
- 評估維護成本再投入
- 自建 agent 守許可權邊界
- 不要替我臆測情況或編造不存在的功能,資訊不全先問清
- 不確定的設定或許可權一律以官方文件為準,禁止照搬過時寫法Copilot SDK 不是普通 API wrapper(API 包裝層)。它讓你把 Copilot 變成應用裡的 agent runtime(代理執行時):建立 session、註冊工具、監聽事件、定義 custom agents、插入 hooks、接入 OpenTelemetry。
這一組解決一個判斷:什麼時候繼續用 IDE Chat / Agent mode 就夠,什麼時候應該做成 SDK 應用或自定義 agent。
GitHub 官方文件標註 Copilot SDK 目前處於 public preview。生產化前必須保留版本、記錄、回復和許可權邊界。
1. 能力地圖
flowchart TD
Need["業務需要 AI agent"] --> Simple{"預設 Copilot 入口能解決?"}
Simple -->|是| Default["IDE / CLI / Cloud Agent"]
Simple -->|否| SDK["Copilot SDK"]
SDK --> Session["Session"]
SDK --> Tools["Tools / MCP"]
SDK --> Agents["Custom agents"]
SDK --> Hooks["Hooks"]
SDK --> Trace["OpenTelemetry"]
Agents --> Sub["Sub-agent delegation"]
Hooks --> Control["許可權 / 審計 / 錯誤處理"]
style SDK fill:#dbeafe,stroke:#2563eb,stroke-width:2px
style Hooks fill:#fef3c7,stroke:#d97706,stroke-width:2px
style Trace fill:#dcfce7,stroke:#16a34a,stroke-width:2px
2. 本組頁面
Copilot SDK 入門
理解 public preview、CLI 認證、CopilotClient、session 和 streaming。
自定義 Agent
用 customAgents 定義專業 agent,並理解 sub-agent delegation。
SDK Hooks
用 hooks 做許可權、審計、上下文注入和錯誤處理。
可觀測性
用 OpenTelemetry、trace context 和 tool spans 觀察 agent 行為。
3. 什麼時候值得上 SDK
適合:
- 把 Copilot 嵌進自己的產品或內部平臺。
- 控制工具、許可權、事件、hooks 和 trace。
- 構建專業 agent,而不是隻寫 prompt。
- 把 agent 行為接入審計、監控和業務記錄。
暫時不要:
- 只是讓 Copilot 改一個儲存庫。
- 只是團隊內部多寫幾條規則。
- 沒有 owner、記錄、許可權邊界和回復。
- 還沒有證明預設 Copilot 入口不夠用。
4. 推薦落地順序
- 先用 IDE Agent mode 或 Copilot CLI 跑通流程。
- 再把穩定重複任務抽象成 SDK session。
- 註冊最小工具集,不要先接生產寫介面。
- 用 hooks 限制工具和記錄事件。
- 接 OpenTelemetry,再小範圍試點。
- 最後才做 custom agents 和 sub-agent orchestration。
深讀:SDK 化會放大工程責任
預設 Copilot 出錯時,通常是一個開發者會話的問題。SDK 應用出錯時,可能影響使用者、佇列、工具、內部 API 和成本。
因此 SDK 應用必須按產品工程治理:許可權、記錄、告警、回復、版本和成本都要跟上。
本組自檢
- 是否證明預設入口不夠用?
- 是否知道 SDK 應用會呼叫哪些工具和外部系統?
- 是否有 hooks 攔截危險工具和記錄事件?
- 是否有 trace 可以定位 session、tool call 和失敗?
透過標準:SDK 應用不是 demo,而是有許可權、觀測、試點和回復的受控 agent。
官方來源
- Getting started with Copilot SDK —— GitHub 官方 SDK quickstart。
- Custom agents and sub-agent orchestration —— GitHub 官方 custom agents 和 sub-agent 流程。
- Quickstart for hooks —— GitHub 官方 SDK hooks。
- OpenTelemetry instrumentation for Copilot SDK —— GitHub 官方可觀測性說明。