聊天

每個工作階段都以聊天的形式開啟。你在底部的輸入區書寫;代理程式的回覆、它的問題,以及它做了什麼的摘要顯示在上方。在底下,代理程式其實在它機器(在設定編輯器中稱為「工作區」)上的一個普通終端機分頁裡執行——聊天讀取它的對話,並替你把內容輸入進去,所以代理程式在終端機裡會做的一切,在這裡也一樣會做。用 Linux 膠囊(⌥⌘U;見工作階段主頁)隨時一次點選就能到終端機。

本章描述執行中工作階段的聊天。已暫停或已完成的工作階段會顯示同一段對話(從這台 Mac 讀回),其輸入區的下一則訊息會把它接續起來——見已暫停與已完成的工作階段。

工作中的工作階段「為結帳加入 Apple Pay」的聊天。你的請求在頂端的灰色泡泡中;代理程式的回覆接在後面,中間夾著兩行收合的活動紀錄,寫著「1 次工具呼叫 · 讀取 1 個檔案」與「思考 · 1 次編輯 · 1 個指令」,接著是一個「已變更 1 個檔案 +4 −1」按鈕,以及代理程式持續書寫時閃動的游標。底部的輸入區寫著「給 Claude Code 的訊息…(或拖入檔案)」,帶著提示「⎋ 停止 ⏎ 傳送」與一個紅色的「停止」按鈕。

輸入區

輸入區寫著「給 代理程式 的訊息…(或拖入檔案)」。

  • Return 傳送。⌥⏎ 插入換行。文字下方的提示就是這麼說的:「⏎ 傳送 ⌥⏎ 換行」。
  • 代理程式工作時,傳送按鈕會變成紅色的停止按鈕(「停止代理程式(Esc)」),提示變成「⎋ 停止 ⏎ 傳送」。Esc 或點選停止會中斷代理程式——效果和在它的終端機裡按 Esc 一樣。它工作時你仍然可以輸入並按 Return;訊息會像在終端機裡那樣送到代理程式。

對話是空的時候,聊天會顯示「代理程式 已就緒。說出你需要什麼。」

附件

你可以把 Mac 上的任何檔案交給代理程式:

  • 從 Finder 拖曳檔案(或從瀏覽器、預覽程式拖一張圖片)到聊天的任何位置。聊天會顯示放開以附加;每個檔案會在輸入區上方成為一個標籤,圖片附縮圖。點選標籤上的標記即可移除。
  • 直接放在文字上,文字欄位會先收到該檔案的路徑;聊天會以同樣的方式把指向你 Mac 上檔案的路徑變成標籤。你貼上的路徑也是如此。

任何類型的檔案都可以,每個最多 512 MB;過大或讀不到的檔案會伴隨提示音被拒絕。在你傳送訊息之前不會送出任何東西。傳送後,檔案會被複製到機器內的 ~/.bromure/drops/ 之下(每個名稱前面加上傳送時間,所以兩個叫 photo.png 的檔案永遠不會撞名),路徑則加到訊息末尾,讓代理程式能開啟它們。你也可以完全不寫文字、只送附件。

你從這台 Mac 附加的圖片會留在對話中:它們顯示在你的訊息裡,取代路徑,而且在你往回捲動或日後重新開啟這個工作階段時仍然在那裡。從其他用戶端傳來的圖片則以路徑顯示。

注意: 拖放資料夾位於機器的家目錄中,所以附加的檔案能在機器重新開機後保留。它們也會佔用那裡的空間;若你經常附加大檔案,請從 ~/.bromure/drops/ 刪掉舊的。

斜線指令

在輸入區開頭輸入 /,就會在其上方開啟指令面板:代理程式內建的指令(/model、/compact、/review…)以及你自己加入的——Claude Code 的話是你的自訂指令(~/.claude/commands/ 與專案的 .claude/commands/),標記為你的,還有你的技能,標記為 skill;Codex 的話是你儲存的提示(~/.codex/prompts/)。標頭會顯示代理程式的名稱與符合的數量。

