CLI 和應用如何共享狀態
Beam Bench 的代理狀態模型。CLI 能看到什麼,應用能看到什麼,以及它們在哪裡交匯。
Beam Bench CLI 和桌面應用是同一後端的兩個客戶端。它們都可以檢查同一個專案、同一個機器連線和同一個相機狀態。當你想通過指令碼驅動應用時,瞭解它們如何共享狀態會很有幫助。
模型
Beam Bench 內部有一個唯一的事實來源,負責管理:
- 當前專案。
- 機器連線。
- 相機狀態。
- 代理能力/狀態面。
桌面應用的 UI 是該狀態的一個使用者。CLI 是另一個使用者。HTTP / WebSocket API 也是同一介面。
CLI 可以做什麼
beambench-cli agent state --json 以穩定的 JSON 架構返回專案、機器、選擇內容和相機的當前狀態。使用它可以檢查應用當前載入的內容。
beambench-cli agent capabilities --json 返回可用操作的登入檔,以及各個 CLI 子命令對映到哪些後端操作。
beambench-cli agent guide --json 返回一條工作流提示,說明外部代理(如 Claude)應如何驅動應用。
CLI 不能做什麼
CLI 沒有自己的 UI 狀態。它無法選擇工具、開啟面板或開啟對話方塊。這些都是應用端操作,請在應用中執行,而不是通過 CLI 執行。
CLI 需要應用執行時
某些操作需要應用執行實際工作(渲染帶疊加層的畫布、捕獲相機畫面)。CLI 會轉發請求,應用執行工作;結果再返回 CLI。
camera overlay render 命令就是這樣工作的。CLI 會一直阻塞,直到應用完成或超時(15 s)。
無頭命令與需要應用的命令
| 需要應用執行? | 示例 |
|---|---|
| 否(無頭) | beambench-cli design render --png、beambench-cli project save、beambench-cli export svg、beambench-cli agent state |
| 是 | beambench-cli camera overlay render、beambench-cli camera capture(使用原生相機時),以及任何 UI 狀態檢查 |