
Zed 本地模型接入实战llama.cpp、Ollama 与 LM Studio 的完整配置指南【免费下载链接】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本文基于 Zed 官方文档 Use a Local Model系统讲解如何在本机或自有基础设施上运行大模型并将其接入 Zed 的 Agent、Inline Assistant 等 AI 功能。你将掌握 llama.cpp、Ollama、LM Studio 三条本地推理路径的安装与服务启动步骤、settings.json中language_models配置的各参数含义api_url、auto_discover、available_models、context_window等并理解 Zed 源码中模型自动发现、上下文长度协商与能力探测tools/vision/thinking的底层实现。本地模型的适用场景与总体路线当你希望模型运行在自己控制的机器上不经过云端时就走“本地模型”这条路。Zed 支持的本地接入方式及各路径覆盖的功能如下引自原文档的能力矩阵本地路径Zed AI 功能External AgentsTerminal Threads说明llama.cpp支持需单独配置需单独配置为 Zed AI 功能配置 llama.cpp 服务器LM Studio支持需单独配置需单独配置为 Zed AI 功能配置 LM StudioOllama支持需单独配置需单独配置为 Zed AI 功能配置 Ollama本地 OpenAI 兼容服务支持需单独配置需单独配置配置 base URL、模型必要时配置 key本地/自托管 Edit Prediction仅 Edit Prediction不支持不支持使用 Edit Prediction 的独立配置需要注意的边界外部 AgentExternal Agents与终端 CLI 的本地模型配置是独立体系需要在对应 agent 或 CLI 侧自行配置本文只覆盖在 Zed 内配置的本地模型。Zed 通过一组独立的 crate 与各本地推理服务通信核心文件为llama.cpp 客户端对接 llama.cpp 内置服务器Ollama 客户端对接 Ollama HTTP APILM Studio 客户端对接 LM Studio 的 OpenAI 风格 API设置内容定义定义language_models各 provider 的 JSON 设置结构。llama.cpp使用其内置服务器llama.cpp 自带 HTTP 服务器可直接为 Zed Agent、Inline Assistant 等模型驱动功能提供服务。步骤从 llama.app 安装 llama.cpp以 router 模式启动内置服务器llama serverouter 模式下模型按需求从 llama.cpp 缓存中加载。若想一步完成“下载并运行某个模型”可传入-hf参数直接拉取 Hugging Face 上的 GGUFllama serve -hf unsloth/gemma-4-26B-A4B-it-GGUF:BF16在 Zed 的模型下拉框中选择该 llama.cpp 模型即可。模型自动发现与手动声明Zed 会自动发现 llama.cpp 正在服务的模型及其上下文长度、tools/vision 能力。在 router 模式下当某个模型实际加载后Zed 会通过服务器的/models/sse事件流再次精化这些能力信息需要较新的 llama.cpp 构建才提供该端点。如果你不想依赖自动发现例如想固定展示某个模型、或服务器版本过旧把auto_discover设为false并手动列出模型{ language_models: { llama.cpp: { api_url: http://localhost:8080, auto_discover: false, available_models: [ { name: gemma-4-12b-it-GGUF:BF16, display_name: gemma-4-12b-it-GGUF:BF16, max_tokens: 32768, supports_tools: true, supports_images: false } ] } } }结合源码看各参数的作用api_urlllama.cpp 客户端的默认地址在 llama_cpp.rs 中硬编码为http://localhost:8080与示例一致远程服务器则改成对应端点auto_discover对应 设置定义 中LlamaCppSettingsContent.auto_discover注释明确“默认true即自动发现服务器提供的模型”available_models每项字段name、display_name、max_tokens、supports_tools、supports_images、supports_thinking与LlamaCppAvailableModel结构一一对应。其中name是服务器报告的模型 id即--alias或模型文件路径max_tokens即上下文长度n_ctx。发现机制的底层流程客户端通过GET {api_url}/v1/models列出模型单模型模式返回 1 条带meta.n_ctx的记录router 模式返回全部已知模型并带status/architecture字段见 get_models 实现通过GET /props读取已加载模型的default_generation_settings.n_ctx运行时上下文、modalities.vision是否支持图像与chat_template_caps是否支持 tool calls / reasoning见 get_props 与 Props 解析。router 模式下该接口用 URL 编码的?model查询参数选择实例因为模型 id 中含/和:router 模式下客户端持续订阅/models/sse事件流仅当出现loaded/unloaded/models_reload/model_remove等终态事件时触发重新发现中间态的加载进度loading 分阶段 progress则用于在模型选择器中展示 “Loading weights 42%” 之类的进度标签实现见 ModelEvent 与 LoadProgress并有配套单测覆盖加载进度、加载失败非零 exit_code等边界场景。llama.cpp 的上下文长度Zed 默认使用服务器报告的上下文长度/props中的n_ctx。两个覆盖方式对所有模型统一覆盖context_window对单个模型覆盖available_models中的max_tokens。{ language_models: { llama.cpp: { context_window: 8192 } } }若未做任何配置源码中的兜底默认值是DEFAULT_CONTEXT_LENGTH 4096llama_cpp.rs#L17也就是服务器未报告时按 4096 token 处理。llama.cpp 鉴权如果 llama.cpp 服务器要求 key在 provider UI 中输入或设置环境变量LLAMACPP_API_KEY。远程服务器的做法是把api_url指向其端点并提供 key服务器侧用--api-key设置。从源码看key 会以Authorization: Bearer {key}头附加到/v1/models、/props、/models/sse和/v1/chat/completions全部请求上。Ollama最常用的本地模型管理器使用 Ollama 为 Zed Agent、Inline Assistant 等功能提供本地模型从 ollama.com/download 下载安装 Ollama拉取一个模型ollama pull mistral确保 Ollama 服务在运行。macOS 上打开 Ollama.appLinux 或 shell 中执行ollama serve在 Zed 的模型下拉框中选择该 Ollama 模型。Zed 会自动发现 Ollama 已拉取的模型。要关闭自动发现并手动列出模型配置auto_discover{ language_models: { ollama: { api_url: http://localhost:11434, auto_discover: false, available_models: [ { name: qwen2.5-coder, display_name: qwen 2.5 coder, max_tokens: 32768, supports_tools: true, supports_thinking: true, supports_images: true } ] } } }参数说明结合 设置定义api_url默认http://localhost:11434ollama.rs#L12远程 Ollama如 Ollama Turbo指向远端端点即可available_models每项还支持keep_alive字段可写秒数5或时长字符串5m、1h。从源码看未显式指定时 Zed 对自动发现的模型默认使用KeepAlive::indefinite()即keep_alive: -1模型会一直驻留内存直到加载新模型或 Ollama 退出见 Model::new。手动声明的模型可按需缩短保活时间以释放显存supports_tools/supports_images/supports_thinking均为可选字段手动声明时用于告知 Zed 该模型的能力自动发现时则由POST /api/show返回的capabilities数组含tools、vision、thinking时判定为支持得出ModelShow。Ollama 的上下文长度num_ctx发往 Ollama 的请求把上下文长度作为num_ctx参数传递默认使用4096tokenget_max_tokens的默认值ollama.rs#L27-L30。对所有 Ollama 模型统一设置上下文长度{ language_models: { ollama: { context_window: 8192 } } }也可以像上文一样用available_models中的max_tokens按模型单独设置。从实现看num_ctx会进入ChatRequest.optionsChatOptions随POST /api/chat一起发送单测test_chat_options_serialization还验证了“stop未设置时不出现在请求 JSON 中让 Ollama 使用模型自带的默认 stop token”这一细节。Ollama 鉴权服务器需要 key 时在 provider UI 输入或设置OLLAMA_API_KEY远程 Ollama 服务如 Ollama Turbo同样是指定api_url 提供 API key。LM Studio开箱即用的本地推理 GUILM Studio 提供图形界面与命令行两种模型管理方式下载并安装 LM Studio在 LM Studio 中下载至少一个模型或使用其 CLIlms get qwen2.5-coder-7b启动 LM Studio 的 API 服务器lms server start在 Zed 的模型下拉框中选择该 LM Studio 模型。若 LM Studio 服务器要求 key在 provider UI 输入或设置环境变量LMSTUDIO_API_KEY。源码侧要点lmstudio.rs默认端点是http://localhost:1234/api/v0与 LM Studio 内置 OpenAI 风格 API 对应LM Studio 的设置项包含api_url、api_key、available_models、custom_headersLmStudioSettingsContent手动声明模型时字段为name、display_name、max_tokens、supports_tool_calls、supports_images未指定max_tokens时源码默认2048Model::new因此建议在available_models中显式写大一些。本地 OpenAI 兼容服务任何暴露 OpenAI 兼容 API 的本地或自托管服务器都可以走 Zed 的 OpenAI 兼容接入方式配置 base URL、模型列表与 key详见 Use API Access 中 OpenAI-compatible 一节。这类服务器包括各种自托管网关无需 Zed 内置 provider直接复用openai_compatible设置即可。本地 Edit PredictionZed 的 Edit Prediction编辑预测/自动补全建议有独立的 provider 体系不走上述language_models配置。本地与自托管的 Edit Prediction 选项如本地 OpenAI 兼容端点等请见 Edit Prediction。它只服务 Edit Prediction 功能不用于 Agent 或 Terminal Threads。验证配置是否生效的实操建议先在模型下拉框里确认本地模型出现llama.cpp/Ollama 走自动发现时模型列表会随服务器状态变化router 模式下模型加载完成后能力信息会被精化上下文不匹配时优先检查context_window与服务器实际n_ctx/num_ctx是否一致——Zed 会按声明的窗口管理提示词而服务器端实际容量不同可能导致请求被截断或拒绝自动发现不可用时回退到auto_discover: false 手写available_models并逐项核对name必须是服务器 API 中真实的模型 id/路径/别名、max_tokens与能力开关各 provider 的api_url默认值llama.cpp 8080 端口、Ollama 11434 端口、LM Studio 1234 端口均来自源码常量远程部署时改api_url并配合对应环境变量LLAMACPP_API_KEY、OLLAMA_API_KEY、LMSTUDIO_API_KEY提供鉴权即可。以上配置全部写入settings.json的language_models节点设置结构定义可进一步参考 crates/settings_content/src/language_model.rs 与 crates/language_models/src/settings.rs。【免费下载链接】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),仅供参考