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): シェルコマンドの実行用 - モニターツール (
monitor): 長期間実行されるシェルコマンドをバックグラウンドタスク通知として出力をストリーミングするため - Web フェッチツール (
web_fetch): URL からコンテンツを取得するため - Todo 書き込みツール (
todo_write): コーディングセッション中に構造化されたタスクリストを作成・管理するため - エージェントツール (
agent): 複雑なタスクを専門のサブエージェントに委任するため - 計画モード終了ツール (
exit_plan_mode): 計画モードを終了し実装に進むため
さらに、これらのツールは以下を含みます。
- MCP サーバー: MCP サーバーは、モデルとローカル環境や API などの他のサービスとの間のブリッジとして機能します。
- MCP ユーザーガイド: Qwen Code から MCP サーバーを設定・管理する
- MCP 経由の Web 検索: MCP を通じて Web 検索サービス(Bailian、Tavily、GLM)に接続する
- サンドボックス: サンドボックスはモデルとその変更を環境から隔離し、潜在的なリスクを低減します。
Last updated on