繼續輸入即可篩選。↑↓ 移動,⇥ 完成,↩ 傳送(部分名稱會先被補完),esc 關閉並清除。點選不帶參數的指令會立刻送出;帶參數的指令補完後會加一個空格,讓你輸入其餘部分。

回答斜線指令的是代理程式的終端機,而不是對話,所以聊天會把終端機印出的內容顯示在指令下方的一張卡片裡(會更新幾秒鐘;若沒有任何內容則顯示「終端機沒有出現新內容。」)。點選卡片的 × 可關閉它。

當指令在終端機中開啟選單時——/model、/config 之類——卡片會變成內嵌終端機:代理程式真正的終端機,就在聊天裡,帶著提示「↑↓ 移動 · ⏎ 選擇 · esc 關閉」。按鍵會直接送到代理程式。收合(「回到印出的輸出」)把它縮回文字,互動(「在這裡顯示終端機並輸入」)把它帶回來。選單關閉後卡片會自行收合。

詢問另一個工作階段:@

輸入 @ 會開啟工作階段面板——「你可以詢問的工作階段」,依 @暱稱列出,並附標題與機器。沒有暱稱的工作階段會附上一個建議名稱並標示新名稱,你選取時它就會取得那個名稱。↑↓ 移動,⇥ 或 ↩ 完成,esc 只移除你正在輸入的 @…,句子的其餘部分保留。

用 @名稱 指名一個工作階段,你的代理程式就能向它發出請求。請求與委派會出現在輸入區上方的委派面板中並附帶狀態,也讓你能代替你的代理程式回答被委派者的問題。見代理程式協同工作。

代理程式的問題

當 Claude Code 向你提出選擇題時,聊天會以品牌藍色的即時卡片顯示:「代理程式正在提問」、問題,以及各個選項與其說明。

工作階段「修正結帳重複收費」,標記為需要你。在一行收合的活動紀錄「1 次搜尋 · 讀取 1 個檔案」與代理程式的解釋之後,一張標題為「代理程式正在提問」的藍色卡片顯示問題「我該如何防止重複收費?」,以及三個編號選項——停用按鈕、冪等金鑰、兩者都做——每個都附一行說明,下方有一個「提交」按鈕。
  • 點選一個選項即可選擇。允許多重回答的問題會以核取方塊取代編號,並附一個都不是按鈕。
  • 當代理程式一次提出多個問題時,卡片會顯示「代理程式提出了 N 個問題——全部回答後點擊提交」,並為每個問題顯示一個分頁,回答後打勾。回答單選題後會自動前往下一個未回答的分頁。
  • 在你點選提交之前,什麼都不會送到代理程式,所以點錯只是再點一下改掉而已。在每個問題都有答案之前,提交會保持停用(「所有分頁都回答後,提交才會啟用。」)。送出後,卡片會顯示「答案已送給代理程式。」;若無法連上該工作階段,則顯示「無法連上該工作階段——請再試一次。」

回答之後,問題會收合成一行灰色文字:問題、一個箭號,以及你選了什麼(或「已忽略」)。點選該行可再次看到完整問題,你的選擇會被突顯;箭號可再把它收合。

問題等待期間,該工作階段會待在側邊欄的需要你群組中,並帶一個紅點。

其他代理程式的選單,以及 Claude Code 的其他對話框,則會改以狀態卡呈現。

活動行

代理程式在兩則訊息之間做的事——執行的指令、讀取與編輯的檔案、搜尋、網頁、子代理程式,以及它的思考——會收合成一行安靜的文字,例如「思考 · 1 次編輯 · 1 個指令」或「3 個指令 · 讀取 2 個檔案 · 1 次編輯」。只有單一步驟的執行會直接說出它是什麼(「Grep src」、「編輯 /home/ubuntu/pipeline/export/csv.py」)。失敗的工具呼叫會在該行以紅色計數(「1 個失敗」)。

