智能体工作台

Web 预览

查看智能体在其沙箱内运行的 Web 应用——Buda 会把它的 localhost 链接转换成可访问的预览 URL。

当智能体构建一个网站、演示、游戏、仪表盘或任何前端时,你会想要看到它运行起来。Web 预览正是做这件事:智能体在它的云电脑内启动应用,Buda 把沙箱的 localhost 链接转换成一个预览 URL,你可以在本地浏览器中打开它。

一个智能体在运行预览

何时使用

每当智能体运行某个监听端口的服务时,就使用 Web 预览。直接用自然语言提出请求即可:

Start the dev server and give me the preview link.
Open the page in your Local Browser and check whether it works.

基本流程

  1. 让智能体运行应用或启动预览。

  2. 等待它输出一个 localhost 链接,例如:

    http://localhost:3000
  3. 在 Buda 页面中点击该链接,或打开你的本地浏览器(不是 AI 浏览器)并在地址栏中输入该链接。

  4. Buda 会把 localhost 链接转换成一个外部预览 URL——通常以 *.budaapps.com 结尾。

  5. 等待该 *.budaapps.com URL 加载完成。

任意端口同理。在本地浏览器中输入 http://localhost:4000,Buda 就会为端口 4000 请求一个预览。

如果预览加载不出来

如果页面空白、卡住或报错,让智能体检查进程并返回一个新链接:

Please use /buda-web-preview to check the process and give me a working preview link.

如果你的本地浏览器显示了 WakeUp 按钮,点击它——Buda 会向智能体发送一个重启/检查请求,并在服务恢复后刷新预览。

让被预览的应用请求 Agent 继续

这一节写给被预览应用的开发者——App-in-Skill 应用,或任何本地 Web 应用。

在本地浏览器中打开的页面,可以请求当前 Agent 接手一项任务,这样使用者就不必切回聊天再把同一件事描述一遍。页面只能请求:Buda 会用自己的确认条把请求展示出来,在使用者点击发送给 Agent 之前,什么都不会送到 Agent。

向父窗口发一条消息即可:

window.parent.postMessage(
  {
    type: "buda:agent-action-request",
    version: 1,
    requestId: "my-app:generate:7",
    prompt: "读取 drama/episode-7.json,继续生产这一集。",
  },
  "*",
);

使用者会看到什么

预览顶部出现一条确认条,上面一行是 Buda 自己的文案——此应用请求 Agent 继续执行任务——下面一行是 prompt 的原文,右侧是发送给 Agent 按钮和关闭按钮。点击发送给 Agent 后,这段 prompt 会作为使用者本人的消息提交进当前聊天。

消息必须满足的条件

只要有一条不满足,消息就会被静默忽略:界面上什么都不会出现,也不会报错。

条件说明
发送方必须是直接加载在预览里的那个页面。页面内再嵌的 iframe 用 window.top.postMessage 会被拒绝。
origin必须与预览当前加载的 URL 的 origin 完全一致。
type / version必须正好是 buda:agent-action-request 与 1。
requestId1–128 个字符,取值范围 a-z A-Z 0-9 _ . : -。一次性——使用者发送或关闭之后,同一个 id 不会再出现。
prompttrim 后非空,且不超过 4000 个字符。这段原文既是使用者读到的内容,也是实际发出去的内容。
一次一条已经有一条在等待确认时,后来的请求会被忽略。等确认条消失后再发下一条。
导航预览切换到别的 URL 时,会清空待确认的请求和已用过的 id。

应用无法决定确认条上的措辞。多余的字段——包括早期草案里发过的 label 字段——都会被忽略,确认条永远显示 Buda 的提示语加上 prompt 原文。这是有意为之:预览内容属于不可信输入,使用者必须先看到真实的指令,再决定是否批准。

问答

一个 *.budaapps.com URL 提示 Unauthorized,怎么办?

返回你的本地浏览器,重新输入原始的 localhost URL(例如 http://localhost:3000)。Buda 会请求一个新的已签名预览 URL 并重新打开它。

预览显示 Gateway Error。

应用进程可能没有运行,或者它在另一个端口上。请让智能体:

Please use /buda-web-preview to check the process and give me a preview link.

你也可以点击 WakeUp 来触发同样的恢复流程。关于这个由系统管理的技能的详情,参见 buda-web-preview 技能。

我需要知道启动命令吗?

通常不需要。告诉智能体你想要什么——「启动这个项目并展示给我 Web 预览」——它会检查项目、启动合适的服务器,并返回链接。

相关页面

On this page