エージェントモードの仕組み
エージェントモードは、チャットモードと同じ機能を提供しつつ、モデルへのリクエストにツール(Tools)を含め、ツールの呼び出しと回答を処理するためのインターフェースを備えています。
ツールハンドシェイクの仕組み
ツールは、モデルが外部の世界とやり取りするための柔軟で強力な手段を提供します。ツールは、名前と引数のスキーマ(Arguments Schema)を持つJSONオブジェクトとして、モデルに提供されます。例えば、filepath という引数を持つ read_file ツールを提供することで、モデルは特定のファイルの内容を要求できるようになります。
以下のハンドシェイク(やり取り)は、エージェントモードがどのようにツールを使用するかを説明しています:
- エージェントモードでは、使用可能なツールが
userのチャットリクエストと共に送信されます。 - モデルは、回答の中にツール呼び出しを含めることを選択できます。
- ユーザーが許可を与えます。そのツールのポリシーが
Automatic(自動)に設定されている場合、このステップはスキップされます。 - Prometheusは、内蔵機能またはそのツールを提供するMCPサーバーを使用してツールを呼び出します。
- Prometheusは結果をモデルに送り返します。
- モデルが回答します。必要に応じて再度ツール呼び出しを行い、ステップ2に戻ります。
利用可能なツールはモードによって異なります:
- チャットモード (Chat mode): ツールは含まれません
- プランモード (Plan mode): 読み取り専用ツールのみ含まれます
- エージェントモード (Agent mode): すべてのツールが含まれます
利用可能な組み込みツール
Prometheusには、モデルがIDE機能にアクセスできるようにするための組み込みツールがいくつか含まれています。プランモードで利用可能なツール(読み取り専用)
プランモードでは、以下の読み取り専用ツールのみが利用可能です:- Read file (
read_file): ファイルを読み込む - Read currently open file (
read_currently_open_file): 現在開いているファイルを読み込む - List directory (
ls): ディレクトリ内容を一覧表示する - Glob search (
glob_search): Globパターンで検索する - Grep search (
grep_search): Grepで検索する - Fetch URL content (
fetch_url_content): URLのコンテンツを取得する - Search web (
search_web): ウェブ検索を行う - View diff (
view_diff): 差分を表示する - View repo map (
view_repo_map): リポジトリマップを表示する - View subdirectory (
view_subdirectory): サブディレクトリを表示する - Codebase tool (
codebase_tool): コードベースツール
エージェントモードで利用可能なツール(すべてのツール)
エージェントモードでは、上記の読み取り専用ツールに加えて、以下のツールを含むすべてのツールが利用可能です:- Create new file (
create_new_file): プロジェクト内に新しいファイルを作成する - Edit file (
edit_existing_file): 既存のファイルを編集する - Run terminal command (
run_terminal_command): ワークスペースのルートからコマンドを実行する - Create Rule Block (
create_rule_block):.continue/rulesに新しいルールブロックを作成する - その他、コードベースを修正するためのすべての書き込み/実行ツール