本文へスキップ

Vifu SDK

@vifu/sdk は、Vifu 上で動くゲームが Vifu Cloud と安全に通信するための公開ブラウザー API です。

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

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

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

インストール

npm

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

bash
npm install @vifu/sdk@alpha
ts
import { createVifuSDK } from "@vifu/sdk";

const vifu = createVifuSDK();
await vifu.ready();

CDN

jsDelivr からブラウザー用 build を読み込めます。デプロイするゲームでは SDK の正確なバージョンを使ってください。

html
<script src="https://cdn.jsdelivr.net/npm/@vifu/[email protected]/dist/browser/vifu-sdk.js"></script>
<script>
  const vifu = window.vifu;
</script>

基本モデル

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

Runtime Agent

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

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

ts
const openDoorTool = vifu.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 = vifu.agent({
  name: "Blue Door Guard",
  kind: "npc",
  instructions: "You guard the current puzzle room.",
  tools: [openDoorTool]
});

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

name は読みやすいラベルです。内部 runtime id は Vifu が自動で割り当てます。mind を省略すると、ユーザーまたはホストが現在の Mind を選びます。ゲームが特定の Vifu Mind に明示的に結びつけたい場合だけ設定してください。

次に読むページ: