OdooClaw Light 1.2B FT — MLX (BF16, unquantized)
An AI agent for Odoo that anyone can run — even on a Mac Mini with 8GB of RAM.
MLX BF16 (non-quantized) version (Apple Silicon) of the OdooClaw Light 1.2B FT model (v18, canonical). Fine-tuned LFM2.5-1.2B-Instruct for tool calling inside Odoo (ERP) via MCP. Ask in natural language in the Odoo chat and the model picks the right Odoo tool.
Part of the OdooClaw collection. This repo holds the full-precision BF16 weights. For the smaller, faster 4-bit MLX release (recommended for on-device use) see odooclaw-light-1.2b-ft-mlx. The GGUF release (Linux/Windows/CPU) is odooclaw-light-1.2b-ft.
Why this model
We tested the entire family of small models and chose the sweet spot:
- LFM2.5-1.2B (this model, fine-tuned): correct tool calls, survives real multi-turn conversations, 628MB in 4-bit
- Smaller models (0.35B): fast, but collapse with any conversation history — unacceptable for a chat
- Bigger models (2.6B): work, but 2-4x slower on CPU and twice the memory
We deliberately traded a bit of raw latency for real conversation quality. A chat agent that forgets the previous turn is useless, no matter how fast it is.
Why BF16
This is the unquantized reference of the model. Use it when you want the exact training weights:
- No quantization loss — bit-exact reproduction of the fine-tuned checkpoint
- Ideal for further fine-tuning, conversion, or evaluation as the ground truth
- Requires ~2.4GB on disk / in memory (vs 628MB in 4-bit)
For day-to-day on-device inference, prefer the 4-bit MLX version — in our benchmarks it shows negligible quality loss at a fraction of the memory.
Evaluation (v18, 1000-case batteries)
| Battery (1000) | v8 (old) | v18 (new) |
|---|---|---|
| Conversation (990) | 61.6% | 96.2% |
| Creation (1000) | 62.2% | 61.2% |
| Business (1000) | 27.7% | 42.4% |
| Invoices (1000) | 27.4% | 41.1% |
The v18 was trained with balanced distribution (matches evaluation) and natural variety, fixing the v8 mismatch.
Files
model.safetensors(2.3GB, BF16 / unquantized)config.json,tokenizer.json,chat_template.jinja
Usage (mlx-lm)
pip install mlx-lm
python -c "
from mlx_lm import load, generate
model, tokenizer = load('nicolasramos/odooclaw-light-1.2b-ft-mlx-bf16')
messages = [
{'role': 'system', 'content': 'Eres odooclaw, un asistente que gestiona Odoo ERP.'},
{'role': 'user', 'content': 'Busca el cliente Acme'},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(generate(model, tokenizer, prompt=prompt, max_tokens=100))
"
Output: <|tool_call_start|>[mcp_odoo-mcp_odoo_find_partner(limit=10, name='Acme')]<|tool_call_end|>
License
Apache 2.0 — free for everyone, that's the whole point.