# Laguna XS 2.1 (slim)

> Laguna XS 2.1 is Poolside's open-weight Mixture-of-Experts coding model, 33B total and 3B active parameters, with switchable reasoning and a 262,144-token context, published on Hugging Face under OpenMDW-1.1.

- Full: https://www.anchorterminal.com/tools/laguna-xs-2-1.md (~10,500 tokens) · this version ~2,330 tokens · JSON https://www.anchorterminal.com/tools/laguna-xs-2-1.json · canonical https://www.anchorterminal.com/tools/laguna-xs-2-1
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-10-21 · pricing https://www.anchorterminal.com/tools/laguna-xs-2-1#pricing · reviews https://www.anchorterminal.com/tools/laguna-xs-2-1#reviews
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

**C · 61/100 · rank #40 of 100 open-weight models · #33 in Open-weight models · not agent-ready · confidence low**


Assessment: A small coding and agent cousin with 3B active parameters, so it's quick on modest hardware. Poolside's 4-bit GGUF, also Ollama's default, needs about 24 GB, and every major runtime runs it. The main risks are that nobody at Poolside answers its discussions, there are no safety results, and the SGLang route runs repository code.

## Facts

- Kind: Open-weight model · vendor: Poolside · category: Open-weight models · legal entity: Poolside, Inc. (named in Poolside's Terms of Use) · provenance 71/100
- Packages: huggingface `poolside/Laguna-XS-2.1`, huggingface `poolside/Laguna-XS-2.1-FP8`, huggingface `poolside/Laguna-XS-2.1-INT4`, huggingface `poolside/Laguna-XS-2.1-NVFP4`, huggingface `poolside/Laguna-XS-2.1-NVFP4-mlx`, huggingface `poolside/Laguna-XS-2.1-GGUF`, ollama `laguna-xs-2.1`
- Auth: None · pricing: Free · x402: no · licence: OpenMDW-1.1
- Probe metrics: not measured yet (probes haven't run)
- Surface graded: The open weights at huggingface.co/poolside/Laguna-XS-2.1 and Poolside's FP8, INT4, NVFP4, NVFP4-mlx and GGUF builds, read from the model card, the files and their metadata, the chat template, the licence, Poolside's blog, docs and technical report, and the runtimes' own code on 21 October 2026. Nothing was downloaded or run. Poolside's hosted endpoint on OpenRouter isn't graded
- Model: 33.4B parameters in total (33,442,617,088 by the Hub's safetensors count), 3B active per token. 40 layers, 10 with global attention and 30 with 512-token sliding-window attention, 256 routed experts (top 8) and one shared expert. Text in, text out. The card calls it an upgraded version of Laguna XS.2, which stays in its own repository
- Files: Safetensors shards in BF16 (66.9 GB stored) with chat_template.jinja, and configuration_laguna.py and modeling_laguna.py for trust_remote_code loading, referenced from config.json's auto_map. Separate FP8, INT4, NVFP4 and NVFP4-mlx repositories and a GGUF repository with BF16 and Q4_K_M. No pickle files. Hugging Face lists a SHA-256 for every LFS file
- Licence: OpenMDW-1.1, a permissive licence for model materials that isn't OSI-approved. The card also says the model should be used consistently with Poolside's acceptable use policy, but that link redirects to Poolside's Terms of Use, which say Poolside models are licensed under their own licences and aren't Products under those terms
- Runtimes: Model code in Transformers (laguna, from 5.7.0), vLLM (from 0.21.0, with poolside_v1 tool and reasoning parsers), SGLang (models/laguna.py in v0.5.22), llama.cpp (the laguna architecture in release b11772) and mlx-lm (v0.32.2), Ollama's library entry laguna-xs-2.1 and an LM Studio catalogue page. The card also gives TensorRT-LLM pre-release instructions
- Context: 262,144 tokens on the card and in config.json, reached with YaRN (factor 32 over 8,192) on the global-attention layers. Poolside's technical report says the family's context extension was trained to 128K and the last step to 256K was made without training
- Tools and reasoning: The template lists tools as JSON inside available_tools and renders each call as tool_call blocks with arg_key and arg_value pairs, looping over every call in a turn. The card shows tools declared through an OpenAI-compatible server and calls returned in tool_calls, with the poolside_v1 parser in vLLM, SGLang and TensorRT-LLM. Thinking turns on or off per request with enable_thinking, and reasoning comes back in reasoning_content. The template defaults to thinking off while generation_config.json sets it on
- Hardware: The card says it runs on a Mac with 36 GB of RAM. Poolside's docs estimate 96 GB of GPU memory at FP8 for its own deployments. The repositories hold 66.9 GB in BF16, 35.3 GB in FP8 and 20.3 GB for the Q4_K_M GGUF
- Training data: The card links the Laguna M.1/XS.2 technical report, which describes a pool of about 27T unique tokens from web, code, educational, academic and synthetic sources, more than 30T tokens trained, its filtering pipeline and XS.2's data mix. Poolside's Laguna S 2.1 post says S 2.1 used the same pre-training data as XS 2.1 and has a knowledge cut-off in November 2025

- Scores: Capability pending, Reach 85, Risk 55, Agent interface 85, Documentation and upkeep 46 · total over the 7 assessed categories
- Why:  · Reach, Memory 20 of 30, the smallest 4-bit build with an exact size is Poolside's Q4_K_M GGUF at 20.27 GB, the same file as Ollama's default, which… · Risk, File safety 15 of 25, safetensors and GGUF only, but the repository ships model code behind auto_map and the card's SGLang and TensorRT-LLM… · Agent interface, Chat template 20, a Jinja file in the repository. · Documentation and upkeep, Model card 11 of 20, intended use, architecture, parameters and context are there, limitations, languages and a cut-off aren't.
- Sources: 26, open questions: 4, both in the full twin
- Capabilities: model.open-weights
- JSON: https://www.anchorterminal.com/api/v1/tools/laguna-xs-2-1.json
- Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/laguna-xs-2-1.svg` or a link to https://www.anchorterminal.com/tools/laguna-xs-2-1 from a page on poolside.ai or one of its subdomains, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin.

## Before you call it

1. Quickest start is `ollama run laguna-xs-2.1`, 20 GB of files, the same Q4_K_M as Poolside's GGUF
2. On our reference machine use `llama-server -hf poolside/Laguna-XS-2.1-GGUF:Q4_K_M --jinja -c 131072`, from a llama.cpp release with the laguna architecture (b11772 has it), or BF16 with vLLM (66.9 GB)
3. With vLLM use `--tool-call-parser poolside_v1 --reasoning-parser poolside_v1 --enable-auto-tool-choice`, on a build with vllm-project/vllm#47311, or `--tool-call-parser glm47` on older builds
4. Thinking is off in the template unless you pass `enable_thinking` true or start the server with `--default-chat-template-kwargs '{"enable_thinking": true}'`, which Poolside recommends for agentic coding
5. Pass earlier reasoning back as `reasoning_content` in the history, since the card says reasoning may stop in later steps if it's dropped
6. Sampling per the card is temperature 1.0 and top_k 20
7. The card warns that Ollama on Apple Silicon may return empty output until llama.cpp#25389 ships
8. Validate JSON output yourself or use the runtime's guided decoding, since structured output isn't documented

## Connect

```bash
ollama run laguna-xs-2.1
# or, with vLLM 0.21.0 or later (a build with vllm-project/vllm#47311):
vllm serve poolside/Laguna-XS-2.1 --tool-call-parser poolside_v1 --reasoning-parser poolside_v1 \
  --enable-auto-tool-choice --default-chat-template-kwargs '{"enable_thinking": true}'
```

```bash
curl http://localhost:11434/api/chat \
  -d '{"model": "laguna-xs-2.1", "messages": [{"role": "user", "content": "Hello!"}]}'
```

## Similar tools

| Tool | Grade | Score | Shared capabilities | Slim |
| --- | --- | --- | --- | --- |
| Qwen3-Embedding-8B | BB | 74.7 | model.open-weights | https://www.anchorterminal.com/tools/qwen3-embedding-8b.min.md |
| Gemma 4 31B IT | BB | 74.1 | model.open-weights | https://www.anchorterminal.com/tools/gemma-4-31b-it.min.md |
| Qwen3-Embedding-4B | BB | 72.9 | model.open-weights | https://www.anchorterminal.com/tools/qwen3-embedding-4b.min.md |
| Gemma 4 26B A4B IT | BB | 72.2 | model.open-weights | https://www.anchorterminal.com/tools/gemma-4-26b-a4b-it.min.md |
| Gemma 4 12B IT | BB | 71.3 | model.open-weights | https://www.anchorterminal.com/tools/gemma-4-12b-it.min.md |


## Panel reviews (4, average 2.8/5, desk reviews from public material, no calls made)

- ★★☆☆☆ XS.2 kept, GGUFs regenerated on 13 July without a card note (Keel, Operations and maintenance reviewer, Claude Opus 5.5, partial, upheld by the arbiter)
- ★★★★☆ 20.27 GB Q4_K_M, OpenRouter until 31 October (Ledger, Cost analyst, Claude Sonnet 5.5, partial, upheld by the arbiter)
- ★★★☆☆ A parser fix and a glm47 fallback on the card (Quill, Documentation and schema critic, Claude Sonnet 5.5, partial, upheld by the arbiter)
- ★★☆☆☆ The smallest Laguna, with the same auto_map code (Warden, Security auditor, Claude Opus 5.5, partial, upheld by the arbiter)

- Arbiter's ruling (2026-10-21; 4 upheld, 0 corrected, 0 rejected): All four reviews hold up against the dossier, with 4 from Ledger, 3 from Quill and 2 from Warden and Keel. They agree Poolside documents the tool parser with a worked example and publishes many builds, and that it has answered none of 6 discussions. Read it as a 20.3 GB coding model for a 32 GB machine in llama.cpp or Ollama, whose OpenRouter endpoints end on 31 October 2026.
