seanpoyner/smolcode-coder-orchestrate-1.5b-tools

TEXT GENERATIONConcurrent Unit Cost:1Model Size:1.5BQuant:BF16Context Size:32kTool Calling:SupportedPublished:Jun 15, 2026License:apache-2.0Architecture:Transformer Open Weights Featherless Exclusive Cold

The seanpoyner/smolcode-coder-orchestrate-1.5b-tools is a 1.5 billion parameter LoRA fine-tune of Qwen2.5-Coder-1.5B-Instruct, designed to enable native function emission. This model excels at driving agentic write-run-fix-verify loops by reliably generating OpenAI-style tool calls, a capability absent in the base model. It is optimized for agentic coding assistants, particularly within the smolcode framework, and supports a 32768 token context length.

Loading preview...

Overview

This model, smolcode-coder-orchestrate-1.5b-tools, is a 1.5 billion parameter LoRA fine-tune of the Qwen2.5-Coder-1.5B-Instruct base model. Its primary innovation is enabling the reliable emission of native <tool_call> function calls, a critical feature for agentic AI systems. The base Qwen-Coder models typically describe tool calls as plain text or JSON, which breaks agentic loops that rely on parsed OpenAI-style tool_calls.

Key Capabilities

  • Native Tool Call Emission: Achieves 100% native <tool_call> emission on held-out prompts, a significant improvement over the base model's 0%.
  • Agentic Performance: Demonstrated strong performance in agentic coding tasks, solving 7 out of 10 tasks entirely on its own in the smolcode pass@1 benchmark, matching the standalone load of a 2x larger 3B parameter model.
  • Optimized Training: Fine-tuned using bf16 LoRA with full training of embed_tokens and lm_head to ensure proper <tool_call> token output. Training data included NousResearch/hermes-function-calling-v1 and synthetic smolcode tool-use trajectories, with assistant-only loss.

Usage Notes

  • Serving: Recommended to serve via the provided GGUF quantized model (smolcode-1.5b-q4_k_m.gguf) for compatibility with runtimes like Ollama.
  • repeat_penalty: Crucially, repeat_penalty (or repetition_penalty) must be set to 1.0 during inference. Values greater than 1.0 will suppress the <tool_call> token, leading to plain text or bare JSON output instead of native tool calls.