フォローアップ提案
Qwen Code は次に入力する内容を予測し、入力エリアにゴーストテキストとして表示します。この機能は LLM を呼び出して会話のコンテキストを分析し、自然な次のステップを提案します。
この機能は CLI でエンドツーエンドで動作します。WebUI ではフックと UI の基盤処理は利用可能ですが、提案を表示するにはホストアプリケーションが提案の生成をトリガーし、フォローアップの状態を連携する必要があります。
仕組み
Qwen Code の応答が完了すると、短い遅延(約 300ms)の後に入力エリアにグレー表示のテキストとして提案が表示されます。例えば、バグ修正後には次のように表示されることがあります:
> run the tests提案は会話履歴をモデルに送信し、次に自然に入力する内容を予測することで生成されます。応答に明示的なヒント(例:Tip: type post comments to publish findings)が含まれている場合、提案されるアクションは自動的に抽出されます。
提案の適用
| キー | アクション |
|---|---|
Tab | 提案を適用し、入力欄に反映します |
Enter | 提案を適用し、即座に送信します |
Right Arrow | 提案を適用し、入力欄に反映します |
| 任意の文字入力 | 提案を閉じて通常通り入力します |
提案が表示される条件
提案は、以下のすべての条件を満たしたときに生成されます:
- モデルの応答が完了している(ストリーミング中ではない)
- 会話内でモデルのターンが少なくとも 2 回発生している
- 最新の応答にエラーが含まれていない
- 保留中の確認ダイアログがない(例:シェルの確認、権限)
- 承認モードが
planに設定されていない - 設定で機能が有効になっている(デフォルトで有効)
提案は非インタラクティブモード(例:ヘッドレス/SDK モード)では表示されません。
提案は以下のタイミングで自動的に閉じられます:
- 入力を開始したとき
- 新しいモデルのターンが開始されたとき
- 提案が適用されたとき
高速モデル
デフォルトでは、提案はメインの会話と同じモデルを使用します。より高速かつ低コストな提案を得るには、専用の高速モデルを設定してください:
コマンド経由
/model --fast qwen3-coder-flashまたは、モデル名を指定せずに /model --fast を実行して選択ダイアログを開くこともできます。
settings.json 経由
{
"fastModel": "qwen3-coder-flash"
}高速モデルはプロンプトの提案と投機的実行に使用されます。設定されていない場合、フォールバックとしてメインの会話モデルが使用されます。
メインモデルの思考設定に関わらず、すべてのバックグラウンドタスク(提案の生成と投機的実行)では思考/推論モードが自動的に無効になります。これにより、これらのタスクに不要な内部推論でトークンを浪費するのを防ぎます。
設定
これらの設定は settings.json で構成できます:
| 設定 | 型 | デフォルト | 説明 |
|---|---|---|---|
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…” など)でないこと
- 複数の文やフォーマット(Markdown、改行など)を含まないこと
- メタ的なコメント(“nothing to suggest”、“silence” など)でないこと
- エラーメッセージやプレフィックス付きラベル(“Suggestion: …” など)でないこと
- 1 語の提案は一般的なコマンド(yes、commit、push など)にのみ許可されます
- スラッシュコマンド(例:
/commit)は常に 1 語の提案として許可されます