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@alphats
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 が選びます。
次に読むページ:
