Skip to Content
ユーザーガイドセッション Workflow モード

セッション Workflow モード

Workflow モードは、現在のセッションで通常の新規送信において Workflow ツールを検討する設定を保存する。デフォルトはオフである。モデルは引き続き workflow が有用かどうかを判断し、すべての権限、信頼、予算、およびツールの制限は引き続き適用される。モードを有効にしても、実行が開始されたり、推論 effort が変更されたり、デフォルト設定が変更されたりすることはない。

Workflow ツールはオプトインである。モードをオンにする前に、設定で tools.workflowsEnabled を有効にするか、QWEN_CODE_ENABLE_WORKFLOWS=1 を設定する:

QWEN_CODE_ENABLE_WORKFLOWS=1 qwen --workflow-mode on qwen --resume <session-id> --workflow-mode off

ツールが利用できない状態で --workflow-mode on で起動すると、初期化に失敗する。QWEN_CODE_DISABLE_WORKFLOWS=1 は有効化よりも優先される。

どちらのターミナルレンダラーでも、/workflows mode または /workflows mode status を使用して状態を確認し、/workflows mode on または /workflows mode off で変更する。これらのモード制御はレスポンスのストリーミング中でも実行でき、その後の対象となる送信に適用される。フッターには Workflow mode: on が表示される。保存された設定を現在適用できない場合は Workflow mode: on (unavailable) が表示される。既存の /workflows 実行リストと一時停止制御は元の動作を維持する。

状態は requested(保存された設定)、available(必要なツールが現在使用可能)、effective(両方が true)に分離される。オンにするには Workflow ツールが利用可能である必要がある。オフにすることは、ツールが利用できない場合でも可能である。ツールを失っても保存されたオンの設定は消去されない。ツールを復元すると、その設定が再度有効になる。

このモードは、通常のローカルセッションと、セカンダリワークスペースオーナーを含む通常のデーモンセッションでサポートされる。マネージドセッション、SSH セッション、派生/サブエージェントセッション、セッションエージェントセッション、およびチャット記録が無効になっているセッションは、モードの変更をサポートしない。サポートされていないプロトコルのセッションは、機能やオプションを通知しない。書き込みに失敗しても、公開されたモードは変更されない。

Web Shell と VS Code

Web Shell、分割ペイン、および最新の VS Code チャットの composer は、サポートされているセッションの + メニューに Workflow を表示する。チェックマークは保存された設定を示し、モードが現在有効かどうかは示さない。幅の広い画面では、2行目にモードの機能または現在の状態の要約が表示される。設定がオンの間、ツールバーには Workflow chip が表示される。ツールチップにはステータスの詳細が表示され、クリックするとモードがオフになる。設定がオンでもツールが利用できない場合、エントリはチェックされたままになり、chip は警告色で表示される。どちらでもモードをオフにできる。

セッションが作成または復元される前、コントロールは可用性プレースホルダーを表示する。セッションを作成したり、将来の設定を保存したりすることはない。古いサーバーを含む、サポートを通知しないホストはエントリを非表示にする。+ メニューを非表示にするホストは、エントリも chip も表示しない。

別のクライアントからの変更は、同じセッションのコントロールを自動的に更新する。書き込み中または再接続中は、最後に確認された値が表示されたままになり、状態が確認されるまでエントリと chip は無効になる。タイムアウトは未確認の結果であり、成功した変更ではない。クライアントは書き込みを自動的に繰り返すのではなく、現在の状態を読み取る。アクティブなレスポンスはエントリや chip を無効にしない。変更は次の新しいターンに適用され、effort は変更されない。

リマインダーと入力動作

最初の対象となる送信には、モデルのみのリマインダーが送信される。他の変更がない場合、11回目と21回目の送信にまばらなリマインダーが続き、その後は10回目の対象となる送信ごとにリマインダーが送信される。オフにするか機能を失うと、次の対象となる送信で1回の退出通知が送信される。実際のモデルディスパッチのみがリマインダーを消費し、カウントを進める。ディスパッチ前のキャンセルや拒否はカウントしない。リトライとフォールバックの試行は、同じ配信トークンを共有する。キャンセルによってディスパッチされたモードリマインダーがモデル履歴から削除された場合、次の対象となる送信が現在の状態を再度通知する。

通常の CLI、SDK、ACP 送信は、人間由来の宣言なしにこの明示的なモードを使用できる。ツールの継続、リトライ、フック、スラッシュコマンドで生成されたプロンプト、シェルモード、サイドクエリ、自動 Goal/Cron/通知/チャンネルターン、およびサブエージェントは、新しいモードリマインダーを追加せず、カウントを進めない。モードまたは未配達の遷移がコンテキストを必要とする間、プロンプトの投機的実行は一時停止される。

ワンターンのキーワードヒントは別途存在する。その人間由来の要件とオプトアウト設定は変更されない。有効なキーワードとモードリマインダーは1つのエンベロープを共有する。永続モードをオフにしても、有効なワンターンのキーワードは無効にならない。モードのみのリマインダーは、一時的なキーワードインジケーターやキーワードテレメトリをアクティブにしない。

セッションライフサイクル

再開すると、選択されたトランスクリプトブランチの最後の有効な真偽値レコードが復元され、保存されたオンまたはオフの状態が1回通知される。明示的な CLI または SDK の初期値は、セッションが準備できた後、一度だけその復元された値を上書きする。競合する初期値、または Workflow ツールが利用できない状態での初期オン値は、初期化に失敗する。新規またはクリアされたセッションはオフで開始される。フォークは、選択されたチェックポイントを独立して継承する。rewind は現在の設定を保持し、復元されたブランチにアンカーする。正常なコンパクションは、次の対象となる新しい送信で状態を再通知する。失敗した再開またはブランチ切り替え後の前のセッションの履歴再構築では、次の対象となる送信が保存された状態を再通知する。保存された設定がないセッションは通知しない。

TypeScript SDK と ACP

const session = query({ prompt: messages(), options: { workflowMode: true }, }); const state = await session.getWorkflowMode(); await session.setWorkflowMode(false);

workflowMode はオプションである。省略すると再開された値が保持され、false は明示的にオフを保存する。初期化は初期値をネゴシエーションしてステージングする。Query.initialized は制御ハンドシェイクである。get/set 操作はセッションの準備完了を待つ。セッション初期化が進行中の間、繰り返しの初期化リクエストは拒否される。古い CLI は、最初のプロンプトの前に明示的なモードリクエストを無視するのではなく拒否する。カスタムトランスポートも同じ制御プロトコルを使用する。

ACP は、値 on と off を持つ標準の workflow_mode 設定オプションを通知する。currentValue はリクエストされた状態を反映し、_meta['qwen.workflowMode'] には available、effective、およびオプションの reason が含まれる。コミットされた変更と機能リフレッシュは、config_option_update を通じて完全なオプションを公開する。

デーモンクライアントは、既存のセッション設定オプションエンドポイントまたは setSessionConfigOption(sessionId, 'workflow_mode', 'on', clientId) を使用する。このオプションは persist オーバーライドを受け付けない。常にセッション永続的である。コンテキストの読み取りと更新は、そのセッションのライブオーナーに属し、リースと世代チェックを含む。Web Shell と最新の VS Code ホストは、同じセッション制御と更新を消費する。

Last updated on