リクエストのライフサイクル
/mclawd ...、/mineclawd prompt ...を実行するか、オーバーレイ入力バーでリクエストを送信します。- MineClawd がプロバイダー設定と OP 権限を検証します。
- MineClawd がアクティブ Session 状態を読み込むか新規作成します。
- MineClawd が OpenAI 互換または Vertex エンドポイントへストリーミングリクエストを送信します。
- ストリーム差分は
AGENT_STREAM_EVENTチャネル経由でクライアントへリアルタイム送信されます。オーバーレイは点滅カーソル付きで各差分を描画します。 - モデル応答はツール呼び出しを発生させる場合があります。ツール結果はモデルループへ返されます。
- 最終アシスタント出力がチャット(およびオーバーレイ)に表示され、Session 履歴が保存されます。
実行時ツールファミリー
- コマンドとスクリプト実行:
execute-commandapply-instant-server-script
- 永続スクリプトファイル:
list-server-scriptsread-server-scriptwrite-server-scriptdelete-server-scriptreload-gamesync-command-tree
- 確認質問:
ask-user-question
- assets 追跡:
list-assetsupsert-asset-recordremove-asset-record
- Web 検索(Tavily API キーが必要):
search
- Mod 情報:
list_modslist_commandsfetch_modrinthfetch_url
- 動的プレースホルダー(有効時のみ):
list-dynamic-contentregister-dynamic-itemregister-dynamic-blockregister-dynamic-fluidupdate-dynamic-itemupdate-dynamic-blockupdate-dynamic-fluidunregister-dynamic-content
保存レイアウト
Session 内部仕様
- Session ID は 4 文字の小文字トークンです。
- コマンドトークン形式は
<id>-<title-slug>です。 - Session ファイルは OpenAI と Vertex の履歴を別々に保持します。
- owner ごとのアクティブ Session ポインターは
active.jsonに保存されます。 - Session タイトルは、最初の成功ラウンド後に summarize モデルで生成されます。
LLM 転送詳細
- OpenAI 互換リクエストパス:
<endpoint>/chat/completions - Vertex リクエストパス:
<endpoint>/<model>:generateContent?key=<api_key> - 両パスともリクエストタイムアウトは 60 秒です。
- 両パスとも function-style のツール呼び出しをサポートします。
- 両パスともストリーミングをサポートします。ストリーム差分は
AGENT_STREAM_EVENTネットワークチャネルでクライアントに転送されます。
ストリーミングアーキテクチャ
ストリームイベントはAGENT_STREAM_EVENT チャネルで送信され、内容は request ID、event type byte、payload string です。
| Event type | Byte | Payload |
|---|---|---|
START | 0 | sessionId と request テキストを含む JSON |
DELTA | 1 | LLM からのテキスト断片 |
DONE | 2 | 空 |
ERROR | 3 | エラーメッセージ文字列 |
TOOL_STATUS | 4 | 現在呼び出し中のツール名 |
TOOL_STATUS_CLEAR | 5 | 空(ツール状態インジケーターをクリア) |
DONE または ERROR が到着するまで、最新テキストに点滅カーソルが追従します。生成中は TOOL_STATUS イベントが、MineClawd が呼び出しているツール名をアニメーション付きで表示します。TOOL_STATUS_CLEAR 到着時に表示が消えます。
アクティブリクエストはサーバー側の ACTIVE_REQUESTS と ACTIVE_NETWORK_REQUESTS マップで追跡されます。/mineclawd stop は request ID を CANCELLED_REQUEST_IDS に記録し、進行中 HTTP 接続を中断します。
動的プレースホルダー内部仕様
- 容量: item スロット
30、block スロット30、fluid スロット30。 - 固定 ID 例:
mineclawd:dynamic_item_001mineclawd:dynamic_block_001mineclawd:dynamic_fluid_001
- 状態同期は
sync_dynamic_contentネットワーク payload を使います。 - 状態永続化は world
PersistentStateIDmineclawd_dynamic_contentを使います。 AUTOモードは、クライアント実行時に実行時プレースホルダーを有効化し、専用サーバーでは無効化します。
ネットワークチャネル
MineClawd は次の 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
assets 追跡内部仕様
asset レコードは owner ごとにmineclawd/assets/<owner>.json に保存されます。各レコードには次が含まれます。
id— 一意識別子category—ENTITIES、ITEMS_BLOCKS_FLUIDS、SPECIAL_ITEMS、COMMANDS、GAME_MECHANICSのいずれかname、summary、scriptPath、details- カテゴリ固有フィールド:
contentId、specialItemId、specialItemNbt、command、entityUuid、entityDimension、entityX、entityY、entityZ sessionId— その asset を作成した SessioncreatedAt、updatedAt— タイムスタンプ
upsert-asset-record ツール呼び出しを通じて作成物を自動登録します。
制限とタイマー
| Setting or behavior | Value |
|---|---|
| Tool call limit range | 1 to 20 |
| Default tool call limit value | 16 |
| Tool call limit default state | disabled |
| Ask-user max options | 5 |
| Ask-user timeout | 60 seconds |
| Failed-request retry token TTL | 30 minutes |
| Rate-limit retry count | 2 retries |
| Rate-limit retry backoff | 1500ms * retry_index |
| History max entries for book build | 300 |
| Overlay input bar max length | 600 characters |
| Asset categories | 5 |
セキュリティモデル
- すべてのコマンド経路は OP 権限で保護されています。
- KubeJS 実行はシミュレーションではなく、実サーバー実行です。
- API キーは秘密情報として扱う必要があります。
- 信頼できる環境でのみ利用してください。
