Skip to main content
Agent view(使用 claude agents 開啟)是所有背景工作階段的一個螢幕:什麼正在執行、什麼需要您的輸入,以及什麼已完成。分派新工作階段,一目瞭然地查看它們的狀態,而不是滾動瀏覽記錄,並且只在需要時才介入。每個背景工作階段都是一個完整的 Claude Code 對話,在沒有終端連接的情況下持續執行,因此您可以隨時開啟、回覆和離開。 終端中的 Agent view:標題顯示 Claude Code v2.1.140、模型、工作目錄和摘要計數。工作階段分組在'需要輸入'、'執行中'和'已完成'下,底部有分派輸入,頁尾有快捷鍵提示。 終端中的 Agent view:標題顯示 Claude Code v2.1.140、模型、工作目錄和摘要計數。工作階段分組在'需要輸入'、'執行中'和'已完成'下,底部有分派輸入,頁尾有快捷鍵提示。 當您有多個獨立任務 Claude 可以在不需要您監看每一步的情況下執行時,請使用 agent view。分派一個錯誤修復、一個拉取請求審查和一個不穩定測試調查作為三行,在另一個視窗中繼續工作,並在某一行顯示需要您或有結果時檢查。 當您想在任何代理的工作階段中更直接地工作時,附加到該行以進入完整對話。 若要比較 agent view 與 subagents、agent teams 和 worktrees,請參閱 平行執行代理。Agent view 在您的機器上執行工作階段,您分派每一個;若要讓 Claude 從一個對話開始並在雲端追蹤平行工作階段,請參閱 Projects。
Agent view 處於研究預覽版本。隨著功能的發展,介面和快捷鍵可能會改變。

快速開始

本逐步解說涵蓋核心 agent view 迴圈:分派工作、觀看其列更新(Claude 正在工作)、查看以檢查並回覆,以及附加到完整對話。您分派的工作階段在關閉 agent view 後會繼續執行,因此您可以離開並稍後返回。
1

開啟 agent view

從您的 shell,執行:
如果您尚未接受該目錄的工作區信任對話,Claude Code 會在 agent view 開啟前顯示它,與 claude 顯示的對話相同。接受以儲存工作區的信任並繼續。如果您拒絕,Claude Code 會退出而不開啟 agent view。Agent view 開啟,底部有輸入框,隨著工作階段啟動,表格會填入。隨時按 Esc 返回您的 shell;如果您透過背景化工作階段 ← 開啟了 agent view,Esc 會改為返回該對話。您的工作階段在您離開時繼續執行,下次開啟 agent view 時會重新出現。
2

分派工作階段

輸入描述工作的提示並按 Enter。新的背景工作階段在該工作上啟動並顯示為一列,顯示它是否正在工作、等待您或已完成。新工作階段使用 agent view 標題中顯示的模型。它啟動時所在的權限模式取決於您如何開啟 agent view。您在此輸入的每個提示都會啟動自己的新工作階段。輸入另一個提示並按 Enter 會在第一個工作階段旁邊啟動第二個工作階段,而不是向其發送後續訊息。您可以以這種方式並行執行多個工作階段。每個工作階段獨立使用您的訂閱配額,因此在一次分派許多工作階段之前,請參閱限制。
3

查看和回覆

使用箭頭鍵選擇一列,然後按 Space 開啟查看面板。它顯示工作階段的最新輸出或它正在等待的問題,而不是完整的文字記錄。輸入回覆並按 Enter 發送,無需離開 agent view。
4

附加和分離

在一列上按 Enter 或 → 以在需要完整對話時附加。工作階段接管終端作為完整的互動式 Claude Code 工作階段。在空提示上按 ← 分離並返回表格。
5

帶入現有工作階段

這個步驟需要一個執行中的工作階段。如果您遵循了之前的步驟,您在此終端中沒有開啟的工作階段,因此請在另一個終端中開啟一個常規 claude 工作階段並先向其發送訊息。要將您已開啟的工作階段移入 agent view,在其中執行 /bg,或在空提示上按 ← 以在一個步驟中背景化工作階段並開啟 agent view。在沒有訊息的全新工作階段中,/bg 會要求您先發送訊息,而 ← 可以立即運作。工作階段繼續執行並顯示為一列,與您分派的工作階段並排。
您可以使用 claude agents 作為主要進入點而不是 claude:從 agent view 分派每個工作,在需要完整對話時附加,然後按 ← 返回表格。 在常規 claude 工作階段內,提示頁尾的 ← 提示會計算正在等待您的背景 agent 數量,例如 ← 2 agents,當沒有任何 agent 需要輸入時會返回 ← for agents。超過 99 的計數顯示為 99+。當終端獲得焦點時,計數大約每十秒刷新一次,當焦點返回時立即刷新。當計數移動時以及當 agent 完成時,它會短暫改變顏色,當背景工作階段完成且沒有任何工作階段需要您的輸入時,它會短暫顯示已完成的數量,例如 ← 2 done。當啟用了 prefersReducedMotion 設定時,兩個閃爍都會關閉,並且在螢幕閱讀器模式中隱藏提示。

使用代理檢視監控工作階段

執行 claude agents 以開啟代理檢視。它會接管整個終端機,並按狀態列出每個工作階段,已釘選的工作階段和需要您的工作階段位於頂部。每一列顯示工作階段的名稱、目前活動和年齡,年齡從工作階段建立時開始計算;已完成的工作階段的年齡會凍結在執行所花費的時間。 名稱會以該工作階段中由 /color 設定的顏色著色,包括當您使用 ← 或 /background 背景執行工作階段 時。 根據預設,清單會顯示您已啟動的每個背景工作階段,跨越所有專案。在一個儲存庫中工作的工作階段和在不同 worktree 中工作的另一個工作階段都會出現在這裡,無論您從哪個目錄開啟代理檢視。若要將清單縮小到一個專案,請傳遞 --cwd:
這只會顯示在該目錄下啟動的工作階段。它仍然會列出已 移入 worktree 在 ~/projects/my-app/.claude/worktrees/ 下的工作階段。 您在其他終端機中開啟的互動式工作階段不會出現,直到您 背景執行它們。子代理 和 隊友 工作階段產生的不會列為單獨的列。

讀取工作階段狀態

每一列開頭的圖示,其顏色和動畫顯示工作階段的狀態: 另外,圖示的形狀顯示基礎程序是否正在執行: 可能出現在列右邊緣的 #N 或 !N 標籤是指向工作階段的 拉取請求或合併請求 的連結,不是狀態圖示的一部分。 終端機標籤標題在代理檢視開啟時顯示等待輸入計數:當工作階段需要輸入時為 2 awaiting input · claude agents,或當沒有時為 claude agents。 若要從指令碼或其他程式讀取工作階段狀態,請使用 claude agents --json,而不是 ~/.claude/jobs/ 下的檔案。 當代理檢視開啟時,Claude Code 也會透過您設定的 終端機通知頻道 發送通知,當本機背景工作階段開始需要您的輸入、完成或失敗時。在排程上執行的工作階段,例如 /loop 工作階段,只在需要您的輸入時通知。通知使用與 Claude Code 其餘部分相同的 preferredNotifChannel 設定,並使用 agent_needs_input 或 agent_completed 類型觸發 Notification hook。 背景工作階段不需要任何開啟的終端機即可繼續工作。單獨的 監督程序 執行它們,因此您可以關閉代理檢視、關閉您的 shell,或啟動新的互動式工作階段,您分派的工作會繼續進行。 工作階段狀態透過自動更新和監督程序重新啟動在磁碟上持續存在。當您的機器休眠時,工作階段也會被保留。它們的程序在喚醒時繼續執行,監督程序會重新連接到它們,而不是將時間間隙視為閒置。關閉仍會停止執行中的工作階段;請參閱 工作階段在關閉後顯示為失敗或停止 以了解如何復原它們。 在機器休眠時正在中途回應的工作階段可能會回來無回應。當您開啟已停止回應的工作階段時,監督程序會重新啟動其程序,工作階段會從中斷的地方繼續中斷的回應。

列摘要

