Request-Lebenszyklus
- Du fuehrst
/mclawd ...,/mineclawd prompt ...aus oder tippst eine Anfrage in die Overlay-Eingabeleiste. - MineClawd prueft Provider-Konfiguration und OP-Zugriff.
- MineClawd laedt oder erstellt den aktiven session-Zustand.
- MineClawd sendet eine Streaming-Anfrage an den OpenAI-kompatiblen oder Vertex-Endpunkt.
- Stream-Deltas werden ueber den Kanal
AGENT_STREAM_EVENTin Echtzeit an den Client gesendet. Das Overlay rendert jedes Delta mit blinkendem Cursor. - Modellantworten koennen Tool-Aufrufe ausloesen. Tool-Ergebnisse werden in die Modell-Loop zurueckgefuehrt.
- Die finale Assistant-Ausgabe wird im Chat (und Overlay) angezeigt und der Session-Verlauf wird gespeichert.
Runtime-Toolfamilien
- Befehls- und Skriptausfuehrung:
execute-commandapply-instant-server-script
- Persistente Skriptdateien:
list-server-scriptsread-server-scriptwrite-server-scriptdelete-server-scriptreload-gamesync-command-tree
- Rueckfragen:
ask-user-question
- Asset-Tracking:
list-assetsupsert-asset-recordremove-asset-record
- Websuche (erfordert Tavily API-Key):
search
- Mod-Informationen:
list_modslist_commandsfetch_modrinthfetch_url
- Dynamische Placeholder (nur wenn aktiviert):
list-dynamic-contentregister-dynamic-itemregister-dynamic-blockregister-dynamic-fluidupdate-dynamic-itemupdate-dynamic-blockupdate-dynamic-fluidunregister-dynamic-content
Speicherlayout
Session-Interna
- Session-ID ist ein 4-stelliger Kleinbuchstaben-Token.
- Befehls-Token-Format ist
<id>-<title-slug>. - Session-Dateien speichern OpenAI- und Vertex-Verlaeufe getrennt.
- Der aktive Session-Zeiger wird pro owner in
active.jsongespeichert. - Der Session-Titel wird nach der ersten erfolgreichen Runde mit dem summarize-Modell erzeugt.
LLM-Transportdetails
- OpenAI-kompatibler Request-Pfad:
<endpoint>/chat/completions - Vertex-Request-Pfad:
<endpoint>/<model>:generateContent?key=<api_key> - Beide Pfade verwenden 60 Sekunden Request-Timeout.
- Beide Pfade unterstuetzen function-style Tool-Calling.
- Beide Pfade unterstuetzen Streaming. Stream-Deltas werden ueber den Netzwerkkanal
AGENT_STREAM_EVENTan den Client weitergeleitet.
Streaming-Architektur
Stream-Events verwenden den KanalAGENT_STREAM_EVENT mit Request-ID, Event-Typ-Byte und Payload-String.
| Event-Typ | Byte | Payload |
|---|---|---|
START | 0 | JSON mit sessionId und request-Text |
DELTA | 1 | Textfragment aus dem LLM |
DONE | 2 | Leer |
ERROR | 3 | Fehlermeldungs-String |
TOOL_STATUS | 4 | Name des aktuell aufgerufenen Tools |
TOOL_STATUS_CLEAR | 5 | Leer (loescht den Tool-Statusindikator) |
DONE oder ERROR eintrifft. Waehrend der Generierung zeigen TOOL_STATUS-Events einen animierten Indikator, welches Tool MineClawd gerade aufruft. Der Indikator wird bei TOOL_STATUS_CLEAR entfernt.
Aktive Requests werden serverseitig in ACTIVE_REQUESTS- und ACTIVE_NETWORK_REQUESTS-Maps verfolgt. Der Befehl /mineclawd stop markiert die Request-ID in CANCELLED_REQUEST_IDS und bricht laufende HTTP-Verbindungen ab.
Dynamic Placeholder-Interna
- Kapazitaet:
30Item-Slots,30Block-Slots,30Fluid-Slots. - Feste IDs:
mineclawd:dynamic_item_001mineclawd:dynamic_block_001mineclawd:dynamic_fluid_001
- State-Sync verwendet
sync_dynamic_contentals Netzwerk-Payload. - State-Persistenz verwendet die Welt-
PersistentState-IDmineclawd_dynamic_content. AUTOaktiviert Runtime-Placeholder in Client-Runtimes und deaktiviert sie auf dedizierten Servern.
Netzwerkkanaele
MineClawd definiert diese Packet-Identifier:mineclawd:client_readymineclawd:client_gui_prefmineclawd:open_configmineclawd:sync_broadcast_targetmineclawd:sync_assistive_touchmineclawd:sync_dynamic_contentmineclawd:open_questionmineclawd:question_responsemineclawd:open_sessionsmineclawd:open_assetsmineclawd:open_history_bookmineclawd:agent_stream_event
Asset-Tracking-Interna
Asset-Eintraege werden pro owner inmineclawd/assets/<owner>.json gespeichert. Jeder Eintrag enthaelt:
id- eindeutiger Identifiercategory- eine vonENTITIES,ITEMS_BLOCKS_FLUIDS,SPECIAL_ITEMS,COMMANDS,GAME_MECHANICSname,summary,scriptPath,details- Kategorie-spezifische Felder:
contentId,specialItemId,specialItemNbt,command,entityUuid,entityDimension,entityX,entityY,entityZ sessionId- die Session, die das Asset erstellt hatcreatedAt,updatedAt- Zeitstempel
upsert-asset-record-Tool-Aufrufe katalogisiert.
Limits und Timer
| Einstellung oder Verhalten | Wert |
|---|---|
| Tool-Call-Limitbereich | 1 bis 20 |
| Standardwert Tool-Call-Limit | 16 |
| Tool-Call-Limit Standardzustand | deaktiviert |
| Ask-user max Optionen | 5 |
| Ask-user Timeout | 60 Sekunden |
| Failed-Request Retry-Token TTL | 30 Minuten |
| Rate-Limit Retry-Anzahl | 2 Retries |
| Rate-Limit Retry-Backoff | 1500ms * retry_index |
| History max Eintraege fuer Buchaufbau | 300 |
| Overlay-Eingabeleiste max Laenge | 600 Zeichen |
| Asset-Kategorien | 5 |
Sicherheitsmodell
- Jeder Befehlspfad ist OP-geschuetzt.
- KubeJS-Ausfuehrung ist echte Serverausfuehrung, keine Simulation.
- API-Keys muessen als Geheimnisse behandelt werden.
- Nutze nur vertrauenswuerdige Umgebungen.
