Pick Ollama if the model runs on your own laptop or desktop: it installs as an app, runs GGUF models on Apple, NVIDIA and AMD GPUs, and needs no Python setup. Pick vLLM if you serve a model from a Linux GPU server to several users or many parallel requests, and want Hugging Face models with high-throughput batching. Atomic Agent works with both: Ollama through a built-in preset, vLLM as an OpenAI-compatible provider.
Checked on 22 Oct 2026 against the official docs linked below and Atomic Agent v0.6.10 (terminal) and Desktop v0.0.4.
vLLM vs Ollama at a glance
| vLLM | Ollama | |
|---|---|---|
| Built for | Serving models to many requests on GPU servers | Running models on a personal machine |
| Install | Python package (uv pip install vllm), Docker images | App (macOS, Windows), install script (Linux) |
| Start | vllm serve <hf-model-id> | Desktop app or ollama serve |
| Default address | http://localhost:8000 | http://localhost:11434 |
| Model formats | Hugging Face repos; GGUF experimental via plugin | GGUF; imports GGUF and Safetensors |
| API | OpenAI-compatible (chat, completions, responses, embeddings), Anthropic Messages | Native REST API and an OpenAI-compatible subset |
| Tool calling | Needs --enable-auto-tool-choice and --tool-call-parser | Per model, no server flags |
| Auth | --api-key or VLLM_API_KEY | None for local use |
| Hardware | NVIDIA CUDA, AMD ROCm, Intel XPU, TPU, CPU; Apple Silicon via vLLM-Metal | NVIDIA, AMD (ROCm, Vulkan), Apple Metal, CPU |
| License | Apache-2.0 | MIT |
| In Atomic Agent | OpenAI-compatible provider (custom base URL) | Ollama (local) preset |
Sources: vLLM quickstart, vLLM installation, vLLM online serving, Ollama docs, Ollama hardware support.
Setup
vLLM is a Python package. The quickstart creates a uv environment, installs vllm, and starts a server with one model:
vllm serve Qwen/Qwen2.5-7B-Instruct --enable-auto-tool-choice --tool-call-parser hermesThe server runs on port 8000 and hosts one model at a time; --host and --port change the address (vLLM quickstart). The quickstart lists Linux as the OS, with a separate path for Apple Silicon.
Ollama installs as an app on macOS and Windows and as a service on Linux. The server listens on 127.0.0.1:11434, and you pull and switch models by name without restarting it (Ollama CLI).
Model formats
vLLM serves models from Hugging Face repositories (Safetensors weights plus the tokenizer and chat template). GGUF support is described as highly experimental and under-optimized, and it now requires the separate vllm-gguf-plugin (vLLM GGUF).
Ollama is built around GGUF: it pulls quantized models from its library and imports your own GGUF or Safetensors weights through a Modelfile (Ollama: import).
API compatibility and tool calling
Both speak the OpenAI API, so the same client code works against either with a different base URL.
- vLLM implements
/v1/chat/completions,/v1/completions,/v1/responses,/v1/embeddings, Anthropic/v1/messages, plus/healthand/v1/models(online serving). Tool calls only come back when the server runs with--enable-auto-tool-choiceand a parser for the model family (tool calling). - Ollama implements a subset of the OpenAI API, including
/v1/chat/completionsand/v1/responses, next to its native API (OpenAI compatibility). Tool calls depend on the model; there is no server flag.
For an agent, the vLLM flags are the most common thing to get wrong: without them the model answers in plain text and never runs a tool.
Hardware
vLLM lists NVIDIA CUDA, AMD ROCm, Intel XPU and Apple Silicon (through vLLM-Metal) for GPUs, CPU support for x86, ARM and Apple silicon, and TPUs through vllm-tpu (vLLM installation).
Ollama documents NVIDIA from compute capability 5.0, AMD Radeon through ROCm with extra cards through Vulkan, and Metal on Apple GPUs (Ollama hardware support).
Throughput and speed
vLLM’s README names state-of-the-art serving throughput, PagedAttention for KV cache memory, continuous batching, chunked prefill and prefix caching as its core features (vLLM README). Those matter most when many requests arrive at once. For one person and one agent on one machine, that advantage is smaller. We have not benchmarked vLLM against Ollama, so this page gives no speed numbers.
How each works inside Atomic Agent
Both are OpenAI-compatible providers in Atomic Agent: the agent lists model ids from /v1/models and chats through /v1/chat/completions, sending tools in the OpenAI tools field.
Ollama has a built-in preset. Ollama (local) saves http://localhost:11434, needs no key and sends no Authorization header. Desktop: Settings › Models › Cloud providers › Add provider › Ollama (local). Terminal: /llm, Cloud, n, Ollama (local). Guide: Use with Ollama.
vLLM has no preset. Add the generic OpenAI-compatible provider (desktop: OpenAI-compatible API (custom base URL)) with the server’s base URL, the --api-key value, and the model id. On a loopback address the key is optional; for a remote server the wizard asks for one. Two settings help with vLLM specifically:
userModels[].contextWindowtells the agent the real context window of your deployment, since the agent reads only model ids from/v1/models."messageShape": "flat"is for a server that rejects tool-role messages (a 400 about roles); the agent also falls back to it by itself after such an error.
Guide: Use with vLLM.
If you mainly want a local agent on one machine, there is a third route: Atomic Agent’s own managed llama.cpp, which downloads GGUF models and constrains tool calls with a grammar. See Use with llama.cpp.
Which one should you pick?
Choose Ollama for a model on your own computer, set up in minutes and managed by name. Choose vLLM for a shared GPU server, Hugging Face models in their original format, and many parallel requests, and remember the tool-calling flags if an agent will use it. Atomic Agent connects to either one, and you can keep both configured and switch between them with /llm provider or in Settings.