Learning Rust gently with Mellum2-12B-A2.5B-Instruct and Mini Me (Part 1)
Learning Rust from scratch with a small local coding model: Mini Me and Mellum2-12B-A2.5B as a teacher for a first program, structs, mutability and methods.

For me, developing Mini Me is a way to better understand how to make good use of small local models, with all their constraints.
My goal today: can I start learning Rust with a "not too big" local model, using a "coding" agent optimized for local models (meaning the agent's implementation takes into account the constraints that come with using local models)?
This experiment will help me validate my choice of model (Mellum2-12B-A2.5B) and the Mini Me settings.
And I have to admit there's a 2nd experiment behind all this: I need to get my brain working again (today, no Claude Code, learning and developing "almost the old-fashioned way").
My working environment
I configured an agent to help me discover a new language.
agent.yaml
You'll find all my settings here: https://rickub.com/bots-garden/model-mellum/blob/main/agent.yaml, but what matters is that I disabled all the tools, except these two:
fetchContentTool: true
saveAnswerTool: true
Today, all I need is a "Mini Teacher" who explains things to me, and I do the rest myself.
saveAnswerTool: trueenables a built-in tool,save_answer, which lets you ask the agent to save its last answer.
Next, I needed a "code-oriented" model.
The model
I went with Mellum2-12B-A2.5B-Instruct-GGUF-Q4_K_M. If you run into accuracy issues, you can try a less aggressive quantization: Mellum2-12B-A2.5B-Instruct-GGUF-Q8_0. Mellum2 is an LLM trained by JetBrains, and it has good "knowledge" of various programming languages.
I use Llmman to serve my model. For more information, you can read this post llmman, the unified interface for language models, and it's now installed with sbx (since sbx v0.46.0, released on September 28, 2026, the macOS and Windows bundles include llmman v0.1.418, which downloads the llama.cpp runtime by itself).
I'm currently writing a small guide on configuring Mini Me with local models; a 1st version should be available soon.
My IDE
I use Zed Editor with Mini Me and Rust. The Rust toolchain and Mini Me run in an sbx sandbox, and Zed Editor connects to it over SSH. You can find more information about my setup in this blog post: Using Mini Me in a secure and comfortable development environment.
So here I go with my learning "in slow motion, 80% with my 🧠, 20% with 🤖".
How to make my 1st Rust program
Explain me how to create my first Rust program
Then I asked Mini Me to save the explanation:
save it as 01-first-rust-prog.md
This triggers the new built-in tool save_answer
The result is here 01-first-rust-prog.md
I followed the explanations, and I have my 1st "Hello World" in Rust

What's interesting (and useful) are the 2 sections generated at the end of the tutorial, "Pitfalls" and "To go further", and you'll see that the agent does it every time.
Moving forward gently: structs
Adding a struct
how can I add a Human struct, with a name and age to the program?
Then:
save it as 02-human-struct.md
The result is here 02-human-struct.md
Here too, I followed the explanations:


How to change the field values of person
How can I change the values of person?
Then:
save it to 03-human-struct-change.md
The result is here 03-human-struct-change.md
But actually, the agent only suggested a way to input the information, and then create an instance of the struct (person) with the entered values:
println!("Enter your name:");
let mut name = String::new();
io::stdin()
.read_line(&mut name)
.expect("Failed to read line");
println!("Enter your age:");
let mut age_input = String::new();
io::stdin()
.read_line(&mut age_input)
.expect("Failed to read line");
let age: u32 = age_input.trim().parse().expect("Please enter a valid number");
let person = Human {
name: name.trim().to_string(),
age,
};
So I try asking differently:
And how to change the values of an existing person?
Then:
save it to 04-change-existing-person.md
The result is here 04-change-existing-person.md
This time, Mini Me suggests creating a mutable instance of Human:
let mut person = Human {
name: String::from("Alice"),
age: 30,
};
Before tinkering with my main.rs again, I ask it something else:
Explain the mutable concept
Then:
save it to 05-mutability.md
The result is here 05-mutability.md
Reading the explanations, I understand that the mut keyword will let me reach my goal (changing the field values of person), and I learn that in Rust, variables are immutable by default.

So I made a quick change to check, and it works:

Well, it's rather nice to be back at normal speed 😉, so I keep going a bit.
How to add a method to Human
Explain how to add a greeting method to the Human structure
Then:
save it to 06-struct-method.md
The result is here 06-struct-method.md
So I updated the code in main.rs, and once again Mini Me's advice was good:

I'll stop here for today in my Rust learning journey. For now, the Mini Me settings and the choice of the Mellum2-12B-A2.5B-Instruct model seem relevant for this use case: learning a new language.
You can follow my progress here: https://rickub.com/bots-garden/model-mellum.
Written by
Keep reading
Hello Mini Me: an agent born while preparing a talk for Devoxx
Meet Mini Me, a coding agent born from a Devoxx talk on the agent loop, built for small local models with guardrails against loops and hallucinations.

Building a team of Mini Mes with ACP
Build a team of local Mini Me agents talking over ACP: a coordinator that routes your Go and Rust questions to two documentation specialists.

Mini Me release v0.3.0
What is new in Mini Me v0.3.0, the Devoxx Belgium release: approval mode, agents calling agents, request traces, JSON answers, AGENTS.md and an sbx kit.

No comments yet. Be the first to comment!