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 などの他のサービスとの間のブリッジとして機能します。