フォローアップ提案
Qwen Code は、次に入力したい内容を予測し、入力エリアにプレースホルダーテキストとして表示します。この機能は、LLM 呼び出しを使用して会話コンテキストを分析し、自然な次のステップの提案を生成します。
この機能は CLI ではエンドツーエンドで動作します。WebUI では、フックと UI の配線は利用可能ですが、提案を表示するにはホストアプリケーションが提案生成をトリガーし、フォローアップ状態を配線する必要があります。
仕組み
Qwen Code の応答が完了した後、約 300ms の短い遅延の後、入力エリアに薄暗いプレースホルダーテキストとして提案が表示されます。例えば、バグ修正後には次のように表示されます:
> run the tests提案は、会話履歴をモデルに送信することで生成され、モデルが次に自然に入力する内容を予測します。応答に明示的なヒント(例:Tip: type post comments to publish findings)が含まれている場合、提案されたアクションが自動的に抽出されます。
提案の受け入れ
| キー | アクション |
|---|---|
Tab | 提案を受け入れ、入力に反映する |
Enter | 提案を受け入れ、入力に反映する |
Right Arrow | 提案を受け入れ、入力に反映する |
| 入力操作 | 提案を破棄して通常通り入力する |
Enter は入力を反映するだけで送信はしないため、スラッシュコマンド(例:/clear)を受け入れても自動実行されることはなく、2回目の Enter で自分で送信します。
提案が表示されるタイミング
提案は、以下の条件がすべて満たされた場合に生成されます。
- モデルが応答を完了している(ストリーミング中ではない)
- 会話中に少なくとも2回のモデルのターンが発生している
- 最新の応答にエラーがない
- 確認ダイアログが保留されていない(例:シェル確認、権限)
- 承認モードが
planに設定されていない - 機能が有効になっている(デフォルトはオン — オフにするには
ui.enableFollowupSuggestionsをfalseに設定)
提案は非対話モード(例:ヘッドレス/SDK モード)では表示されません。
提案は以下の場合に自動的に破棄されます:
- 入力を開始したとき
- 新しいモデルのターンが開始されたとき
- 提案が受け入れられたとき
高速モデル
デフォルトでは、提案はメインの会話と同じモデルを使用します。レイテンシを低くするには、専用の高速モデルを設定します:
コマンド経由
/model --fast qwen3-coder-flashまたは、モデル名を指定せずに /model --fast を使用すると、選択ダイアログが開きます。
settings.json 経由
{
"fastModel": "qwen3-coder-flash"
}高速モデルは、プロンプト提案と投機的実行に使用されます。設定されていない場合、メインの会話モデルがフォールバックとして使用されます。
コストに関する注意: 高速モデルはレイテンシを低くしますが、常にコストが低くなるわけではありません。提案生成は、会話のプレフィックスキャッシュを再利用します(
ui.enableCacheSharing経由、デフォルトはオン)。ただし、プレフィックスキャッシュはモデルごとに管理されます。fastModelを別のモデルに設定すると、別のキャッシュにフォークされるため、会話履歴全体が高速モデルでキャッシュされていない入力として再課金されます。長い会話では、デフォルト(メインモデル+共有キャッシュ)の方が高速モデルよりも安価になる可能性があります。履歴のほとんどが割引されたキャッシュレートで課金されるためです。レイテンシがターンごとのコストよりも重要な場合は、fastModelを設定してください。
思考/推論モードは、メインモデルの思考設定に関係なく、すべてのバックグラウンドタスク(提案生成と推測)で自動的に無効になります。これにより、これらのタスクに不要な内部推論にトークンを浪費することを防ぎます。
構成
これらの設定は settings.json で構成できます:
| Setting | Type | Default | Description |
|---|---|---|---|
ui.enableFollowupSuggestions | boolean | true | フォローアップ提案を有効または無効にする |
ui.enableCacheSharing | boolean | true | コスト削減のためにキャッシュを考慮したフォーククエリを使用する(実験的) |
ui.enableSpeculation | boolean | false | 送信前に提案を投機的に実行する(実験的) |
fastModel | string | "" | プロンプト提案と投機的実行のためのモデル |
例
{
"fastModel": "qwen3-coder-flash",
"ui": {
"enableFollowupSuggestions": true,
"enableCacheSharing": true
}
}監視
提案モデルの使用状況は /stats 出力に表示され、高速モデルが提案生成に消費したトークンが示されます。
高速モデルは /about 出力の ‘Fast Model’ にも表示されます。
提案の品質
提案は品質フィルターを通過し、有用であることが確認されます:
- 2〜12語(CJK:2〜30文字)、合計100文字未満である必要があります
- 評価的な内容(“looks good”、“thanks”)は不可
- AI的な口調(“Let me…”、“I’ll…”)は不可
- 複数の文や書式(マークダウン、改行)を含むことは不可
- メタコメント(“nothing to suggest”、“silence”)は不可
- エラーメッセージや接頭辞付きのラベル(“Suggestion: …”)は不可
- 単語のみの提案は一般的なコマンド(yes, commit, push など)にのみ許可されます
- スラッシュコマンド(例:
/commit)は常に単語のみの提案として許可されます