Welcome back to the lab. If you’ve been watching Kiwi-chan’s progress, you know she spent months trapped in a cycle of cloud-dependent hallucinations, API rate limits, and latency-induced pathfinding deadlocks. That chapter is officially closed. As of this morning, Kiwi-chan is proudly, permanently, and completely fully local. We’ve ripped out the expensive cloud inference endpoints and dropped a quantized Qwen 35B model directly onto our local GPU cluster.
The result? A 4-hour autonomous sprint that left us with some brutally honest, deeply fascinating metrics:
Total Actions: 2766 | Success: 1209 | Rate: 43.7%
Now, before you click away muttering about "AI hype," let’s unpack that 43.7% success rate. In a rule-constrained, fully autonomous Minecraft environment, a sub-50% success rate isn’t a failure—it’s a feature. It means Kiwi-chan is actively exploring, hitting hard biome boundaries, triggering recovery protocols, and learning through friction instead of blindly retrying doomed paths. She’s failing forward, and it’s glorious.
🧠 The Qwen 35B Brain: Alignment & Reasoning
The shift to a local model didn’t just cut the API bill; it sharpened the reasoning loop. We enforced strict JSON alignment rules, and Qwen 35B actually listens. The goal key now perfectly mirrors the intent described in the reason text, lowercase and consistent. No more hallucinated intent. No more "I will mine iron" when the goal is actually "gather_logs".
The OAK OBSESSION BAN finally took root. Instead of pathfinding in tight circles looking for oak logs in a birch or spruce biome, Kiwi-chan now dynamically cycles through ['birch_log', 'spruce_log', 'oak_log']. If the biome is barren, she respects the explore_forward restriction and triggers a 30-40 block randomized target using Math.random() * 80 - 40 instead of spamming setControlState('forward', true). She’s stopped panicking and started thinking.
⚒️ Code Generation: Physics, Audits, and The "Cobblestone Trap"
The single-task principle is now strictly enforced. Kiwi-chan no longer tries to place a block inside a craft task. She doesn’t hardcode Vec3 coordinates (thank the silicon gods). When she needs to place a crafting table, she follows the placement safety protocol to the letter:
await bot.equip(..., 'hand')-
await bot.pathfinder.goto(new goals.GoalNear(..., 3))(exactly 3 blocks away) -
await bot.waitForTicks(20)for physics sync -
await bot.lookAt(...)thenplaceBlock(...)
It’s tedious, but Minecraft’s collision physics don’t care about your intentions.
The cobblestone trap nearly broke her in v1, but Qwen 35B learned it fast. Mining stone drops cobblestone. If she names the goal mine_stone, the inventory audit fails. Now she correctly aliases it to gather_cobblestone and counts strictly via bot.registry.itemsByName['cobblestone'].id. We also banned blocksByName for item counting. The audit is now paranoid: beforeCount is recorded before bot.dig(), and if afterCount <= beforeCount, it throws a hard error. Silent swallowing? try-catch? Banned. Errors crash, the system audits, and a recovery plan spins up.
🚑 Brain Log Diagnostics: Recovery & Tool Tiers
The recent brain log reads like a digital therapist session. Watch this sequence from the last 4 hours:
[11:06:07] ❌ Failed: mine_stone -> Missing wooden_pickaxe.
[11:06:07] 💀 Failure Memorized: mine_stone
[11:07:33] 🔄 Stack Override: mine_stone -> craft_stick
Kiwi-chan doesn’t just retry. She audits her tool tiers, realizes she needs sticks to craft a stone pickaxe, and dynamically rewrites her execution stack. The NULL ERROR BAN also paid off: instead of throwing throw new Error("Could not find null."), she now hardcodes throw new Error("Could not find " + targetType + "."). This allows the recovery planner to parse the exact block name and trigger the correct fallback (usually explore_forward).
And when Qwen 35B tried to craft a copper_pickaxe? The local Recipe DB check caught the hallucination instantly: 'copper_pickaxe' is not in recipes.json! Rejecting hallucination. She doesn’t guess. She validates.
🔮 The Verdict
Running Qwen 35B locally means zero latency, complete data sovereignty, and an AI that respects biome boundaries, inventory limits, and Minecraft’s unforgiving physics engine. Kiwi-chan’s 43.7% success rate is the sound of an autonomous agent learning to survive in a hostile, rule-heavy environment without a safety net. She’s auditing her inventory, respecting y-level targeting (useExtraInfo: (b) => Math.abs(b.position.y - bot.entity.position.y) <= 4), and chipping away at the world one cobblestone at a time.
Next devlog? We’re watching her attempt redstone. With a fully local brain and a strict recovery loop, I’d bet she won’t need a tutorial.
Stay tuned, keep your GPUs cool, and may your pathfinders never deadlock.
— Lead Dev & Chief AI Whisperer 🥝
Call to Action:
This is a passion project, and it's running on a frankly terrifying "Frankenstein" rig of GPUs. Every little bit helps!
🛡️ Join the inner circle on Patreon for monthly support and exclusive updates: https://www.patreon.com/15923261/join
☕ Tip me a coffee on Ko-fi for a one-time boost: https://ko-fi.com/kiwitech
All contributions directly help upgrade my melting GPU rig to an RTX 3060! 🥝✨ Let's get Kiwi-chan out of the debugging woods and into a proper Minecraft world!

Top comments (0)