Siri Shortcuts には対応しているはずのアプリが、Apple Intelligence からは一向に呼ばれない。壁紙アプリに「今日の壁紙を保存」という App Intent を用意し、Shortcuts アプリからは動くのに、Siri に話しかけても「そのアプリではできません」と返ってくる。手元で何度か試して、ようやく腑に落ちました。
Apple Intelligence がアプリの操作を扱うには、Intent が「動く」だけでは足りません。その操作が意味として何であるかを、Apple 側の語彙で宣言しておく必要があります。その語彙が Assistant Schemas です。
個人開発で複数のアプリを回してきた立場から、Rork Max が吐いた Swift アプリに Assistant Schemas を後付けし、機能を Apple Intelligence に開くまでの段取りを書き残します。固定スキーマへの当てはめ方、そこに収まらない機能の逃がし方、非対応端末で機能を死なせないための可用性設計まで。私自身が現場で守っている線引きを中心に据えます。
「Siri 対応済み」でも Apple Intelligence から呼べない理由
従来の App Intents と Siri Shortcuts は、ユーザーがあらかじめ登録したフレーズと操作を結びつける仕組みでした。ユーザーが「壁紙を保存」という名前でショートカットを作れば、その文字列に一致したときだけ実行されます。
Apple Intelligence は、この結びつきをフレーズ一致に頼りません。「さっきの画像を保存しておいて」のような自然な言い回しから、それがどのアプリのどの操作に当たるのかを推論します。推論の土台になるのが、Apple があらかじめ定義したスキーマです。アプリ側が「この Intent は写真を開く操作です」と宣言していれば、Apple Intelligence はその意味を手がかりに呼び出せます。
次に Siri へ自然な言い回しで話しかけ、スキーマ経由で呼ばれるかを確かめます。登録フレーズそのままではなく、あえて崩した言い方で試すのが要点です。フレーズ一致ではなく意味推論が働いているかは、崩した言い方でしか分かりません。
確認段階
見るもの
失敗時に疑う箇所
Shortcuts アプリ
Intent がアクション一覧に出るか
ターゲットメンバーシップ / App Intents 登録
Siri(登録フレーズ)
AppShortcuts 経由で起動するか
phrases の applicationName 埋め込み
Siri(崩した言い方)
スキーマ経由で意味推論されるか
@AssistantIntent の schema 指定 / 可用性
Rork Max の Swift に後付けするときの段取り
Rork Max は自然言語からネイティブ Swift を生成します。表示や保存の処理は、たいてい既に手元のコードにあります。Assistant Schemas の後付けは、その既存処理を Intent の perform() から呼び出す薄い層を重ねる作業です。
私自身が守っている順番は、機能本体を触らないことから始めます。まず既存のルーターや Store をそのままにして、Intent とエンティティだけを新しいファイルとして足します。Rork Max が吐いたコードに手を入れ始めると、再生成のたびに差分が壊れます。Assistant 対応は独立したファイル群として分け、生成コードには「呼び出される口」だけを最小限で開ける。この境界を最初に引くと、ツールの再生成と自分の実装が衝突しません。
順を追うと、次のようになります。第一に、機能を Apple の語彙に翻訳できるか棚卸しする。第二に、翻訳できるものはスキーマ準拠 Intent、できないものはカスタム Intent と AppShortcuts に振り分ける。第三に、エンティティとクエリを用意し、候補件数を絞る。第四に、可用性チェックでアプリ内導線を残す。第五に、実機で二段階の確認を回す。