Skip to main content
コアコンセプト

タスク実行の仕組み

概要

Qoder CLIの動作原理を理解することで、その挙動をより正確に予測し、効果的なプロンプトを作成できるようになります。また、必要に応じて適切に制御し、修正を行うことも可能になります。 Qoder CLIの中核はエージェントです。エージェントはユーザーのリクエストを受け取り、意図を理解し、手順を計画し、ツールを呼び出してプロジェクトや環境と対話し、各ステップの結果に基づいてタスクが完了するまで戦略を継続的に調整します。このプロセス全体は、エージェント、ツール、権限、コンテキストという4つの要素が連携して動作します。

エージェントメインループ

Qoder CLIがリクエストを処理する際、大まかには以下のループを経ます。
  1. リクエストの受信:ユーザーの入力を読み取り、現在のコンテキスト(会話履歴、プロジェクト指示、メモリ)と組み合わせて、達成したい目標を理解します。
  2. 次のステップの計画:モデルが次に何をすべきかを決定します。ファイルを読み込んで現状を把握するか、コードを検索するか、直接修正するか、あるいはコマンドを実行して検証するかを選択します。
  3. ツールの呼び出し:エージェントがツールを通じて具体的なアクションを実行します。例えば、ファイルの読み取り、コードの編集、シェルコマンドの実行、コードの検索、Webページの取得などです。
  4. 結果の観察:ツールから返された結果をコンテキストに再度取り込みます。
  5. 継続または終了:結果に基づいてタスクが完了したかどうかを判断します。未完了の場合はステップ2に戻って次のステップを計画し、完了した場合はまとめを提示します。
このループは、タスクが完了するか、最大ターン数に達するか、ユーザーが手動で中断するまで複数回繰り返されます。ワンショットの生成ではなくループ構造であるため、Qoderは複数のステップを要し、複数ファイルにまたがり、実行しながら検証するような複雑なタスクを処理できるのです。
--max-turns を使用して1回の実行における最大会話ターン数を制限することで、自動化シナリオでの無限ループを防ぐことができます。

ツール

エージェント自体は思考と意思決定のみを担当し、外部世界に対する実際の操作はすべてツールを通じて行われます。Qoder CLIには、以下の一般的なツールが組み込まれています。
  • ファイル関連:ファイルの読み取り、書き込み、編集、およびディレクトリの参照。
  • 実行関連:シェルコマンドの実行。
  • 検索関連:コンテンツによるコード検索(Grep)、ファイル名による検索(Glob)。
  • 情報関連:Web検索、Webスクレイピング。
組み込みツールのほか、MCP を介して外部ツールを接続したり、スキルサブエージェント を通じてエージェントの機能を拡張したりすることもできます。ツールの完全なリスト、用途、制限については、組み込みツール を参照してください。

権限

ツールの呼び出しは、ファイルの修正、コマンドの実行、ネットワークへのアクセスといった副作用を伴う可能性があります。ユーザーが常に制御権を握れるよう、Qoderは各ツール呼び出しの前に権限チェックを行い、その結果は以下の3つのいずれかになります。
  • allow:ツールを即座に実行します。
  • ask:確認後に実行します。
  • deny:その呼び出しをブロックします。
権限の具体的な動作は権限モードによって決定されます。例えば、デフォルトモードでは、安全な読み取り操作は自動的に実行され、機密性の高い操作は確認を求められます。一方、より自動化されたモードでは、より多くの操作が自動的に許可されます。 実行環境によって ask の処理方法は異なります。インタラクティブターミナルでは確認のためのポップアップが表示され、非対話(ヘッドレス)モードでは ask が拒否に変換され、SDKやIDE統合ではホストプログラムに決定が委ねられます。 権限モード、ルール構成、ディレクトリ信頼の完全な説明については、権限 を参照してください。

コンテキスト

Qoderはセッションごとにコンテキストを再構築します。意思決定の際に依存する背景情報は、主に以下の3つのレベルから得られます。
  • 会話コンテキスト:現在のセッションにおける履歴メッセージ、ツール呼び出し、およびその結果。会話が進むにつれて、コンテキストは蓄積されていきます。
  • プロジェクト指示AGENTS.md やルールなど、ユーザーまたはチームによって維持される静的メモリで、プロジェクト構造、開発標準、コラボレーションの取り決めを記述します。
  • 長期メモリ:セッションをまたいで保持される情報で、チームの取り決めやオプションの自動メモリを含みます。
コンテキストウィンドウには限りがあります。会話が長引いた場合、Qoderはコンパクト化などのメカニズムを通じてコンテキストを管理します。これら3つの違いと連携方法については、メモリの仕組み を参照してください。

さまざまな作業方法

上記で説明したのは、最も基本的なインタラクティブなループです。さまざまなタスクに対応するため、Qoder CLIは複数の作業方法を提供しています。計画してから実行するPlan、目標を継続的に達成するGoal、スケジュールタスク、間隔を置いて繰り返す/loop、複数エージェントが連携するワークフロー、そしてスクリプトに適したヘッドレスモードなどです。作業方法の選択については、適切な作業方法の選択 を参照してください。
Qoder CLI を使用する