每列中的單行摘要由 Haiku 級模型 產生,因此該列可以告訴您工作階段在做什麼、需要什麼或產生了什麼,而無需開啟文字記錄。當工作階段主動工作時,列文字最多每 15 秒從工作階段自己的最近輸出更新一次,無需發送模型請求,模型在每個回合結束時寫入新摘要。 工作中的列顯示工作階段說它在做什麼,被阻止的列顯示它在問什麼問題。在長回合期間,模型也會每隔幾分鐘重寫摘要,以便繁忙的列不會繼續顯示過時的摘要。摘要文字填滿列的剩餘寬度;開啟 查看面板 以讀取終端機邊緣裁剪的句子。 當清單 按目錄分組 時,摘要以工作階段的狀態開頭,作為彩色單詞,例如 Needs input · double jump or wall climb?。在預設狀態分組中,群組標題已命名狀態,因此列只顯示摘要。 回合結束摘要和每個中途重寫都是透過您的正常提供者進行的一個簡短 Haiku 級請求,按照與工作階段本身相同的 資料使用條款 計費和處理。模型重寫之間的 15 秒更新重複使用工作階段自己的輸出,不發送請求。在沒有設定 Haiku 級模型的第三方提供者或閘道上,請求使用工作階段的主要模型;設定 ANTHROPIC_DEFAULT_HAIKU_MODEL 以選擇一個。

拉取請求狀態

當工作階段 開啟拉取請求 時,Claude Code 在列的右邊緣新增標籤,連結到拉取請求:
  • Claude Code 將標籤寫為拉取請求的 #1234 和 GitLab 合併請求的 !1234。
  • Claude Code 發出連結,即使它無法偵測超連結支援,例如透過 SSH 或 tmux。設定 FORCE_HYPERLINK=0 以將標籤呈現為純文字。
  • 在您向工作階段發送後續內容後,Claude Code 會在列返回即時進度時保留標籤。
在現有拉取請求上工作的工作階段以相同方式連結到它。Claude Code 根據 Claude 執行的命令以不同方式尋找拉取請求:
  • 當 Claude 使用 gh 編輯、評論、關閉或標記拉取請求為就緒時,Claude Code 連結命令自己的輸出命名的拉取請求。其捕獲的輸出未命名拉取請求的 gh 命令不會建立連結;gh pr merge 是常見情況,因為它只將其結果列印到互動式終端機。
  • 當 Claude 使用 gh pr checkout 簽出拉取請求或推送到分支時,Claude Code 使用 gh pr view 查詢分支並連結其開啟的拉取請求。
  • 當 Claude 推送時拉取請求不需要存在:Claude Code 在同一目錄中執行最多五個稍後的 git、gh、glab 或 curl 命令後重試分支查詢,因此在推送後建立的拉取請求,包括 Claude 透過 GitHub REST API 建立的拉取請求,在重試找到時連結。
當工作階段連結到多個拉取請求時,標籤顯示計數,例如 3 PRs,按最需要關注的開啟拉取請求著色。開啟 查看面板 以查看它們全部。 拉取請求編號按其狀態著色: 對於以拉取請求結束的任務,檢查此標籤以獲得結果:當其編號變為綠色時審查並合併拉取請求。

查看和回應

在選定的列上按 Space 以開啟查看面板。它開啟時顯示列在終端機邊緣截斷的句子,該句子是哪一個取決於工作階段的狀態:
  • 等待您的工作階段:它要求的確切問題,在回應輸入上方
  • 已完成的工作階段:其結果
  • 工作中的工作階段:其完整狀態句子
任何連結到工作階段的拉取請求都會列在下方。對於等待您的工作階段,下方的一行(例如 waiting 3m)顯示它已等待多長時間,這是面板中唯一顯示的時間。列右邊緣的年齡是不同的數字:它從工作階段啟動時開始計算。 大多數時候查看面板就足夠了,您不需要開啟完整文字記錄。 在查看面板中輸入回應,然後按 Enter 將其發送到該工作階段。當工作階段提出帶有預定義選擇的問題時,查看面板將它們顯示為編號清單,您可以按數字鍵選擇一個。權限提示顯示為描述工作階段想要執行的內容的文字,沒有編號選項。輸入回應以回答它,或附加以使用標準提示回答。對於其他被阻止的工作階段,按 Tab 以填充輸入建議的回應,您可以在發送前編輯。在回應前加上 ! 以改為發送 Bash 命令。 當 PermissionRequest 或 PreToolUse hook 返回 Claude Code 無法驗證工作階段要求的呼叫的輸出時,列顯示 hook 事件和 hook output invalid: 以及驗證錯誤,然後是待處理請求的文字。對於以其他方式失敗的 hook,列說 hook 失敗。工作階段仍然等待相同的請求。 無法傳遞的回應,因為背景服務無法到達或發送失敗,會被保存並在其程序再次啟動時作為下一個提示發送到工作階段,錯誤訊息說回應已保存。以 ! 為前綴的回應不會被保存,因為保存的文字會作為純提示而不是 Bash 命令到達工作階段。 啟用 語音聽寫 後,在回應輸入聚焦時按住或點擊您的推送通話鍵以聽寫回應而不是輸入。相同的方式適用於代理檢視底部的分派輸入。 使用 ↑ 和 ↓ 查看相鄰工作階段而無需關閉面板,或使用 → 附加。

附加到工作階段

在選定的列上按 Enter 或 → 以附加。代理檢視被完整互動式工作階段取代。當您附加時,Claude 發佈您離開時發生的簡短回顧。 附加時,工作階段的行為就像任何其他 Claude Code 工作階段:命令、鍵盤快捷鍵和功能都可以工作,除了下面的例外。 附加時,/install-github-app 和 /mcp 設定清單正常工作,因為終端機上有人可以完成它們的對話。當沒有人附加時,這些命令無法開啟它們的對話,因此工作階段在代理檢視中的 Needs input 下出現,列如 open this session to manage MCP servers,文字記錄回應說相同的內容。附加並再次執行命令以繼續;當您附加時,需要輸入的列會清除。/mcp reconnect <server>、/mcp enable 和 /mcp disable 無論如何都可以在不附加的情況下工作。 附加的工作階段始終以 全螢幕模式 呈現,無論您的 tui 設定如何,因為背景工作階段沒有終端機捲軸可附加到。使用 PgUp、PgDn 或滑鼠滾輪捲動,按 Ctrl+O 進入文字記錄模式。您終端機的原生捲動和 tmux 複製模式只顯示目前檢視區,與執行任何全螢幕應用程式時相同。 在空提示上按 ←,或執行 /exit,以分離並返回代理檢視,無論您是從代理檢視開啟工作階段還是從 shell 使用 claude attach <id>。 當 /btw 覆蓋層 開啟時,← 也會分離。需要 Claude Code v2.1.257 或更新版本。仍在回答的側問題在您離開時繼續執行。下次您附加時,覆蓋層會重新開啟它,或使用其答案。 在 Windows 上,如果您在附加後約半秒內按 ←,Claude Code 會顯示 Ambiguous ←, press again to detach,因為在該視窗中終端機可以重新傳遞您附加前的按下。再次按 ← 以分離。 Ctrl+Z 也會分離但會回到您開始的地方:如果您從那裡附加則為代理檢視,或如果您執行 claude attach 則為您的 shell。當對話有焦點且不回應 ← 時使用 Ctrl+Z。 Ctrl+C 在附加時保持其標準中斷行為:它取消執行中的回應或 ! shell 命令,而不是分離。在空提示上按 Ctrl+C 兩次會分離,與任何工作階段中相同。 分離永遠不會停止背景工作階段:←、Ctrl+Z、/exit 和雙 Ctrl+C 或雙 Ctrl+D 都會讓它執行。若要從內部結束工作階段,請執行 /stop。

在不離開終端機的情況下切換工作階段

在前景執行的工作階段中,您在終端機中啟動的工作階段而不是從代理檢視附加的工作階段,在空提示上按 ← 會背景執行它並開啟代理檢視,該列已選定,因此您可以在不離開終端機的情況下切換工作階段。相同的單次按下會分離附加的工作階段。 如果您在刪除提示的最後文字或移動提示歷史記錄後立即按 ←,Claude Code 會要求您確認:第一次按下顯示 Press ← again to open agents,或在附加的工作階段中顯示 Press ← again to go back to agents,第二次按下切換。 當 ← 背景執行前景工作階段時,代理檢視在清單上方顯示 Your conversation moved to the background,該工作階段的列已選定。從那裡:
  • 按 Enter 重新開啟對話。
  • 按 Esc 撤銷切換並返回對話。如果 Esc 顯示 Still starting — try again in a moment,背景工作階段還沒準備好,所以稍後再按一次 Esc。
  • 按 Ctrl+C 兩次以退出到您的 shell。
