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@alphats
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 に明示的に結びつけたい場合だけ設定してください。
次に読むページ: