使用 Thread

每一件獨立的任務請開一個新 Thread。如果它對程式碼的修改需要獨立的分支和工作目錄,請選擇 New worktree。

開始一個 Thread#

在網頁版和桌面版,新 Thread 會沿用目前的專案,並帶著你選的模型和模式,除非目的地的專案有自己的模型預設值。它的分支和 workspace 模式來自你設定的預設值。要在既有的 worktree 裡繼續工作,請使用分支工具列上的 New thread in this worktree。

當你更改新 Thread 的專案時,如果那個專案存在於目前的 environment,T3 Code 會留在目前的 environment。否則它會選一個有這個專案的 environment。

不使用專案開始#

Thread 不一定需要專案。要開始一個沒有專案的 Thread,可以點新 Thread 標題下方的 or start without a project;也可以從那個標題裡的專案選單,或從指令面板的 New thread in... 選擇 No project;或是按 mod+alt+n。在手機版,從專案清單選擇 No project。要把草稿移進某個專案,在標題裡選擇那個專案即可。

每個沒有專案的 Thread 都在 ~/.t3/scratch(也就是 T3 資料目錄裡的 scratch 資料夾)底下自己的資料夾裡工作。資料夾的名稱由日期、第一則訊息的前幾個字和一個短 id 組成,例如 2026-09-25-convert-these-pngs-to-webp-a1b2c3d4。刪除 Thread 時會保留它的資料夾,所以 agent 寫出來的檔案會一直留著,直到你自己刪掉為止。因為這些資料夾不是 Git repository,所以分支、worktree 和 diff 的控制項都會隱藏。如果資料目錄本身位於某個 Git checkout 裡面,就無法使用這個功能。

在背景開始#

在桌面瀏覽器或桌面版 app 裡,按 macOS 的 Cmd+Enter,或 Windows 和 Linux 的 Ctrl+Enter,可以開始一個新 Thread,並立刻開啟另一份草稿。下一份草稿會沿用你選的 workspace 模式和 base branch。選了 New worktree 時,每一次背景送出都會建立它自己的 worktree。

要在網頁版或桌面版把同一則 prompt 送給好幾個模型,請在新 Thread 的模型選單裡用 Shift-click 加入或移除模型。一般的點擊會回到單一模型。選一個 base branch 然後送出。每個選取的模型都會開始一個獨立的 Thread 和 worktree,而你會留在新 Thread 的 composer。這需要專案是 Git 專案。

Pin 與重新排序 Thread#

從 Thread 的選單把它 pin 起來,它就會固定在進行中的工作上方。

在網頁版和桌面版,取消 pin、settle(結案)、snooze(暫時擱置)和封存 Thread 時,各會顯示一則帶有 Undo 的通知,持續五秒。Undo 會把 Thread 還原到先前的狀態,包括它在 pinned 區段裡的位置;如果你當時正在看的 Thread 被封存了,也會把它重新打開。沒有任何文字欄位取得焦點時,mod+z 會觸發最近一次的 Undo;見快捷鍵。

在網頁版和桌面版,你也可以把電腦上的檔案拖到任何一列 Thread 上:那個 Thread 會打開,檔案會附加到它的 composer 裡,等你送出下一則訊息。這裡適用的每則訊息檔案上限,和直接附加檔案時相同;見附加檔案。

在網頁版和桌面版,pin 或取消 pin 一個 Thread 時,側邊欄會停在你目前的捲動位置,而不會跟著那個 Thread 跳到它在清單裡的新位置。

Pin 不會阻止自動 settle。Settle 一個 Thread 會移除它的 pin。

在網頁版和桌面版,把 Thread 拖到不同的區段就可以改變它的狀態。把 Thread 往上拖進 pinned 區段,就會把它 pin 在你放下的位置;把 pinned 的 Thread 往下拖進 active 清單,就會取消 pin。把 Thread 拖到 Settled 標題上會 settle 它,把 settled 的 Thread 拖進 active 清單則會取消 settle。Snoozed 的 Thread 可以從 snoozed 收納區拖出來,這會喚醒它;但 Thread 不能拖進這個收納區,因為 snooze 需要一個喚醒時間。把 pinned 的 Thread 拖出 pinned 區段時,不會跳出取消 pin 的確認。Pinned 和 active 的分界標籤只在拖曳時出現,而且不會讓各列移位。其他列會往旁邊滑開,顯示 Thread 會落在哪裡。當你跨進另一個區段時,被拖曳的 Thread 會顯示放下後會執行的動作,並附上圖示:Pin、Unpin、Settle、Un-settle 或 Wake。拖曳期間它的狀態和滑鼠移入時才出現的動作按鈕會隱藏。Pinned 的 Thread 只有還留在 pinned 區段時才會保留它的 pin 圖示;一旦離開,就換成上述的動作標記。在同一個區段裡重新排序不會顯示標記。沒有任何 pin 時,把 Thread 拖到最上緣就可以 pin 它。整個拖曳過程中區段標籤都保持可讀,而 Thread 目前所在的區段會換成強調色。區段標籤也會標示出空的區段,以及收合起來的 settled 收納區。

