Zed + Ollama : 超高速编辑器搭配助手 本地
是的,Zed 原生支持连接 Ollama:安装 Ollama,ollama pull d 一个模型,确认服务器正在运行,然后在下拉菜单中选择该模型,Zed 会自动填充。使用前需了解的一项设置:Zed 默认向 Ollama 发送的上下文窗口仅为 4096 个 token,远低于大多数现代模型的容量,这足以解释在处理大文件时出现截断回复的原因。
Zed 是一款用 Rust 编写的多用户代码编辑器,以响应迅速著称。本指南介绍如何配置 Zed 与 Ollama 配合使用本地 AI 助手、调整上下文窗口、自动发现模型,以及通过权限和沙箱机制约束 Zed 智能体在您电脑上能够执行的操作。
#在Zed中配置Ollama
Zed 官方文档介绍了一个四步流程:下载并安装 Ollama,拉取一个模型,确认 Ollama 服务器正在运行,然后在 Zed 的下拉菜单中选择该模型。
在 macOS 上,启动 Ollama.app 应用即可启动服务器;在 Linux 或 shell 中,ollama serve 命令执行相同操作。Zed 由其开发者描述为一款多用户、高性能的代码编辑器,由 Atom 和 Tree-sitter 的作者创建;截至 2026 年 9 月 28 日,最新稳定版为 v1.21.0,发布于 2026 年 9 月 23 日,同日该仓库在 GitHub 上拥有近 91,000 颗星。
这套 Ollama 配置可用于 Zed 中所有依赖语言模型的 AI 功能:用于多文件任务的 Agent 面板、用于在编辑器中进行针对性修改的内联助手(Inline Assistant),以及让智能体提出命令建议的终端线程。不过,外部智能体和终端线程可能需要单独配置本地模型,与这里介绍的 Zed 原生功能配置分开。
#模型自动检测
Zed 会自动检测 Ollama 已经下载的模型,并在模型选择菜单中提供这些模型。若要禁用此检测功能并手动列出模型及其具体能力,需在设置中将 auto_discover 设置为 false。
这种手动模式有实际用途:对于 Zed 无法自动正确分类的模型,可以强制设置 supports_tools 或 max_tokens;也可以在纳入版本控制的项目配置文件中,记录团队应使用哪个模型。
supports_tools 字段值得特别关注:它向 Zed 表明,模型是否能在 Zed 智能体中接收工具定义(文件编辑、命令执行),而非仅用于简单聊天。未声明工具调用能力的 Ollama 模型可以用于行内助手或自动补全,但不能用于 Agent 面板中的多文件任务。
#4096 个 token 的上下文窗口
Zed 通过 num_ctx 参数将上下文长度传递给 Ollama;根据官方文档,默认值为 4096 个 token。这明显小于大多数较新模型的原生上下文窗口(通常为 32 000 个 token 或更多),一个中等大小的文件就可能超过这一上限。
该context_window设置适用于Zed中所有配置的Ollama模型;若需为不同模型设置不同的上下文长度,可通过available_models中的max_tokens参数实现,同时关闭auto_discover以确保该值生效。
#llama.cpp 和 LM Studio:本地替代方案
Zed 支持 llama.cpp,就像支持 Ollama 一样,并能自动发现以路由模式提供服务的模型;/models/sse 流会进一步完善模型发现功能,但需要较新版本的 llama.cpp 服务器。Zed 也支持通过 LM Studio 的本地 API 服务器接入,使用 lms server start 启动该服务器。
| Backend | 模型发现 | 特点 |
|---|---|---|
| Ollama | 自动发现(已拉取的模型) | 上下文长度需手动设置(默认值为4096) |
| llama.cpp | 在路由器模式下自动完成(需要较新的构建版本) | 通过-hf选项实现按需加载 |
| LM Studio | 通过已加载模型列表手动发现模型 | 除 API 外,还提供模型管理的图形界面 |
#智能体工具的权限
自 0.224.0 版本起,Zed 智能体的工具操作审批通过 agent.tool_permissions.default 进行配置;在此之前,由一个布尔值(agent.always_allow_tool_actions,默认为 false)统一控制。新系统支持按正则表达式模式设置规则,有三种处理方式:允许、拒绝或始终要求确认。
这个取自官方文档的示例会自动允许在终端工具中运行特定的 cargo 命令,同时要求所有涉及系统根目录的 sudo 命令都必须经过确认——当接入的是一个可预测性不如云端标杆模型的小型本地模型时,这种细粒度控制很有用。
#沙箱:它真正保护了什么
除了声明式权限,Zed 还为其智能体的工具调用提供操作系统级沙箱。文档明确说明了其适用范围:仅适用于 terminal 和 fetch 工具,不适用于 Zed 本身,也不适用于语言服务器、扩展、任务或普通终端标签页。
- 终端工具
- 沙盒限制智能体所执行命令的磁盘写入和出站网络访问;Git 元数据受到保护。
- fetch 工具
- 沙箱限制了智能体实际能够连接的主机范围。
- Linux 环境要求
- PATH 中必须存在一个可执行且非 setuid 的 bwrap 二进制文件。
- Windows 系统要求
- WSL 必须可用;文档指出,WSL 中的沙箱隔离能力弱于 Linux 或 macOS,可能无法阻止所有逃逸尝试。
在将敏感任务交给可预测性较低的小型本地模型之前,务必理解这一有限的保护范围(仅涵盖终端和 fetch):通过 edit_file 或 write_file 修改文件时,操作受声明式权限和智能体配置约束,而不是由沙箱的系统级隔离保护。因此,这些操作仍值得人工审核,即使其他操作已经启用了沙箱。
#Zed 中的 MCP 服务器
除了使用 Ollama 作为模型提供方,Zed 还通过模型上下文协议(MCP)与外部上下文服务器交互,包括数据库、工单管理系统和企业文档。官方文档明确指出,Zed 支持 MCP 的工具(Tools)和提示(Prompts)功能,使智能体能够获得文件编辑、终端等内置工具之外的额外能力。
为确保实际使用某个指定的 MCP 服务器,而不会与 Zed 的内置工具发生竞争,文档展示了一个专用智能体配置示例(使用 container-use 服务器):禁用内置工具,只启用所选 MCP 服务器的工具,并在该配置中将 enable_all_context_servers 设为 false。
这种按配置文件细分的方式与上文所述的按工具设置权限的系统相呼应:对于通过 Ollama 在本地运行、比基准云模型更难预测的模型,限制实际开放给智能体的工具——无论这些工具来自 MCP 服务器还是 Zed 的原生功能——就能在讨论权限和沙箱问题之前,先减少可能出错的环节。
#预测编辑(Zeta)也能在本地运行
Zed 提供了一项独立于聊天智能体的功能:预测编辑,在您输入时建议下一处修改,按一下 Tab 键即可确认。默认提供方是 Zeta,这是 Zed 自行开发的开源模型——与为 Agent 面板或内联助手配置的对话模型不同。
为了让这项功能完全在本地运行,可以按照官方文档配置专用于预测性编辑的 Ollama 提供方,并使用为此用途设计的模型变体(尤其是 zeta2),而不是复用已经为 AI 智能体配置的聊天模型——在 Zed 中,这两项设置相互独立。较小的模型专门用于每次预测一处修改,而不是进行多轮对话,因此在这项具体任务上,通常比通用聊天模型响应更快。这里,响应速度比纯粹的推理能力更重要:打字时感知到的延迟是首要标准,其重要性远高于回答内容的丰富程度。
#在远程服务器上运行 Ollama
如果 Ollama 在另一台机器上运行,或需要密钥(例如托管版 Ollama Turbo),应在供应商界面中输入密钥,或通过变量 OLLAMA_API_KEY 设置密钥;API 的 URL 应指向远程端点,而不是 localhost。
这种远程部署方式对团队有实际价值:只需一台资源足以运行适当规模模型的 Ollama 服务器,就能为多台配置了同一 API URL 的 Zed 工作电脑提供服务,避免每位开发者都在自己的机器上运行并重新加载模型。这样,上下文窗口和声明的能力(supports_tools、supports_thinking)只需在项目共享配置中设置一次,无需在每个人的个人设置中分别配置。
- 使用 Cline 打造本地 Copilot:VS Code 中的 AI 智能体(Ollama)
- Cline + Ollama:VS Code 中的 100% 本地编程智能体
- Continue.dev 被 Cursor 收购:迁移至本地 Cline
- 来源:Zed本地模型官方文档
- 来源:智能体沙箱官方文档
- 来源:工具权限官方文档
为什么 Zed 在处理大型文件时会截断回复(Ollama)?+
Zed 是否会自动检测我的 Ollama 模型?+
Zed 的沙箱是否能保护智能体的所有工具?+
能否在 Zed 中用 LM Studio 或 llama.cpp 替代 Ollama?+
Zed 的沙箱在 Windows 上的可靠性是否与 Linux 一样?+
Zed 能否在使用本地 Ollama 模型时使用 MCP 服务器?+
Zed 的预测编辑功能能否完全本地运行?+
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。