Canvas 扩展
创建可由人和代理共同操作的工作界面,并选择项目或个人保存范围。
Canvas 是承载具体工作成果的交互界面,例如任务板、计划、发布检查表、仪表盘、浏览器或文档。人可以操作控件,代理也能调用 Canvas 提供的能力,双方作用于同一份共享状态。
发现并打开 Canvas
进入 Customize → Canvas 浏览推荐项。某些 Canvas 随插件提供,需要先 Install plugin,再 New session。已安装的可用内容也能在 Installed 中查看。
创建自己的界面
在会话中输入 /create-canvas,说明工作流、用户能做的动作,以及代理应可调用的能力。例如,让任务板支持创建、分配和移动卡片,并向代理开放相应操作。
创建时选择保存范围:
| 范围 | 路径 | 用途 |
|---|---|---|
| Project | .github/extensions | 提交到仓库,与团队共享 |
| User | ~/.copilot/extensions | 本机个人 Canvas |
构建完成后,Canvas 在应用右侧面板打开。后续可要求修改界面、共享状态或可调用能力,也能直接操作按钮、卡片和筛选器。
常见文件结构
每个 Canvas 位于自己的目录,通常包含 package.json 元数据与依赖、例如 extension.mjs 的入口,以及可选的 JSON 持久化资料,如 artifacts 下的状态文件。
这些是官方列举的常见结构,不是所有 Canvas 都必须拥有同名状态文件的固定 schema。Canvas 也可以作为插件的一部分,与 Skills 和 MCP 一起分发。
适用工作
对于需要反复检查与修正的工作,Canvas 可以把进度直接呈现在任务板或文档中。Markdown Canvas 可汇集日程、优先事项与会话入口;文档类 Canvas 可承载文档、表格和演示内容。
只有当代理生成或插件提供了相应能力后,它才能调用这些动作;示例中的 get_board、add_card、move_card 是能力设计示例,不是每个 Canvas 内置的通用工具名。