當 Claude Code 無法重新開啟對話時,它會退出並列印一個 claude --resume 命令來繼續它。 Claude 的任務清單 隨著對話移動到背景工作階段,因此當您返回該列時檢查清單是完整的。 您按 ← 的列在使用箭頭鍵或滑鼠移動選擇後也保持粗體、未變暗的名稱,因此您可以判斷您來自哪個工作階段。 如果在您按 ← 時工具正在執行,Claude Code 會等待最多約十秒鐘讓它完成,然後背景執行,Claude 在背景工作階段中繼續回應。再次按 ← 以立即背景執行而不是等待。當進行中的工作無法轉移到背景工作階段時,Claude Code 首先顯示 Background this session? 對話,與 /background 相同。 十秒限制在 前景子代理 Claude 在對話中啟動的仍在執行時不適用。Claude Code 繼續等待以便它們的工作轉移,並在等待時顯示 Still backgrounding after the current tool 通知。再次按 ← 以在不等待的情況下背景執行,這會從頭開始重新啟動這些子代理。Claude Code 不會等待 動態工作流程 正在執行的子代理。當工作流程有子代理執行時,Claude Code 改為顯示 Background this session? 對話。 Claude Code 在您的提示輸入中有未發送的文字時不會背景執行工作階段,因為文字會保留在您終端機的輸入框中,不會移動到背景工作階段。如果在 Claude Code 等待背景執行工作階段時輸入到輸入中,它會以 Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again. 取消切換。 按 ← 會建立工作階段的列,即使對話還沒有訊息,所以 → 仍然會返回到它。 您可以使用 /config 中的 leftArrowOpensAgents 設定關閉此快捷鍵。

組織清單

代理檢視分組工作階段,使需要輸入的工作階段位於頂部,Ready for review 和 Needs input 在 Working 和 Completed 上方。這些群組名稱不與上面的 狀態 一一對應:當工作階段有開啟的拉取請求時,它會移動到 Ready for review,Completed 收集已完成、失敗和停止的工作階段。 按 Ctrl+S 改為按目錄分組。您的選擇在執行中持續存在。 在群組內:
  • 按 Ctrl+T 將工作階段釘選到頂部並 在閒置時保持其程序執行
  • 按 Shift+↑ 或 Shift+↓ 重新排序工作階段
  • 按 Ctrl+R 重新命名工作階段
  • 在群組標題上按 Enter 以摺疊它
若要從清單中移除工作階段,按 Ctrl+X 停止它,然後在兩秒內再次按 Ctrl+X 以刪除它。在群組標題上按 Ctrl+X 會在確認後刪除該群組中的每個工作階段。 第二次按下會刪除工作階段,即使停止嘗試失敗,例如因為 背景服務沒有回應:確認會再保持活動兩秒,刪除會結束工作階段的程序本身。按 Esc 以在不刪除的情況下關閉確認。 除了 刪除工作階段會移除什麼 中涵蓋的保留情況外,刪除會從清單中移除工作階段,Claude 為其建立的 worktree 會被移除、保留或保留在原位,取決於您如何刪除以及 worktree 保留的內容。對話文字記錄始終保留在您的本機上,可透過 claude --resume 取得。 若要在 Claude Code v2.1.212 或更新版本上恢復工作階段,請在分派輸入中輸入 /resume。選擇器開啟,顯示您開啟代理檢視的儲存庫的過去工作階段,最新的優先,包括您從清單中刪除的工作階段;已有列的工作階段不會列出。↑/↓ 移動選擇,Enter 將選定的工作階段繼續為背景工作階段,使其作為列重新加入清單,Esc 關閉選擇器。 選擇器只在裸 /resume 時開啟。有目標、範圍或受限的繼續無法由選擇器提供,因此當以下情況時代理檢視顯示 attach to a session to run it 提示:
  • /resume 命名 id 或搜尋詞
  • 檢視以 --cwd 為範圍
  • 檢視以 --safe-mode 啟動
  • 檢視以 --permission-mode 或 --settings 等旗標開啟
不適合螢幕的已完成工作階段會摺疊成 … N more 列。失敗和有開啟拉取請求的工作階段始終保持可見。Completed 群組填滿即時群組後剩下的垂直空間,在短終端機上標題會壓縮為單一摘要行,以便工作中或需要輸入的工作階段保持可見。

篩選工作階段

在分派輸入中輸入以篩選而不是分派:

鍵盤快捷鍵

在代理檢視中按 ? 以查看上下文中的每個快捷鍵。下表總結了它們。 Ctrl+S、Ctrl+T 和 Ctrl+G 遵循您的 keybindings.json。在 Agents 上下文 中使用 agents:switchView 和 agents:togglePin 動作重新繫結或取消繫結 Ctrl+S 和 Ctrl+T,以及透過 Chat 上下文的 chat:externalEditor 繫結重新繫結 Ctrl+G。表中的其他快捷鍵無法重新繫結。

分派新代理

您可以從 agent view 分派新的背景工作階段、將現有互動工作階段發送到背景,或直接從 shell 啟動一個。

從 agent view

