llama.cpp server在 2025年12月11日发布的版本中正式引入了 router mode(路由模式),如果你习惯了 Ollama 那种处理多模型的方式,那这次 llama.cpp 的更新基本就是对标这个功能去的,而且它在架构上更进了一步。

路由模式的核心机制
简单来说,router mode 就是一个内嵌在 llama.cpp 里的模型管理器。
以前跑 server,启动时需要指定一个模型,服务就跟这个模型绑定了。要想换模型?要么停服务、改参数、重启,要么直接启动多个服务,而现在的路由模式可以动态加载多个模型、模型用完后还可以即时卸载,并且在不同模型间毫秒级切换,最主要的是全过程无需重启服务,这样我们选择一个端口就可以了。
这里有个技术细节要注意:它的实现是多进程的(Each model runs in its own process)。也就是说模型之间实现了进程级隔离,某个模型如果跑崩了,不会把整个服务带崩,其他模型还能正常响应。这种架构设计对稳定性的考虑还是相当周到的。
启动配置与自动发现
启用方式很简单,启动 server 时不要指定具体模型即可:
llama-server
服务启动后会自动扫描默认缓存路径(LLAMA_CACHE 或 ~/.cache/llama.cpp)。如果你之前用 llama-server -hf user/model 这种方式拉取过模型,它们会被自动识别并列入可用清单。
但是我们一般会把模型存放在特定目录,指定一下就行:
llama-server --models-dir /llm/gguf
这个模式不仅是'能加载'那么简单,它包含了一套完整的资源管理逻辑:
- Auto-discovery(自动发现):启动即扫描指定目录或缓存,所有合规的 GGUF 文件都会被注册。
- On-demand loading(按需加载):服务启动时不占满显存,只有当 API 请求真正过来时,才加载对应模型。
- LRU eviction(LRU 淘汰):可以设置最大驻留模型数(默认是 4)。当加载新模型导致超出限制时,系统会自动释放那个最近最少使用的模型以腾出 VRAM。
- Request routing(请求路由):完全兼容 OpenAI API 格式,根据请求体中的
model字段自动分发流量。
调用实测
通过 API 调用特定模型,如果该模型未加载,首个请求会触发加载过程(会有冷启动延迟),后续请求则是热调用。
curl http://395-1.local:8072/v1/chat/completions \ -H "Content-Type: application/json"\ -d '{ "model": "gpt-oss-120b-GGUF/gpt-oss-120b-mxfp4-00001-of-00003.gguf", "messages": , '


