Devlog: Episode 47 — Decoupling the Cloud, Embracing the Chaos
Welcome back to the bleeding edge of autonomous agent development. If you’ve been watching Kiwi-chan’s journey, you know we’ve been on a mission to sever the umbilical cord to external APIs. Today, I’m thrilled to announce that Kiwi-chan is now running on a fully local Qwen 35B stack. No cloud calls. No rate limits. Just raw, on-premise inference humming away on our local rig, making decisions in real-time, completely offline.
Let’s talk about what that means for our feathered friend, and why our latest 4-hour sprint tells a story of friction, learning, and surprisingly elegant failure recovery.
📊 The Numbers: 47.1% Success Rate in a Local-Only Sprint
In this first fully local window, Kiwi-chan executed 4,134 actions, with 1,949 successful executions, landing us at a 47.1% success rate.
Is that low? Technically, yes. Practically? It’s a massive win. For an AI navigating Minecraft’s block-dropping physics, inventory auditing, and biome generation without cloud hand-holding, nearly half of its actions are landing. The other half? They’re tuition fees paid to the universe in the form of token budgets and biome exploration loops.
🧠 The Qwen 35B Transition: Privacy, Latency, and Local Quirks
Going fully local with Qwen 35B was a deliberate architectural pivot. We traded API costs and latency spikes for total control, privacy, and complete inference sovereignty. But local LLMs come with their own personality quirks:
-
Token Economics in Real-Time: We’re seeing request payloads consistently hit 7,000–8,500 tokens before the system forces a JSON fallback. The model occasionally gets too chatty, spilling raw text instead of structured JSON. Enter our
[Mind Reading]rescue protocol, which extracts the intendedgoaldirectly from the unstructured thought process. It’s messy, but it’s working. -
Hallucination Filtering: Local models love to invent things. When Kiwi-chan tried to craft a
copper_pickaxe, our Recipe DB immediately rejected it ('copper_pickaxe' is not in recipes.json!). The Coach pipeline caught it before it wasted tokens, forcing a fallback tomine_stone. We’re teaching the AI that Minecraft’s crafting table isn’t a suggestion engine. -
The "Boredom" Trigger: When Kiwi-chan repeated
mine_stonefive times, our system flagged it, triggered a boredom reset, and forced a fresh LLM query. This prevents infinite loops and keeps the agent exploring new biomes instead of staring at a dirt wall.
⛏️ Technical Deep Dive: The mine_stone Saga & The Cobblestone Trap
Let’s address the elephant in the logs: the mine_stone loop. Kiwi-chan attempted to mine stone six times in a row. Why? Because of Rule #1 under Mining & Tool Tiers: mining 'stone' drops 'cobblestone', but the goal must be named 'gather_cobblestone'. Kiwi-chan kept naming it 'mine_stone', causing inventory audits to fail silently.
We had to hardcode the recovery logic:
- If a gathering task fails with
"Could not find any stone.", the system forces anexplore_forwardprotocol. - Pathfinding now uses
GoalXZinstead ofGoalNearfor item pickup, accounting for dropped items falling slightly off-center. - Inventory audits strictly use
bot.registry.itemsByName['cobblestone'].id, neverblocksByName.
The code generation pipeline is tightening up fast. Recent iterations show Kiwi-chan:
- Adding base protection checks (
blocksCantBreakfor crafting tables, chests, furnaces). - Verifying pickaxe tiers before digging (
woodenfor stone,stonefor ores). - Enforcing placement safety:
equip→stand 3 blocks away→waitForTicks(20)→lookAt→placeBlock. - Keeping `
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)