# 在 GitHub Copilot 应用中使用画布扩展

使用 GitHub Copilot app 中的画布来构建共享的、由代理驱动的成果和界面，以支持人与代理协作。

## 关于画布扩展

画布扩展是用于工作成果（如计划、分类看板、浏览器会话、发布检查清单、仪表盘、事件或电子表格）的共享交互界面。

画布扩展可以与其他功能（如技能或 MCP 服务器）一起包含在插件中。

虽然聊天可用于定义意向和讨论任务，但大多数工作发生在工作图面（如终端、浏览器、文档或仪表板）中。 通过画布，您可以直接在这些工作界面中与智能体进行协作。

画布是双向的：智能体可以在工作过程中更新画布，而你也可以在同一画布上进行编辑。 创建画布时，代理会根据提示和工作流生成功能。 在迭代过程中，你可以要求它添加、删除或修改这些功能。 创建后，画布会在应用右侧面板中打开。

例如，您可以创建一个智能体驱动的看板画布，用户可通过 UI 控件创建或移动卡片，并要求智能体添加可供智能体调用的能力，例如 `get_board`、`add_card` 和 `move_card`。 这使人员和智能体能够通过一个共享看板来协调工作。

## 为何使用画布

当任务或工作流需要结构、迭代和验证并且聊天不够时，画布非常有用。 您可以使用聊天向代理发出指令，并针对存在歧义之处进行推理，然后使用画布直接检查、引导和验证已呈现的工作内容，而不必仅依赖提示词。

画布提供两种价值：它们通过向双方提供一个共享图面来改进人机合作关系，并让你自定义该图面以匹配工作流。

需要以下条件时，画布非常有用：

* 将智能体的工作融入符合您工作流的实际成果或环境中。
* 直接在共享界面上指导或修正工作，然后让智能体根据这些更改继续处理。
* 将进度和结果视为对共享成果物的可见更改，而不只是聊天回复。
* 确保工作在轮次、会话和交接之间保持连续性。

## 示例用例

可以根据你或你的团队在各种场景下的需求自定义 Canvas 扩展。 例如：

* **智能体看板：** 允许人类和智能体添加卡片、移动工作项并启动任务。
* **问题会审委员会：** 汇总存储库的首要问题、定期主题和用户痛点。
* **Markdown 画布：** 构建一个持久 markdown 文件，用于规划一天、确定问题和拉取请求的优先级、启动和监视代理会话，并将相关工作保留在一个可编辑的图面中。
* **文档画布：** 直接在应用中打开、编辑和协作处理文档、电子表格、演示文稿及其他内容。

## 发现画布

**画布**视图提供精选画布列表。 某些画布通过插件传递，必须先安装该插件，然后才能在会话中使用画布。 例如，安装 Azure DevOps 插件可让你访问画布，以便规划和管理Azure DevOps工作。

1. 在应用边栏中，单击“ **自定义**”。
2. 单击“画布”\*\*\*\*。
3. 浏览精选画布。
4. 如果画布需要插件，请单击“ **安装插件**”。
5. 单击 **“新建会话** ”以使用画布打开会话。

还可以单击“ **已安装** ”以查看所有已安装的自定义项，包括可供使用的画布。

## 创建画布

你可以在会话中使用 `/create-canvas` 技能创建一个新的画布。

1. 打开或启动代理会话。
2. 在提示框中，键入 `/create-canvas`，然后描述希望画布支持的工作流和功能，包括用户应能够执行的操作以及代理应能够执行的操作。
   例如，可以要求代理：

   * `Create an agentic kanban canvas with actions to create, assign, and move cards.`
   * `Create a markdown canvas that combines my meetings with prioritized issues and pull requests, then lets me launch and track agent sessions from that canvas.`
3. 您可以选择画布是与团队共享，还是仅供个人使用：
   * **项目范围：**`.github/extensions`适用于已提交到存储库的团队共享画布。
   * **用户范围：**`~/.copilot/extensions`用于您设备上的个人画布。

智能体将构建画布，并在完成后将其在右侧面板中打开。 之后，可以通过要求代理更改接口、共享状态和功能来继续迭代。

## 画布扩展的结构

您在应用中创建或直接安装的画布扩展，分别位于 `.github/extensions`（项目范围）或 `~/.copilot/extensions`（用户范围）下各自的目录中。

尽管实现可能有所不同，但画布扩展通常包括：

* 用于扩展元数据和依赖项的 `package.json` 文件。
* 定义画布行为和功能的扩展条目文件，例如 `extension.mjs`。
* 用于持久化的画布数据和状态的可选 JSON 产物（例如 `artifacts` 目录下的文件）。

当画布在应用端面板中打开时，人员和代理通过 UI 操作和代理可调用的功能与同一共享状态进行交互。

## 在画布上工作

画布打开后，您可以与智能体快速迭代。

* 添加或修改画布的功能。
* 使用画布控件（如按钮、卡片或筛选器）直接更新图面。
* 要求代理调用画布公开的功能以更新数据或采取措施。

## 延伸阅读

* [在 GitHub Copilot 应用中使用代理会话](/zh/copilot/how-tos/github-copilot-app/agent-sessions)。
* [自定义 GitHub Copilot 应用](/zh/copilot/how-tos/github-copilot-app/customize-github-copilot-app)。