NanoAndy-350M

NanoAndy-350M

NanoAndy-350M is a compact, full-fine-tuned Minecraft agent model built on LiquidAI/LFM2.5-350M. It is inspired by Andy-4.1 and purpose-built to run as the "brain" of a bot in Mindcraft-CE, the community fork of the open-source Mindcraft platform that lets LLMs control Minecraft characters via Mineflayer.

At only 350M parameters, NanoAndy-350M is meant for setups where a full-size Andy-4 model isn't practical — low-VRAM GPUs, CPU-only machines, or running many bots at once.

What makes it "Nano"

NanoAndy-350M is trained on a stripped-down version of Andy-4.1's conversational data (DedeProGames/Andy-4.1-NanoAndy):

  • No chain-of-thought. All <think>...</think> reasoning traces were removed from the assistant turns. A 350M model has little spare capacity for long internal monologue, so training goes straight to the final in-game response.
  • No function-calling turns. Conversations that used external tool-role calls were dropped entirely, keeping the model focused on Mindcraft's native chat/command format instead of a JSON tool-calling schema it would rarely use well at this size.

The result is a lean, fast, direct-response model rather than a smaller reasoning model.

Model Details

Base model LiquidAI/LFM2.5-350M
Architecture LFM2 (hybrid conv + attention)
Parameters ~354M
Fine-tuning method Full fine-tune (no LoRA/adapters)
Context length 11,264 tokens
Language English
License LFM Open License v1.0 (inherited from base model)

Training

Dataset DedeProGames/Andy-4.1-NanoAndy (1,695 conversations)
Framework Unsloth
Hardware 1x NVIDIA T4 (Google Colab)
Epochs 2
Effective batch size 8 (1 x 8 grad. accumulation)
Learning rate 5e-5, cosine schedule, 15 warmup steps
Optimizer adamw_8bit
Final train loss ~0.39

Usage

NanoAndy-350M is meant to be dropped into a Mindcraft-CE bot profile (e.g. andy.json) as the chat/coding model, served locally through something like LM Studio, llama.cpp, or vLLM.

It also works with standard transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer

model_id = "DedeProGames/NanoAndy-350M"
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", dtype="bfloat16")
tokenizer = AutoTokenizer.from_pretrained(model_id)
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)

prompt = "You are a minecraft bot named Andy. A player asks you to gather 4 oak logs."
input_ids = tokenizer.apply_chat_template(
    [{"role": "user", "content": prompt}],
    add_generation_prompt=True,
    return_tensors="pt",
    tokenize=True,
)["input_ids"].to(model.device)

model.generate(
    input_ids,
    do_sample=True,
    temperature=0.3,
    repetition_penalty=1.05,
    max_new_tokens=256,
    streamer=streamer,
)

Limitations

  • Not a reasoning model. With chain-of-thought training data removed, NanoAndy-350M won't show its work — it goes straight to an action/response.
  • No native tool-calling. It was not trained on function-call syntax; it expects Mindcraft's native command/chat format.
  • Small model. At 350M parameters, it will struggle with long-horizon planning, complex builds, and multi-step reasoning compared to larger Andy-4 variants.
  • English only.
  • Narrowly tuned for the Mindcraft agent format — not intended as a general-purpose assistant.

Acknowledgements

  • Liquid AI for the LFM2.5 base model.
  • Mindcraft-CE and the Andy-4.1 dataset authors for the source conversational data and the platform this model targets.
  • Unsloth for the training tooling.
Downloads last month
-
Safetensors
Model size
0.4B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for DedeProGames/NanoAndy-350M

Finetuned
(52)
this model

Dataset used to train DedeProGames/NanoAndy-350M

Collection including DedeProGames/NanoAndy-350M