{"meta":{"title":"开始使用 Copilot SDK","intro":"了解如何安装Copilot SDK并发送你的第一条消息。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/copilot","title":"GitHub Copilot"},{"href":"/zh/copilot/how-tos","title":"操作方法"},{"href":"/zh/copilot/how-tos/copilot-sdk","title":"Copilot SDK"},{"href":"/zh/copilot/how-tos/copilot-sdk/sdk-getting-started","title":"快速入门"}],"documentType":"article"},"body":"# 开始使用 Copilot SDK\n\n了解如何安装Copilot SDK并发送你的第一条消息。\n\n> \\[!NOTE]\n\n```\n          Copilot SDK 当前处于 公共预览版. 功能和可用性可能会发生更改。\n```\n\n```\n          GitHub Copilot SDK 使你能够使用你的首选编程语言构建由 GitHub Copilot 提供支持的应用程序。 在本指南中，你将使用 `npm` 来安装 SDK，发送第一条消息，并添加流式处理响应。\n```\n\n有关其他语言的详细信息和步骤，请参阅 [](https://github.com/github/copilot-sdk/blob/main/docs/getting-started.md) 存储库中的`github/copilot-sdk`。\n\n## 先决条件\n\n在开始之前，请确保已安装 **Node.js 18** 或更高版本。\n\n## Authentication\n\n按照[安装 GitHub Copilot CLI](/zh/copilot/how-tos/copilot-cli/install-copilot-cli)中的说明安装并进行身份验证GitHub Copilot 命令行界面 (CLI)。 这将允许 SDK 访问您的GitHub帐户并使用Copilot。\n\n1. 验证Copilot 命令行界面（CLI）是否已安装并正常工作：\n\n   ```bash copy\n   copilot --version\n   ```\n\n## 安装\n\n1. 创建新目录并初始化项目：\n\n   ```bash copy\n   mkdir copilot-demo && cd copilot-demo\n   npm init -y --init-type module\n   ```\n\n2. 安装 SDK 和 TypeScript 运行程序：\n\n   ```bash copy\n   npm install @github/copilot-sdk tsx\n   ```\n\n## 发送第一条消息\n\n1. 创建新文件 `index.ts` 并添加以下代码。 这会向 Copilot 发送单个提示并打印响应。\n\n   ```typescript copy\n   import { CopilotClient } from \"@github/copilot-sdk\";\n\n   const client = new CopilotClient();\n   const session = await client.createSession({ model: \"gpt-4.1\" });\n\n   const response = await session.sendAndWait({ prompt: \"What is 2 + 2?\" });\n   console.log(response?.data.content);\n\n   await client.stop();\n   process.exit(0);\n   ```\n\n2. 运行代码：\n\n   ```bash copy\n   npx tsx index.ts\n   ```\n\n在本示例中：\n\n***\n\n```\n          `CopilotClient()`\n          ** 创建一个新客户端，用于管理与Copilot 命令行界面（CLI）的连接。\n```\n\n***\n\n```\n          `createSession()`\n          ** 使用指定的模型启动新的会话。\n```\n\n***\n\n```\n          `sendAndWait()`\n          ** 发送提示并等待返回前的完整响应。\n```\n\n## 添加流响应\n\n你可以在响应生成时流式传输响应，而不是等待完整响应。 这对于要实时显示输出的长响应或交互式应用程序非常有用。\n\n1. 使用以下代码更新 `index.ts`，以监听并在响应块到达时打印它们：\n\n   ```typescript copy\n   import { CopilotClient } from \"@github/copilot-sdk\";\n\n   const client = new CopilotClient();\n   const session = await client.createSession({\n       model: \"gpt-4.1\",\n       streaming: true,\n   });\n\n   // Listen for response chunks\n   session.on(\"assistant.message_delta\", (event) => {\n       process.stdout.write(event.data.deltaContent);\n   });\n   session.on(\"session.idle\", () => {\n       console.log(); // New line when done\n   });\n\n   await session.sendAndWait({ prompt: \"Tell me a short joke\" });\n\n   await client.stop();\n   process.exit(0);\n   ```\n\n2. 运行代码：\n\n   ```bash copy\n   npx tsx index.ts\n   ```\n\n启用流式处理后，响应在生成时逐步显示。 可以订阅事件以实时处理每个区块：\n\n***\n\n```\n          `assistant.message_delta`\n          ** 在响应的每个块生成时触发。\n```\n\n***\n\n```\n          `session.idle`\n          ** 在响应完成且会话准备好接收下一条消息时触发。\n```\n\n### 事件订阅方法\n\nSDK 提供以下订阅事件的方法：\n\n* **on（handler）**：订阅所有事件。 返回取消订阅函数。\n* **on（eventType， handler）**：订阅特定事件类型。 返回取消订阅函数。\n\n将以下代码添加到`index.ts`以订阅事件，并在不再需要时取消订阅。\n\n```typescript copy\n// Subscribe to all events\nconst unsubscribeAll = session.on((event) => {\n    console.log(\"Event:\", event.type);\n});\n\n// Subscribe to specific event type\nconst unsubscribeIdle = session.on(\"session.idle\", (event) => {\n    console.log(\"Session is idle\");\n});\n\n// Later, to unsubscribe:\nunsubscribeAll();\nunsubscribeIdle();\n```\n\n## 后续步骤\n\n要继续开始使用 Copilot SDK，请参阅 `github/copilot-sdk` 存储库中的[构建你的第一个 Copilot 驱动应用](https://github.com/github/copilot-sdk/blob/main/docs/getting-started.md#step-4-add-a-custom-tool)。"}