點選某一行可展開它(「顯示代理程式做了什麼」)並把每個步驟看成一張卡片,再點一次則收合(「隱藏細節」)。代理程式執行到一半時,該行會顯示一個轉動指示與進行中的步驟——「正在執行 npm test…」、「正在讀取 src/app.ts…」、「正在編輯 …」、「正在搜尋 …」、「正在取得 …」、「正在思考…」。兩次執行之間,「正在思考…」的提示,或回覆撰寫期間閃動的游標,都表示代理程式還在進行。

這一輪改了什麼

當代理程式這一輪編輯了檔案,該輪最後會有一個按鈕,例如已變更 3 個檔案 +120 −35——它的編輯所碰到的檔案,以及新增與移除的行數,都是從它自己的編輯呼叫算出來的。把游標移上去可看檔案清單;點選則會針對這些檔案開啟該工作階段的檢視視窗。見分支與檢視。

卡片

在展開的活動行裡,每個步驟都會按其性質繪製:

卡片顯示
編輯變更的彩色差異(編輯與修補一視同仁),含新增與移除的行;過長的差異會以「… 還有 N 行」截斷。
寫入檔案全新檔案的內容,帶語法高亮,並附其路徑。
指令shell 指令顯示在 $ 行上,附拷貝按鈕。透過 heredoc 寫入檔案的指令會列出它所寫的檔案,每個 heredoc 各成一個區塊。
檔案與搜尋某次讀取、列出或搜尋所針對的檔案、檔案夾或模式;網頁取得的 URL 或查詢字串。
結果工具的輸出,收合到第一行(「工具 的結果」);錯誤以紅色顯示。
思考代理程式的推理,以斜體顯示。
其他一切工具的名稱與摘要,展開後可見其原始輸入。

