Documentation Index
Fetch the complete documentation index at: https://kawax.biz/llms.txt
Use this file to discover all available pages before exploring further.
ステアリングとキューイング
通常の Laravel アプリケーションのフローでは、ステアリングを直接使う場面はほとんどありません。Laravel の同期的な実行パターンでは恩恵を受けづらく、基本はデフォルトのキューイング運用が適しています。
概要
send() / sendAndWait() / sendAndStream() / Copilot::run() のすべてに $mode パラメータがあります。
| モード | 動作 |
|---|---|
"enqueue"(デフォルト) | 現在のターンが完了した後にキューとして処理される |
"immediate"(ステアリング) | 現在処理中のターンに割り込んで即座に注入される |
ステアリング("immediate")
エージェントが処理中のターンに直接メッセージを注入します。エージェントはリアルタイムでメッセージを受け取り、応答を調整します。進行中の作業を中断せずに方向修正したい場合に使います。
キューイング("enqueue")
メッセージをキューに追加し、現在のターンが完了してから順次処理します。各キューされたメッセージは独立したターンとして実行されます。$mode を省略した場合のデフォルト動作です。
Laravelでの実用的な考え方
Laravel ではCopilot::run() や sendAndWait() を使う同期的なパターンが中心です。これらはメッセージを送ってアイドル状態になるまで待機するため、エージェントが処理中に割り込む機会がなく、$mode は実質的に意味をもちません。
"immediate")が活きるのは、send() で非同期的にメッセージを送りつつ、並行して別のメッセージで進行中のターンに介入できる場合です。Laravel の同期的な処理フローでは、その機会を作るのが難しいため、基本的には $mode を指定せずデフォルトのままにしておくのが適切です。
どちらを使うべきか
| 場面 | パターン |
|---|---|
| エージェントが間違った方向に進んでいる | ステアリング("immediate") |
| 次にやることを思いついた | キューイング("enqueue") |
| 複数タスクを順番に実行したい | キューイング("enqueue") |
| 通常の Laravel アプリ | デフォルト($mode 不要) |
ベストプラクティス
- デフォルトはキューイング —
$modeを省略(または"enqueue"を指定)するのがほとんどのケースで適切です。予測可能な動作をします。 - ステアリングは修正用に —
"immediate"はエージェントが明らかに間違ったことをしている場合に限定して使います。 - ステアリングメッセージは簡潔に — 現在のコンテキストで理解できる短いメッセージにします。長く複雑なステアリングメッセージはかえって混乱を招きます。
- 連続ステアリングは避ける — 短時間に複数のステアリングを送るとターンの品質が低下する可能性があります。大幅な方向転換が必要な場合はターンを中断して最初からやり直す方が適切なこともあります。
参考
最新情報は GitHub リポジトリ を参照してください。