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.基本流程
-
让智能体运行应用或启动预览。
-
等待它输出一个 localhost 链接,例如:
http://localhost:3000 -
在 Buda 页面中点击该链接,或打开你的本地浏览器(不是 AI 浏览器)并在地址栏中输入该链接。
-
Buda 会把 localhost 链接转换成一个外部预览 URL——通常以
*.budaapps.com结尾。 -
等待该
*.budaapps.comURL 加载完成。
任意端口同理。在本地浏览器中输入 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。 |
requestId | 1–128 个字符,取值范围 a-z A-Z 0-9 _ . : -。一次性——使用者发送或关闭之后,同一个 id 不会再出现。 |
prompt | trim 后非空,且不超过 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 预览」——它会检查项目、启动合适的服务器,并返回链接。