代理面板
Agent 面板允许您与许多大型语言模型 (LLM) 和编码 Agent 进行交互,它们可以帮助处理各种类型的任务,例如生成代码、理解代码库以及其他一般性查询,如撰写电子邮件、文档等。
要打开它,请在命令面板中使用 agent: new thread 操作,或点击状态栏中的 ✨(星光)图标。
入门
如果您是第一次使用 Agent 面板,则需要至少配置一个 LLM 提供商或外部 Agent。您可以通过以下方式实现:
- 订阅我们的专业版计划,以便访问我们托管的模型。
- 使用您自己的 API 密钥,无论是来自 Anthropic 等模型提供商,还是来自 OpenRouter 等模型网关。
- 使用外部 Agent,例如Gemini CLI或Claude Code。
概述
配置好 LLM 提供商或外部 Agent 后,在消息编辑器中输入并按 enter 提交您的提示。如果您需要更多空间输入,可以使用 shift-alt-escape|shift-alt-escape 扩展消息编辑器。
您应该会开始看到响应流式传输,并指示模型正在使用哪些工具来完成您的提示。从此刻起,您可以与下面列出的许多受支持的功能进行交互。
请注意,对于外部 Agent,例如Gemini CLI或Claude Code,下面列出的一些功能目前不受支持——例如,从历史记录中恢复线程、检查点、令牌使用量显示、模型选择等。希望所有这些功能将来都能得到支持。
创建新线程
默认情况下,Agent 面板使用 Zed 的第一方 Agent。
要更改它,请转到 Agent 面板右上角的加号按钮并选择另一个选项。您可以选择创建新的文本线程,或者,如果您已连接外部 Agent,则可以与它们创建新线程。
编辑消息
您发送给 AI 的任何消息都是可编辑的。您可以点击包含您消息的卡片,并使用调整后的提示和/或新的上下文重新提交它。
检查点
每当 AI 执行编辑时,您应该会在消息顶部看到一个“恢复检查点”按钮,允许您将代码库恢复到该消息之前的状态。
即使您在编辑尝试中途中断线程,检查点按钮也会出现,因为这很可能是您确定 Agent 没有朝着正确方向前进并希望回滚的时刻。
导航历史记录
要在面板编辑器中聚焦时快速浏览最近打开的线程,请使用 cmd-shift-j|ctrl-shift-j 绑定,或点击面板右上角的菜单图标按钮以打开显示最近六个线程的下拉菜单。
此菜单中的项目功能类似于选项卡,关闭它们不会删除线程;相反,它只是将它们从最近列表中移除。
要查看所有历史对话,请从同一菜单中选择 View All 选项,或通过 cmd-shift-h|ctrl-shift-h 绑定。
跟随 Agent
Zed 内置了原生集成的协作功能,这种设计模式也扩展到了与 AI 的协作。要跟随 Agent 在您的代码库中读取和编辑,请点击面板左下角的“十字准星”图标按钮。
您也可以在提交消息时按 cmd/ctrl 修饰键和 enter 来实现。
获取通知
如果您向 Agent 发送提示,然后转移到其他地方,将 Zed 置于后台,当其响应完成时,您可以通过以下方式收到通知:
- 出现在屏幕右上角的视觉通知
- 声音通知
这些通知可以根据您的偏好组合使用或单独使用。
您可以通过使用 agent.notify_when_agent_waiting 和 agent.play_sound_when_agent_done 设置键来自定义它们的行为,包括完全关闭它们。
审查更改
Agent 对您的项目进行更改后,面板将显示哪些文件以及多少文件已被编辑。
要查看具体哪些文件已被编辑,请展开消息编辑器上方显示的折叠条,或点击 Review Changes 按钮 (shift-ctrl-r|shift-ctrl-r),这将打开一个包含所有更改的多缓冲区选项卡。
您可以拒绝或接受每个单独的更改块,或 Agent 所做的所有更改。
编辑差异也会出现在单独的缓冲区中。如果您的活动选项卡已由 AI 进行了编辑,您将看到具有与多缓冲区中相同的接受/拒绝控件的差异。
添加上下文
尽管 Zed 的 Agent 在自动读取您的代码库以获取相关上下文方面非常高效,但仍然非常鼓励手动添加任何有助于完成您的提示的内容,这不仅可以提高 AI 的响应质量,还可以加快其响应时间。
在 Zed 的 Agent 面板中,所有上下文都作为提及添加到面板的消息编辑器中。您可以键入 @ 来提及文件、目录、符号、以前的线程和规则文件。
此外,您还可以在缓冲区中选择文本,并通过使用 cmd->|ctrl-> 键绑定、运行 agent: add selection to thread 操作或在 @ 菜单中选择“Selection”项来将其添加为上下文。
还支持复制图像并将其粘贴到面板的消息编辑器中。
令牌使用量
Zed 在面板消息编辑器中个人资料选择器附近显示您当前活动线程所消耗的令牌数量。根据您添加的上下文数量,您的令牌消耗量可能会迅速增长。
一旦您接近模型的上下文窗口,消息编辑器下方会出现一个横幅,建议开始一个新线程,并将当前线程总结并添加为上下文。您也可以随时通过右上角的“Agent 选项”菜单对正在进行的线程执行此操作。
更改模型
配置您的 LLM 提供商后——无论是通过自定义 API 密钥还是通过Zed 托管的模型——您都可以通过点击消息编辑器上的模型选择器或使用 cmd-alt-/|ctrl-alt-/ 键绑定在它们之间切换。
同一个模型可以通过多个提供商提供——例如,Claude Sonnet 4 可通过 Zed Pro、OpenRouter、Anthropic 直接等获得。请确保您为要使用的模型选择了正确的模型提供商,模型选择器中模型左侧的徽标可区分这一点。
使用工具
新的 Agent 面板支持工具调用,从而实现 Agent 式编辑。Zed 带有几种内置工具,允许模型执行诸如搜索代码库、编辑文件、运行命令等任务。
您还可以通过MCP 服务器扩展可用工具集。
配置文件
配置文件是分组工具的一种方式。Zed 提供了三个内置配置文件,您可以根据需要创建任意数量的自定义配置文件。
内置配置文件
Write:一个包含允许 LLM 写入文件和运行终端命令的工具的配置文件。它基本上启用了所有内置工具。Ask:一个只读工具的配置文件。最适合询问有关代码库的问题,而无需担心 Agent 进行更改。Minimal:一个没有工具的配置文件。最适合与 LLM 进行一般性对话,无需了解您的代码库。
您可以通过点击配置文件选择器按钮 > Configure Profiles… > 您要查看的配置文件来探索每个配置文件中启用的确切工具。
自定义配置文件
您可以通过配置文件选择器中的 Configure Profiles… 选项创建自定义配置文件。在此处,您可以选择 Add New Profile 或分叉现有配置文件,并使用自定义名称和您偏好的工具集。
您还可以覆盖内置配置文件。选择内置配置文件后,在配置文件选择器中,导航到 Configure Tools,然后选择您想要的工具。
Zed 会在您的设置中存储此配置文件,使用与您覆盖的默认配置文件相同的配置文件名称。
所有自定义配置文件都可以通过 UI 或在 settings.json 文件中的 assistant.profiles 键下手动编辑。
工具批准
Zed 的 Agent 面板显示 agent.always_allow_tool_actions 设置,如果将其设置为 false,则需要您批准任何编辑尝试以及来自 MCP 服务器的工具调用。
您可以通过在 settings.json 或通过 Agent 面板的设置视图中将此键设置为 true 来更改它。
模型支持
工具调用需要由每个模型和模型提供商单独支持。因此,尽管存在工具,但某些模型可能尚未在 Zed 中支持它们。如果您选择的模型属于这种情况,您应该会看到“No tools”标签。
所有Zed 托管的模型都开箱即用地支持工具调用。
MCP 服务器
与内置工具类似,某些模型可能不支持给定 MCP 服务器中包含的所有工具。Zed 的 UI 将通过模型选择器附近出现的警告图标告知您这一点。
文本线程
“文本线程”以不同的格式(纯文本)呈现您与 LLM 的对话。通过文本线程,您可以完全控制对话数据。您可以删除和编辑 LLM 的响应、交换角色并在对话早期包含更多上下文。
对于陪伴我们一段时间的用户,您会注意到文本线程是我们最初的助手面板——用户喜欢它所提供的控制。我们不打算弃用文本线程,但需要注意的是,如果您希望 AI 自主地写入您的代码库,这仅在较新的(现为默认)“Threads”中可用。
错误和调试
如果出现任何错误或奇怪的 LLM 响应行为,帮助 Zed 团队调试的最佳方法是使用 agent: open thread as markdown 操作,并将该数据作为您在 GitHub 上问题的一部分进行附加。
您也可以在面板编辑器中聚焦时,点击向下拇指按钮右侧的文件图标按钮,以 Markdown 格式打开线程。
反馈
Zed 支持对 Agent 的响应进行评分以获取反馈和改进。
请注意,对响应进行评分会将与该响应相关的数据发送到 Zed 的服务器。有关 Zed 在 AI 改进、隐私和安全方面的方法的更多信息,请参阅AI 改进和隐私和安全。如果您不希望数据持久存储在 Zed 的服务器上,请不要评分。如果您不明确评分响应,我们将不会收集数据以改进我们的 Agent 产品。
您可以帮助影响 Zed 系统提示和工具下一次更改的最佳方法是,通过每个响应末尾的“点赞/点踩”按钮对 LLM 的响应进行评分。如果点踩,将出现一个新的文本区域,您可以在其中添加有关发生情况的更多具体信息。
您可以在 Agent 响应后的任何时间以及在同一线程中多次提供对线程的反馈。