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 がそのプロンプトをコアに送信する。
- コアは、あなたのプロンプトと会話履歴とともに、利用可能なツールの一覧とその説明・スキーマを、設定された model API に送信する。
- モデルがリクエストを分析し、ツールの利用が必要と判断した場合、レスポンスには特定のツールを指定されたパラメータで実行するリクエストが含まれる。
- コアはこのツール実行リクエストを受け取り、検証した上で(機密性の高い操作の場合はユーザー確認を経て)ツールを実行する。
- ツールの出力はモデルに送り返される。
- モデルはツールの出力を使って最終的な回答を生成し、それがコアを経由して CLI に送られ、表示される。
通常、CLI 上ではツールが呼び出されたタイミングや、その成否に関するメッセージが表示されます。
セキュリティと確認
多くのツール、特にファイルシステムを変更したりコマンドを実行できるツール(write_file
、edit
、run_shell_command
など)は、安全性を考慮して設計されています。Qwen Code は通常以下のように動作します:
- 確認を要求する: 潜在的に危険な操作を実行する前に、どのようなアクションが実行されようとしているかを表示して確認を求めます。
- サンドボックスの利用: すべてのツールはサンドボックスによって適用される制限の対象となります(Qwen Code におけるサンドボックスを参照)。これは、サンドボックス内で動作している場合、使用したいすべてのツール(MCP サーバーを含む)がサンドボックス環境内で利用可能でなければならないことを意味します。例えば、
npx
を介して MCP サーバーを実行するには、npx
実行ファイルがサンドボックスの Docker イメージ内にインストールされているか、またはsandbox-exec
環境内で利用可能である必要があります。
ツールに処理を進める許可を与える前に、確認プロンプトを常に慎重に確認することが重要です。
Qwen Code のツールについて詳しく知る
Qwen Code に組み込まれているツールは、大まかに以下のように分類できます:
- File System Tools: ファイルやディレクトリに対する操作(読み込み、書き込み、一覧表示、検索など)を行うためのツールです。
- Shell Tool (
run_shell_command
): シェルコマンドを実行するためのツールです。 - Web Fetch Tool (
web_fetch
): URL からコンテンツを取得するためのツールです。 - Web Search Tool (
web_search
): Web を検索するためのツールです。 - Multi-File Read Tool (
read_many_files
): 複数のファイルやディレクトリからコンテンツを読み込むための専用ツールで、@
コマンドでよく使われます。 - Memory Tool (
save_memory
): セッションをまたいで情報を保存・呼び出すためのツールです。 - Todo Write Tool (
todo_write
): コーディングセッション中に構造化されたタスクリストを作成・管理するためのツールです。
さらに、これらのツールには以下が組み込まれています:
- MCP servers: MCP サーバーは、モデルとローカル環境や API などの他のサービスとの間のブリッジとして機能します。
- Sandboxing: サンドボックス機能により、モデルとその変更が環境から隔離され、潜在的なリスクを低減します。