ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Zed Agent 路径完全指南:Zed Agent、External Agents 与 Terminal Threads 三选一对比

Zed Agent 路径完全指南:Zed Agent、External Agents 与 Terminal Threads 三选一对比 Zed Agent 路径完全指南Zed Agent、External Agents 与 Terminal Threads 三选一对比【免费下载链接】zedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.项目地址: https://gitcode.com/GitHub_Trending/ze/zedZed 支持三条 AI Agent 执行路径agent path原生 Zed Agent、通过 ACPAgent Client Protocol集成的 External Agents以及直接托管 CLI/TUI 的 Terminal Threads。本文基于 Zed 官方文档 Agents完整解析三条路径的运行位置、配置来源与适用场景并结合仓库中agent_servers、acp_thread、agent等 crate 的源码结构说明每条路径背后的进程模型与配置边界帮助你在开始任何 agentic 工作前做出正确选型。什么是 Agent PathHarness官方文档把 agent path 称为一种 harness执行外壳它是 agentic 工作在 Zed 中被启动、展示、配置和控制的方式。Zed 当前提供三条路径核心对比如下完整继承自 AgentsAgent 路径运行位置使用的配置来源适用场景Zed AgentAgent Panel 和 Threads SidebarZed 中配置的 LLM Provider、原生工具、Skills、Instructions、MCP希望使用 Zed 原生 Agent 集成External AgentsAgent Panel 和 Threads SidebarACP Agent 进程及其自带的鉴权/配置希望使用 Claude、Codex、OpenCode、Copilot、Cursor、Pi 或其他 ACP 集成的 AgentTerminal ThreadsThreads Sidebar 和终端原生 CLI/TUI 的鉴权与配置希望把命令行工具体验组织进 Zed三条路径的本质区别在于配置所有权Zed Agent 的一切能力都来自 Zed 自己的设置体系External Agent 是一个独立进程通过 ACP 与 Zed 通信通常自己拥有鉴权、模型和工具配置Terminal Thread 则是 Zed 把原生 CLI/TUI 放进一个终端背书的线程工具完全自治Zed 只负责线程的展示与组织。Agent Path 与 LLM Provider 的分工这是选型时最容易混淆的一点官方文档专门用一张表来澄清你想知道的问题应该查阅的位置该用哪个 Agent 或 CLI 来执行工作Agents 页面即本文主题该用哪个模型来驱动 Zed 的 AI 功能LLM Providers两者的关系是Zed Agent 使用在 Zed 中配置的模型Zed 托管模型、API 访问、已有订阅、Gateway 或本地模型均可见 LLM Providers 的选型表。External Agents 和 Terminal Threads可能使用它们各自的模型配置Zed 的 LLM Provider 设置通常不生效。因此 LLM Providers 页面配置的是Zed 自有的 AI 功能Zed Agent、Inline Assistant、Git commit 生成、线程摘要等的模型来源它不会配置 External Agents 或 Terminal Threads——这两者通常自己拥有模型访问、鉴权和配置。Zed Agent原生路径的能力来源Zed Agent 运行在 Agent Panel 与 Threads Sidebar 中使用 Zed 配置的模型并深度集成 Zed 的项目、编辑器、终端与 Review 界面。适合希望 Agent 读取和搜索项目、编辑文件、运行终端命令、使用 Zed 管理的 MCP 工具、遵循 Agent Profiles、使用 Zed Skills 与 Instructions、并在 Zed 的 Review UI 中查看改动的场景。Zed Agent 每项能力的事实来源source of truth如下表能力配置来源模型访问LLM Providers面板工作流Agent Panel工具可用性Agent Profiles工具审批行为Tool Permissions内置工具Tools外部工具MCP可复用任务指令Skills常驻指令Instructions从源码结构看Zed Agent 的实现集中在 agent crate其中的native_agent_server.rs把原生 Agent 也封装成与 ACP 统一的 server 接口——这与AgentServertrait 的设计相呼应下文会看到。External AgentsACP 集成的第三方 AgentExternal Agents 是通过 Agent Client Protocol (ACP) 与 Zed 集成的 Agent。Zed 负责在 Agent Panel 和 Threads Sidebar 中托管线程而 External Agent 通常拥有自己的运行时、鉴权、模型选择、工具与原生配置。计费、条款、数据保留等均由用户与 Agent 提供方之间约定Zed 不对其收费。通过 ACP Registry 安装ACP Registry 是安装常用 External Agent 的主要方式。打开方式有两种直接运行zed::AcpRegistry动作或打开 Agent Settingsagent::OpenSettings动作进入External Agents页面点击Add Agent选择Install from Registry。安装完成后该 Agent 会出现在 Agent Panel 和 Threads Sidebar 的新线程菜单中。Registry 中收录的常见 Agent 包括 Claude、Codex、OpenCode、Copilot、Cursor、Pi Coding Agent列表经策划、并不穷尽以 Zed 内 ACP Registry 的实时列表为准。各 Agent 的鉴权与配置要点Claude Agent从 Registry 安装后从 Agent Panel 启动线程。Claude Agent 拥有自己的鉴权与计费——为 Zed Agent 配置好的 Anthropic API key不会自动配置 Claude Agent。选择计费方式打开 Claude Agent 线程运行/login用 API key 或 Claude Code 方式认证。CLAUDE.md等 Claude 专有文件可能由 Claude Agent 直接读取。Codex同样从 Registry 安装。Codex 拥有自己的鉴权与计费为 Zed Agent 配置好的 OpenAI API key 不会自动配置 Codex。取决于版本与环境Codex 可能支持 ChatGPT 登录、Codex API key、OpenAI API key 或 Codex 原生配置切换鉴权请用 Codex 线程内的原生登录/登出流程。Gemini CLI拥有自己的鉴权可能提示你用 Google、Vertex AI 等方式登录。如果 Agent 进程能拿到GEMINI_API_KEY或GOOGLE_AI_API_KEYGemini CLI 会用该 key否则如果你在 Zed 的 Google AI provider 中配置过 API keyZed 会把它作为GEMINI_API_KEY传给 Gemini CLI。OpenCode拥有自己的鉴权、模型选择与订阅行为。若想在 Zed Agent 中使用 OpenCode 模型应配置 OpenCode API access。Copilot鉴权由 Copilot 集成拥有要在 Zed Agent 中使用 Copilot Chat 模型参见 Use an Existing Subscription。CursorCursor 订阅不会配置 Zed 的 LLM Provider 设置使用 Cursor 的 external-agent 或 CLI/TUI 方式。Pi Coding Agent是一个 Agent harness 而非 Zed LLM 订阅所有 provider 鉴权、订阅、工具与模型选择都在 Pi 中配置。Poolside线程未认证时会提供Log in to Poolside在终端中运行pool login。也可以在终端安装 Poolside Agent CLI 后运行pool acp setup --editor zed写入配置。自定义 Agentagent_servers 配置如果你在开发 ACP 兼容的 Agent或需要运行 Registry 中没有的 Agent可以添加 Custom Agent打开 Agent Settings 的External Agents页面点击Add Agent→Add Custom AgentZed 会在设置文件中生成agent_servers条目{ agent_servers: { my-agent: { type: custom, command: node, args: [~/projects/agent/index.js, --acp], env: {} } } }Poolside 的手动配置也是同样的结构command: pool、args: [acp]。从 Registry 安装的 Agent 同样可以在agent_servers.agent-id下拥有逐 Agent 的设置。仓库源码印证了这套机制agent_servers crate 定义了AgentServertraitagent_id()、connect()返回AgentConnection、默认 session mode 与配置项等并区分了 ACP 连接acp.rs与自定义进程custom.rs。值得注意的是load_proxy_env函数会把 Zed 的代理设置转成HTTPS_PROXY/HTTP_PROXY环境变量传给 Agent 进程——这说明 External Agent 作为子进程运行时Zed 会为其注入网络环境。启动 External Agent 线程与导入历史打开 Agent Panel用 Agent 选择器或新线程菜单启动已安装 External Agent 的线程也可以为指定 Agent 配置agent::NewExternalAgentThread键位。线程导入Zed 可从已配置的 External Agent 导入现有线程使其出现在 Thread History 中。打开 Threads Sidebarmulti_workspace::ToggleWorkspaceSidebar通过侧栏底部的时钟图标或agents_sidebar::ToggleThreadHistory打开 Thread History点击Import Threads选择要导入的 Agent 后确认。Zed 会通过 ACP 连接所选 Agent把尚不在历史中的会话加入导入的线程是归档条目打开即可续接。没有关联工作目录的会话会被跳过重复导入安全已有线程会被跳过。配置边界Configuration BoundariesExternal Agent 是独立进程通过 ACP 与 Zed 通信由此形成 Zed 配置与 Agent 原生配置之间的边界。官方文档给出的行为对照表值得完整记住能力External Agent 线程中的行为模型/provider 配置通常由 External Agent 拥有鉴权/API key/订阅通常由 External Agent 拥有Zed Agent profiles不生效除非集成方另行说明Zed Skills不作为 Zed Skills 生效Agent 原生 skills/instructions取决于 AgentZed MCP servers可能经 ACP 转发Agent 原生 MCP 配置也可能被 Agent 读取工具权限Zed ACP/工具转发权限可能生效原生工具权限取决于 Agent远程项目注意事项External Agent 可能在本地、远端或经由自己的登录流程读取凭据本地 keychain 中保存的 Zed LLM provider API key 与 External Agent 的凭据不是同一回事使用 SSH、dev containers 等远程项目时需按具体 Agent 的设置路径检查。调试从 Command Palette 运行dev::OpenAcpLogs可查看 Zed 与 External Agent 之间通过 ACP 传输的消息上报 External Agent 问题时请附上 ACP 日志。Terminal Threads把 CLI/TUI 组织成线程Terminal Threads 是 Threads Sidebar 中的终端背书线程。它与 External Agent 的关键区别External Agent 通过 ACP 集成并渲染为 Agent 线程Terminal Thread 只是让 Zed 把原生命令行工具运行在一个终端里再以线程的形式组织它。职责划分Zed 拥有的线程表面Threads Sidebar 中的终端线程按项目分组线程让终端会话与其他线程一起切换和组织CLI 拥有的完全自治鉴权、模型/provider 配置、订阅或 API key、工具配置、skills 与 instruction 文件、MCP 配置。Zed Agent profiles、工具权限、Skills、MCP 设置不会自动应用到 Terminal Thread。打开与自动运行命令从 Agent Panel 的 Agent 选择器按钮左侧或工具栏右上角的图标打开新线程菜单选择Terminal即可线程打开在面板主体中且数量不限每条线程在 Threads Sidebar 中都有独立条目。如果总是在 Terminal Thread 中运行同一个 CLI可以设置agent.terminal_init_command让 Zed 在创建线程 shell 时自动执行命令{ agent: { terminal_init_command: claude } }命令被像手打一样发送给 shell因此会由你配置的 shell 解释包括 Windows 与远程/WSL 项目命令退出后终端仍是普通交互式 shell。它在创建新 Terminal Thread、以及重开项目后重建已保存的 Terminal Thread 时都会执行。也可以在 Settings UI 的AI页面中通过 Terminal Thread Init Command 字段配置。标题、通知与关闭标题工具栏中的终端标题会随运行中的 shell/进程自动更新点击标题或悬停时的铅笔图标可自定义。也可在 Threads Sidebar 右键选择Rename Title或选中后按agent::RenameSelectedThread。通知终端在非聚焦时发出 bell 字符Zed 会像 Agent 完成时那样弹出视觉提示和可选声音点击通知会让终端聚焦并清除指示。适用设置与 Agent 相同agent.notify_when_agent_waiting和agent.play_sound_when_agent_done。关闭与 Agent 线程不同Terminal Thread 是关闭而非归档不进入 Thread History。悬停点击×或选中后按agent::ArchiveSelectedThread。CLI/TUI 的通知与标题适配一些 Agent CLI/TUI 会发送终端信号bell、标题更新Zed 借此在侧栏显示有用上下文。官方文档给出了四个具体适配方案Claude Code在 Claude Code 用户设置中设preferredNotifChannel: terminal_bell或在 Claude Code 内运行/config→Local Notifications→Terminal Bell。若在 tmux 内运行需在~/.tmux.conf添加set -g allow-passthrough on才能透传 bell。Amp在终端环境设置中加terminal: { env: { AMP_FORCE_BEL: 1 } }重启 Amp。OpenCode项目内创建.opencode/plugins/zed-bell.js或全局~/.config/opencode/plugins/zed-bell.js在session.idle或permission.asked事件时输出\x07bell注意插件中会跳过OPENCODE_CLIENT acp的 ACP 模式。Pi创建.pi/extensions/zed-bell.ts或全局~/.pi/agent/extensions/zed-bell.ts监听agent_end事件输出\x07。Codex 终端标题运行/title选择字段与顺序Codex 会把选择保存到~/.codex/config.toml的tui.terminal_title例如[spinner, project-name, run-state, thread-title]。凭据与远程项目凭据来自终端会话及其中运行的 CLI/TUI。远程项目中 CLI 读取远端 shell 环境与远端配置文件本地 Terminal Thread 读取本地环境与配置Zed 不会把 LLM provider 设置中的 API key 复制进 Terminal Thread。何时选 Terminal Threads想要工具原生的 CLI/TUI 体验该工具没有 ACP 集成希望订阅行为由 CLI 自己拥有希望 CLI 使用自己的原生配置文件。Threads Sidebar 与并行管理三条路径的线程统一呈现在 Threads Sidebar 中。线程threads正是侧栏中展示的基本单元类型包括Zed Agent 线程、External Agent 线程、Terminal Thread。Parallel Agents 功能让你同时运行和管理多条线程侧栏按项目分组展示线程每条线程显示标题、状态指示与运行的 AgentTerminal Thread 以终端图标区分。点击线程即可切换agents_sidebar::ToggleThreadSwitcher可循环切换最近线程Shift反向。每条线程独立拥有自己的 Agent、上下文窗口与会话历史可以在一条线程跑 Zed Agent、另一条跑 Claude 或 Codex。归档后的线程进入 Thread History可恢复、可搜索、可永久删除若线程运行在已被删除的 Git worktree 中恢复线程时 Zed 会自动恢复 worktree。用Panel Layout Agentic或workspace::UseAgenticLayout把 Agent Panel 与 Threads Sidebar 放到左侧、项目/ Git 等面板放右侧workspace::UseClassicLayout恢复经典布局。两条线程可能编辑相同文件时可让其中一条运行在新的 Git worktree 中实现隔离create_worktree任务钩子可在新 worktree 创建后自动执行初始化步骤。从源码结构看ACP 线程的实现位于 acp_thread crate其connection.rs抽象了 Agent 连接diff.rs处理线程产生的改动 diffterminal.rs则承载终端线程逻辑——与文档中External Agent 线程渲染为 Agent 线程、Terminal Thread 为终端背书的描述相互印证。选型决策速查三条路径的本质可以浓缩为一张决策表决策问题推荐路径想使用 Zed 统一的模型/工具/Profile/Skill/MCP 配置并在 Zed Review UI 中审改动Zed Agent想让某个成熟第三方 AgentClaude、Codex、OpenCode、Copilot、Cursor、Pi 等完整保留其自身生态External AgentsACP工具没有 ACP 集成或就想用原生 CLI/TUI 体验Terminal Threads只是要给 Zed 的 AI 功能选模型不决定用哪个 Agent配置 LLM Providers属于另一层决策记住文档中那句边界定义即可Agent path 决定谁来干活LLM Provider 决定Zed 自有功能用什么模型。前者三选一后者按 Zed 托管、API、订阅、Gateway、本地模型五条通路配置互不替代。【免费下载链接】zedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.项目地址: https://gitcode.com/GitHub_Trending/ze/zed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表