第26章 Zed 第26章:Parallel Agents 并行智能体
Parallel Agents 允许你从线程侧边栏同时运行多个 Agent 线程和终端线程。每个线程都独立工作,拥有各自的 Agent、上下文窗口和对话历史。终端线程与 Agent 线程并列显示在同一个侧边栏中,你可以随时在它们之间切换,无需离开 Agent 面板。
使用快捷键 {#kb multi_workspace::ToggleWorkspaceSidebar} 打开线程侧边栏。
在标题栏的用户菜单中,选择 面板布局 > Agentic(或执行 {#action workspace::UseAgenticLayout} 操作),可将 Agent 面板和线程侧边栏移至左侧,项目面板、Git 面板及其他面板则移至右侧。使用 面板布局 > Classic(或 {#action workspace::UseClassicLayout})可恢复以编辑器为中心的经典布局。你仍然可以右键点击任意面板图标来重新排列单个面板。
线程侧边栏 {#threads-sidebar}
侧边栏按项目分组显示你的线程。每个项目都有一个带标题的独立区域,下方列出相应的线程,显示其名称、状态指示器以及正在运行的 Agent。在关联的 Git worktree 中运行的线程会与其主 worktree 一同显示在相同的项目下。详情请参阅 Worktree 隔离。
终端线程也会作为条目显示在侧边栏中,与 Agent 线程并列,通过终端图标加以区分。点击即可切换到对应线程。
若要聚焦侧边栏而无需切换其显示状态,请使用 {#kb multi_workspace::FocusWorkspaceSidebar}。在侧边栏处于聚焦状态时,按下 {#kb agents_sidebar::FocusSidebarFilter} 即可搜索线程。
切换线程 {#switching-threads}
点击侧边栏中的任意线程即可切换。Agent 面板将自动更新,显示该线程的对话内容。
若想快速切换而无需打开侧边栏,可使用线程切换器:按下 {#kb agents_sidebar::ToggleThreadSwitcher} 可向后循环切换最近的线程;若需向前切换,请按住 Shift 键再按下该组合键。此功能在 Agent 面板和线程侧边栏中均有效。
线程历史 {#threads-history}
要将线程从侧边栏移除,可将鼠标悬停在该线程上,点击出现的归档图标。你也可以选中一个线程,然后按下 {#kb agent::ArchiveSelectedThread} 进行归档。正在运行的线程无法直接归档,需等待其执行完毕后才能移入历史。
Thread History 视图保存了你所有的线程,包括已归档的线程。可以用 {#kb agents_sidebar::ToggleThreadHistory} 打开它,也可以点击侧边栏底栏中侧边栏切换按钮旁边的时钟图标。
要恢复某个线程,打开 Thread History 并点击想恢复的线程即可。Zed 会把它移回线程列表,并在 Agent Panel 中打开。如果该线程原本运行在一个已被删除的 Git worktree 中,Zed 会自动恢复这个 worktree。
要彻底删除线程,打开 Thread History,将鼠标悬停在该线程上,点击垃圾桶图标。这会删除线程的对话历史,并清理相关的 worktree 数据。删除后无法恢复。
你可以搜索历史中的线程;搜索会对线程标题做模糊匹配。
导入外部 Agent 线程 {#importing-threads}
如果你安装了 External Agent,Zed 会检测你是否已有现成的线程,并邀请你将它们导入 Zed。打开 Thread History 后,工具栏上有一个导入图标按钮,随时可以用它导入线程。点击后会弹出一个对话框,你可以在其中选择要导入哪些 agent 的线程。
注意:线程导入取决于 agent 的支持情况。目前不支持部分 agent(如 Cursor 和 Gemini CLI)。
运行多个线程 {#running-multiple-threads}
每个线程都独立运行,因此你可以发送一个提示词,再开一个线程给它分配不同的任务,而第一个线程继续工作。若要把新线程限定在某个项目中,将鼠标悬停在该项目的标题上并点击 + 按钮,或使用键盘快捷键 {#action agents_sidebar::NewThreadInGroup}。其他入口可参阅 Creating New Threads。
每个线程可以使用不同的 agent,比如在一个线程中运行 Zed 内置 agent,在另一个线程中运行 Claude Code 或 Codex 等 External Agent。
线程类型 {#thread-types}
Threads Sidebar 可以容纳不同类型的线程:
| 线程类型 | 配置 |
|---|---|
| Zed Agent 线程 | 使用 Zed Agent 的设置、配置文件、工具、Skills、Instructions 和 MCP |
| 外部 Agent 线程 | 使用 ACP 集成和 Agent 的本地配置 |
| Terminal 线程 | 在终端后端线程中运行 CLI/TUI;CLI 拥有认证和配置权限 |
多个项目 {#multiple-projects}
线程侧边栏可以同时承载多个项目。每个项目拥有独立的分组,包含各自的线程和对话历史。这与 Zed 通常处理项目的方式一致 — 详见 Windows & Projects,了解项目如何打开及管理。
要将另一个项目添加到侧边栏,点击侧边栏底部工具栏的 添加项目 按钮(打开文件夹图标)。弹出的面板会列出你最近的项目,底部还提供 添加本地文件夹 和 添加远程文件夹 按钮。
多根文件夹项目 {#multi-root-folder-projects}
单个项目可以包含多个文件夹(即多根文件夹项目)。Agent 可以在单个线程中跨所有这些文件夹进行读写。有几种设置方法:
- 从侧边栏操作:点击 添加项目 按钮,选择 添加本地文件夹,然后在文件选择器中选中多个文件夹。它们将作为一个多根项目一起打开。
- 从标题栏操作:点击项目选择器(最左侧的项目名称)。对于最近项目列表中的任何本地条目,悬停并点击带加号的文件夹图标(将文件夹添加到此项目),即可将该项目的文件夹合并到当前项目中。
- 从项目面板操作:在 Project 面板中右键点击根文件夹或任何空白区域,选择 将文件夹添加到项目,即可为当前项目添加更多文件夹。
Worktree 隔离 {#worktree-isolation}
如果两个线程可能会修改相同的文件,建议在一个新的Git worktree中启动其中一个,以便提供隔离的代码检出环境。
Worktree 通过标题栏进行管理。点击 worktree 选择器(位于项目选择器右侧)可以在现有 worktree 之间切换或创建新的 worktree。新创建的 worktree 处于 detached HEAD 状态,从而避免不同 worktree 之间意外共享分支。
进入新的 worktree 后,使用 worktree 选择器旁边的分支选择器创建新分支或检出已有分支。如果所选分支已在其他 worktree 中检出,当前 worktree 将保持 detached HEAD 状态,直到你选择其他分支。
为了在新 worktree 创建时自动执行设置步骤,请Task hook。在 Zed 创建关联的 worktree 后,create_worktree hook 会自动运行,此时 ZED_WORKTREE_ROOT 指向新的 worktree,ZED_MAIN_GIT_WORKTREE 指向原始仓库。
Agent 完成工作后,审查 diff 并通过常规的 Git 工作流合并更改。如果线程在关联的 worktree 中运行且没有其他活跃线程使用它,将该线程移至 Thread History 会保存 worktree 的 Git 状态并将其从磁盘移除。从历史中恢复线程时,会同时恢复该 worktree。
另请参阅 {#see-also}
- Agent Panel:管理单个线程并配置 agent
- External Agents:使用集成 ACP 的外部 Agents
- Terminal Threads:直接在 Zed 中运行 agent CLI 和 TUI
- Tools:每个线程中可用的内置工具