在 agent view 底部的輸入框中輸入提示,然後按 Enter 啟動新的背景工作階段。工作階段從提示自動命名;稍後可以使用 Ctrl+R 重命名它。 自動名稱是由 Haiku-class model 撰寫的簡短標籤。工作階段稍後獲得的名稱也會出現在其行上,包括當您在該工作階段中接受計畫時工作階段獲得的生成標題。 將圖像粘貼到提示中以包含螢幕截圖或圖表與任務。 粘貼的文字超過 800 個字符或超過三行會摺疊為 [Pasted text #N] 佔位符,以便輸入保持在一行;完整文字會在您分派時發送。要在分派前檢查或編輯摺疊的文字,請再次粘貼相同的文字,佔位符會展開回輸入框。 前綴或提及提示的部分以控制工作階段如何啟動: 一小組命令在 agent view 本身中執行,而不是分派:
  • /exit 和 /quit 關閉 agent view
  • /logout 將您登出
  • /model 設定分派模型
  • /login 開啟登入對話框,讓您無需附加到工作階段即可再次登入
  • 裸 /resume 或其 /continue 別名開啟儲存庫過去工作階段的選擇器,以將其帶回作為背景工作階段。需要 Claude Code v2.1.212 或更新版本
Skills、您自己的命令和提示擴展內建命令(例如 /init)會作為新背景工作階段的第一個提示發送。其他內建命令會顯示 attach to a session to run it 提示。您輸入的所有內容都會保留在提示旁邊的輸入框中,以便您可以編輯它。 將重複任務打包為 skill可讓您從 agent view 多次啟動相同的工作流程,無需重新輸入提示。 當相同的 @name 同時與 subagent 和同級儲存庫匹配時,subagent 優先。不帶 @ 的第一個單詞形式也適用,因此以與您的 subagent 名稱之一匹配的單詞開頭的提示會分派該 subagent 而不是將該單詞視為純文本。當您想要明確時,請使用 @ 形式,或以不同的單詞開頭提示以避免匹配。

分派到特定目錄

新工作階段在您開啟 agent view 的目錄中執行。要針對不同的目錄,請使用以下任何方法:
  • 在該目錄中開啟 claude agents。
  • 在父目錄中開啟 claude agents,並在提示中使用 @<repo> 提及子儲存庫。輸入 @ 會列出這些目標:
    • 啟動目錄下一級的 Git 儲存庫
    • 您啟動的儲存庫的已註冊 git worktrees,位於其目錄樹內,例如 Claude 在 .claude/worktrees/ 下建立的那些,標記有其簽出的分支。使用 git worktree add ../feature 等方式在儲存庫外新增的 Worktrees 不會被列出
    • 任何已在列表中有工作階段的目錄
    名稱包含空格的目錄不會被列出。
  • 從 shell,cd 進入目錄並執行 claude --bg "<prompt>"。
當 agent view 按目錄分組時,分派會將提示發送到選定行的目錄,因此您可以選擇一個組並在其中分派,無需重新輸入路徑。

從工作階段內部

兩個命令將工作從您所在的工作階段移動到背景:/background 將當前對話發送到那裡並釋放您的終端,而 /fork 在您繼續工作的地方發送一份副本。

將工作階段發送到背景

執行 /background 或其別名 /bg 將當前對話移動到背景工作階段。傳遞提示,例如 /bg run the test suite and fix any failures,以在分派前發送一個額外的指令。如果 Claude 在您執行 /bg 時正在回應,回應會在背景工作階段中繼續。 退出仍有背景工作執行的互動工作階段(例如 subagents、背景 shell 命令、工作流程或 monitors)會顯示 Background work is running 對話而不是立即退出。選擇 Move to background and exit 以與 /background 相同的方式將工作階段移動到背景並返回您的 shell。當 agent view 關閉時,不會顯示此選項。 如果背景工作階段列表上已有相同名稱的對話,Claude Code 會為新行的名稱編號,例如 my-session (2),並保持現有行的名稱不變。要重命名新行,請在 agent view 中選擇它並按 Ctrl+R。

使用 /fork 複製工作階段

執行 /fork 將當前對話複製到新的背景工作階段,同時原始工作階段繼續執行。副本從該點之前的對話中的所有內容開始;請參閱下面的項目符號以了解副本在何處執行。它還帶來了模型、權限模式、努力級別以及您在工作階段期間新增的任何目錄或「不再詢問」權限授予。副本在 agent view 中顯示為其自己的行。 在 fork 之後,兩個對話是獨立的:副本所做的任何事情都不會自動進入原始對話,儘管在啟用跨工作階段訊息的工作階段中,任一工作階段的 Claude 都可以明確地向另一個發送訊息。 複製工作階段需要 Claude Code v2.1.212 或更新版本;在 v2.1.161 到 v2.1.211 上,/fork 啟動分叉 subagent,現在是 /subtask。當agent view 關閉時,/fork 保持分叉 subagent 行為,/subtask 不可用。 傳遞提示,例如 /fork open a draft pull request with the work so far,副本立即開始處理它。沒有提示的情況下,副本等待其第一個指令:在 claude agents 中選擇其行並按 Space 發送一個,或執行 claude attach <id>。選定的行在等待時顯示 space to send it a prompt。 /fork 確認是一行,顯示副本的狀態,例如 session running、其 agent-view 行的名稱和其工作階段 ID 用於 claude attach。點擊名稱以切換到副本:此工作階段移動到背景,與按 ← 相同,agent view 開啟副本的工作階段。 除非副本就地編輯,Claude Code 指示它在進行程式碼更改前建立自己的 worktree。在 git 儲存庫外,只有從 hook 建立的 worktree 移出的副本才會獲得指令;沒有 WorktreeCreate hook,副本就地編輯。從您的 worktree 移出的副本也被告知永遠不要編輯、執行命令或進入該 worktree,無論隔離設定如何。 副本開始的位置取決於當前工作階段執行的位置:
  • 像任何分派的工作階段一樣,副本在編輯檔案前移動到其自己的 worktree。在這種情況下,確認不會提及副本執行的位置。
  • 當您的工作階段在啟動後移動到其連結的 worktree 時,副本開始回到工作階段移動前的位置,除非它就地編輯,在那裡建立自己的 worktree 進行程式碼更改。當您的 worktree 簽出在一個分支上時,該指令也告訴一個副本,其任務建立在您的工作基礎上,以您的分支為基礎建立其新分支,因為您的分支在您的 worktree 中保持簽出。確認以 runs in the origin tree 結尾。
  • 當您在已連結 worktree 內啟動工作階段,該儲存庫有主工作樹時,副本開始於該主工作樹,具有相同的 worktree-of-its-own 規則但沒有分支指令。確認也以 runs in the origin tree 結尾。
  • 在裸儲存庫佈局的 worktree 內啟動的工作階段沒有主工作樹可返回,因此副本保持原位,確認以 edits this checkout 結尾。當 worktree 隔離在不在連結 worktree 內的工作階段中關閉時,也會出現相同的註記,因為副本隨後編輯您打開的檔案。
使用副本不會繼承的啟動標誌啟動的工作階段,例如替換的系統提示或 --tools 允許清單,無法分叉;Claude Code 會說明這一點,而不是製作部分副本。從 agent view 分派的工作階段正常分叉:副本使用與其來自的工作階段相同的代理定義和附加指令啟動。

背景化時帶來的內容

背景化啟動一個新進程,從保存的對話恢復,進行中的工作會轉移到它:執行中的背景 shell 命令、背景化的 subagents、動態工作流程、您使用 /loop 建立的排定任務,以及 Claude 對工件註解的自動回覆都會轉移並在那裡繼續執行。Subagent 與它啟動的所有內容一起移動,因此只有當所有工作都能轉移時它才會轉移。要停止進行中的工作而不是轉移它,請設定 CLAUDE_DISABLE_ADOPT=1 環境變數;Claude Code 隨後會要求您在背景化前確認。 當動態工作流程仍有 subagents 執行時,Claude Code 會在背景化前詢問 Background this session? 對話,說明有多少 subagents 會重新啟動。選擇 Stay 讓它們先完成。如果您確認,Claude Code 會在背景工作階段中重新執行該執行:仍在執行的 subagents 從頭開始,因此它們迄今為止使用的令牌會再次花費。請參閱暫停後恢復以了解哪些已完成的 subagents 返回其保存的結果,哪些再次執行。 Claude Code 停止無法轉移的工作,例如執行中的 monitor,並停止擁有監視器的背景化 subagent 及其一起。當任何此類工作執行時,Claude Code 會顯示 Background this session? 對話,以便您可以在停止前確認。 進入背景後,工作階段可以啟動新的 subagents、monitors 和背景命令,這些命令在稍後分離和重新附加時保持執行。 來自原始啟動的配置標誌會傳遞到背景化工作階段,因此其 MCP servers、settings 和備用模型保持有效:
  • --mcp-config 和 --strict-mcp-config
  • --settings
  • --add-dir
  • --plugin-dir
  • --fallback-model
  • --allow-dangerously-skip-permissions
您在工作階段期間使用 /add-dir 新增的目錄也會轉移。轉移 --allow-dangerously-skip-permissions 會在背景化工作階段中保持 bypassPermissions 可達,但它不會授予任何新的權限:該模式仍然需要Permission mode, model, and effort中所述的一次性互動接受。

從您的 shell

傳遞 --bg 或其長形式 --background 啟動直接進入背景的工作階段:
提示是位置引數,不是 -p 值。Claude Code 在建立任何工作階段前拒絕 --bg 與 -p 或 --print 的組合,因為 --print 永遠不會啟動 claude agents 附加到的互動工作階段。 要執行特定 subagent(例如 code-reviewer)作為工作階段的主代理,請將 --bg 與 --agent 結合:
如果名稱不與任何 subagents 匹配,啟動失敗:Claude Code 列印 no agent named 警告,仍然報告工作階段為背景化,但工作階段立即以 --agent '<name>' not found 錯誤退出。 當背景化工作階段稍後恢復或重新啟動時,Claude Code 恢復代理及其工具限制;對於其系統提示,請參閱已恢復對話中的系統提示標誌。它首先在工作階段自己的目錄中搜索代理,前提是您已信任該工作區,因此專案範圍的代理在從另一個目錄恢復工作階段時仍會載入。如果代理不再存在,工作階段會繼續使用預設工具,其文字記錄會以警告命名代理開啟。 要在背景中繼續現有對話,請使用 --resume 傳遞其完整工作階段 ID:
在 Claude Code v2.1.257 或更新版本上,Claude Code 要麼在相同 ID 下繼續該工作階段,要麼在新 ID 下啟動副本並列印 note: 行解釋為什麼它無法就地繼續。當工作階段就地繼續時,claude agents 為其顯示一行。 當您將 --bg 與 --continue、裸 --resume 或 --resume 與名稱或檔案路徑結合時,Claude Code 總是啟動這樣的副本。新增 --fork-session 以故意啟動副本,無需註記。 傳遞 --name 以在 agent view 中設定工作階段的顯示名稱,而不是自動生成的名稱:
背景化後,Claude 列印工作階段的短 ID 和管理它的命令。當主機背景工作階段的服務尚未執行時,--bg 可能會先列印 Starting background service…。當您傳遞 --name 時,名稱會出現在短 ID 之後:

執行 shell 命令

要執行 shell 命令作為背景工作而不是 Claude 工作階段,請傳遞 --exec。以下示例將 pytest -x 作為背景工作執行:
從 agent view,通過在分派輸入的第一個字符中輸入 ! 分派相同類型的工作:! 顯示為前綴,其後的所有內容都是命令,Enter 啟動工作。 該命令作為 PTY 支持的工作執行,並在 agent view 中顯示為一行,其最近的輸出行作為其狀態。shell 工作執行命令代替 Claude,因此不調用任何模型,輸出不發送到任何工作階段。 要查看輸出,附加到該行,按 Space 以在不附加的情況下查看,或從您的 shell 執行 claude logs <id>。捕獲的輸出保留在記憶體中,不寫入磁碟。該行及其輸出在命令退出後約五分鐘自動清理,因此如果您需要結果,請在那之前讀取它。

檔案編輯如何隔離

每個背景工作階段,無論是從 agent view、/bg 或 claude --bg 啟動,都在您的工作目錄中啟動。編輯檔案前,Claude 將工作階段移動到 .claude/worktrees/ 下的隔離 git worktree,因此並行工作階段可以讀取相同的檢出,但每個都寫入自己的。一旦工作階段在其 worktree 中,Claude Code 為工作階段和它生成的任何 subagents 強制執行 worktree 隔離。 Claude 在以下情況下跳過 worktree:
  • 工作階段已在連結的 git worktree 內,無論 Claude 是在 .claude/worktrees/ 下建立它,還是您使用 git worktree add 在其他地方建立它
  • Claude 正在編輯的檔案在連結的 git worktree 內,例如工作階段或其 subagent 使用 git worktree add 建立的那個
  • 工作目錄不是 git 儲存庫且沒有配置 WorktreeCreate hook
  • 寫入在工作目錄外
要為 git worktrees 不實用的儲存庫關閉 worktree 隔離,請將 worktree.bgIsolation 設定為 "none"。背景工作階段隨後直接編輯您的工作副本,無需先移動到 worktree。將設定新增到專案的 .claude/settings.json:
在 git 儲存庫外,工作階段直接寫入工作目錄,彼此之間不隔離,因此避免分派編輯相同檔案的並行工作階段。如果您使用不同的版本控制系統,請配置 WorktreeCreate hook,Claude 會以與 git 相同的方式隔離編輯。 當 hook 在不是 git 儲存庫的目錄中失敗時,Claude 會跳過該目錄的隔離並就地編輯工作目錄。在 git 儲存庫內,Claude Code 會阻止寫入共享檢出,直到 Claude 將工作階段移動到 worktree。 要找到工作階段的 worktree 路徑,查看工作階段或附加並檢查其工作目錄。 subagent 背景工作階段生成的會繼承工作階段的工作目錄,因此其檔案編輯會進入工作階段的 worktree 而不是您的工作副本。要給 subagent 其自己的單獨 worktree,請在其 frontmatter 中設定 isolation: worktree 或在生成它時傳遞 isolation: "worktree"。 當背景工作階段在 Claude 進入的 worktree 中進行了程式碼更改時,Claude Code 指示 Claude 在完成前保留工作,因此如果您刪除工作階段及其 worktree,它會存活:
  • 提交並推送:Claude 無需詢問即可提交,當儲存庫有遠端時推送分支。
  • 草稿拉取請求:當任務要求時 Claude 開啟一個,#N 標籤出現在行上。
  • 永遠不會:推送到 main 或 master、強制推送和合併。
  • 您的 git 指令優先:如果任務、CLAUDE.md 或記憶說您自己處理提交或推送,Claude 將 git 留給您。
編輯未自行隔離的檢出的工作階段在提交或切換分支前仍會詢問。這適用於隔離設定為 "none" 時、worktree 移動失敗時,或工作階段在已存在的 worktree 內啟動時。 無論任務如何,Claude 以報告結尾,說明它做了什麼以及工作在哪裡:路徑、分支、拉取請求或答案本身。

刪除工作階段會移除什麼

使用 agent view 中的 Ctrl+X 兩次或使用 claude rm 刪除工作階段。除了下面保留的情況外,工作階段會離開列表。其文字記錄通過 claude --resume 保留在您的機器上,移除在監督者重新啟動後存活。 Claude 為工作階段建立的 worktree 會發生什麼:
  • Agent view 移除它,包括未提交的更改,因此請先提交您想保留的內容。
  • claude rm 在它有未提交更改時保留它,以及工作階段行。
  • 當另一個執行中的工作階段正在使用或已鎖定 worktree 時,agent view 和 claude rm 都不會移除它,再次刪除不會改變這一點。Claude Code 保留 worktree 和工作階段,並命名保留的目錄和原因;在 agent view 中,工作階段的行顯示 not deleted。關閉另一個工作階段,然後再次刪除。
  • 當您刪除一個 worktree 有 Claude Code 無法確認保存在其他地方的提交的工作階段時,Claude Code 保留 worktree 和工作階段,訊息命名 worktree 的分支以及有多少提交未推送。訊息還提供了兩種前進方式:推送提交,或再次刪除以丟棄它們。 遠端上的提交不會阻止刪除。本地副本上的提交也不會,您的 origin 遠端的預設分支,只要該分支在您的主檢出中簽出,儲存庫目錄本身而不是 worktree。 在該拒絕後,您選擇:
    • 要保留提交,推送它們或將它們合併到該預設分支,然後再次刪除工作階段。
    • 要丟棄它們,再次刪除工作階段而不推送:在 agent view 中的其行上按 Ctrl+X 兩次,或執行拒絕列印的 claude rm <id> --discard-unpushed 命令。這會移除工作階段和 worktree 及其分支,丟棄未推送的提交和任何未提交的更改。
    當您再次刪除時,Claude Code 只丟棄拒絕顯示的內容:如果 worktree 自那以後獲得了提交,Claude Code 會再次保留它並顯示更新的狀態。 當另一個已完成工作階段的記錄也命名 worktree 時,它在您再次刪除時保留;推送提交,然後再次刪除。
  • git 不再識別的 worktree,例如在 git worktree prune 之後,不會阻止刪除。Claude Code 刪除工作階段並將目錄留在磁碟上。
  • 當 git 或您的 WorktreeRemove hook 無法移除 worktree 時,Claude Code 保留 worktree 和工作階段,訊息命名原因。對於 hook,訊息說它如何結束,例如 exited 1,並引用其 stderr 的開始。訊息還告訴您接下來要做以下哪一個:
    • 再次刪除工作階段以無論如何移除目錄,通過在 agent view 中的其行上按 Ctrl+X 兩次或執行 claude rm 拒絕列印的 claude rm <id> --force-remove-worktree <worktree-id> 命令。Claude Code 只在它可以確認目錄是儲存庫在 .claude/worktrees/ 下的連結 worktrees 之一,沒有對追蹤檔案的未提交更改、其內沒有嵌套儲存庫且沒有其他工作階段的記錄命名它時才提供此選項。Worktree 的分支保留在儲存庫中。
    • 修復阻礙的內容,例如提交或儲存未提交的更改、關閉使用目錄的任何內容或修復 hook,然後再次刪除工作階段。
    • 自己移除目錄,然後再次刪除工作階段。
您自己建立並在其中啟動工作階段的 worktree 無論如何都會保留在原位。 一個 worktree 目錄不屬於任何 git 儲存庫的工作階段,因為儲存庫被刪除或 WorktreeCreate hook 在其他地方建立了目錄,仍然可以被刪除。當檔案保留在目錄中時:
  • Agent view 在丟棄它們前要求相同的 Ctrl+X 雙擊。對於 hook 建立的目錄,它執行您的 WorktreeRemove hook,沒有一個它拒絕刪除並保留工作階段。
  • claude rm 保留工作階段和 worktree,並命名原因。
任一路徑都保留另一個已完成工作階段的記錄命名的目錄。

設定模型

agent view 標題中顯示的模型名稱是分派預設值。您從輸入啟動的新工作階段使用此模型,這來自您使用者設定中的 model setting。通過在 /model picker 中選擇模型來設定它,或直接編輯設定。 要為整個 agent view 工作階段覆蓋分派預設值,請在開啟 agent view 時傳遞 --model。請參閱Permission mode, model, and effort。 要從 agent view 內部更改分派預設值,請在分派輸入中輸入 /model 後跟模型名稱,然後按 Enter。標題會更新以顯示該模型,帶有 (session) 標記,之後您分派的工作階段會使用它。輸入 /model default 以清除覆蓋並返回分派預設值。此覆蓋會持續到當前 claude agents 執行的其餘部分,不會寫入您的設定檔案。以下示例在 Opus 上分派一個工作階段,在 Sonnet 上分派下一個:
每個背景工作階段可以在不同的模型上執行。要為一個工作階段覆蓋它:
  • 從 shell,使用 claude --bg 傳遞 --model。
  • 附加到執行中的工作階段並執行 /model 以切換:從選擇器中選擇,或輸入 /model <name>,會保存為您的新工作階段預設值,除非您在選擇器中按 s 進行僅工作階段切換。如果工作階段被重新生成,僅工作階段切換會持續。
  • 分派一個 subagent,其 frontmatter 設定 model 欄位。

Permission mode, model, and effort

背景工作階段從它執行的位置和方式取得其設定、提供者、權限模式、模型和努力。下面的小節涵蓋每個來源,以及監督者重新啟動工作階段時持續的內容。

Settings and provider

背景工作階段從它執行的目錄讀取其 settings,就像您在那裡啟動了 claude 一樣。這包括專案設定中的 env values,因此在那裡設定的 ANTHROPIC_MODEL 或提供者變數適用於該目錄中的每個背景工作階段。 背景工作階段也使用您分派它的 shell 的 PATH 執行,因此它執行的命令找到與您的終端相同的工具。它也保留該 shell 的雲提供者選擇,例如 CLAUDE_CODE_USE_BEDROCK 或 CLAUDE_CODE_USE_VERTEX,以及其 ANTHROPIC_DEFAULT_*_MODEL 別名和任何您在那裡匯出的 CLAUDE_CODE_EXTRA_BODY 覆蓋。

LLM gateway

如果您通過 LLM gateway 路由 Claude Code,請將閘道變數放在設定檔案的 env 區塊中,而不是在您的 shell 中匯出它們,背景工作階段會與其餘設定一起讀取它們。在設定檔案中設定顯示區塊以及要使用哪個設定檔案來獲取認證。 如果您只在 shell 中匯出閘道 ANTHROPIC_BASE_URL,它只在以下情況下到達背景工作階段,以及您與它匯出的 ANTHROPIC_CUSTOM_HEADERS 和認證,只有當監督者本身從匯出相同閘道的 shell 啟動時,並且只在這些情況下:
  • 您使用 ← 或 /background 背景化您自己的工作階段
  • 您分派工作階段到您所在的目錄
  • 您通過附加或回覆它來喚醒您所在目錄中的停止工作階段
Claude Code 在雲提供者前轉發閘道。如果您分派的 shell 選擇提供者並使用其認證繞過標誌匯出其閘道端點,Claude Code 會在適用於 ANTHROPIC_BASE_URL 的條件下轉發端點和標誌對,以及 ANTHROPIC_CUSTOM_HEADERS。例如,匯出 CLAUDE_CODE_USE_VERTEX=1 與 ANTHROPIC_VERTEX_BASE_URL 和 CLAUDE_CODE_SKIP_VERTEX_AUTH=1,Claude Code 會轉發該端點和標誌。 Claude Code 只將轉發的閘道應用於該工作階段的執行進程,永遠不會將其寫入磁碟。

Permission mode

permission mode 取決於您如何啟動工作階段:
  • 使用 /bg 或 ← 背景化:Claude Code 保留工作階段所在的權限模式,因此您切換到 acceptEdits 或 auto 的工作階段在分離後仍保持該模式
  • 從您使用 ← 開啟的 agent view 分派:目標自己的配置優先,當沒有其他設定時,您來自的工作階段的權限模式適用
  • 從 shell 中啟動的 claude agents 或使用 claude --bg 分派:新工作階段以新 claude 工作階段在該目錄中啟動的方式開始,除非您從使用分派預設值開啟的 agent view 分派它。工作階段在哪個權限模式中啟動列出順序
對於您從使用 ← 開啟的 agent view 分派的工作階段,Claude Code 從適用的第一個中取得權限模式:
  1. 目標目錄的 permissions.defaultMode。兩個來源規則適用:
  2. 您來自的工作階段的權限模式
當 Claude Code 拒絕來源的模式過於寬鬆時,列表中的下一個來源決定。例如,如果您從計畫模式工作階段分派到其簽入設定要求 acceptEdits 的目錄,新工作階段以計畫模式啟動。如果您將該 defaultMode 移動到 ~/.claude/settings.json,它無論您來自的工作階段的權限模式如何都適用。 寬鬆度執行計畫,然後手動和 dontAsk,然後 acceptEdits 和 auto,每個都計為比另一個更寬鬆,然後 bypassPermissions。

Dispatch defaults

要為您從 agent view 分派的每個工作階段設定預設值,請在開啟它時傳遞 --permission-mode、--model、--effort 或 --agent 中的任何一個:
--effort 此處接受與頂級 --effort 標誌相同的值,包括 ultracode。 --agent 設定 subagent,當分派提示未使用 @name 或作為第一個單詞命名時使用。如果設定了 agent setting,則預設為該設定,否則為內建的全能 claude 代理。在分派輸入中命名 subagent 會覆蓋兩者。 claude agents 也接受 --dangerously-skip-permissions 作為 --permission-mode bypassPermissions 的簡寫,以及 --allow-dangerously-skip-permissions 以在每個分派工作階段的 Shift+Tab 循環中提供 bypassPermissions,而不是以該模式啟動。兩者都與頂級 CLI 標誌相符。 傳遞 --restricted 以在受限模式中啟動您從檢視分派的每個工作階段,就像每個都使用頂級 --restricted 標誌啟動一樣。需要 Claude Code v2.1.248 或更新版本。 活動預設值出現在分派輸入下方的頁腳中。 Claude Code 拒絕 claude --bg --permission-mode bypassPermissions,直到您通過執行 claude --dangerously-skip-permissions 一次互動式接受了繞過免責聲明,因為該模式讓您未監視的工作階段無需批准即可行動。將 --dangerously-skip-permissions 或 --permission-mode bypassPermissions 傳遞給 claude agents 會在您之前未接受時顯示相同的免責聲明,接受會將 bypassPermissions 應用於您從檢視啟動的工作階段。傳遞 --allow-dangerously-skip-permissions 也會顯示相同的免責聲明,接受會在這些工作階段的 Shift+Tab 循環中提供 bypassPermissions,而不是以它啟動它們。

重新啟動時持續的內容

您為背景工作階段選擇的權限模式、模型和努力,以及它攜帶的配置標誌,在監督者稍後停止並重新啟動其進程時都會持續。您使用 claude --bg --dangerously-skip-permissions 或 claude --bg --permission-mode bypassPermissions 啟動的工作階段在該重新啟動後保持 bypassPermissions。您使用 /model 或 /effort 在工作階段中途更改的模型或努力也會被保留。 如果工作階段從您的設定而不是從 --effort 或 /effort 取得其努力,Claude Code 會在每次為工作階段啟動進程時再次讀取您的設定。因此,當您編輯 settings.json 中保存的努力時,更改會到達您使用 ← 或 /bg 背景化的工作階段及其稍後的重新啟動。保存的努力是 effortLevel 鍵或 modelSettings 條目。 Claude Code 也保留您使用 /rename 或 Ctrl+R 設定的名稱在該重新啟動時,因此您仍然可以執行 claude --resume <name> 以到達工作階段。 您使用 Ctrl+S 在附加時儲存的提示也會與工作階段一起保留。在其進程被停止或重新啟動後重新開啟工作階段,Ctrl+S 恢復儲存的文字。儲存中的粘貼內容不會在重新啟動後存活。

Settings, plugins, and MCP servers

Agent view 接受與 claude 相同的配置標誌,用於載入 settings、plugins、MCP servers 和額外目錄。Agent view 將 --settings 和 --plugin-dir 應用於自己,並將每個配置標誌傳遞給您從它分派的工作階段,因此以這種方式載入的 plugin 或 MCP server 在這些工作階段中也可用。 每個值重複 --add-dir、--plugin-dir 或 --mcp-config 一次。claude agents 不支援空格分隔的形式,例如 --add-dir a b c。 您可以將 --settings 和 --plugin-dir 放在 agents 之前或之後。將 --add-dir 和 --mcp-config 保留在 agents 之後:如果您將任一個放在 agents 之前,claude agents --json 會失敗,出現 unknown option 錯誤。 以下示例使用 settings 覆蓋和一個額外目錄開啟 agent view:
--settings 接受檔案路徑或內聯 JSON 字符串。檔案路徑必須指向現有檔案;如果不存在,Claude Code 會以 Settings file not found 錯誤退出。

從 shell 管理工作階段

每個背景工作階段都有一個短 ID,您可以從 shell 使用。當您使用 claude --bg 啟動工作階段時會列印該 ID,每個工作階段的 ID 是其在 ~/.claude/jobs/ 下的目錄名稱。這些命令對於指令碼編寫或當您不想開啟 agent view 時很有用。

將工作階段列為 JSON

claude agents --json 將作用中的工作階段列印為 JSON 陣列並結束:每個即時工作階段,加上仍在執行或被阻止的背景工作階段,即使其程序已結束。新增 --all 以同時包含已完成的背景工作階段,並新增 --cwd <path> 以將清單限制為在該目錄下啟動的工作階段。 每個項目都描述一個工作階段:

從指令碼讀取工作階段狀態

claude agents --json 是從 Claude Code 外部讀取工作階段狀態的支援方式,例如從狀態列、排程器或監督背景工作的另一個 Claude 工作階段。輪詢 claude agents --json --all,它會持續列出程序已結束的工作階段,並讀取每個項目的 state、status 和 waitingFor。 完成其回合並等待您下一個指令的工作階段讀取 done,而不是 blocked。blocked 一律表示工作階段在繼續之前需要您提供的內容。 ~/.claude/jobs/<id>/ 下的檔案不是穩定的介面。工作階段或其他程式寫入 state、detail、tempo 或 needs 的值會在下次更新時被取代。 如果您想讓工作階段用自己的話報告進度,請讓它寫入自己的檔案,例如在 $CLAUDE_JOB_DIR/tmp 下,而不是編輯 state.json。

背景工作階段如何被託管

Claude Code 將 agent view 中列出的每個工作階段視為背景工作階段,無論您目前是否連接到它。相比之下,直接執行 claude 啟動的工作階段與該終端相關聯,並在終端關閉時結束,除非您將其發送到背景。 要檢查您在哪種工作階段中,請執行 /status。Session kind 列在背景工作階段中顯示 background job · attached 或 background job · unattended(取決於是否連接了終端),在任何其他工作階段中顯示 interactive。

監督程序

監督程序是一個背景服務,執行您的背景工作階段,使其在您關閉 agent view 或終端後繼續工作。Claude Code 在您第一次背景化工作階段或開啟 agent view 時啟動它,您不需要自己管理它。 每個工作階段都是監督程序下的自己的 Claude Code 程序,該程序發生的情況取決於工作階段的狀態:
  • 工作中、暫停在權限提示或其他對話框上,或已連接:程序保持執行。執行中的子代理、工作流程或監視器計為工作中。
  • 已完成或等待您的下一條訊息,且未連接約一小時:監督程序停止程序以釋放資源。通過提出問題結束其輪次的工作階段計為等待您的下一條訊息。對話保存在磁碟上,下次您連接或回覆時,工作階段從中斷的地方恢復。使用 Ctrl+T 釘選工作階段以保持其程序執行。
  • 在監督程序執行時意外退出:監督程序重新啟動程序。使用 ← 或 /background 結束您背景化的工作階段(例如使用 kill)會將其標記為已停止而不是重新啟動。對於以關閉結束的工作階段,請參閱工作階段在關閉後顯示為失敗或已停止。
  • 自動更新後:監督程序重新啟動自身到新版本,並在背景中移動閒置工作階段。正在工作、等待您或已連接的工作階段不會被中斷。
當工作階段的程序停止或重新啟動時,Claude 在其中啟動的背景 shell 命令、動態工作流程和背景子代理會轉移到其下一個程序;執行中的監視器和子代理啟動的 shell 命令會隨程序停止。刪除工作階段會停止它轉移的所有內容。要讓所有內容隨程序停止而不是轉移,請將 CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF 設定為 1。 監督程序及其工作階段使用與您的互動工作階段相同的儲存認證進行身份驗證。對於哪些設定和 shell 變數到達工作階段(包括 PATH),請參閱設定和提供者。對於閘道端點,請參閱 LLM 閘道。

狀態存儲位置

工作階段狀態存儲在您的 Claude Code 設定目錄下。如果您設定 CLAUDE_CONFIG_DIR,監督程序改用該目錄而不是 ~/.claude,並作為具有其自己工作階段的單獨實例執行。 每個背景工作階段都設定了 CLAUDE_JOB_DIR 環境變數,指向其 ~/.claude/jobs/<id> 目錄,因此工作階段執行的 shell 命令可以將臨時檔案寫入 $CLAUDE_JOB_DIR/tmp,而不會與平行工作階段衝突。 要在不直接讀取檔案的情況下檢查此狀態,請執行 claude daemon status。它報告監督程序是否可達、其程序 ID 和版本、socket 目錄,以及有多少背景工作階段處於活動狀態。 該命令也會在執行中的監督程序版本與您叫用的 claude 版本不同時發出警告,這會在監督程序尚未重新啟動到新版本的更新後發生。警告會顯示兩個版本,並告訴您執行 claude daemon stop --any 以採用新版本。當 Claude Code 安裝為作業系統服務時,建議的命令是 claude daemon stop,不帶該旗標。 工作階段在該版本不匹配時保持完整:較舊的 Claude Code 版本更新工作階段的 state.json 時會保留它不識別的欄位,並保持工作階段列出。roster.json 中的工作階段列表遵循相同規則,因此由較新版本啟動的工作階段保持可達,並在監督程序重新啟動後繼續接受輸入。

關閉 agent view

要完全關閉背景代理和 agent view,將 disableAgentView 設定設為 true 或設定 CLAUDE_CODE_DISABLE_AGENT_VIEW 環境變數。管理員可以通過受管設定強制執行此操作。

故障排除

claude agents 列出子代理而不是開啟代理檢視

如果 claude agents 列印計數後跟著您設定的子代理,然後退出,代理檢視在您的環境中不可用。執行 claude update 以安裝最新版本。 如果更新後代理檢視仍未開啟,請檢查它是否已被設定或環境變數關閉。

Agent view 開啟時沒有工作階段

在您分派第一個工作階段之前,agent view 會顯示空的區段標題,每個標題下方有描述,以及輸入上方有一行說明,代替工作階段清單。在底部的輸入框中輸入提示並按 Enter 以分派您的第一個工作階段。

背景化顯示 Background this session? 對話

如果按 ← 將當前工作階段放在背景中,Claude Code 顯示 Background this session? 對話,工作階段有進行中的工作無法轉移到背景工作階段、可能會停止、重新啟動或無人看管地執行,Claude Code 在執行任何操作之前會詢問:
  • 無法移動的工作:工作階段有無法移動到背景工作階段的工作,例如執行中的 monitor。對話命名 Claude Code 會停止的工作,並分別計算轉移的任務。
  • 具有執行中子代理的工作流程:動態工作流程仍有子代理執行。工作流程本身會轉移,但其執行中的子代理會從頭開始重新啟動,對話會說明有多少個。
  • 自動成品回覆:Claude 正在自行回覆成品上的評論。這些回覆會在背景工作階段中繼續,對話會說明。
執行 /tasks 以查看正在執行的所有內容,然後確認以無論如何背景化或選擇 Stay 讓工作先完成。請參閱背景化時轉移的內容以了解哪些工作類型轉移,哪些 Claude Code 停止。

提示被拒絕為過短

分派輸入期望任務描述,而不是對話開場白。短於四個字元的提示會被拒絕並顯示 Too short 提示,以便隨意按鍵不會啟動工作階段。描述您希望工作階段執行的操作,例如 investigate the flaky checkout test。

工作階段在關閉後顯示為失敗或停止

關閉或重新啟動您的機器會停止執行中的背景工作階段。等待您輸入的工作階段在您回來時會保留在 Needs input 下。對於任何其他執行中的工作階段,agent view 顯示的內容取決於它上次取得進度的時間有多久:
  • 在 48 小時內,工作階段顯示為失敗。附加或回覆它,它會從中斷的地方重新啟動。
  • 超過 48 小時,例如機器關閉數天後,工作階段顯示為停止,並顯示 ended while the background service was off。在該列上按 Enter,頁腳會顯示 Press enter again to resume this session (it ended while the background service was off), or ctrl+x to delete it. 在同一列上再次按 Enter 以恢復其已儲存的對話。回覆或 claude attach <id> 會在沒有該頁腳提示的情況下恢復它。
當文字記錄清理已移除停止工作階段的已儲存對話時,Claude Code 拒絕開啟該列:訊息說沒有要恢復的內容。claude rm <id> 刪除該列,除了保留的情況中描述的情況外,claude respawn <id> 會再次執行其原始提示。請參閱此工作階段的已儲存對話不再在磁碟上。 睡眠單獨不會停止工作階段。工作階段在睡眠期間會被保留,監督程序在喚醒時會重新連接到它們。

開啟工作階段時顯示對話已開啟

兩個程序無法寫入同一個文字記錄。當停止工作階段的已儲存對話已在另一個執行中的 Claude Code 程序中開啟時,Claude Code 拒絕啟動工作階段的自己的程序。您看到的內容取決於什麼持有對話:
  • 您恢復對話的終端,例如使用 claude --resume 或 /resume:該列顯示 Open in a terminal,並提示在那裡繼續,開啟該列會顯示 Can't open — this session is running in another terminal。在該終端中繼續,或退出它並再次開啟該列。
  • 另一個非互動式 Claude Code 程序,例如同一對話的背景工作階段程序尚未退出:開啟該列會顯示 This conversation is already open in another running Claude session。使用該程序,或等待它退出並再次開啟該列。
Claude Code 會儲存您在拒絕嘗試時輸入的回覆,並在工作階段下次啟動時發送它。

開啟工作階段時顯示它沒有已儲存的文字記錄

停止工作階段從另一個對話背景化並在其第一個回覆完成之前停止,沒有要恢復的內容:在該第一個回覆完成之前,對話仍然只存在於它背景化的工作階段中。claude attach 拒絕開啟它,顯示 This session has no saved transcript。 在 agent view 中,開啟該列會在清單下方顯示 Press enter again to restart this session fresh。在同一列上再次按 Enter 以使用空對話重新啟動工作階段,或從 shell 執行 claude respawn <id>。 原始對話完整無缺;使用 claude --resume 恢復它或繼續在其中工作。請參閱錯誤參考以取得詳細資訊。

終端主機已死亡或工作階段停止回應

監督程序在其自己的主機程序中執行每個背景工作階段的終端。當該程序死亡或停止回應時,Claude Code 會顯示原因並提供重新啟動;在兩種情況下,對話都會被儲存,重新啟動會恢復它。錯誤參考引用完整訊息。 Claude Code 永遠不會重新啟動執行shell 命令的列,來自 Enter 或來自 claude attach,因為那樣會再次執行命令;該列的訊息和 claude attach 都說命令不會再次執行。

終端主機已死亡

在 Linux 和 WSL 上,監督程序每隔幾秒檢查每個主機程序,無論您是否開啟工作階段,並在程序已退出但其與監督程序的連接從未關閉時將工作階段標記為失敗。
  • 在 agent view 中,該列顯示 terminal host process died — press Enter to restart。在它上面按 Enter,Claude Code 會在新的主機程序上重新啟動工作階段。
  • 從 shell,claude attach <id> 重新啟動已標記為失敗的工作階段。否則它會報告原因並退出,告訴您執行 claude attach <id>。

工作階段沒有回應

當監督程序接受開啟但約十秒內沒有輸出到達時,Claude Code 會結束嘗試並提供重新啟動。僅僅停滯的工作階段,例如跨機器睡眠,不會達到此提供:監督程序在開啟時自行重新啟動。
  • 在 agent view 中,頁腳顯示 Press enter again to restart this session — it isn't responding (its conversation is saved and resumes). 在同一列上再次按 Enter,Claude Code 會停止無回應的程序並重新啟動工作階段;它在沒有第二次按下的情況下不會停止任何內容。
  • 從 shell,claude attach <id> 報告原因並退出,告訴您執行 claude stop <id>,然後 claude attach <id>。

工作階段在啟動前失敗,並出現 possibly low memory 註記

當背景工作階段的程序在完成啟動前退出,且主機記憶體不足時,該列的狀態會命名退出並新增 possibly low memory — free some up and retry。 該註記是一個假設,而不是確認的原因。Claude Code 只在程序無聲退出時新增它,沒有寫入錯誤,也沒有被信號停止,且主機在該時刻報告記憶體不足。當程序在退出前確實寫入了錯誤時,該列會改為顯示該錯誤。 釋放機器上的記憶體,然後附加或回覆該列,監督程序會為工作階段啟動新的程序。當記憶體保持不足時,監督程序也會停止閒置工作階段以自行釋放資源,如果停止其他工作階段沒有釋放任何內容,也會停止閒置釘選工作階段。

Agent view 表示背景服務未回應

如果附加、查看或 claude logs 報告背景服務未回應,監督程序可能已停止回應。停止它並讓下一個 claude agents 啟動新的程序。若要在重新啟動期間保持背景工作階段執行,請傳遞 --keep-workers:
新的監督程序會重新連接到執行中的工作階段。如果沒有 --keep-workers,該命令也會結束背景工作階段。--any 旗標確認您想要停止按需啟動的監督程序,而不是作為已安裝的服務啟動的程序,這是預設值。 啟動但無法接受連接的監督程序會自行退出並釋放其鎖定,因此下一個 claude agents 會啟動新的程序,無需此手動停止。上述步驟適用於執行中的監督程序停止回應的情況。 如果命令改為退出,說記錄的程序無法驗證為監督程序,請檢查報告的程序 ID:如果它是您擁有的監督程序,自行停止它,然後刪除 ~/.claude/daemon.lock,以便下一個 claude agents 啟動新的程序。 在 Windows 上,如果監督程序未回應停止請求,該命令會列印其程序 ID。使用 taskkill /PID <pid> 結束該程序以完成復原。當您傳遞 --keep-workers 時,背景工作階段仍會被保留。

背景分派失敗,出現 Could not resolve authentication method

如果背景分派失敗,出現 Could not resolve authentication method,而互動式工作階段正常驗證,接收分派的背景工作程序未取得認證。背景工作階段從監督程序取得其認證,因此此錯誤表示監督程序本身沒有可用的已儲存認證。確認您已執行 /login 或設定 API 金鑰,然後停止監督程序:
下一個 claude agents 或 claude --bg 啟動新的監督程序,該程序會讀取您的已儲存認證。如果您使用環境變數(例如 ANTHROPIC_API_KEY)而不是 /login 進行驗證,請從設定該變數的 shell 執行下一個命令。 請參閱錯誤參考以取得完整的原因和修復清單。

背景工作階段無法在 macOS 上讀取 Desktop、Documents 或 Downloads

在 macOS 上,背景工作階段主機作為其自己的程序執行,並與您的終端分開請求對受保護資料夾的存取。如果背景工作階段在讀取 ~/Desktop、~/Documents、~/Downloads 或其他受保護位置時報告 Operation not permitted,請在系統設定中的隱私與安全性 > 檔案和資料夾下授予存取權限,或為該項目啟用完整磁碟存取。 使用原生安裝程式,該項目會顯示為 Claude Code,授予的權限在更新後會保留。使用其他安裝方法(例如 Homebrew 或 npm),該項目會顯示二進位檔路徑,更新後可能需要再次授予。

背景工作階段無法在 macOS 上連接到本機網路主機

在 macOS 15 及更新版本上,系統會阻止程序連接到您本機網路上的裝置,直到您授予本機網路權限,因此針對 LAN 位址的命令可能會在背景工作階段中失敗,出現 connect: no route to host,即使相同的命令在前景終端中有效。背景工作階段中連接到本機網路位址的第一個命令會觸發 Claude Code 的 macOS 本機網路權限提示。授予一次,這些命令就能像在前景終端中一樣連接到 LAN 主機。

工作階段在附加後響應緩慢

當完成或等待您下一個訊息的工作階段在未附加的情況下閒置約一小時時,監督程序會停止其程序以釋放資源。附加會啟動從中斷的地方開始的新程序,並在程序重新啟動時立即切換到工作階段。正在工作、暫停在權限提示或其他對話上,或釘選的工作階段不會以這種方式停止,因此使用 Ctrl+T 釘選工作階段以保持其回應性。 當程序啟動時,Claude Code 會顯示工作階段文字記錄的尾部,格式化為即時工作階段呈現的方式,包含 markdown、突出顯示的程式碼區塊和工具呼叫作為暗淡列,上方有暗淡提示區域和 Session is starting 註記。即時工作階段在準備好時立即取代它。

.claude/worktrees/ 正在填滿

在 agent view 中刪除工作階段會移除 Claude 為其建立的 worktree,但某些刪除會保留 worktree 或在磁碟上留下其目錄,因此剩餘目錄可能會累積。Git 不再識別的目錄不會出現在 git worktree list 中,因此請手動移除這些目錄。 在專案目錄中使用 git worktree list 列出剩餘條目,並使用 git worktree remove <path> 移除每個。請參閱清理 worktrees。

限制

Agent view 是研究預覽版本,具有以下限制:
  • 速率限制適用:背景工作階段與互動工作階段一樣消耗您的訂閱使用量,因此並行執行十個代理的使用配額速度快十倍。
  • 工作階段是本地的:背景工作階段在您的機器上執行。它們在睡眠時保留,但如果機器關閉則停止。
  • Claude 建立的 worktrees 在 agent view 中隨工作階段刪除:在刪除在其自己的 worktree 中編輯檔案的工作階段之前,提交變更。某些刪除會改為保留 worktree。
如需了解在平行中執行 Claude 的其他方式,以及在您執行的工作階段之間傳遞發現結果,請參閱:

版本歷史

Agent view 在研究預覽期間發展迅速。如果您使用較舊的 Claude Code 版本,本頁上的某些行為可能會有所不同;特別是,claude agents 會以 unknown option 錯誤拒絕它尚不支援的旗標。下表列出了每個旗標和行為何時新增。