LFM 2.5 1.2B Thinking - Fable-5 SE Agent (First Checkpoint)

This is the first checkpoint of a full fine-tuning (FFT) run, distilling the reasoning and action trajectories of advanced coding agents into a lightweight student model [1, 2].

  • Developed by: cybertruck32489
  • Model Type: Hybrid State-Space / Transformer (Liquid Foundation Model) [1]
  • Base Model: PinoCookie/LFM2.5-1.2B-Thinking-Abliterated
  • Language: English
  • License: apache-2.0

Model Description

This model is a fully fine-tuned version of LFM2.5-1.2B-Thinking-Abliterated optimized to behave as an autonomous software engineering and terminal agent [1]. It has been distilled to mimic the structured, high-signal reasoning style and precise tool orchestration of Claude-based coding pipelines [1].

Key capabilities introduced in this checkpoint:

  • Structured Reasoning: Native generation of detailed, step-by-step thinking processes enclosed inside <think>...</think> tags [1].
  • Standardized Tool Use: Precise generation of Python-style tool execution syntax wrapped in special tokens [1].
  • Terminal & Code Operations: Fine-tuned specifically for file operations (Read, Write, Edit) and shell execution (Bash) [1].

Training Details & Dataset

  • Dataset: Glint-Research/Fable-5-traces (specifically formatted from flat SFT traces) [1].
  • Context Length: 32,768 tokens (max sequence length managed stably using Unsloth) [1].
  • Training Method: Full Fine-Tuning (FFT) of all 1.17B parameters [1].
  • Optimization: 8-bit AdamW optimizer with Cosine Learning Rate schedule [1, 2].
  • Loss Masking (Completion-Only): The loss was strictly calculated only on the assistant's responses (thinking blocks and tool calls), while system instructions, user queries, and tool execution results (TOOL RESULT) were masked out (labels = -100) [1, 2]. This prevents the model from attempting to simulate terminal outputs or user inputs [1, 4].

Prompt Format / Tool Calling Template

The model expects tools to be injected in JSON format at the end of the system prompt block. Tool calls are emitted inside the assistant block using Pythonic bracket syntax [1].

Example Sequence:

<|startoftext|><|im_start|>system
You are a helpful AI assistant with access to various tools.
List of tools: [{"type": "function", "function": {"name": "Read", "description": "Read file.", "parameters": {"type": "object", "properties": {"file_path": {"type": "string"}}, "required": ["file_path"]}}}]<|im_end|>
<|im_start|>user
Inspect what's inside /workspace/server.js please.<|im_end|>
<|im_start|>assistant
<think>
The user wants to see the contents of /workspace/server.js. I have the 'Read' tool. I should invoke it with the correct file path.
</think>
<|tool_call_start|>[Read(file_path="/workspace/server.js")]<|tool_call_end|><|im_end|>

How to Use

You can load and run inference on this model using transformers or unsloth [1]:

import torch
from unsloth import FastLanguageModel
from transformers import AutoTokenizer

model_name = "cybertruck32489/LFM2.5-1.2B-Thinking-Fable5-Agent" # Replace with your exact repo path

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = model_name,
    max_seq_length = 8192,
    dtype = torch.bfloat16,
    load_in_4bit = False,
)
FastLanguageModel.for_inference(model)

# Apply your chat template with tools and generate outputs

Downloads last month
66
Safetensors
Model size
1B params
Tensor type
F32
·
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for cybertruck32489/LFM2.5-1.2B-Thinking-Fable5-Agent