在 pinned 或 active 區段裡拖曳,可以改變它的順序。其他列會往旁邊滑開,顯示 Thread 會落在哪個位置。放進這兩個區段的任何一個,都會保留你選的位置。在手機版,開啟某個 Thread 的選單,選擇 Arrange threads。在 Pinned 和 Active 之內或之間拖曳把手,就可以重新排序、pin 或取消 pin。放到 Settled 分隔線上會 settle 那個 Thread。被拖曳的卡片會在你放開之前顯示將執行的動作。展開 Snoozed 或 Settled,可以把停放在裡面的 Thread 拖回任何一個進行中的區段。每次放下都會儲存;Done 會回到 Thread 列表。Thread 選單裡也有 Move up 和 Move down。順序是由 server 儲存的,所以重新整理之後仍然保留,也會出現在你其他已連線的裝置上。

在網頁版和桌面版,用 Pin、Settle、Snooze 這類 Thread 動作造成的區段變動,列表也會以動畫呈現。這些轉場會遵循你系統的「減少動態效果」偏好設定。拖曳時,各列會跟著插入的空隙移動,放下之後不會再重播一次轉場。

新 Thread 會出現在你排好的 active Thread 上方。Settle 會清除 Thread 在 active 裡的位置,所以用 Un-settle 之後它會回到最上面。Pin 和 snooze 則會保留它在 active 裡的位置,直到你再次移動它。Thread 的活動不會改變順序。Settled 收納區仍然依照 settle 的時間排序。

如果某個 environment 無法拖曳,請更新在那個 environment 上執行的 T3 Code server。Pinned 和 active 的重新排序需要 server 支援。來自舊版 server 的 Thread 會維持它們的預設順序,直到 server 更新為止。

要依照對話內容產生一個新的標題,開啟 Thread 的選單,選擇 Regenerate title。標題正在產生時,或是連線的 environment 需要更新 server 時,這個動作無法使用。

透過 T3 Code 連接的 agent,可以使用同一套由 server 負責的 metadata 流程,來重新命名 Thread、重新產生標題,或是連結與取消連結 pull request。這些變更會出現在網頁版、桌面版和手機版,不需要發起操作的那個瀏覽器一直開著。

收合工作中的 Thread(beta)#

在網頁版和桌面版,開啟 Settings → General → Working section (beta),就會把正在工作或監看中的 Thread,移到側邊欄最下方一個收合起來的 Working 區段。Thread 完成、失敗,或是需要你核准或回答時,會回到 active 清單的最上面。Pinned 的 Thread 仍然留在 pinned 區段。

開啟這個功能時,active 清單會依照每個 Thread 最近一次回到你手上的時間排序,所以不能用拖曳來重新排序。關掉之後,你儲存的順序就會回來。

Settle 已完成的工作#

從 Thread 的選單選擇 Settle thread,可以把已完成的工作移出 active 清單,而不會刪除對話。Un-settle thread 會把它還原成進行中的工作,並且阻止自動 settle,直到有新的活動讓一般規則重新生效。手動 settle 一個閒置的 Thread,會把尚未回答的非同步提問關掉,但不會送出答案,也不會重新啟動 agent。Settle 也會關閉這個 Thread 裡停在閒置提示字元的終端機,並保留它們的輸出。正在執行指令的終端機(例如 dev server)則會繼續開著。

依照預設,environment 會在 Thread 閒置三天後 settle 它,也會 settle pull request 已經 merge 的 Thread。已關閉的 pull request 也可能讓閒置的 Thread 被 settle。進行中的工作、等待中的提問或核准請求,以及仍在執行的背景工作,都會阻止自動 settle。開啟中的 pull request 不會阻止因閒置而 settle;但如果你在 pull request 關閉之後又繼續了工作,一個早就關閉或 merge 的 pull request 並不會 settle 這些工作。

如果想讓某一個 Thread 不論閒置多久都不進 settled 收納區,開啟它的選單,選擇 Auto-settle behavior,再選 Disabled。目前的選項會打勾。選 Enabled 可以回到一般規則。停用期間,手動 settle、snooze 和封存仍然可以使用。

