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 サーバーの設定をテスト・検証する方法。
- サンドボックス化:サンドボックス化により、モデルおよびその変更がローカル環境から隔離され、潜在的なリスクが軽減されます。