编辑预测离开免费计划?Zed 的 AI 补全替代方案与排查指南
Zed 编辑器在官方公告中明确了一个变化北京时间用户需要注意的 10 月 7 日节点之后Edit predictions 将离开免费 Personal 计划。对许多把 Zed 当作日常主力编辑器的开发者来说这意味着每天都会用到的 AI 编辑预测能力从“开箱即用”变成了需要重新评估付费、自行接入模型、或者干脆关闭的功能。这篇文章会围绕三个问题展开Edit predictions 到底解决什么问题为什么会被移出免费计划10 月 7 日后有哪些可落地的替代配置以及当预测不显示、Agent 面板打不开时应该按照什么链路排查。如果你已经在用 Zed这篇文章可以直接作为配置和排错参考如果你只是听说过 Zed 的 AI 能力文章也会解释清楚它和传统自动补全的区别。1. 先理解 Edit predictions 与普通补全之间到底差在哪里1.1 “编辑预测”解决的是什么问题Zed 是一个主打低延迟和高性能的代码编辑器但它并不只是“快”。在 AI 能力上Zed 提供了一种叫做 Edit predictions编辑预测的功能。简单说当光标停在代码中间时编辑器会根据你最近的修改、文件内容、语法结构和工程上下文预测你接下来要输入的文本并以灰色幽灵文本显示在光标后面。按一下 Tab 键即可接受这段预测按 Esc 忽略。从用户体验上讲这种交互有点像传统 IDE 的自动补全但两者解决问题的层面不一样。自动补全通常面向“已知符号”的补全例如变量名、函数名、方法名、枚举值。这些候选一般来自语言服务器LSP的索引编辑器只需要在本地查询符号表速度很快但基本不具备“生成一段新的业务逻辑”的能力。Edit predictions 面向的是“当前光标处最可能的后续编辑”。它不只是补全一个单词而是可能补全一个参数列表、一条 if 分支、一段样板代码甚至是一个完整的小函数。它也不要求你主动按快捷键而是在你停顿时自动出现。一个典型的例子是def get_user_info(user_id): user db.query(User).filter(User.id user_id).first() if user is None: raise ValueError(fuser {user_id} not found) # 光标停在这里时模型可能会预测下一句 # return {id: user.id, name: user.name, email: user.email}本地 LSP 能给到user.id、user.name的补全但很难基于注释和上下文补出return {id: user.id, name: user.name, email: user.email}这一整句。这类能力依赖大语言模型对代码语义的理解而不是纯符号索引。1.2 Edit predictions 与 Copilot 风格补全的差异很多开发者会把 Edit predictions 和 Copilot 风格的代码补全混为一谈因为它们在外观上都是灰色 ghots text。实际使用中两者有如下差异对比项传统自动补全Copilot 风格补全Zed Edit predictions触发方式输入时由 LSP 触发暂停输入后触发暂停输入后触发偏向“编辑中的连续预测”数据来源当前文件、语言服务器索引模型根据上下文生成模型根据最近编辑生成生成粒度单词、短片段多行代码往往与最近的编辑动作关联适合重复性修改是否需要远程模型通常不需要需要默认需要远程模型也可以接本地模型主要成本本地 CPU/内存API 推理API 推理免费计划下被逐步限制需要特别注意的是Zed 的 Edit predictions 并不是一个简单的“续写”功能。它更关注“你已经改了哪里接下来大概率还要改哪里”。例如你正在把一组旧的函数调用改成新的参数结构模型可能会预测你下一个光标位置需要的改动而不是单纯按当前行往下补。这种“编辑意图预测”的效果往往比单纯补全一整段代码更让人感觉自然但也意味着模型需要在每个编辑停顿点做推理。推理不是免费的这在后面会直接影响功能的收费标准。1.3 为什么免费计划养不起这个功能Zed 的定位是“可协作的高性能编辑器”它的免费 Personal 计划在过去一段时间内提供了很多 AI 能力包括 Edit predictions。但从工程成本角度看这类功能面临几个现实问题每个预测请求都要把代码上下文发送到模型服务端。模型服务端需要 GPU 推理请求量大时成本会迅速上升。免费用户如果高频触发预测会造成大量无效请求浪费算力。免费版很难做精细的限流因为用户可能开着编辑器长时间不动也可能在短时间内连续编辑。所以当官方说 Edit predictions 将离开免费 Personal 计划时本质上是在做成本边界和产品分层。对于个人开发者和学习用途这个变化确实会带来不便但从产品逻辑上并不难理解高频、重算力的功能不会永远由免费计划承载。注意这里的“离开免费计划”并不意味着功能被下线。它只是从默认免费额度中剥离用户仍然可以通过付费套餐、自带模型接口或本地模型继续使用。2. 10 月 7 日计划调整会影响哪些人2.1 Personal 免费计划的边界从标题信息看Zed 是把 Edit predictions 从“免费 Personal 计划”中移出而不是从 Zed 中移出。这意味着如果你现在使用的是最基础的免费个人账户10 月 7 日之后将无法继续使用由 Zed 托管模型的 Edit predictions 服务。这里有一个容易混淆的点Zed 本身是开源编辑器你依然可以免费下载、免费编辑代码、免费使用本地功能例如 LSP、多光标、Vim 模式、Git 集成等。受影响的只是“云端模型推理”这一层。对普通开发者来说直观变化是升级到新版本或计划生效后打开一个项目光标停在代码中间却不再出现 Edit predictions 的灰色预测。此时编辑器不会报错不会弹出付费墙只是功能静默消失。很多用户会误以为是配置坏了其实只是免费额度里不再包含这个模型服务。2.2 已经付费的用户会怎样如果你的账户已经处于 Zed 的 Pro 或更高级套餐通常不会受这次调整影响。Edit predictions 仍然由 Zed 托管的模型提供你也不需要自己配置模型地址。不过要注意不同套餐包含的 AI 额度可能不同。即使你付费了也可能存在月度请求上限、频率限制或模型版本差异。对于重度用户需要在 Zed 的设置里查看当前计划对应的用量统计而不要想当然认为“只要付费就完全无限制”。2.3 哪些场景其实不受影响以下几类场景并不会因为 Personal 计划调整而失效本地生成的代码补全来自 LSP 的自动补全例如 Rust Analyzer、TypeScript Language Server完全不依赖 Zed 云端模型。你自己接入的模型服务如果你在设置中配置了自己的 API Key、Ollama 本地模型或其他 OpenAI 兼容接口Edit predictions 仍然可以继续工作。通过快捷键手动触发的 AI 功能例如 Assistant Panel、Inline Chat 等如果这些功能没有跟着计划调整就仍然可以使用。所以与其把这看作“功能没了”不如把它看作“默认模型服务不再免费”。对愿意折腾的开发者来说这反而是切换到本地模型或者自带 API 的机会。3. 先确认你的 Zed 当前版本和 AI 配置入口3.1 版本检查为什么先看版本再改配置Zed 的迭代速度很快不同版本的设置项和 AI provider 配置可能不同。网上很多配置示例来自旧版本直接复制到新版可能不生效。所以在做任何配置之前先确认版本。在 Zed 中打开命令行面板Ctrl/Cmd Shift P输入Zed: About可以查看当前版本号。也可以在终端运行zed --version常见输出类似Zed 2.1.4 (123456)这里的2.1.4是版本号123456是构建号。如果后续配置项和本文示例不一致优先以你本地版本的官方文档为准。不要盲目相信博客文章包括这一篇。3.2 配置入口settings.json 和命令行Zed 的配置主要通过settings.json完成。打开方式还是命令面板Zed: Open Settings或者在终端直接打开用户级配置文件。Zed 会创建配置文件目录macOS~/Library/Application Support/Zed/settings.jsonLinux~/.local/share/zed/settings.jsonWindows%APPDATA%\Zed\settings.json修改settings.json后通常不需要重启 Zed大多数配置会热生效。但如果遇到配置修改后仍然不生效可以先执行Zed: Reload Workspace或者重启 Zed 再验证。3.3 网络策略Zed 需要访问哪些服务如果你依赖 Zed 托管的模型那么 Zed 进程需要能够连接到对应的 API 域名。如果网络环境受限请求可能超时表现为 Edit predictions 迟迟不出现。常见的排查方法是查看 Zed 自己的日志而不是只看系统网络。Zed 会在日志中记录 AI 请求失败的原因包括 DNS 解析失败、TLS 错误、HTTP 状态码超时等。关于日志位置放在第 6 章详细展开。注意如果你在企业内网或沙箱环境使用 Zed建议先确认防火墙是否放行了 Zed 的 AI 服务地址再排查配置问题。否则配置再正确请求也会在网络上失败。4. 把 Edit predictions 切换为自带 API Key 或本地模型4.1 配置 provider 的基本结构在 Zed 中编辑预测的配置通常位于settings.json的edit_predictions字段下。新版 Zed 的配置结构大致如下{ edit_predictions: { mode: automatic, provider: your-provider-name, model: your-model-id } }字段含义mode控制 Edit predictions 的触发方式。常见值是manual或automatic。如果设置为automatic只要满足条件就会自动显示预测如果设置为manual可能需要通过快捷键或命令触发。provider指定模型服务提供方。常见值包括zed、ollama、anthropic、openai以及一些兼容 OpenAI 接口的自定义 provider。model指定模型 ID。不同 provider 的模型 ID 不一样。Zed 的具体字段名和可选值会随版本调整所以你需要在配置前先确认当前版本支持哪些 provider。不要直接照搬别人的配置特别是 model 名称。4.2 使用本地 Ollama 作为预测后端如果你不想付费也不想把代码发送到云端最简单的方式是使用 Ollama 在本地运行一个代码模型。Ollama 启动后默认监听http://localhost:11434Zed 可以通过 OpenAI 兼容接口访问它。第一步安装 Ollama 并拉取模型。以qwen2.5-coder这种常见代码模型为例ollama pull qwen2.5-coder:7b第二步确认 Ollama 服务已经启动ollama serve如果需要常驻后台可以设置系统服务或使用 Docker。不建议直接在终端里长时间占用前台进程。第三步在 Zed 的settings.json中配置{ edit_predictions: { provider: ollama, model: qwen2.5-coder:7b } }如果 Zed 的版本要求使用 OpenAI 兼容 URL你可以配置一个自定义 provider指向http://localhost:11434/v1例如{ edit_predictions: { provider: custom, model: qwen2.5-coder:7b, base_url: http://localhost:11434/v1, api_key: ollama } }不同版本对base_url的字段名可能不同有的叫endpoint有的叫base_url。如果修改后不生效优先查看 Zed 日志中的请求错误。使用本地模型时要注意硬件条件。7B 模型量化后至少需要 6 GB 左右的内存如果同时打开浏览器和 IDE建议 16 GB 内存起步。模型过大会导致首 token 延迟很高Edit predictions 反而变成负担。4.3 使用其他兼容 OpenAI 的接口如果你有第三方模型服务的 API Key也可以把 Edit predictions 指向自己的账户。这样代码会发送到该服务的服务器适合对隐私要求不高、但希望获得更好模型质量的场景。配置示例{ edit_predictions: { provider: openai, model: gpt-4o-mini } }如果你的模型服务提供了 OpenAI 兼容协议但域名不是官方域名那么通常还需要配置base_url和密钥环境变量。Zed 支持从环境变量中读取 API Key例如export OPENAI_API_KEYsk-... export OPENAI_BASE_URLhttps://your-api.example.com/v1然后把 provider 配置为对应名称。要注意不要把自己的 API Key 硬编码到settings.json中尤其不要提交到 Git 仓库。推荐使用环境变量或 Zed 的密钥管理方式。4.4 别忘了关闭 Zed 托管的预测开关切换 provider 后一个常见问题是旧配置仍然生效或者 Zed 默认还是会先请求自己的服务。遇到这种情况可以先确认是否还有旧配置残留。比如原先配置是{ edit_predictions: { provider: zed, model: zed-edit-predictions } }切换后没有删除旧字段导致 Zed 读取到了两个互相冲突的配置。JSON 对象不允许重复键所以通常不会同时存在但如果你是从旧版本升级可能会存在项目级配置与用户级配置的叠加。项目级配置的优先级更高如果项目里.zed/settings.json中写了旧的 provider用户级的本地配置会被覆盖。排查方法就是分别查看用户级和项目级配置确认没有旧 provider 残留。推荐做法切换配置后先执行Zed: Reload Workspace再打开一个文件光标停在代码中间观察是否出现灰色预测。如果没有再到日志里看请求是否成功。5. 保留免费体验的替代路径5.1 用普通自动补全 快捷键触发 AI如果你不想为 Edit predictions 单独配置模型也可以退回到传统自动补全LSP 提供的补全依然免费而且对于变量、函数、类名足够可靠。缺点是它不具备“编辑意图预测”能力不会自动补出整段逻辑。你可以把 AI 能力改成手动触发。Zed 的 Assistant Panel、Inline Chat 或类似功能可以选中代码后直接向模型提问。这种方式不需要在每次停顿时都发送请求成本更低也不会被打断。5.2 使用内联聊天或 Assistant 面板如果 Edit predictions 不可用但你还想快速生成代码片段可以选中一段代码或把光标放到目标位置。打开 Assistant Panel。输入类似“把这段代码改成异步版本”的指令。将返回结果插入文件。这样虽然不像 Edit predictions 那样“自动出现”但胜在可控。它在部分场景下甚至比自动预测更高效因为你主动描述意图模型能更准确理解要做什么。5.3 降级后的编辑器体验如何调整失去 Edit predictions 后编辑体验会有变化但不一定变差。很多 Zed 用户可以配合以下习惯来维持效率开启多光标编辑和列选择减少重复字符输入。使用 LSP 的重命名、跳转定义、快速修复等功能。为高频代码块配置 Snippet例如for、fn、if的补全。在需要生成较长逻辑时直接打开 Assistant Panel 或 Inline Chat而不是等待自动预测。对于追求效率的开发者这套组合在大多数日常场景下并不比 Edit predictions 慢。Edit predictions 更适合特定模式连续修改结构相似的代码例如批量替换、批量补充字段。6. 常见问题排查Predictions 不显示、Agent 面板不出现6.1 排查顺序开关、Provider、模型、日志当 Edit predictions 不显示时不要先怀疑软件坏了按下面顺序排查确认当前计划在 10 月 7 日后是否包含 Edit predictions。如果你用免费 Personal 计划且没有配置自定义 provider那么不显示是预期行为。确认settings.json中edit_predictions配置存在且没有拼写错误。确认 provider 名称匹配 Zed 当前版本支持的写法。确认模型名称存在。使用 Ollama 时可以用ollama list查看已拉取模型。查看 Zed 日志搜索edit prediction、prediction、completion等关键字。下面是常用的日志位置平台日志目录macOS~/Library/Application Support/Zed/logs/Linux~/.local/share/zed/logs/Windows%APPDATA%\Zed\logs\查看最近日志tail -f ~/.local/share/zed/logs/zed.log如果日志中出现连接被拒绝说明模型服务没有启动或端口不对如果出现 401说明 API Key 无效如果出现 429说明触发了限流。6.2 Zed Agent 不显示时的重点检查有些用户搜索“zed agent 不显示”这个问题和 Edit predictions 不一定相同但都会造成“AI 功能消失了”的观感。Agent 面板不显示通常和以下因素有关当前版本没有开启 Agent 入口。当前项目类型或语言没有可用的 Agent 上下文。网络请求失败导致面板无法加载模型状态。快捷键绑定被覆盖命令面板也找不到对应命令。建议先从命令面板搜索Zed: Open Agent如果命令存在但执行后无反应查看日志。如果命令本身不存在可能是版本太旧或构建版本不包含 Agent 功能。不要同时打开大量设置项去猜日志里会有更明确的信息。如果没有日志关键字就先更新 Zed 到最新稳定版再验证一次。6.3 日志怎么看从现象倒推到原因以一个常见场景为例Edit predictions 一直不出现日志里出现request to ollama failed: connect ECONNREFUSED 127.0.0.1:11434说明 Ollama 没有运行或者端口被占用。解决方式是启动 Ollamaollama serve另一个场景日志里出现model not found: qwen2.5-coder:7b说明模型没有拉取运行ollama pull qwen2.5-coder:7b还有一个容易忽略的问题Ollama 只绑定了127.0.0.1而 Zed 配置中写的地址是localhost。大多数时候两者等价但如果系统对localhost解析为 IPv6 的::1而服务只监听 IPv4就会出现连接失败。此时可以显式写成http://127.0.0.1:11434/v1这些排查方式对所有基于 HTTP 的模型服务都适用。记住一个原则先确认请求有没有发出去再确认响应是什么最后才去怀疑 UI 渲染问题。7. 中文使用场景与配置建议7.1 中文输入法下候选框和快捷键冲突在 Zed 中输入中文时有些用户会遇到输入法候选框不跟随光标、候选框消失、或者误触 Tab 键接受预测后却把中文上屏等问题。这其实和 Edit predictions 的交互有直接关系。当输入法处于中文输入状态时按下 Tab 键本意是切换候选词或输入法行为但 Zed 可能会把 Tab 解释为“接受 Edit predictions”。因此使用中文输入法时建议把编辑预测的接受键从 Tab 改成其他按键或者在使用中文输入时切换到普通模式。如果你依赖 Tab 接受预测又经常输入中文可以在中文输入法下关闭 Edit predictions需要时再手动打开{ edit_predictions: { mode: manual } }manual模式下预测不会自动出现需要主动触发这样可以避免中文输入时的误操作。7.2 编辑器语言和拼写检查如何设置Zed 历史上并没有像某些编辑器那样提供完整的简体中文界面包最新版本是否加入简体中文支持要以官方发布说明为准。如果你看到网络热词“zed 设置中文”大概率指的是中文输入法配置而不是界面语言。如果需要在编辑器内正确处理中文注释的拼写检查可以在设置中关闭英文拼写检查或把中文词库加入词典否则中文注释会被标记为拼写错误。这是体验问题和 Edit predictions 没有直接关系。建议在settings.json中检查与spellcheck相关的配置关闭对中文文件的长篇警告避免视觉噪声影响预测结果的阅读。7.3 不要混淆 Zed 编辑器与 Zed 单目相机部分搜索热词里包含“zed 单目相机”这里需要提醒一句那是 Stereolabs 公司的 Zed 系列深度相机和本文讨论的 Zed 代码编辑器是不同产品。两者的配置文件、 SDK、生态完全不同。如果你搜索 Zed 的 AI 配置却看到了相机标定、深度图、SLAM 之类的内容说明搜到了错误产品。请确认你的标题关键词是Zed editor Edit predictions Zed AI settings这个区分对排查问题很重要因为很多中文资料会把两者混在一起导致你花了很长时间找不存在的“Zed 相机编辑预测”。8. 迁移到付费或降级成免费方案的检查清单8.1 决策前要评估的三个指标在 10 月 7 日之前建议先判断自己是否真的需要 Edit predictions。可以从三个指标评估触发频率你每天在编辑代码时有多少次会停下来等待预测如果很少完全不需要付费。可接受延迟你希望预测在多少毫秒内出现本地模型的 7B 量化版本第一次加载可能较慢之后延迟尚可但和 Zed 托管的高性能模型相比仍有差距。隐私要求代码片段是否会发送到第三方模型服务如果公司要求代码不出内网本地模型几乎是唯一选择。把这三点列成表决策会清晰很多。8.2 迁移检查清单无论你是升级套餐还是转向本地模型都可以按下面清单执行检查项操作备份配置复制现有settings.json确认可回滚确认版本查看 Zed 版本号记录当前构建号选择 provider决定是zed托管还是ollama或自定义接口设置模型确认模型名称、API 地址、API Key 来源运行验证打开项目停顿触发预测确认灰色文本出现查看日志检查是否有错误请求、超时、鉴权失败输入法回归切换中文输入法测试 Tab 键是否冲突回滚预案如果效果不达预期保留旧配置方便恢复每次调整后只改一个变量不要一次性把所有配置都改掉否则出问题后很难定位。8.3 后续关注点10 月 7 日之后建议留意以下几点官方是否把 Edit predictions 并入其他套餐或者调整了免费额度。Zed 是否支持在免费计划中继续体验“每分钟有限次”的预测。本地模型生态是否有更适合 Zed 的新模型比如更小的参数、更快的推理、更好的代码生成质量。你的团队是否统一使用 Zed是否需要把配置和模型服务做成团队级方案。对于多数个人开发者第一条建议其实是不要急着付费。先把本地模型跑通体验一个完整工作日后再决定是否值得为托管预测付费。毕竟 Edit predictions 是很强但其它编辑方式也足以维持高效工作。