AIプロンプトスキル
最終更新:2026-06-14
Your Trainer は、複数ライダー対応の Android タブレット向け屋内サイクリングアプリです。スマートトレーナー制御、ローカルデータ + ローカル制御。買い切り型。
AI Workout Coachは、平文の説明から構造化されたワークアウトを生成します。プロンプトが明確であるほど、出力もよくなります。いくつかのパターンを押さえれば、ほぼそこにたどり着けます。あとは好みの問題です。
.ytw file and runs the training-load math. Format-hallucination errors drop to near zero; history answers stop drifting between sessions.AI Coachが実際に見ているもの
このセクションではワークアウト生成を扱います。ワークアウトタブから起動するAI Workout Coachのことです。Workout History画面のHistory Assistantは、入力が異なる別のフローです。下のAI Coachに履歴について尋ねるを参照してください。
ワークアウト生成では、AIは順に次の情報を見ます:
- あなたが入力したテキスト。
- 起動元のタブ — PowerまたはHeart Rate。Powerタブは、FTPに対する割合として表現されたインターバルを返します。Heart Rateタブは、ゾーンに紐付いたインターバル(Z1〜Z5)を返します。
- 現在のロケール(これによりインターバルラベルやキューの言語を選択します)。
Powerワークアウトは、FTPのパーセンテージとして返されます(例:スイートスポットブロックのtargetPowerPercent: 90)。トレーナーはライド時に、保存されているあなたのFTPをローカルで適用してWatts値に変換します。そのため、同じ生成済みワークアウトが200 Wのライダーにも300 Wのライダーにも正しく機能します — Watts値は異なっても、相対的な努力度は同じです。.ytwファイルを友人に渡せば、その人にも使えます。
ワークアウトを文脈に合わせたい場合 — 先週のトレーニング、いつもの走り方、進めている数週間のプラン — その文脈をプロンプトに入れてください。
よいプロンプトの構造
曖昧なプロンプトは汎用的なワークアウトを生み、具体的なプロンプトは目的に合ったワークアウトを生みます。明示する価値のある5つの要素があります:
| 要素 | 例 | 効果 |
|---|---|---|
| 合計時間 | 「合計60分」 | 指定がなければ、モデルはデフォルトで45〜60分にします。違うものが欲しいときは必ず指定してください。 |
| 強度 | 「ワークブロックはFTPの95〜100 %」 | 「ハード」は曖昧です。Watts値の範囲は具体的です。 |
| 構成 | 「20分のインターバルを2本、間に5分のリカバリー」 | インターバルの形を直接指定できます。 |
| ケイデンス目標 | 「低ケイデンス、60〜70 RPM」 | 任意。低ケイデンスのクライミングや高ケイデンスのドリルに便利です。 |
| コーチングキュー | 「ワークブロック中にモチベーションのキューを追加」 | モデルがインターバル中に短いテキストオーバーレイを散りばめます。 |
比較してみましょう:
- 曖昧:「閾値ワークアウト。」
- よりよい:「60分の閾値ワーク、20分のインターバルを2本、FTPの95〜100 %、長めのウォームアップ付き。」
パターンライブラリ
妥当な出力を生む検証済みプロンプトです。コピー&ペーストして数値を調整してください。
Z2持久力
90 minutes of steady Z2 endurance at 65–72 % FTP.
10-minute warm-up ramping from 50 % to 65 %, then steady,
with a 5-minute cooldown.
スイートスポット
60 minutes total. 15-minute warm-up, then two 18-minute
sweet-spot blocks at 90 % FTP with 5 minutes of Z2 between.
Cool down for the rest.
閾値(2×20、4×8)
2×20 at threshold: 75 minutes total, 15-minute warm-up, two
20-minute intervals at 95–100 % FTP separated by 8 minutes
of recovery, then cool down.
4×8 at threshold: 60 minutes total, 12-minute warm-up,
four 8-minute intervals at 100 % FTP with 4 minutes recovery
between, cool down for the rest.
オーバー・アンダー
Over-unders: 60 minutes total, 12-minute warm-up, three sets
of (3 minutes at 95 % FTP / 1 minute at 105 % FTP) with no
recovery within a set, 5 minutes Z2 between sets, cool down.
VO2 max
VO2max session, 50 minutes total. 15-minute warm-up, then
five 3-minute intervals at 115 % FTP with 3 minutes of easy
spinning between. Cool down at the end.
マイクロバースト
Microbursts: 45 minutes total. 10-minute warm-up, then 20
minutes of 30 seconds at 130 % FTP / 30 seconds at 50 % FTP
back to back. 15-minute cool-down.
ピラミッド
Pyramid: 60 minutes total. 12-minute warm-up, then 1, 2, 3,
4, 3, 2, 1 minute Z5 efforts at 115 % FTP with equal-duration
recovery between. Cool down for the rest.
リカバリー
30-minute recovery ride. Steady Z1 at 50 % FTP throughout,
high cadence (95–100 RPM). No intervals, no surges.
FTPテスト
FTP test, 20-minute protocol: 15-minute warm-up with three
1-minute openers at 110 % FTP near the end, 5 minutes easy,
then 20 minutes all-out at 100 % FTP, then 10-minute cooldown.
より緩やかなランプテストが欲しい場合は、PowerタブにバンドルされているFTP Test (Ramp)ワークアウトを使ってください — アプリのFTP更新フローに合わせて調整されています。
レースシミュレーション
90-minute race simulation: 15-minute warm-up, then alternating
between Z2 base (70 % FTP) and unpredictable surges — random
20-second to 90-second efforts at 110–130 % FTP every few
minutes. Steady Z2 cooldown at the end.
HR-ZoneとPowerのプロンプト
心拍主導のセッションでは、Heart Rateタブから生成してください — エディタの呼び出し元コンテキストが出力の形を決めるので、結果はWattsの割合ではなくHRゾーンのバンドになります。プロンプトではゾーン番号を使ってください:
30 minutes of zone-2 endurance with two 3-minute zone-4
surges in the middle.
45 minutes total. Zone-2 base for 30 minutes, then 10 minutes
zone-3 tempo, then 5 minutes zone-2 cooldown.
心拍はパワーに比べて安定するのに時間がかかるため、HR-Zoneワークアウトはライダーがゾーンに落ち着くための時間を長めに取ります — 安定したゾーンでは3分以上、サージでも1分以上のブロック時間にしてください。
コーチングキューのプロンプト
コーチングキューは、ライド中にコックピットに表示される短いテキストオーバーレイです。明示的に依頼してください:
Threshold intervals with motivation cues during the work
blocks — "stay smooth", "find your rhythm", that kind of
thing.
VO2max session with cadence and form reminders — call out
the start of each interval and remind me to stay relaxed in
the shoulders.
キューはインターバルと一緒に保存されます。AIの選択が好みに合わない場合は、生成後にビジュアルエディタで編集できます。
プロバイダごとの注意点
Your Trainerは3つのAIプロバイダをサポートしています。いずれも妥当な.ytw JSONを生成しますが、それぞれ知っておくとよい構造上の癖があります。
Gemini(デフォルト)
Gemini Flashは高速で安価、Gemini Proは遅めですがより慎重です。デフォルトモデルは構造化出力をうまく扱うので、JSONの解析が失敗することはほとんどありません。癖:GeminiはたまにJSONの周りに応答テキストを付けますが、パーサがそれを除去するのでライダーには見えません。
OpenAI
デフォルトモデルはgpt-4oです。出力の品質は安定しており、構造の信頼性も高いです。トークン制限のため、非常に長いプロンプト(複数段落のトレーニング週の説明など)は途中で切れる可能性が高くなります — 最良の結果を得るためには、プロンプトを数文に抑えてください。
Claude
デフォルトモデルはclaude-sonnet-4-6です。出力の文章部分(キューのテキストがより自然に読めます)に強く、複雑な制約に従うのも得意です。Gemini Flashよりやや遅めですが、OpenAIと同程度です。
プロバイダの切り替え
設定 → AI Coach → プロバイダ。プロバイダごとにデフォルトのモデル名を上書きすることもできます — 新しいモデルがリリースされて、アプリのデフォルトが更新される前に試したい場合に便利です。
カスタムOpenAIベースURL(セルフホスト)
OpenAI互換のAPIエンドポイントを自分で運用している場合 — LM Studio、Ollama、llama.cpp、社内プロキシなど — 設定 → AI Coach → OpenAI Base URLから、Your Trainerをそこに向けることができます。代替エンドポイントを入力し、APIキーはエンドポイントが要求するもの(必要ない場合は空欄)のままにすれば、プロンプトはopenai.comではなくそちらに送られます。AI生成を完全にローカルネットワーク内に留めたい場合に便利です。
インポートしたワークアウトの自動翻訳
別の言語で作成されたワークアウトをインポートしたとき — 例えば英語のラベルとキューを持つ.ytwファイルを、オランダ語でアプリを使っているとき — ワークアウト詳細画面に、元の言語の文字列の横に翻訳ボタンが表示されます。タップすると、名前、説明、ラベル、キューが設定済みのAIプロバイダに送信され、翻訳結果がワークアウトのstrings ブロックに書き戻されます。
翻訳された文字列はワークアウトと一緒に保存されるので、次に開いたときには直接ローカライズされた版が表示されます。元の文字列は保持されます — 翻訳はソースを置き換えるのではなく、追加のロケールを加えます。AI APIキーが必要です(設定 → AI Coach)。
AI Coachに履歴について尋ねる
ワークアウト生成のために設定したのと同じAIプロバイダで、トレーニング履歴に関する質問にも答えられます。Workout History画面を開き、Ask AI Coach入力欄を使ってください — 質問を入力すると、セッションや自己ベストを横断的にまとめたテキスト回答が得られます。便利なプロンプト例:
- 「今月一番きつかったライドはどれ?」
- 「閾値ワークアウトで進歩している?」
- 「ここ4週間のZ2平均パワーはどう変化している?」
- 「効率の良いベストルートを見せて。」
プロバイダに送信される内容。History Assistantは、FTP、体重(設定されている場合)、最大心拍数(設定されている場合)、単位設定に加えて、直近約10セッションのサマリー — 日付、ワークアウトの種類、時間、距離と獲得標高(記録されている場合)、平均パワーと心拍、合計仕事量、計算された各種派生指標(正規化パワー、強度係数、変動指数、TSS、5秒から20分までの標準時間にわたるピークパワー、効率係数、各HRゾーンでの時間、コンプライアンスとリカバリースコア)を送信します。アクティブなライダーのみに限定されます。これをプロバイダに一切送りたくない場合は、History Assistantを使わないでください。
読み取り専用です — AIは要約、比較、傾向の表示はしますが、データの変更、セッションの削除、ワークアウトの修正はできません。ProとFamilyのプランで利用可能です。
AIの出力を手動で編集する
AIの出力はそのままビジュアルワークアウトエディタに入ります — すべてのインターバル、キュー、ケイデンス目標は、ドラッグ、複製、削除できる通常のブロックです。より複雑な編集をするには、ワークアウトを保存し、.ytwにエクスポートして、workout schemaを参考にJSONを直接編集してください。
よくあるパターン:だいたい合っているワークアウトを生成し、AIに戻ることなく、1〜2のインターバルだけを手動で調整(長めのウォームアップ、少し違うリカバリーの形など)します。狙ったセッションをプロンプトエンジニアリングするより速いです。
AIが失敗したとき
v2.1.0以降、すべてのAIフローの決定論的な部分(ワークアウトの作成、トレーニング負荷の計算、検証)は、生のLLM出力に対してではなくMCPサーバーを経由して実行されるため、従来の「AIの応答をワークアウトとして解析できませんでした」モードはほぼなくなりました。通常使用で残っている失敗モードは2つです:
- 「AIプロバイダに到達できませんでした。」ネットワークまたはプロバイダの障害です。再試行し、タブレットの接続を確認してください。続くようなら別のプロバイダを試してください — それぞれ独立して障害を起こします。
- 「AIはこのワークアウトの生成を拒否しました。」コンテンツポリシーによる拒否です。スポーツのプロンプトでは稀ですが、モデルが危害を表すと解釈する言葉によって引き起こされることがあります。中立的に言い換えてください。
1つの劣化モード:MCPサーバー自体に到達できない場合、AI Workout Coachは従来の直接LLM経路にフォールバックします。多くの場合、出力は依然として有効ですが、MCPが復旧するまでは稀に「解析できませんでした」というメッセージが再び現れることがあります。公開サーバーのステータスはインテグレーターページで報告されています。
完全なトラブルシューティングカタログはトラブルシューティング → AI Workout Coachエラーにあります。
AI機能の裏側
v2.1.0以降、AI Workout Coach、History Assistant、Workout Translateはすべて、決定論的な処理 — ワークアウトファイルの作成、トレーニング負荷の計算、ライド分析、フォーマット変換 — をYour Trainerの公開MCPサーバーmcp.your-applications.com/your-trainer経由で実行します。モデルは意図を提案し、MCPサーバーが.ytwを構築し、計算を行い、検証済みの結果を返します。
この分割により、長年の信頼性に関する2つの問題が解決されます:
- フォーマットの幻覚はなくなりました。モデルが直接
.ytwJSONを出力することはなくなったため、ほぼ有効だが形式が崩れた出力がインポート経路に届くことはありません。以前は5〜10 %のワークアウトが解析に失敗していましたが、もう失敗しません。 - 履歴の回答がぶれなくなりました。History Assistantにトレーニング負荷の傾向を尋ねると、実際の時系列計算はあなたの実数値に対してサーバー側で行われます。同じ履歴について同じ質問をした2人のライダーは、同じ回答を得られます。
MCPはステートレスで — データは保持されません — それを必要とする機能を使ったときにのみ呼び出されます。独自のサーバー経由でルーティングしたい場合、インテグレーターページがプロトコルを文書化しています。Your Trainerファイルとやり取りするツールを構築する場合、同じバックエンドを自分で利用できます。インテグレータードキュメントを見る →