EAI

AI エージェント

エディターは、MCP またはコマンドラインから AI エージェントに操作させることができます。シーン、アセット、パッケージ、ビルド、ボード、スクリーンショットまで。使うかどうかは自由で、Deki のどこもこれを必要としません。

すべて任意です

Deki に AI は入っていません。エンジンも、エディターも、作ったゲームも、モデルを呼び出すことはなく、アカウントも不要で、どこにも何も送りません。このページに書いてあるのは、すでに使っているエージェントにエディターを操作させる方法であり、そのどれもがエディター上で手作業でもできます。

エージェントを使わないなら、このページは読み飛ばしてかまいません。サイトのほかの部分はこれに依存しておらず、プロジェクトにも何の変化もありません。

Deki の作り方

エンジンとエディターは AI の支援を受けて開発しています。AI エージェントと一緒に作業し、その多くはこのページにあるツールを通して行っています。これは Deki の作り方であって、あなたに求めることではありません。配布されるのは普通の C++ で、それで作ったゲームに AI は入っていません。

エージェントにできること

エディターには MCP サーバーが組み込まれています。接続したエージェントは、エディター自身のコマンドラインと同じツール、約 80 個を使えます。

分野ツール
シーンオブジェクトの作成、削除、複製、名前の変更、親の変更。移動、回転、拡大縮小。コンポーネントの追加と削除。プロパティの読み取りと設定。元に戻す・やり直し。シーンを開く、保存する、新規作成する。
アセットアセットの一覧、インポート、移動、作成、オープン。アセットブラウザーでの選択。
プロジェクトプロジェクトの作成とオープン、プロジェクト設定と起動シーンの設定、パッケージのインストール、コードのリビルド。
ビルドプラットフォームの選択、ファームウェアのビルド、書き込みやインストール、ツールチェーンの確認、クリーン。
ボード接続したボードに映っている画面のスクリーンショット、フレームレートと空きメモリの読み取り。
ウィンドウエディター全体やパネル単位のスクリーンショット、連続フレーム、クリック、ドラッグ、キー入力、文字入力、パネルを開く・フォーカスする、ダイアログへの応答。

開いているシーン、コンポーネントの一覧、プロジェクト設定は MCP リソースとしても読めます。パッケージは独自のツールを追加でき、それも同じ一覧に並びます。

これでできる一番長いループは、コンポーネントを変更し、リビルドし、シーンを再生し、スクリーンショットを撮り、ファームウェアをビルドし、ボードに書き込み、ボードのスクリーンショットを撮ってフレームレートを読む、というものです。エージェントは人の手を介さずにこれを繰り返せます。このサイトのエディター画像はすべて、これらのツールで作りました。

クライアントをつなぐ

エディターのウィンドウはどれも、そのコンピューターの中だけ(127.0.0.1)でサーバーを動かしていて、トークン付きのリクエストにしか応えません。ステータスバー右下の MCP が、動いていることを示します。

  1. エディターでプロジェクトを開きます。
  2. ステータスバーの MCP を右クリックします。トークン込みの接続 URL がコピーされます。
  3. その URL を、MCP クライアントに SSE サーバーとして渡します。

たとえば Claude Code では:

claude mcp add --transport sse deki "<コピーした URL>"

トークンはエディターを起動するたびに新しくなります。再起動しても使える設定にするには、エディターとクライアントの両方に DEKI_MCP_TOKEN(16 文字以上)を設定し、エディターを --mcp で起動して、固定の URL を使います:

DekiEditor --mcp /path/to/project
http://127.0.0.1:3000/sse?token=<DEKI_MCP_TOKEN の値>

3000 番が使われているときは --mcp-port で別のポートを選べます。ステータスバーの MCP をクリックすると、サーバーは止まります。

MCP なしで

コマンドを実行できるエージェントなら、MCP はまったく要りません。同じツールがエディターのコマンドラインにあります:

DekiEditor --list-tools /path/to/project
DekiEditor --tool get_scene_info /path/to/project
DekiEditor --tool create_object --args '{"name": "Player"}' /path/to/project

--script は JSON で並べた手順を順に実行し、最初に失敗したところで止まります。手順は "as" で結果を保存でき、後の手順でそれを使えます:

[
  { "tool": "create_object", "args": { "name": "Player" }, "as": "player" },
  { "tool": "set_position", "args": { "object_id": "${player.id}", "x": 160, "y": 120 } },
  { "tool": "save_scene" },
  { "tool": "screenshot", "args": { "path": "C:/shots/player.png", "panel": "Scene View" } }
]

そのプロジェクトを開いているエディターがあれば、これらはそのエディターで動き、変更はその場で見えます。なければ、エディターを最小化してフォーカスを奪わずに開き、そのまま開いておきます。--headless は、終わると閉じる非表示のエディターで実行します。CI 向けです。

作業を見守る

エージェントは、あなたから見えるエディターで作業します。何かを変える呼び出しのたびに、紫のポインターがその対象へ動きます。ヒエラルキーのオブジェクトの行、インスペクターのプロパティ、アセット、クリックした正確なピクセル。「Setting SpriteComponent.color」のようなラベルが、何をしているかを示します。ポインターはスクリーンショットには写らず、何もしない時間が数秒続くと消えます。

ポインターのせいで、変更ごとに 0.3 秒待ちます。Editor Settings > MCP > Agent Pointer のチェックを外すと消え、呼び出しはすぐに実行されます。

手元に残るもの

  • 元に戻す。 エージェントによるシーンの変更は、あなたの変更と同じ取り消し履歴に入ります。Ctrl+Z で一つずつ戻せます。
  • 確認。 エディターがダイアログであなたに尋ねる場面では、エージェントにも同じように尋ねます。エージェントはダイアログを見て、答えなければなりません。勝手に同意されることはありません。
  • デスクトップ。 ツールがエディターを前面に出したり、キーボードを奪ったりすることはありません。エージェントが作業している間も、コンピューターでほかのことができます。
  • あなたのマシン。 サーバーはループバックでしか待ち受けず、トークンのないリクエストは拒否します。ネットワーク上のほかのマシンからは届きません。