メインコンテンツへスキップ

リクエストのライフサイクル

  1. /mclawd .../mineclawd prompt ... を実行するか、オーバーレイ入力バーでリクエストを送信します。
  2. MineClawd がプロバイダー設定と OP 権限を検証します。
  3. MineClawd がアクティブ Session 状態を読み込むか新規作成します。
  4. MineClawd が OpenAI 互換または Vertex エンドポイントへストリーミングリクエストを送信します。
  5. ストリーム差分は AGENT_STREAM_EVENT チャネル経由でクライアントへリアルタイム送信されます。オーバーレイは点滅カーソル付きで各差分を描画します。
  6. モデル応答はツール呼び出しを発生させる場合があります。ツール結果はモデルループへ返されます。
  7. 最終アシスタント出力がチャット(およびオーバーレイ)に表示され、Session 履歴が保存されます。

実行時ツールファミリー

  • コマンドとスクリプト実行:
    • execute-command
    • apply-instant-server-script
  • 永続スクリプトファイル:
    • list-server-scripts
    • read-server-script
    • write-server-script
    • delete-server-script
    • reload-game
    • sync-command-tree
  • 確認質問:
    • ask-user-question
  • assets 追跡:
    • list-assets
    • upsert-asset-record
    • remove-asset-record
  • Web 検索(Tavily API キーが必要):
    • search
  • Mod 情報:
    • list_mods
    • list_commands
    • fetch_modrinth
    • fetch_url
  • 動的プレースホルダー(有効時のみ):
    • list-dynamic-content
    • register-dynamic-item
    • register-dynamic-block
    • register-dynamic-fluid
    • update-dynamic-item
    • update-dynamic-block
    • update-dynamic-fluid
    • unregister-dynamic-content

保存レイアウト

gameDir/
  config/
    mineclawd.json5
  mineclawd/
    player-settings.json
    sessions/
      <owner>/
        active.json
        <id>.json
    assets/
      <owner>.json
    souls/
      default.md
      yuki.md
      <custom>.md
      .active/
        <owner>.txt
  kubejs/
    server_scripts/
      mineclawd/
        ...

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 typeBytePayload
START0sessionIdrequest テキストを含む JSON
DELTA1LLM からのテキスト断片
DONE2
ERROR3エラーメッセージ文字列
TOOL_STATUS4現在呼び出し中のツール名
TOOL_STATUS_CLEAR5空(ツール状態インジケーターをクリア)
オーバーレイはこれらイベントを受信し、差分を段階的に描画します。DONE または ERROR が到着するまで、最新テキストに点滅カーソルが追従します。生成中は TOOL_STATUS イベントが、MineClawd が呼び出しているツール名をアニメーション付きで表示します。TOOL_STATUS_CLEAR 到着時に表示が消えます。 アクティブリクエストはサーバー側の ACTIVE_REQUESTSACTIVE_NETWORK_REQUESTS マップで追跡されます。/mineclawd stop は request ID を CANCELLED_REQUEST_IDS に記録し、進行中 HTTP 接続を中断します。

動的プレースホルダー内部仕様

  • 容量: item スロット 30、block スロット 30、fluid スロット 30
  • 固定 ID 例:
    • mineclawd:dynamic_item_001
    • mineclawd:dynamic_block_001
    • mineclawd:dynamic_fluid_001
  • 状態同期は sync_dynamic_content ネットワーク payload を使います。
  • 状態永続化は world PersistentState ID mineclawd_dynamic_content を使います。
  • AUTO モードは、クライアント実行時に実行時プレースホルダーを有効化し、専用サーバーでは無効化します。

ネットワークチャネル

MineClawd は次の packet identifier を定義します。
  • mineclawd:client_ready
  • mineclawd:client_gui_pref
  • mineclawd:open_config
  • mineclawd:sync_broadcast_target
  • mineclawd:sync_assistive_touch
  • mineclawd:sync_dynamic_content
  • mineclawd:open_question
  • mineclawd:question_response
  • mineclawd:open_sessions
  • mineclawd:open_assets
  • mineclawd:open_history_book
  • mineclawd:agent_stream_event

assets 追跡内部仕様

asset レコードは owner ごとに mineclawd/assets/<owner>.json に保存されます。各レコードには次が含まれます。
  • id — 一意識別子
  • categoryENTITIESITEMS_BLOCKS_FLUIDSSPECIAL_ITEMSCOMMANDSGAME_MECHANICS のいずれか
  • namesummaryscriptPathdetails
  • カテゴリ固有フィールド: contentIdspecialItemIdspecialItemNbtcommandentityUuidentityDimensionentityXentityYentityZ
  • sessionId — その asset を作成した Session
  • createdAtupdatedAt — タイムスタンプ
システムプロンプトには asset 追跡付録が含まれるため、LLM は upsert-asset-record ツール呼び出しを通じて作成物を自動登録します。

制限とタイマー

Setting or behaviorValue
Tool call limit range1 to 20
Default tool call limit value16
Tool call limit default statedisabled
Ask-user max options5
Ask-user timeout60 seconds
Failed-request retry token TTL30 minutes
Rate-limit retry count2 retries
Rate-limit retry backoff1500ms * retry_index
History max entries for book build300
Overlay input bar max length600 characters
Asset categories5

セキュリティモデル

  • すべてのコマンド経路は OP 権限で保護されています。
  • KubeJS 実行はシミュレーションではなく、実サーバー実行です。
  • API キーは秘密情報として扱う必要があります。
  • 信頼できる環境でのみ利用してください。