作者:Burke Holland
排版:Alan Wang
当开发者需要的不只是一个聊天框,而是更直观、可操作的界面时,该怎么办?这时,画布(Canvas)就派上用场了。

我们已经在这场 AI 实验中走过了 176 年。
等等......才三年?
你确定吗?
有时候,我会想起去年发生的事情,但感觉已经过去了很久。我甚至会怀疑,那件事真的是发生在我身上的吗?还是小时候我爸经历过,然后讲给我听的?
总之,这场 AI 实验已经进行了三年,而我们与 LLM 交互的主要方式,至今仍然是聊天。我相当确定,最早主张在 HTML 规范中加入多行文本输入框(textarea)组件的人是 @pmarca。而我之所以如此确信,是因为我问了 AI 这个问题。就在一个 textarea 里。
不过,我想向大家提出一个观点:也许,聊天并不是正确的用户界面。当然,至少在大多数情况下是这样。
学者 Steven Pinker 曾这样说道......
有点遗憾的是,AI 的第一个大规模应用竟然有些像个噱头------一个第一人称聊天机器人。但如果 AI 能够以任务为导向,它将拥有巨大的发展潜力。
------学者 Steven Pinker
如果一位学者这么说了,而我又把这句话作为引言写进博客文章里,那么你就知道,这一定是真的。
聊天之所以成为使用 AI 的主要方式,是因为它是人们最先接受的交互形式。聊天也确实是一种非常出色的通用解决方案,因为我们还不知道人们究竟会尝试用 AI 做些什么。
但作为用户,你很清楚自己想用 AI 做什么。而在这种情况下,聊天往往就不是合适的用户界面了。
亲爱的读者,你真正需要的是某种可以自定义的用户界面。你可以随时凭空创建这样一个界面,以适合当下任务的方式与 AI 协作(或者与它斗智斗勇------随你喜欢)。
实现这一目标的方式有很多,而在 GitHub Copilot App 中,这种方式被称为画布(Canvas)。
画布是一个小型全栈应用,可以直接运行在 GitHub Copilot 应用内部,不带浏览器的工具栏等界面元素。智能体可以与这个应用的服务端通信,服务端也可以向智能体返回信息。因此,你最终得到的是一个能够执行普通计算机程序所能完成的任何操作的交互界面,而且它还能与 GitHub Copilot 智能体进行双向通信。
听起来是不是有点含糊其辞?而且我还用了"双向"这个词,听起来简直像是直接从 PowerPoint 演示文稿里搬出来的。所以,让我们看看这个概念在实际中如何运作,看看能否借助强大的画布解决一些真正的问题。
我们先从一个简单的例子开始:利用画布创建一款四子棋游戏,让你可以在 GitHub Copilot 应用中与智能体对弈。
看看我是如何彻底碾压 GPT-5.6 Sol(高推理模式)的......
利用画布创建一款四子棋游戏
好吧。不过,我确实在关闭推理功能的情况下击败了 GPT-5.6 Luna,所以......听着......四子棋可是一款很难的游戏!!
构建画布其实很简单,只需要提出请求:
Plain
创建一个新的画布,使用四子棋游戏来演示以下功能:用户可以与画布交互,画布可以与智能体通信,而智能体也可以控制画布。
GitHub Copilot 应用本身就知道什么是画布,因此我们不需要再做额外解释。
由于这些画布实际上是全栈应用,而不仅仅是网页,因此它们不仅可以调用第三方 API,还可以直接在你的计算机上执行代码。
例如,下面是一个用于 Winget 的用户界面。它既可以浏览软件包注册表中的软件包,也可以管理我本地的软件包,包括安装和卸载。
用于 Winget 的用户界面
这里并没有用到 AI,但这恰恰就是重点。
当聊天成为主要的交互界面时,它会让你倾向于使用智能体完成所有事情。这往往纯粹是在浪费 Token。与其把智能体本身当作工具,不如让智能体构建一个工具,这样以后每次使用它都不需要再消耗 Token,这几乎总是更好的选择。
别再让 GPT-5.6 Sol Max 帮你执行"暂存并提交"操作了。(我知道你们会这么做,因为我自己也这么干过。别拿 Token 消耗来嘲笑我,我的自尊心很脆弱。)
另一个很好的例子是:与其在聊天框里要求智能体对 SQLite 数据库执行各种操作,不如直接打开一个画布,然后......自己动手完成。
我的意思是,你甚至可以在这里使用智能感知。为什么不呢?现在可是 2026 年,AI 就像一个神奇的盒子,你想要什么,它就能帮你实现什么。
使用智能感知
是不是很舒服?
偶尔写一点 SQL 还是挺不错的。我说的是偶尔。放轻松。
或者,为什么还要用纯 Markdown 编写 Jekyll 博客文章呢?你完全可以让 Windows Live Writer 这款经典工具起死回生。
让 Windows Live Writer 经典工具起死回生
好吧,这些例子都很有趣,也有一些实际用途,但当你用自定义界面来自动化开发工作流时,它的价值就会变得更加明显。
我不打算告诉你应该怎样安排自己的工作,不过,我使用智能体的流程大致如下:
-
调研
-
原型设计
-
制定计划
-
实现
-
迭代
-
最终定稿
这个流程相当简单,但其中的每个步骤都需要我坐在键盘前参与交互、查看原型、提供指导,并在不同阶段之间切换。
但问题在于,实际上,这个流程中的大部分工作并不需要我一直参与。智能体完全有能力自行开展调研、生成原型,然后在准备好供我审查时通知我。
使用智能体的目标,始终是尽可能让自己从整个工作流程中脱身。不过,这并不容易,因为当你唯一的交互方式只是一个聊天框时,你很难弄清楚该如何实现这一点。
这是一个完整的示例,展示如何利用画布自动化自己的工作流。至于要在多大程度上让自己退出整个流程,你可以自由决定。
我并不是说你应该照搬这套工作流,也不是说这是使用智能体的完美范例。我的意思是,它也许确实是。很可能就是。我们问问 AI 吧......

天哪!
说正经的,我确实认为,聊天界面的限制可能正在阻碍我们所有人。它让我们难以找到真正解决实际问题的方法,因为当唯一的交互方式只是一个 textarea 时,我们根本无法直观地知道该怎么做。
今天就试试画布吧。有些东西,比如 SQLite 画布,你只需要一次提示就能创建出来。而工作流画布则花了我大半天时间,才把设计和自动化流程调整到位。
但我想,你会发现,当你使用 AI 时,如果能够跳出聊天框的思维局限,就能走得更远。
没错,就是......跳出聊天框之外思考。