這些規則可以在網頁版和桌面版的 Settings → General,或手機版的 Settings → Thread behavior 修改。即使你的 app 都關著,這些規則也會繼續執行。在網頁版和桌面版,在最上方選擇一個 environment 就只修改它的規則,選擇 All environments 則會一起更新已連線的 environment。出現 Mixed 的值,代表所選的 environment 在那一項上設定不一致。手機版會把這些規則套用到支援共用設定的已連線 environment。離線中的 environment 和舊版 server 會保留它們先前的值。修改規則不會把已經 settle 的 Thread 重新打開。

Server 會為每個尚未 settle 的 Thread 找出它儲存的分支所對應的 PR,即使你的 app 都關著也一樣。已經 settle 的 Thread 會保留它們儲存的連結。如果由分支自動產生的連結沒有出現,請更新 server。

在網頁版和桌面版,在 Thread 裡的 pull request 連結上按右鍵,選擇 Link to thread,可以改選另一個 PR。在同一個連結上使用 Unlink from thread,則會回到分支對應的 PR(如果有的話)。連結的 pull request 會被納入自動 settle 的判斷。

尋找與引用工作#

在網頁版和桌面版,用 Cmd/Ctrl+K 開啟指令面板,可以搜尋所有已連線 environment 裡的 Thread。輸入兩個字元之後才會開始搜尋訊息,搜尋範圍包含你的訊息和 agent 的最終回覆。

用 Settings → Keybindings 可以找到或自訂搜尋檔案、複製 Thread 參照的快捷鍵。複製出來的參照在有 pull request 連結時會使用那個連結,否則使用 Thread ID。自訂設定的方式見快捷鍵。

檢視 agent 的工作#

Limited 表示 Provider 因為用量或速率限制而停了下來。對話裡會保留 Provider 給的說明。請等限制重設之後再重試,或是換用另一個 Provider instance。在網頁版和桌面版,在空的 composer 裡按 Resume,可以手動接續被限制或被中斷的 turn。限制擋住 Thread 的期間,佇列裡的訊息仍然會保存著。它們會在接續的工作完成之後執行。如果佇列因為重新啟動而暫停,到那時再把它恢復。

當 Provider 有回報重設時間時,選擇 Resume at reset 可以排定一次接續。你可以從 Thread 裡取消它。在網頁版和桌面版的 Settings → General,或手機版的 Settings → Thread behavior,啟用 Auto-resume limited threads,就會預設為因限制而停下的 Thread 排定接續。重設時間到的時候,environment 必須正在執行;如果有逾期的接續,它會在重新啟動之後補上。送出新訊息、封存或 settle 那個 Thread,都會讓等待中的接續不再啟動。

選擇 Snooze until reset 可以把 Thread 藏起來,直到它的額度恢復為止。Snooze 和自動接續是各自獨立的:只有 snooze 的話,Thread 會被喚醒,但不會送出訊息;兩者都啟用,則會喚醒並接續。Wake now 會取消 snooze。在 Thread 行為的設定裡啟用 Snooze limited threads,就會預設把因限制而停下的 Thread snooze 起來。沒有提供重設時間的 Provider,則提供手動重試和一般的 snooze 選項。

在網頁版和桌面版,用 Agents 可以追蹤交給 subagent 的工作。

由 agent 啟動的 subagent Thread 不能接收訊息;請改為傳訊息給上層的 Thread。當這樣的 subagent 需要核准或回答時,會由上層的 Thread 來向你提出。

在對話裡展開一個工具呼叫,可以看到它完整的指令和輸出。摘要會把 shell 的包裝指令縮短,而且在呼叫結束之後,摘要仍然可能描述的是最近那一次呼叫;呼叫本身的結果才會顯示它的狀態。

Snooze 到之後#

從 Thread 的選單選擇 Snooze → Custom…,可以挑一個你當地時區的日期和時間,或是一段以分鐘、小時或天為單位的時間長度。時間長度從你確認的那一刻開始算;一天就是 24 小時。在網頁版和桌面版,你也可以把選取的好幾個 Thread 一起 snooze。選擇 Wake thread 可以提早把 Thread 叫回來。

本頁譯自 docs/user/thread-sidebar.md(英文原文,版本 1172678)。標示「本站補充」的區塊不在原文裡。

非官方翻譯,與 T3 Code 的維護者無關。內容由 AI 翻譯並補充,未經逐頁人工校對,可能有錯誤或已經過時,請以英文原文為準。

原文 © T3 Tools Inc.,以 MIT 授權釋出;本站為其官方 repository 中 docs/ 的翻譯。本站原始碼與問題回報