概要
同じタスクでも、さまざまな完了方法があります。Qoder CLI は、リアルタイムの対話から長時間の自動化まで、さまざまなシナリオをカバーする複数の作業方法を提供します。適切な方法を選択することで、「すべてのステップを管理する」ことと「Qoder に自律的に完了させる」ことの間に最適なバランスを見出すことができます。
このドキュメントは、タスクの特性に応じて迅速に選択できるよう支援します。各方法には独立した詳細ドキュメントがあり、クリックしてアクセスできます。
クイック選択
- 対話しながら作業し、いつでも介入したい → インタラクティブモード
- 変更前にプランを確認し、承認してから作業したい → Plan
- 明確な目標があり、Qoder に完了まで継続して作業させたい → Goal
- 指定された時間に実行、またはカレンダーに従って繰り返したい → スケジュールタスク
- 固定された時間間隔で同じタスクを繰り返し実行したい → /loop
- 複数のエージェントが連携し、複雑なフローをオーケストレーションしたい → ワークフロー
- スクリプトや CI/CD で自動実行したい → ヘッドレス
対話しながら作業:インタラクティブモード
インタラクティブモードは、最もよく使われるデフォルトの作業方法です。プロジェクトルートディレクトリで qoder を実行してインタラクティブ(TUI)セッションに入り、自然言語で対話しながら、Qoder の動作をいつでも確認し、権限を承認し、方向性を修正できます。
コードの探索、機能の段階的な実装、問題のデバッグなど、人と AI の緊密な連携が必要なタスクに適しています。詳細は タスクの実行 を参照してください。
計画してから実行:Plan
タスクが複雑で影響範囲が広い場合、または作業前にプランを明確にしたい場合は、Plan を使用します。Plan モードに入ると、Qoder は読み取り専用でコードを探索してプランを出力し、コードを直接変更することはありません。プランを確認した後、Plan を終了して実行を開始します。
/plan コマンドで開始または終了します。詳細は 計画してから実行 を参照してください。
目標を継続的に完了:Goal
明確な完了条件があり、Qoder に達成まで自律的に継続作業させたい場合は、Goal を使用します。/goal set <目標> で開始すると、Qoder は自動的に自動実行状態に切り替わり、途中の介入を減らします。
「すべてのテストをパスさせる」「ビルドが通るまで特定のリファクタリングを完了させる」といった、明確な終了点を持つタスクに適しています。詳細は 目標を継続的に完了(Goal) を参照してください。
指定時間に実行:スケジュールタスク
タスクを将来の特定の時点で 1 回実行する場合、またはカレンダースケジュールに従って繰り返し実行する場合は、スケジュールタスクを使用します。定期検査、定期レポート、スケジュールに基づく自動化のトリガーに適しています。
詳細は 定期実行タスク を参照してください。
固定間隔で繰り返し実行:/loop
固定された時間間隔で同じタスクを繰り返し実行する必要がある場合は、/loop を使用します。ステータスのポーリング、継続的なチェック、定期的な反復アクションに適しています。
詳細は タスクの繰り返し実行 を参照してください。
複数エージェントの連携:ワークフロー
タスクが複雑で、複数のエージェントによる分業と連携が必要な場合は、ワークフローをオーケストレーションし、タスクを異なるサブエージェントに分割して処理させることができます。大規模タスクの分解と並列推進に適しています。
サブエージェントの作成とオーケストレーションについては サブエージェント、複数エージェントのオーケストレーションについては Dynamic workflows、並列連携については 複数タスクの並列処理 を参照してください。
スクリプトで実行:ヘッドレス
Qoder CLI をスクリプト、自動化フロー、または CI/CD パイプラインに組み込む必要がある場合は、ヘッドレス(非対話)モードを使用します。qoder --print で実行し、テキスト、JSON、または JSON ストリームの構造化結果を出力できます。
隣で確認する人がいないため、ヘッドレスモードでは事前に権限を構成しておく必要があります。詳細は スクリプトでの実行 を参照してください。
組み合わせて使用
これらの作業方法は相互に排他的ではなく、組み合わせることができます。例:
- まず Plan でプランを確認し、その後 Goal に移行して Qoder に完了まで自律的に実行させます。
- ヘッドレス モードで権限モードを組み合わせ、無人かつ制御された自動化を実現します。
- スケジュールタスク または /loop を使用して、固定された自動化フローをトリガーします。