Tide Pool / A2UI
Tide Pool 是代理驅動的視覺工作區,Triggerfish 在此渲染互動式內容:儀表板、圖表、表單、程式碼預覽和豐富媒體。與線性對話的聊天不同,Tide Pool 是代理控制的畫布。
什麼是 A2UI?
A2UI(Agent-to-UI)是驅動 Tide Pool 的協定。它定義代理如何即時向已連接的客戶端推送視覺內容和更新。代理決定顯示什麼;客戶端負責渲染。
架構
代理使用 tide_pool 工具將內容推送到在 Gateway 中執行的 Tide Pool Host。Host 透過 WebSocket 將更新轉送到支援平台上任何已連接的 Tide Pool 渲染器。
Tide Pool 工具
代理透過以下工具與 Tide Pool 互動:
| 工具 | 描述 | 使用場景 |
|---|---|---|
tidepool_render | 在工作區中渲染元件樹 | 儀表板、表單、視覺化、豐富內容 |
tidepool_update | 透過 ID 更新單一元件的屬性 | 增量更新而不替換整個視圖 |
tidepool_clear | 清除工作區,移除所有元件 | 工作階段轉換、重新開始 |
舊版動作
底層 host 也支援較低階的動作以保持向後相容:
| 動作 | 描述 |
|---|---|
push | 推送原始 HTML/JS 內容 |
eval | 在沙箱中執行 JavaScript |
reset | 清除所有內容 |
snapshot | 擷取為圖片 |
使用場景
Tide Pool 設計用於僅靠聊天不足的場景:
- 儀表板 —— 代理建構即時儀表板,顯示來自您已連接整合的指標。
- 資料視覺化 —— 從查詢結果渲染的圖表和圖形。
- 表單和輸入 —— 用於結構化資料收集的互動式表單。
- 程式碼預覽 —— 帶有即時執行結果的語法高亮程式碼。
- 豐富媒體 —— 圖片、地圖和嵌入內容。
- 協作編輯 —— 代理呈現文件供您審閱和標註。
運作方式
- 您要求代理視覺化某些東西(或代理決定視覺回應是適當的)。
- 代理使用
push動作將 HTML 和 JavaScript 傳送到 Tide Pool。 - Gateway 的 Tide Pool Host 接收內容並轉送到已連接的客戶端。
- 渲染器即時顯示內容。
- 代理可以使用
eval進行增量更新而不替換整個視圖。 - 當上下文改變時,代理使用
reset清除工作區。
安全整合
Tide Pool 內容受到與任何其他輸出相同的安全執行約束:
- PRE_OUTPUT hook —— 所有推送到 Tide Pool 的內容在渲染前都通過 PRE_OUTPUT 執行 hook。違反輸出策略的分類資料會被封鎖。
- 工作階段 taint —— 渲染的內容繼承工作階段的 taint 等級。顯示
CONFIDENTIAL資料的 Tide Pool 本身就是CONFIDENTIAL。 - 快照分類 —— Tide Pool 快照在擷取時以工作階段的 taint 等級分類。
- JavaScript 沙箱 —— 透過
eval執行的 JavaScript 在 Tide Pool 上下文中沙箱化。它無法存取主機系統、網路或檔案系統。 - 無網路存取 —— Tide Pool 執行時無法發出網路請求。所有資料都通過代理和策略層流動。
狀態指示器
Tidepool 網頁介面包含即時狀態指示器:
上下文長度條
樣式化的進度條,顯示上下文視窗使用量——LLM 上下文視窗已消耗多少。條在每條訊息後和壓縮後更新。
MCP 伺服器狀態
顯示已配置 MCP 伺服器的連接狀態(例如「MCP 3/3」)。顏色編碼:綠色表示全部已連接,黃色表示部分,紅色表示無連接。
安全密鑰輸入
當代理需要您輸入密鑰時(透過 secret_save 工具),Tidepool 顯示安全輸入彈出視窗。輸入的值直接進入金鑰鏈——它永遠不會通過聊天傳送或在對話歷史中可見。
將 Tide Pool 視為代理的白板。聊天是您與代理交談的方式,Tide Pool 是代理向您展示東西的地方。 :::
