Instructions to use mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit") config = load_config("mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit
Run Hermes
hermes
- OpenClaw new
How to use mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "mlx-community/Devstral-Small-2-24B-Instruct-2512-8bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Fix chat template: make user/assistant alternation check tool-aware
Summary
This mirrors the upstream fix proposed inmistralai/Devstral-Small-2-24B-Instruct-2512 (discussion #30).
The chat template rejects a valid multi-turn tool-use conversation in which auser message follows a tool round (assistant tool call + tool result) without
an intervening assistant text message, e.g.:
user -> assistant(tool_calls) -> tool -> user
The alternation check counts user and assistant-without-tool_calls messages
and requires strict user/assistant alternation, silently skipping tool-call and
tool messages. This puts the follow-up user on the wrong parity and raises:
After the optional system message, conversation roles must alternate user and assistant roles except for tool calls and results.
OpenAI-compatible servers that use this template (e.g. mlx-lm) wrap the template
exception as an HTTP error, so this surfaces as confusing failures downstream
(e.g. HTTP 404 "model not found") during agent tool loops.
Fix
Make the check tool-aware: tool calls and tool results now reset the
alternation state instead of being skipped. A user (or assistant) turn may
follow a tool round, while genuinely malformed conversations (two consecutiveuser messages, or two consecutive assistant text messages, with no tool
activity between) are still rejected. The error message and message rendering
are unchanged.