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.

Downloads last month
475
Safetensors
Model size
1B params
Tensor type
BF16
·
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for nicolasramos/odooclaw-light-1.2b-ft-mlx-bf16

Finetuned
(118)
this model

Collection including nicolasramos/odooclaw-light-1.2b-ft-mlx-bf16