在代理程式的回覆中:

  • 程式碼區塊帶語法高亮與拷貝按鈕。
  • 以 ```mermaid 區塊撰寫的圖表會被畫成圖表,離線進行,並依視窗呈現淺色或深色。無法解析的圖表會改為顯示其原始碼。
  • 表格會畫成卡片:帶色的標頭、以細線分隔的列、一道圓角邊框。在比大約 480 點更窄的聊天中——房間格子,或 iPhone——寬表格會保持可讀的欄寬,改為橫向捲動而不是硬擠。

待辦事項。 當代理程式維護一份任務清單時(Claude Code 的 to-do、Codex 的計畫、Oh My Pi 的 todo),最新的清單會以待辦事項核取清單的形式固定在輸入區上方——已完成、進行中、受阻與待處理的項目一目了然——而不會隨著對話捲走。清單很長時會在原地捲動。

訊息

把游標移到一則訊息上,右上角會出現它的工具:

  • 傳送的時間(把游標移到時間上可看完整日期);
  • 拷貝 — 拷貝該訊息。對於聊天分成多段繪製的長回覆,在第一段上按拷貝會取得整則回覆;
  • 編輯並重新傳送 — 只出現在你最後一則訊息上:把它的文字放回輸入區,供你修改後重新傳送。

當代理程式還在進行而你往上捲動時,底部會出現一個跳到最新按鈕;點選即可回到結尾。只有當你位於結尾時,聊天才會自行跟隨新訊息。

長對話一次繪製 300 則訊息:頂端的顯示更早的 N 則訊息按鈕會載入之前的訊息。非常長的對話一開始不會被完整讀入;此時頂端會提供載入更早的對話,從機器取得更多內容。

登入與狀態卡

當代理程式卡在終端機中某件不屬於對話的事情上時——一個對話框、一次登入、一個錯誤——聊天會偵測到並在對話末尾顯示一張卡片,讓你很少需要開啟終端機。

代理程式在等你信任這個檔案夾。 代理程式第一次在某個檔案夾中工作時,會問是否要信任它。卡片會顯示該檔案夾與一個信任此檔案夾並繼續按鈕。若這個對話框是聊天無法代答的,它會顯示「正在等待代理程式的信任對話框——回答後就會繼續。」

登入 供應商。 尚未設定帳號的代理程式會顯示它的登入畫面;側邊欄會把該工作階段標記為需要登入。在 Bromure 能代為登入的情況下(Claude、給 Codex 用的 ChatGPT、Grok、Kimi),卡片會說明「Bromure 會在這台 Mac 上替你登入,並把你的 供應商 帳號留在機器之外——代理程式看到的永遠只是一個替身金鑰。」並提供登入 供應商…:

  1. 點選它。卡片會顯示「正在開啟你的瀏覽器以登入…」,供應商的登入頁會在你 Mac 的瀏覽器中開啟。
  2. 在那裡核准存取。
  3. Bromure 取得憑證、保存在這台 Mac 上,並以替身金鑰重新啟動代理程式(「已登入。正在重新啟動 代理程式…」)。已經開始的對話會被接續;從未開始的則會收到你的開場訊息。

若五分鐘內沒有任何結果,卡片會這麼說,你可以再試一次。替身金鑰如何運作見憑證與線路邊界,登入的管理見模型與供應商。

在 Bromure 無法代為登入的情況下,卡片會改為引導代理程式自己的登入流程:「你想用哪種方式登入?」並把方式列成按鈕,接著是開啟登入頁,以及一個貼上代碼欄位與提交,用來輸入該頁面給你的代碼。

代理程式 需要一個模型供應商。 Oh My Pi 沒有可登入的帳號:「代理程式 在這台機器上還沒有模型供應商。請在機器的設定中加入 API 金鑰或本機模型,然後重新開始這個工作階段。」**機器設定…**會開啟該機器的設定。

其他對話框。 代理程式彈出的任何其他選單,都會連同標題與各選項以按鈕呈現(Return 會選的那個會被突顯),再加上忽略(Esc)——「或開啟 Linux(⌥⌘U)在終端機中回答。」 核准面板與 Kimi Code 的選擇題也以這種方式呈現。Kimi Code 在預設的永不詢問模式下兩者都不會彈出——而是以純文字提問——只有當機器的 Kimi 核准設定為敏感操作前詢問時才會(見一般)。

失敗。 當代理程式因錯誤停下時,一張紅色卡片會說明類型——「代理程式無法驗證身分」、「代理程式達到使用上限」或「代理程式因錯誤停止」——並在下方附上代理程式自己的錯誤行。驗證失敗時,若 Bromure 能代為登入,會提供登入 供應商…;否則卡片會顯示「請切換到終端機處理,然後再次傳送。」

在對話中尋找東西

聊天內部沒有搜尋欄位。請使用側邊欄的搜尋工作階段欄位,或 ⌘K 面板的在對話中區段:兩者都會搜尋每個工作階段中說過的內容,開啟一項結果會把聊天捲動到含有你字詞的第一則訊息。

限制

  • 歷史。 聊天一次保有約 24 MB 的對話歷史。較長對話中更早的部分可用載入更早的對話取得;一旦保有的歷史超過約 40 MB,最舊的部分會再次從畫面中移出。對話本身在機器上完全不受影響。在遠端 Mac 的鏡像中,聊天第一次開啟只會讀取最新的約 1.5 MB,再次開啟的聊天只會取得上次之後的新內容。
  • 外觀。 聊天有自己的外觀——淺色模式是溫暖的紙質感,深色模式使用系統顏色,跟隨 macOS。機器的外觀設定(終端機字體、顏色、不透明度)適用於它的終端機,而不是聊天。
  • 聊天看得到什麼。 聊天是由代理程式自己的對話檔案,以及它的終端機所顯示的內容組成的。聊天沒有辨識出來的東西仍然在終端機裡:有疑問時,請開啟 Linux(⌥⌘U)。