Instructions to use BurtleLife/vessel-handoff-MiniCPM5-2B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K # Run inference directly in the terminal: llama cli -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K # Run inference directly in the terminal: llama cli -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K # Run inference directly in the terminal: ./build/bin/llama cli -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
Use Docker
docker model run hf.co/BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
- Llama new
- LM Studio
- Jan
- vLLM
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "BurtleLife/vessel-handoff-MiniCPM5-2B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "BurtleLife/vessel-handoff-MiniCPM5-2B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
- Ollama
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with Ollama:
ollama run hf.co/BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
- Unsloth Desktop
- Pi
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with Docker Model Runner:
docker model run hf.co/BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
- Lemonade
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
Run and chat with the model
lemonade run user.vessel-handoff-MiniCPM5-2B-Q6_K
List all available models
lemonade list
- Hermes Agent
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
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 BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use BurtleLife/vessel-handoff-MiniCPM5-2B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K
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 "BurtleLife/vessel-handoff-MiniCPM5-2B:Q6_K" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
vessel-handoff-MiniCPM5-2B
A small, fast decision model for voice assistants: does this spoken request need the agent's tools, or can the voice just answer? Fine-tuned from openbmb/MiniCPM5-2B for Hermes Vessel's private Local voice. There, a full-duplex speech model (MiniCPM-o 4.5) does the talking but can't use tools, Whisper turns the user's speech into text, and this model decides, in about a tenth of a second on a GPU or 1-2 s on a CPU, when to hand the user's words to the Hermes agent.
| File | What | Size |
|---|---|---|
MiniCPM5-2B-vessel-handoff-Q6_K.gguf |
recommended (used by Vessel's installer; same scores as Q8_0) | 2.1 GB |
MiniCPM5-2B-vessel-handoff-Q8_0.gguf |
near-lossless | 2.7 GB |
lora/ |
the LoRA adapter (PEFT) on openbmb/MiniCPM5-2B |
100 MB |
router_prompt.json |
the system prompt, tool definition and request settings it was trained and measured with |
Use
llama-server -m MiniCPM5-2B-vessel-handoff-Q6_K.gguf --jinja -c 4096 --port 8799 # llama.cpp b12177 or newer
Send the system prompt and use_tools tool from router_prompt.json, the user's transcribed words as the user
message, temperature: 0, thinking off (chat_template_kwargs: {"enable_thinking": false}). Only the decision is
needed, so max_tokens: 4 is enough: a reply that starts with <function means hand off (pass the user's own
words to the agent); anything else means chat (let the voice answer). If a transcript holds two sentences and
the whole reads as chat, also check the last sentence alone.
Why fine-tune
The base model with thinking off is fast but refused instead of calling tools (4 of 57 held-out tool requests called). With thinking on it called tools but took 0.6 s and rewrote requests, sometimes into a different task ("remind me to call Sam" became "check memory for any information about Sam"). The fine-tune does the right thing with thinking off, and passes the user's words on unchanged.
Results
| Test (written transcripts) | Base, thinking off | Base, thinking on | This model |
|---|---|---|---|
| Held-out tool requests handed off | 4/57 | 54/57 | 57/57 |
| Held-out chat kept as chat | 40/40 | 40/40 | 40/40 |
| Hand-offs with words the model added | - | 52/54 | 0/57 |
| Fresh phrasings, not from any training template | 14/24 | - | 24/24 |
| 16-sentence benchmark | 10/16 | 15/16 | 16/16 |
Quantized: Q8_0 and Q6_K kept every score above (also in decision-only mode, 4 tokens, on CPU: 57/57, 40/40, 24/24); a Q4_K_M build lost one chat and one fresh case, so it isn't published. Decision time: ~0.1-0.2 s on an RTX 5080, ~1.5-2 s on 8 laptop efficiency cores (Core Ultra 5 125H) in decision-only mode.
Measured on written transcripts and recorded speech in one TTS voice; not yet on a wide range of real voices.
Training
LoRA r=16, alpha=32, on all attention and MLP projections; 3 epochs; ~6 minutes on one RTX 3090 (11.6 GB peak). About 560 spoken-style examples:
- Tool requests from slot-filled templates: weather, the user's machines and services, calendar, smart home,
personal memory, the web, files and messages, with transcript noise (fillers, lower case, no punctuation). The
target is a
use_toolscall whose request is the user's own words, cleaned, never expanded. - Chat: small talk, general knowledge, opinions, feelings, and hard negatives ("what's a parlay?" vs "what did Alex and I bet on?"). Replies come from the base model's own thinking-mode answers, so training changes only when it calls a tool, not how it talks.
- Held out for evaluation: whole slot values (a city, a host, a person, a store, a league) and the benchmark sentences.
The training set is synthetic but written around one person's life (names, places, machines), so it isn't
published; the recipe and scripts are described in the Vessel repository (docs/local-voice.md).
Limits
- English only. Built for one agent's tool set (files, web, memory, calendar, smart home, code); other agents may need different examples.
- It decides; it doesn't answer. Chat replies it writes are not meant to be spoken (the voice model does that).
License
Apache-2.0, like the base model openbmb/MiniCPM5-2B.
- Downloads last month
- -
6-bit
8-bit
Model tree for BurtleLife/vessel-handoff-MiniCPM5-2B
Base model
openbmb/MiniCPM5-2B