Skip to Content
デベロッパーガイドツールはじめに

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 にプロンプトを入力する。処理の流れは以下の通りだ:

  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 からのコンテンツ取得に使用する。
  • マルチファイル読み取りツール (read_many_files): 複数のファイルやディレクトリからコンテンツを読み取るための専用ツールで、@ コマンドでよく使用される。
  • メモリツール (save_memory): セッションをまたいだ情報の保存と呼び出しに使用する。
  • Todo 書き込みツール (todo_write): コーディングセッション中に構造化されたタスクリストの作成と管理に使用する。
  • タスクツール (task): 複雑なタスクを専門のサブエージェントに委任するために使用する。
  • プランモード終了ツール (exit_plan_mode): プランモードを終了して実装に進むために使用する。

さらに、これらのツールには以下の機能も組み込まれている:

Last updated on