工作階段主頁
Bromure Agentic Coding 開啟時顯示你的工作階段。一個工作階段就是與一個編碼代理程式的一段對話,在一台機器上的一個檔案夾裡工作——機器(在設定編輯器中稱為「工作區」)就是概念與架構所描述的隔離 Linux VM。你說出想做什麼就能開始一個工作階段;應用程式會在必要時喚醒機器,在正確的檔案夾中啟動代理程式,之後你就在聊天中與它對話。終端機仍在底下,只差一次點選,但聊天才是主要介面。
本章涵蓋聊天周圍的視窗:列出工作階段的側邊欄、聊天上方的標題列與工具列、⌘K 命令面板、封存、結束與刪除各自的作用,以及鍵盤。開始一個工作階段見開始一個工作階段,聊天本身見聊天,工作階段背後的機器見機器。
視窗
所有工作階段都在一個標題為 Bromure 的視窗中。視窗分為兩半:左側是可調整寬度的側邊欄,右側是舞台,顯示你所選的內容——工作階段的聊天、新增工作階段畫面、房間、看板、機器的終端機或儀表板。
視窗開啟時,舞台會顯示你上次查看的工作階段,除非它已經結束或被封存。否則會顯示狀態最急迫的最新工作階段,若都沒有,則顯示新增工作階段畫面。
拖曳分隔線可調整側邊欄寬度(最多 600 點)。拖到約 100 點以下會貼齊為狹窄的邊條;往回拖過該點即可再次展開。⌃⌘S 可在兩者間切換。
側邊欄
由上而下,側邊欄包含:
- 搜尋工作階段欄位。
- 新增工作階段按鈕(⌘N,工具提示為「啟動一個代理程式(⌘N)」),開啟新增工作階段畫面。
- 工作階段區段:總機列、你的房間,以及依狀態分組的工作階段。
- 一旦有任何項目被封存就會出現的已封存折疊區。
- 編碼任務 — 編碼任務看板,附一個 + 可新增。
- 自動化 — 你的排程執行,附一個 + 可新增。
- 虛擬機器(側邊欄較窄時顯示為 VM)——機器,預設收合。標頭以綠色顯示執行中的機器數量,並有一個 + 可建立新機器。展開後會列出終端機格線、每台機器及其終端機分頁,以及任何 Kubernetes 叢集、登錄檔與訊息連接器。見機器。
搜尋
在搜尋工作階段中輸入即可篩選清單。當你的文字出現在工作階段的標題、開場訊息、檔案夾或 @暱稱中時就會命中(暱稱可帶或不帶 @)。從三個字元起,搜尋也會查看對話內容:對話中含有這些字詞的工作階段同樣會列出,並以斜體顯示命中處周圍的字詞,取代其狀態行。點選這樣的一列會開啟聊天並捲動到第一則含有這些字詞的訊息。
搜尋進行中,所有收合的群組與已封存折疊區都會打開,以免任何命中被藏住,總機列則會隱藏。清空欄位(或點選其 ×)即可回到正常清單。
注意: 對話搜尋讀取的是這台 Mac 上保存的各對話副本,約每 30 秒更新一次,因此剛剛說出的訊息可能要等最多半分鐘才能被搜到。⌘K 面板的在對話中使用的是同一個索引。
工作階段區段
點選工作階段標頭可收合或展開整份清單(工具提示為「你與代理程式的對話——點選以收合清單」)。標頭帶有一個紅色標記,顯示需要你處理的工作階段數量,以及總數。
其下依序為:
- 總機列 — 一個魔杖圖示、總機,以及一行統計,例如「1 個需要你 · 2 個工作中 · 2 個就緒」。總機本身就是一個工作階段,負責關注其他所有工作階段;你可以問它進度、讓它替卡住的工作階段作答,或開始新工作。當有兩個以上的工作階段正在進行(工作中、就緒,或等你回應)時這一列就會出現,總機自己在工作或有問題要問你時也會出現。點選它會開啟總機的聊天,第一次點選時會啟動它。見總機與訊息。
- 房間 — 每個房間是一列,帶有彩色磁磚、名稱與其工作階段的統計;其工作階段嵌套在下方,可用箭號收合。點選房間那一列會開啟房間:其工作階段並排顯示,並配有房間自己的總機。把工作階段拖到房間那一列即可移入。見房間。
- 狀態群組,用於不在房間內的工作階段:
| 群組 | 圓點 | 內容 |
|---|---|---|
| 需要你 | 紅 | 代理程式在等你回答,或需要你登入 |
| 工作中 | 橙 | 代理程式忙碌中,或剛剛啟動 |
| 就緒 | 綠 | 代理程式完成了這一輪,正等你的下一則訊息 |
| 已暫停 | — | 工作階段的機器在睡眠或關機;你的下一則訊息會喚醒它 |
| 已完成 | — | 代理程式已離開(你結束了它,或它自行離開);你的下一則訊息會在同一段對話上重新啟動它 |
群組只在有工作階段時出現,順序固定如上,讓需要你處理的排在最上面。已完成預設收合——點選其標頭即可打開。
被委派者會嵌套在委派者之下。 當一個代理程式把工作交給另一個時,被委派者的工作階段會縮排列在啟動它的工作階段之下(若被委派者又再委派,可以有好幾層)。見代理程式協同工作。
機器或檔案夾已消失的工作階段仍可閱讀,但會變淡,狀態行會說明原因:機器已移除或檔案夾已移除(已合併並清理掉的分支則顯示已合併到 …)。它們會累積在「已完成」群組中。打開其中一個會看到對話,並附註「機器已移除。對話在這裡仍可閱讀;用完之後請刪除此工作階段。」——已經沒有可以傳送訊息的對象了。
尚無任何工作階段時,此區段顯示「還沒有工作階段——開始一個:選一個代理程式,說出你想要什麼,然後開始。」
提示: 不是從新增工作階段畫面啟動的代理程式也會出現在這裡。你在機器的終端機中手動啟動的代理程式、一次編碼任務執行,或一次自動化執行,都會各自成為清單中的一個工作階段,並有自己的聊天。
已封存折疊區
已封存(「你收起來的對話——仍可閱讀,一則訊息就能回來」)收納你封存過的工作階段,最新的在前,以及已封存的房間與其工作階段。預設收合;點選其標頭即可打開。當你從別處(⌘K 面板、一次搜尋)開啟一個已封存的工作階段時,折疊區會自動打開以顯示它那一列,並在你離開後再次收合。
機器或檔案夾已消失的已封存工作階段不會逐一列出:只顯示一行「1 個工作階段的機器或檔案夾已消失」(或「N 個工作階段的機器或檔案夾已消失」),並附一個刪除按鈕可一次全部刪除。
工作階段列
每一列由左至右顯示:
- 代理程式的頭像,外框是該工作階段所屬機器顏色的環(把游標移到頭像上可看機器名稱),角上帶著狀態圓點——顏色如上表所示的紅、橙或綠。
- 標題。 代理程式一旦理解任務就會自行命名工作階段(在那之前,標題取自你的第一則訊息)。要重新命名,可在工作階段標題列中雙擊標題,或使用標題列 ⋯ 選單中的重新命名…。當兩個工作階段標題相同時,該列會加上足以區分的資訊:@暱稱、檔案夾、機器或開始時間。
- 時間,自工作階段上次動作以來的時間,以簡短形式顯示:「現在」、「3 分」、「2 小時」、「5 天」。按住 ⌘ 時,前九列會在此改為顯示其 ⌘1–⌘9 快速鍵。
- 狀態行:若工作階段有 @暱稱則先顯示它,接著是狀態——需要你、需要登入、工作中…、正在啟動…、正在喚醒…、快好了…、就緒、已暫停、已完成、已封存、無法啟動、機器已移除或檔案夾已移除。分支工作階段會加上分支字符與工作進度,例如「就緒 · 3 個提交 · 2 個未提交檔案」,或以顏色顯示進行中的合併。
把游標移到某一列上可用工具提示看到代理程式的最後一則回覆。點選即可開啟該工作階段。把一列拖到另一個工作階段那一列上,可把兩者放進同一個房間(新房間,或目標所屬的房間);拖到房間那一列則移入該房間。
列選單
在某一列上按右鍵可開啟其選單。項目只在適用時出現:
| 項目 | 作用 |
|---|---|
| 封存 / 結束並封存 | 把工作階段收進已封存折疊區。代理程式執行中時,該項目顯示為結束並封存,因為封存會停止它。 |
| 取消封存 | (已封存的工作階段)把它帶回清單。 |
| 結束工作階段 | (代理程式執行中)停止代理程式;工作階段移到「已完成」。 |
| 暱稱… | 給工作階段一個 @暱稱,也就是其他代理程式與你的輸入區用來找到它的名稱。可用字母、數字、點、連字號與下底線。見代理程式協同工作。 |
| 新增分支… | 在這個工作階段所在檔案夾的專屬 git 分支上開始一個新的工作階段。見分支與檢視。 |
| 分支區段 | (分支工作階段)檢視變更、各項合併動作、建立提取要求、在此開啟終端機、捨棄分支… — 見分支與檢視。 |
| 移到房間 › | 把工作階段移到現有房間,或用**新增房間…**圍繞它建立一個新房間。 |
| 移出房間 | (房間內的工作階段)把它移出,回到清單。 |
| 「機器」設定… | 開啟該工作階段所屬機器的設定編輯器。 |
| 在 Linux 終端機中開啟 | (代理程式執行中)顯示代理程式所在的終端機分頁。 |
| 刪除工作階段 | 刪除該工作階段。見封存、結束與刪除。 |
收合的邊條
收合後,側邊欄會變成一條 44 點寬的圖示邊條:
- + — 新增工作階段(⌘N)。
- 總機的魔杖,在完整側邊欄會顯示總機列的情況下出現。其工具提示帶有統計。
- 每個工作階段一個頭像,順序與側邊欄列出的順序相同,各自帶著狀態圓點。已暫停與已完成的工作階段會變淡。把游標移到頭像上可看標題與狀態;點選即可開啟該工作階段。已封存的工作階段不會出現在邊條上。
- 一條分隔線,接著是格線按鈕,以及每台執行中的機器每個終端機分頁各一個圖示。
按 ⌃⌘S,或把分隔線往外拖,即可取回完整側邊欄。
工作階段標題列
聊天上方的標題列說明這個工作階段是什麼、在哪裡執行。
- 標題。 雙擊即可重新命名工作階段(Return 儲存,Esc 取消)。按右鍵可開啟機器的選單(見下)。
- 詳細資訊行,以點號分隔:
- @暱稱,若有的話;
- 狀態,帶著圓點,並在有幫助時附上時間——「就緒 · 6 分」、「已完成 · 5 分鐘前」、「工作中 · 正在啟動」;
- 代理程式 — 其圖示與名稱;
- 機器 — 其顏色與名稱。點選可開啟機器的詳細資訊(其儀表板);按右鍵可取得**「機器」設定…、在 Linux 終端機中開啟(代理程式執行中時)、機器詳細資訊與這台機器上的分支…**;
- 檔案夾,以家目錄下的路徑表示(
~/northwind-web); - 分支工作階段會顯示分支標籤與進度(「3 個提交」、「還沒有變更」)。見分支與檢視;
- 從儲存庫開始的工作階段會顯示它所簽出的儲存庫;
- 權杖數,「N 個權杖」,也就是這段對話已用掉的總量。把游標移上去可看細目:「輸入 · 快取 · 輸出」。
- 右側依序是分支工作階段的合併按鈕(分支與檢視),工作階段已暫停或已完成時的 恢復(「喚醒並從中斷處繼續」/「從中斷處恢復」),然後是 ⋯ 選單。
⋯ 選單包含重新命名…、暱稱…、封存 / 結束並封存(或取消封存)、結束工作階段,以及——當工作階段在自己專屬的檔案夾中工作時——檢視變更與新增分支…。分支工作階段還會加上其分支區段。接著是機器的項目(「機器」設定…、在 Linux 終端機中開啟、機器詳細資訊、這台機器上的分支…),最後是刪除工作階段。
已暫停與已完成的工作階段
代理程式未在執行的工作階段會顯示其對話(從這台 Mac 上保存的副本讀取,所以即使機器在睡眠中也能閱讀),以及輸入區上方的一行:
- 「已暫停。你的下一則訊息會從這裡接續。」——機器在睡眠或已關機。
- 「已完成。你的下一則訊息會從這裡接續。」——代理程式已離開。
- 「已封存。你的下一則訊息會把它帶回來,並從這裡繼續。」
輸入一則訊息並送出、點選恢復,或按 ⌘⏎。應用程式會在需要時喚醒機器,在同一段對話上重新開啟代理程式(若舊的終端機分頁還在就用它,否則在同一個檔案夾中開一個新的),並在代理程式就緒後送出你的訊息。恢復一個已封存的工作階段會把它帶回清單。
工具列
舞台上有工作階段時,視窗右上角的工具列包含:
- Linux 膠囊(⌥⌘U)——「這個工作階段背後的 Linux 機器:它在機器清單中的終端機分頁」。它會展開「虛擬機器」,並顯示代理程式執行所在的終端機分頁,以及機器自己的工具列。從該終端機看,膠囊會顯示工作階段(「回到這個終端機所承載的工作階段」),同一組按鍵會把你帶回聊天。如果工作階段的分頁已消失,膠囊會改為開啟機器的儀表板。
- 機器選單 — 一個帶有機器顏色與名稱的膠囊(「機器:它的設定、追蹤、重新開機…」)。其選單包含設定…、機器詳細資訊、複製 IP 位址(位址)、檢查追蹤(追蹤檢查器)、分離到獨立視窗與重新開機。機器未執行時,選單開頭是「未在執行——會隨你的下一則訊息啟動」,只提供設定…與機器詳細資訊。
- 地球圖示 — 顯示或隱藏內嵌瀏覽器(⌃⌘B)。
- 檔案窗格按鈕 — 顯示或隱藏該工作階段檔案夾的檔案窗格(⌃⌘E)。見機器。
新增工作階段畫面完全不顯示機器控制項。機器層級的指示(引擎標記、Fusion 閃電)出現在機器自己的終端機分頁上,而不是在工作階段之上。
命令面板(⌘K)
在視窗中任何地方按 ⌘K(工作區 › 前往…)即可跳到任何地方或執行一項動作。
未輸入任何內容時,面板會列出各項動作,接著是最相關的工作階段(最多八個)與房間(最多四個)。輸入即可搜尋所有內容;你輸入的每個詞都必須命中。結果分區呈現:
| 區段 | 內容 |
|---|---|
| 動作 | 新增工作階段、新增房間…、安全性時間軸、編碼任務、自動化、偏好設定、新增機器…。舞台上有工作階段時,還有新增分支…與檢視變更(當它在自己的檔案夾中工作時),以及合併到 分支(分支工作階段)。 |
| 工作階段 | 所有工作階段,包含已封存的,並附其機器與狀態。暱稱與檔案夾同樣可命中。 |
| 房間 | 所有房間,附其統計。 |
| 機器 | 每台機器都有:機器本身(開啟機器詳細資訊)、位於 機器 的分支,以及**「機器」設定…**。 |
| 在對話中 | 從三個字元起,列出對話含有該文字的工作階段,並顯示命中處周圍的字詞。打開其中一個會把聊天捲動到那裡。 |
用 ↑ 與 ↓ 移動,Return 執行突顯的項目,Esc(或在外部點一下)關閉。此面板在遠端鏡像視窗中同樣可用(遠端存取與用戶端)。
封存、結束與刪除
結束一個工作階段有三種方式。每一種在常見情況下都會立即生效、不出現對話框,並在視窗底部顯示一則提示——例如「已封存「修正登入」」——並帶一個還原按鈕。提示顯示期間按 ⌘Z 也可還原。提示約六秒後消失,或在下一則提示取代它時消失。
| 動作 | 會發生什麼 | 還原 |
|---|---|---|
| 結束工作階段 | 代理程式停止,其終端機分頁關閉。工作階段移到已完成;對話留在檔案夾中,之後可以恢復。 | 重新啟動代理程式。 |
| 封存(代理程式執行中時為結束並封存) | 代理程式停止,工作階段移到已封存折疊區,仍可閱讀。一則新訊息、恢復或取消封存都能把它帶回來。 | 取消封存。 |
| 刪除工作階段 | 工作階段永久離開清單。檔案夾與其中的檔案會留在機器上。 | 復原該工作階段與其已儲存的對話(僅當當時沒有代理程式在執行——見下)。 |
有幾種情況會先詢問:
- ⌘W 會結束舞台上的工作階段,但先問「結束「標題」?」——「代理程式會停止。對話會留在它的檔案夾中,之後可以恢復。」——並提供結束工作階段與取消。確認後會顯示與結束工作階段相同、帶還原的提示。⌘W 絕不會關閉底下的終端機分頁。
- 對代理程式正在執行的工作階段使用刪除工作階段會問「刪除「標題」?」——「代理程式會停止,工作階段會離開清單。它的檔案夾會留在機器上。」——並提供刪除與取消。以這種方式確認的刪除沒有還原。
- 封存或刪除工作尚未合併的分支工作階段會問「封存「標題」——連同它的分支?」(或「刪除…」),並提供保留分支與捨棄分支。見分支與檢視。
- 把工作階段移出房間會顯示「已從「房間」移出」,還原會把它放回去。
自動封存
清單會自行收起某些工作階段,讓它大致只關於還活著的東西:
- 完成超過三天的工作階段會自動封存。房間內的工作階段與各個總機永遠不會這樣被封存。
- 被委派者的工作階段會在它所服務的委派被關閉、取消或失敗時封存;編碼任務的工作階段會在任務合入、被標為完成或被捨棄時封存(它在審查期間保持運作,讓退回與合入都送到同一段對話 — 或在審查中閒置約兩小時後封存);自動化執行的工作階段會在執行結束、且其分頁設為完成時關閉時封存。
已封存的工作階段仍可閱讀,一則訊息就能回來。
鍵盤
| 快速鍵 | 動作 |
|---|---|
| ⌘N | 新增工作階段 |
| ⌘K | 命令面板(前往…) |
| ⌘1 – ⌘9 | 依側邊欄順序開啟前九個工作階段(按住 ⌘ 可看到編號) |
| ⌥⌘↑ / ⌥⌘↓ | 依側邊欄順序切換上一個/下一個工作階段(會循環) |
| ⌘⏎ | 恢復舞台上已暫停或已完成的工作階段 |
| ⌘W | 結束舞台上的工作階段(會先詢問) |
| ⌥⌘U | 在工作階段與其 Linux 終端機之間跳轉 |
| ⌘Z | 還原畫面上提示中的動作 |
| ⌃⌘S | 收合或展開側邊欄 |
| ⌃⌘R | 下一個房間 |
| ⌃⌘B | 顯示或隱藏瀏覽器窗格 |
| ⌃⌘E | 顯示或隱藏檔案窗格 |
⌘1–9 與 ⌥⌘↑/↓ 使用的側邊欄順序是:先是每個房間的工作階段,接著是從「需要你」往下直到「已暫停」的散置工作階段。已完成與已封存的工作階段會被跳過。
在機器的終端機分頁上(而非工作階段上),傳統的終端機按鍵組合會再次生效——⌘T 開新分頁、⌘W 關閉、⌘1–9 切換其分頁。完整清單見附錄。