Unutilized Power
🚀 Unutilized Potential — Power Table#
From the moincraft stack deep-dive. Features available but not yet wired up.
Missing OpenRouter Features#
| # | Feature | What It Is | Current State |
|---|---|---|---|
| 🔴 | OpenRouter Embeddings | Native embedding API (Nov 2025) | throw Error('not supported') — fixable in 5 lines |
| 🔴 | Streaming (SSE) | Token streaming → faster UX | Not implemented; all responses blocking |
| 🔴 | Structured Outputs | JSON schema enforcement → stop hallucinated commands | Not used |
| 🟡 | Provider Routing | Nitro/Floor shortcuts, fallback chains | Hardcoded no routing config |
| 🟡 | Response Healing Plugin | Auto-fix malformed JSON | Not enabled |
| 🟡 | Web Search Plugin | Real-time search in model context | Not enabled |
| 🟡 | Vision (allow_vision) |
Bot screenshot → multimodal analysis | false by default; viewer already has the render |
| 🟡 | MemoryBank | Vector DB for long-term episodic memory | Stub only (333 bytes) |
| 🟡 | Auto Router | openrouter/auto picks optimal model |
Not tried |
| 🟡 | Skill Learning | Write new skills to skills.js from successful !newAction |
Not implemented |
| 🟢 | Assistant Prefill | Steer model output format | Not used in prompts |
| 🟢 | god_mode base profile |
Unlimited power prompts | Exists but not in default rotation |
| 🟢 | speak TTS |
Text-to-speech output | Exists, disabled |
| 🟢 | Task system | Structured task execution + evaluation | Exists but not used in swarm |
| 🟢 | CoopLevel 4/5 | Emergent + Collective agents | Framework exists, untested at scale |
Genius Improvements Table#
| UID | Improvement | What Changes | Why It’s Genius |
|---|---|---|---|
| A1 | Fix OpenRouter Embeddings | Replace throw with embeddings.create() |
Semantic RAG via single API key — no separate embedding provider |
| A2 | Streaming Responses | stream: true + SSE to dashboard |
Real-time token display; dramatically better UX |
| A3 | Structured JSON Commands | response_format: {type:'json_schema'} |
Zero hallucinated command syntax; eliminates retry loops |
| B1 | Provider Routing Config | provider field in profile JSON |
Per-agent cost/speed tuning: groq for speed, nitro for quality |
| B2 | Persistent Vector Memory | Replace MemoryBank stub with SQLite + cosine search |
Bots remember facts across restarts; experience accumulation |
| B3 | Vision from Viewer | Capture Three.js canvas → base64 → promptVision() |
Reuse existing viewer render; enable allow_vision cheaply |
| B4 | Web Search Plugin | plugins: [{id:'web'}] in OpenRouter requests |
Bots can check Minecraft wiki, item recipes, mods |
| C1 | Per-Bot Cost Tracking | Read usage from OpenRouter responses |
Real-time cost visibility; budget alerts |
| C2 | Skill Auto-Learning | On successful !newAction, persist ESLint-passed code to skill library |
Bots grow smarter over time |
| C3 | Auto Router Fallback | openrouter/auto when named model fails |
Zero-config model fallback |
| C4 | Blueprint Import | Parse .nbt / schematic into NPC construction JSON |
Build any structure from schematic |
| D1 | ZDR Privacy Mode | data_collection: 'deny' in all profiles |
All LLM calls marked no-train, no-log |
| D2 | Dynamic Personality Profiles | Swap base_profile at runtime via MindServer |
Change bot personality without restart |
| D3 | Viewer Canvas Snapshot API | REST endpoint for PNG screenshots | Headless 3D world screenshots for monitoring, vision, logging |
Best Practices (from moincraft-stack-cheatsheet)#
LLM Prompting#
- Keep
max_messageslow (15) to avoid context explosion costs - Memory summarization in Chinese → better compression ratio
- Use
cooldownin profile to rate-limit rapid self-prompt loops - Separate
code_modelfromchat_model: cheap fast model for chat, smarter for code bot_responderprompt prevents cascading bot-to-bot infinite chat loops
Multi-Agent Swarm#
AGENT_STARTUP_DELAY_MS=1500— prevents simultaneous MC login flood- Profile names must be unique (they become bot usernames)
only_chat_with: []→ empty = respond to everyone; restrict to reduce LLM calls- Cooperation level 3+ enables proper task negotiation
OpenRouter Cost Control#
// Cap tokens for cheap chat models
max_tokens: 512,
// Cheapest provider
model: 'google/gemini-2.5-flash:floor'
// Monitor usage: GET https://openrouter.ai/api/v1/auth/key
Viewer Stability#
- Never run viewer + mindcraft bots as same
username VIEWER_VIEW_DISTANCE=4on low-resource machines- If
EADDRINUSEon 55669 → only ONE viewer process should be running
Paper Server#
- Pre-generate spawn chunks: use
WorldBorderto limit exploration view-distance=6inserver.properties(matches bot view distance)paper.yml:anti-xray: falsefor bots (reduces CPU)