Qwen Code ツール
Qwen Code には、モデルがローカル環境との対話、情報へのアクセス、およびアクションの実行に使用する組み込みツールが含まれています。これらのツールは CLI の機能を拡張し、テキスト生成を超えて幅広いタスクのサポートを可能にします。
Qwen Code ツールの概要
Qwen Code において、ツールはモデルが実行を要求できる特定の関数またはモジュールです。例えば、モデルに「my_document.txt の内容を要約して」と指示した場合、モデルはそのファイルを読み込む必要があると判断し、read_file ツールの実行を要求します。
コアコンポーネント(packages/core)はこれらのツールを管理し、その定義(スキーマ)をモデルに提示します。要求に応じてツールを実行し、結果をモデルに返すことで、ユーザー向けの応答にさらに処理されます。
これらのツールは、以下の機能を提供します:
- ローカル情報へのアクセス: ツールを使用すると、モデルはローカルファイルシステムにアクセスし、ファイル内容の読み取りやディレクトリの一覧表示などを行えます。
- コマンドの実行:
run_shell_commandなどのツールを使用すると、モデルはシェルコマンドを実行できます(適切な安全対策とユーザーの確認を伴います)。 - Web との対話: ツールは URL からコンテンツを取得できます。
- アクションの実行: ツールはファイルの変更、新規ファイルの作成、またはシステム上でのその他のアクションを実行できます(通常、安全対策が適用されます)。
- 応答の根拠付け: ツールを使用してリアルタイムまたは特定のローカルデータを取得することで、応答の精度と関連性が向上し、実際のコンテキストに基づいたものになります。
Qwen Code ツールの使用方法
Qwen Code ツールを使用するには、CLI にプロンプトを入力します。処理の流れは以下の通りです:
- CLI にプロンプトを入力します。
- CLI がプロンプトをコアに送信します。
- コアは、プロンプトと会話履歴とともに、利用可能なツールの一覧とその説明/スキーマを構成済みのモデル API に送信します。
- モデルがリクエストを分析します。ツールの実行が必要と判断された場合、モデルの応答には特定のパラメータを指定した特定ツールの実行要求が含まれます。
- コアはこのツール要求を受信して検証し、(機密性の高い操作の場合は多くの場合ユーザーの確認を経て)ツールを実行します。
- ツールの出力がモデルに返送されます。
- モデルはツールの出力を使用して最終的な回答を生成し、それがコアを経由して CLI に返され、ユーザーに表示されます。
CLI には通常、ツールが呼び出されたタイミングや、成功/失敗したことを示すメッセージが表示されます。
セキュリティと確認
ファイルシステムの変更やコマンドの実行を行うツール(write_file、edit、run_shell_command など)の多くは、安全性を考慮して設計されています。Qwen Code では通常、以下の処理が行われます:
- 確認の要求: 機密性の高い操作を実行する前に、実行されるアクションの内容を表示して確認を求めます。
- サンドボックスの利用: すべてのツールはサンドボックスによる制限の対象となります(Qwen Code におけるサンドボックス を参照)。これは、サンドボックス内で動作する場合、使用したいすべてのツール(MCP サーバーを含む)がサンドボックス環境 内 で利用可能である必要があることを意味します。例えば、
npxを介して MCP サーバーを実行する場合、npx実行ファイルはサンドボックスの Docker イメージ内にインストールされているか、sandbox-exec環境で利用可能である必要があります。
ツールに処理を許可する前に、確認プロンプトを必ず注意深く確認することが重要です。
Qwen Code のツールについて詳しく知る
Qwen Code の組み込みツールは、大まかに以下のカテゴリに分類されます:
- ファイルシステムツール: ファイルやディレクトリとの対話(読み取り、書き込み、一覧表示、検索など)に使用します。
- シェルツール (
run_shell_command): シェルコマンドの実行に使用します。 - Web フェッチツール (
web_fetch): URL からのコンテンツ取得に使用します。 - Web 検索ツール (
web_search): Web 検索に使用します。 - マルチファイル読み取りツール (
read_many_files): 複数のファイルやディレクトリからコンテンツを読み取るための専用ツールで、@コマンドでよく使用されます。 - メモリツール (
save_memory): セッション間で情報の保存と呼び出しに使用します。 - Todo 書き込みツール (
todo_write): コーディングセッション中に構造化されたタスクリストの作成と管理に使用します。 - タスクツール (
task): 複雑なタスクを専門のサブエージェントに委任するために使用します。 - プランモード終了ツール (
exit_plan_mode): プランモードを終了して実装に進むために使用します。
さらに、これらのツールには以下の要素も組み込まれています:
- MCP サーバー: MCP サーバーは、モデルとローカル環境や API などの他のサービスとの間のブリッジとして機能します。
- MCP クイックスタートガイド: 実践的な例を使って 5 分で MCP を始める
- MCP 設定例: 一般的なシナリオですぐに使用できる設定
- MCP テストと検証: MCP サーバーの設定をテストおよび検証する
- サンドボックス: サンドボックスは、モデルとその変更を環境から分離し、潜在的なリスクを低減します。
Last updated on