本文へスキップ

VifuHub SDK

@vifu/hub は、VifuHub API を使うための公式ブラウザーユーティリティです。Agent Runtime で動くゲームが Agent Runtime のサービスと安全に通信できます。

ゲームは VifuHub SDK を使って次のことを行います。

  • Vifu AI を呼び出す。
  • ゲーム側で実行する操作を現在の AI リクエストの tools として渡す。
  • NPC、チューター、AI パートナーなどに Runtime Agent を割り当てる。
  • セーブ / ロード、ゲームデータ、メディア、ホスト機能を使う。
  • Agent Runtime の中で接続できているか確認する。

ゲームコードから VifuHub API、外部 AI プロバイダー、アセット URL を直接呼ばないでください。

インストール

npm

バンドラーやビルド手順があるゲームでは npm でインストールします。

bash
npm install @vifu/hub@alpha
ts
import * as hub from "@vifu/hub";

await hub.ready();

基本モデル

API使う場面
hub.ai.generateText(...)ゲーム内テキスト、ヒント、NPC 会話、簡単な分類。
hub.ai.generateText({ tools })現在の AI リクエストだけにゲーム操作を公開する。
hub.tool(...)再利用できるツール定義を宣言する。
hub.agent(...)複数の独立した NPC、チューター、AI パートナーなどに隔離されたツール / 指示 / セッションを持たせる。
hub.run(...)対象 agent のモデル / ツールループを 1 回実行する。
hub.resources.*マニフェストで宣言したデータ、メディア、同梱ファイルの読み取り。
hub.gameState.*セーブ / ロードの処理。
hub.invoke(...)ホスト機能の低レベル呼び出し。
hub.status()Agent Runtime の中で接続できているか確認。

Runtime Agent

多くのゲームでは、まず hub.ai.generateText(...) を使います。現在のリクエストだけで有効なゲーム操作は tools として直接渡せます。単一の NPC 会話のためだけに Runtime Agent を作る必要はありません。

Runtime Agent は、複数の独立した参加者が必要なときに使います。ツール、指示、run session を個別に持ちます。Companion はユーザー向けの agent kind で、NPC、Tutor、ナレーター、ゲームオブジェクトなども別の kind になれます。

ts
const openDoorTool = hub.tool({
  name: "open_door",
  description: "Open a visible door by color.",
  parameters: {
    type: "object",
    properties: {
      color: { type: "string", enum: ["blue", "red", "green"] }
    },
    required: ["color"],
    additionalProperties: false
  },
  execute: ({ color }) => openDoor(String(color))
});

const guard = hub.agent({
  name: "Blue Door Guard",
  kind: "npc",
  instructions: "You guard the current puzzle room.",
  tools: [openDoorTool]
});

const result = await hub.run(guard, "プレイヤーが青いドアを開けたいと言っています。", {
  state: currentRoomSummary(),
  maxSteps: 3
});

name は読みやすいラベルです。内部 runtime id は Agent Runtime が自動で割り当てます。モデル設定はホスト session が選びます。

次に読むページ: