Skip to Content
開発者ガイドツールはじめに

Qwen Code ツール

Qwen Code には、モデルがローカル環境とやり取りしたり、情報にアクセスしたり、アクションを実行したりするために使用する組み込みツールが含まれています。これらのツールは CLI の機能を強化し、テキスト生成を超えてさまざまなタスクを支援できるようにします。

Qwen Code ツールの概要

Qwen Code の文脈において、ツールとはモデルが実行を要求できる特定の関数またはモジュールです。例えば、モデルに「my_document.txt の内容を要約してください」と依頼すると、モデルはそのファイルを読み込む必要性を認識し、read_file ツールの実行を要求する可能性が高いでしょう。

コアコンポーネント(packages/core)はこれらのツールを管理し、モデルに対してツールの定義(スキーマ)を提示し、要求されたときにツールを実行し、結果をモデルに返してユーザー向けの応答へとさらに処理させます。

これらのツールは以下の機能を提供します:

  • ローカル情報へのアクセス: ツールにより、モデルはローカルファイルシステムにアクセスし、ファイルの内容を読み込んだり、ディレクトリをリスト表示したりできます。
  • コマンドの実行: run_shell_command のようなツールにより、モデルはシェルコマンドを実行できます(適切な安全対策およびユーザー確認あり)。
  • ウェブとのインタラクション: ツールにより、URL からコンテンツを取得できます。
  • アクションの実行: ツールにより、ファイルの変更、新規ファイルの作成、またはシステム上の他のアクションを実行できます(ここでも通常は保護機能付き)。
  • 応答の根拠付け: ツールを使用してリアルタイムまたは特定のローカルデータを取得することで、応答をより正確で関連性があり、あなたの実際のコンテキストに基づいたものにできます。

Qwen Code ツールの使用方法

Qwen Code ツールを使用するには、CLI にプロンプトを入力します。処理の流れは以下の通りです:

  1. CLI にプロンプトを入力します。
  2. CLI がプロンプトをコアに送信します。
  3. コアは、プロンプトと会話履歴とともに、利用可能なツールの一覧とその説明・スキーマを設定されたモデル API に送信します。
  4. モデルがリクエストを分析し、ツールが必要と判断した場合、特定のツールを指定のパラメータで実行するリクエストを含んだレスポンスを返します。
  5. コアがこのツールリクエストを受け取り、検証を行った後、(機密性の高い操作の場合はユーザー確認を経て)ツールを実行します。
  6. ツールからの出力がモデルに送り返されます。
  7. モデルはツールの出力をもとに最終的な回答を作成し、それがコアを経由して CLI に送られ、表示されます。

通常、CLI 上ではツールが呼び出されていることや、その成功・失敗に関するメッセージが表示されます。

セキュリティと確認

多くのツール、特にファイルシステムを変更したりコマンドを実行できるツール(write_fileeditrun_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などの他のサービスとの橋渡しをするものです。
  • サンドボックス サンドボックスは、モデルとその変更を環境から隔離し、潜在的なリスクを減らすための仕組みです。
Last updated on