智慧體工作臺

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