# ツールシステムリファレンス (/ja/docs/verdent-for-vscode/advanced-features/tool-reference)

> Verdentのツールシステムの完全なリファレンス



### このページで学べること [#このページで学べること]

ファイル操作、検索機能、コマンド実行、連携ツールなど、Verdentの組み込みツールシステムに関する包括的なリファレンスです。

***

## 利用可能なツールの概要 [#利用可能なツールの概要]

Verdent for VS Codeは、コードの操作、ナビゲーション、外部との連携のための包括的なツールキットを提供します。

<Tabs>
  <Tab title="ファイル操作">
    | ツール          | 目的            | 主な機能                             |
    | ------------ | ------------- | -------------------------------- |
    | `file_read`  | ファイル内容の読み取り   | 大きなファイル向けの行範囲指定に対応、あらゆるテキスト形式で動作 |
    | `file_edit`  | 対象を絞った変更      | 完全一致したテキストの置換、複数箇所の置換、書式の保持      |
    | `file_write` | ファイルの作成または上書き | ファイルの作成・置換を完全に実行、テキストコンテンツを処理    |
  </Tab>

  <Tab title="検索とナビゲーション">
    | ツール            | 目的             | 主な機能                               |
    | -------------- | -------------- | ---------------------------------- |
    | `glob`         | パターンベースのファイル検索 | Glob パターン（`**/*.ts`）、除外パターン、結果数の制限 |
    | `grep_content` | コンテキスト付きの内容検索  | 正規表現対応、コンテキスト行、大文字小文字を区別しないオプション   |
    | `grep_file`    | 一致するファイルの一覧表示  | 内容を読み取る前にファイルを素早く特定                |
    | `list_dir`     | ディレクトリ構造       | 階層の表示、除外パターン、深さの制御                 |
  </Tab>

  <Tab title="実行と連携">
    | ツール              | 目的           | 主な機能                                                |
    | ---------------- | ------------ | --------------------------------------------------- |
    | `bash`           | シェルコマンドの実行   | タイムアウト設定、概要説明、コマンドの連結                               |
    | `spawn_subagent` | 専門エージェントへの委任 | general、explorer、verifier、code-reviewer サブエージェントの起動 |
    | `todo_update`    | タスクの進捗管理     | タスクリストの管理、ステータスの更新、進捗の追跡                            |
  </Tab>

  <Tab title="Web アクセス">
    | ツール          | 目的        | 主な機能                        |
    | ------------ | --------- | --------------------------- |
    | `web_search` | インターネット検索 | クエリの実行、結果数の制御、新しさによるフィルタリング |
    | `web_fetch`  | ページの取得と分析 | コンテンツの取得、クエリによる情報抽出         |
  </Tab>
</Tabs>

***

## ツールの機能とユースケース [#ツールの機能とユースケース]

<Tabs>
  <Tab title="ファイル操作">
    ### file\_read [#file_read]

    **機能:**

    * ファイル内容の全体または特定の行範囲の読み取り
    * 変更前にコードを理解するために不可欠
    * 行範囲指定により大きなファイルを効率的に処理

    **ユースケース:**

    * 編集前の設定ファイルの読み取り
    * 既存の実装パターンの理解
    * カバレッジを把握するためのテストファイルの確認

    **例:**

    ```bash
    # Read entire file
    file_read("src/components/Button.tsx")

    # Read specific range for large files
    file_read("package-lock.json", start_line=1, max_lines=50)
    ```

    ***

    ### file\_edit [#file_edit]

    **機能:**

    * 完全一致による正確なテキストの置換
    * `multiple`フラグによる複数箇所の置換
    * ファイル構造と書式の保持

    **ユースケース:**

    * 関数の実装の更新
    * 設定値の変更
    * ファイル全体にわたる変数名のリファクタリング

    **ベストプラクティス:** 対象を絞った変更に使用します。完全な書き換えには、代わりに`file_write`を使用してください。

    ***

    ### file\_write [#file_write]

    **機能:**

    * 新規ファイルをゼロから作成
    * 既存ファイルの内容を完全に置換
    * あらゆるテキストベースの形式を処理

    **ユースケース:**

    * 新しいコンポーネントやモジュールの生成
    * 設定ファイルの作成
    * テストファイルの記述

    **警告:** 既存ファイルを完全に上書きします。部分的な変更には`file_edit`を使用してください。
  </Tab>

  <Tab title="検索とナビゲーション">
    ### glob [#glob]

    **機能:**

    * パターンに一致するファイルを検索: `**/*.ts`、`src/**/*.js`
    * ディレクトリパスによるフィルタリング
    * 除外パターンによる結果の絞り込み
    * 結果数の制御

    **ユースケース:**

    * プロジェクト内の全コンポーネントの検索
    * テストファイルの特定
    * ディレクトリをまたいだ設定ファイルの特定

    **パターンの例:**

    ```bash
    **/*.tsx          # All TypeScript React files
    src/**/*.test.js  # All test files in src
    **/config.*       # All config files anywhere
    ```

    ***

    ### grep\_content [#grep_content]

    **機能:**

    * 正規表現パターンを使ったファイル内容の検索
    * 一致箇所の前後のコンテキスト行の表示（`-B`、`-A`フラグ）
    * 大文字小文字を区別しない検索
    * Glob パターンによるファイルタイプのフィルタリング

    **ユースケース:**

    * 関数定義の検索
    * APIエンドポイント実装の特定
    * 特定のエラーメッセージの検索
    * セキュリティパターンの特定

    **例:**

    ```bash
    # Find authentication-related code
    grep_content("auth.*login", glob="**/*.ts")

    # Search with context
    grep_content("TODO", glob="src/**", context_before=2, context_after=2)
    ```

    ***

    ### grep\_file [#grep_file]

    **機能:**

    * パターンに一致するファイルの一覧表示
    * ファイルの場所だけが必要な場合は`grep_content`より高速
    * 正規表現パターン対応
    * ファイルタイプの Glob フィルタリング

    **ユースケース:**

    * リファクタリングが必要なファイルの特定
    * 特定のモジュールをインポートしているファイルの検索
    * 非推奨パターンを含むファイルの特定

    **ベストプラクティス:** まず`grep_file`で関連ファイルを特定し、その後`file_read`で詳細に調べます。

    ***

    ### list\_dir [#list_dir]

    **機能:**

    * ディレクトリ階層の表示
    * `max_depth`パラメータによる深さの制御
    * 除外パターンによる出力のフィルタリング

    **ユースケース:**

    * プロジェクト構造の理解
    * ディレクトリ構成の確認
    * 特定のサブディレクトリの検索
  </Tab>

  <Tab title="実行と連携">
    ### bash [#bash]

    **機能:**

    * シェルコマンドの実行
    * 最大タイムアウト: 120 秒（2 分、上限）
    * 依存関係のあるコマンドを`&&`で連結
    * 分かりやすいように説明的な概要を提供

    **ユースケース:**

    * テストの実行
    * プロジェクトのビルド
    * 依存関係のインストール
    * Git操作
    * データベースマイグレーション

    **例:**

    ```bash
    # Run tests
    bash("npm test", timeout=60000, summary="Run Jest test suite")

    # Chain dependent commands
    bash("npm install && npm run build", timeout=120000)
    ```

    **セキュリティ:** コマンドはユーザー権限で実行されます。Manual Accept Modeでコマンドを確認してください。

    ***

    ### spawn\_subagent [#spawn_subagent]

    **機能:**

    * 分離されたコンテキストを持つ専門サブエージェントの起動
    * タイプ: `explorer`、`verifier`、`code-reviewer`
    * メインのコンテキストを汚さずに複雑なタスクを委任
    * 効率化のためのサブエージェントの並列実行

    **ユースケース:**

    * **explorer:** 大規模なコードベースからパターンを検索
    * **verifier:** 実装ロジックの検証
    * **code-reviewer:** セキュリティと品質の評価

    **ベストプラクティス:** 探索的な調査は Explorer サブエージェントに委任し、メインの会話のコンテキストを温存します。

    ***

    ### todo\_update [#todo_update]

    **機能:**

    * タスクリストの作成と管理
    * タスクステータス（pending、in\_progress、completed）の更新
    * 複雑な実装全体にわたる進捗の追跡

    **ユースケース:**

    * 複数ステップの機能の分解
    * リファクタリングの進捗追跡
    * マイグレーションタスクの管理
  </Tab>

  <Tab title="Web アクセス">
    ### web\_search [#web_search]

    **機能:**

    * インターネット検索エンジンへのクエリ
    * 結果数の制御
    * 新しさ（直近の日数）によるフィルタリング

    **ユースケース:**

    * 馴染みのないAPIのドキュメントの検索
    * エラーメッセージの調査
    * 現在のベストプラクティスの確認

    ***

    ### web\_fetch [#web_fetch]

    **機能:**

    * Web ページ内容の取得
    * 特定のクエリによるコンテンツの分析
    * 構造化された情報の抽出

    **ユースケース:**

    * ドキュメントページの読み取り
    * APIドキュメントの分析
    * チュートリアルからの例の抽出
  </Tab>
</Tabs>

***

## ファイル形式のサポート [#ファイル形式のサポート]

Verdentは、ファイル操作ツールを通じてあらゆるテキストベースのファイル形式に対応します。

<Tabs>
  <Tab title="ソースコード">
    | カテゴリ         | 言語/拡張子                                     |
    | ------------ | ------------------------------------------ |
    | **Web**      | JavaScript、TypeScript、HTML、CSS、SCSS、LESS   |
    | **バックエンド**   | Python、Java、Go、Rust、C、C++、C#、Ruby、PHP、Perl |
    | **モバイル**     | Swift、Kotlin、Dart (Flutter)、Objective-C    |
    | **関数型**      | Haskell、Scala、Elixir、Clojure、F#            |
    | **スクリプティング** | Bash、PowerShell、Zsh、Fish                   |
    | **データ**      | SQL、R、Julia、MATLAB                         |
  </Tab>

  <Tab title="設定">
    | 形式       | 一般的な例                                           |
    | -------- | ----------------------------------------------- |
    | **JSON** | package.json、tsconfig.json、settings.json        |
    | **YAML** | docker-compose.yml、GitHub Actions、Kubernetes 設定 |
    | **TOML** | Cargo.toml、pyproject.toml                       |
    | **XML**  | pom.xml、web.xml、設定ファイル                          |
    | **INI**  | .gitconfig、.editorconfig                        |
    | **ENV**  | .env ファイル、環境設定                                  |
    | **HCL**  | Terraform 設定                                    |
  </Tab>

  <Tab title="ドキュメント">
    | 形式                   | ユースケース               |
    | -------------------- | -------------------- |
    | **Markdown**         | README.md、ドキュメントファイル |
    | **HTML**             | テンプレート、Web ページ       |
    | **LaTeX**            | 科学文書、学術論文            |
    | **reStructuredText** | Python ドキュメント        |
    | **AsciiDoc**         | 技術ドキュメント             |
  </Tab>

  <Tab title="データとビルド">
    ### データ形式 [#データ形式]

    | 形式              | 説明            |
    | --------------- | ------------- |
    | **CSV/TSV**     | 表形式のデータファイル   |
    | **テキストベースのデータ** | ログファイル、データダンプ |
    | **JSON/YAML**   | 構造化データの交換     |

    ### ビルドとパッケージファイル [#ビルドとパッケージファイル]

    | ファイル                 | 目的            |
    | -------------------- | ------------- |
    | **Makefile**         | ビルドの自動化       |
    | **package.json**     | Node.js の依存関係 |
    | **requirements.txt** | Python パッケージ  |
    | **Gemfile**          | Ruby gem      |
    | **Cargo.toml**       | Rust パッケージ    |
    | **build.gradle**     | Gradle ビルド    |
  </Tab>

  <Tab title="バイナリの制限">
    | 形式タイプ             | 例                     | 編集可否   |
    | ----------------- | --------------------- | ------ |
    | **画像**            | PNG、JPG、GIF、SVG（バイナリ） | 直接編集不可 |
    | **動画**            | MP4、AVI、MOV           | 直接編集不可 |
    | **コンパイル済みバイナリ**   | EXE、DLL、SO            | 直接編集不可 |
    | **アーカイブ**         | ZIP、TAR、GZ            | 直接編集不可 |
    | **Office ドキュメント** | DOCX、XLSX、PPTX        | 直接編集不可 |
    | **PDF**           | PDF ファイル              | 直接編集不可 |

    <Note>
      バイナリファイルはコード内で参照できますが、ファイルツールで変更することはできません。
    </Note>
  </Tab>
</Tabs>

***

## プログラミング言語のサポート [#プログラミング言語のサポート]

Verdentは、すべてのテキストベースのプログラミング言語とフレームワークを包括的にサポートします。

<Tabs>
  <Tab title="Web 開発">
    | 言語/フレームワーク | サポートレベル | 一般的なユースケース                      |
    | ---------- | ------- | ------------------------------- |
    | JavaScript | 優秀      | フロントエンドのロジック、Node.js バックエンド、ツール |
    | TypeScript | 優秀      | 型安全な Web アプリ、大規模プロジェクト          |
    | React      | 優秀      | コンポーネントベースの UI、フック、状態管理         |
    | Vue        | 優秀      | プログレッシブ Web アプリ、単一ファイルコンポーネント   |
    | Angular    | 優秀      | エンタープライズアプリケーション、TypeScript 連携  |
    | Svelte     | 非常に良好   | コンパイル型コンポーネント、リアクティブプログラミング     |
    | HTML/CSS   | 優秀      | マークアップ、スタイリング、レスポンシブデザイン        |
    | SCSS/LESS  | 優秀      | 高度なスタイリング、変数、ミックスイン             |
  </Tab>

  <Tab title="バックエンド">
    | 言語/フレームワーク           | サポートレベル | 一般的なユースケース                   |
    | -------------------- | ------- | ---------------------------- |
    | Python               | 優秀      | API、データ処理、自動化                |
    | Django/Flask/FastAPI | 優秀      | Web フレームワーク、REST API         |
    | Node.js/Express      | 優秀      | JavaScript バックエンド、マイクロサービス   |
    | Java/Spring          | 優秀      | エンタープライズアプリケーション、Spring Boot |
    | Go                   | 優秀      | 高性能サービス、CLI                  |
    | Rust                 | 非常に良好   | システムプログラミング、パフォーマンス重視のコード    |
    | C/C++                | 非常に良好   | システム、組み込み、ゲームエンジン            |
    | C# / .NET            | 優秀      | Windows アプリ、Web サービス、Unity   |
    | Ruby/Rails           | 非常に良好   | Web アプリケーション、迅速な開発           |
    | PHP                  | 良好      | WordPress、Laravel、レガシーアプリ    |
  </Tab>

  <Tab title="モバイル">
    | 言語/フレームワーク   | サポートレベル | 一般的なユースケース             |
    | ------------ | ------- | ---------------------- |
    | Swift        | 優秀      | iOS/macOS ネイティブアプリ     |
    | Kotlin       | 優秀      | Android ネイティブアプリ       |
    | Dart/Flutter | 優秀      | クロスプラットフォームのモバイルアプリ    |
    | React Native | 優秀      | JavaScript ベースのモバイルアプリ |
    | Objective-C  | 良好      | レガシーな iOS/macOS アプリ    |
  </Tab>

  <Tab title="データと科学技術">
    | 言語     | サポートレベル | 一般的なユースケース                           |
    | ------ | ------- | ------------------------------------ |
    | Python | 優秀      | NumPy、Pandas、scikit-learn、TensorFlow |
    | R      | 非常に良好   | 統計分析、データ可視化                          |
    | SQL    | 優秀      | データベースクエリ、スキーマ設計                     |
    | Julia  | 良好      | 科学技術計算、数値解析                          |
  </Tab>

  <Tab title="システムと低レベル">
    | 言語       | サポートレベル | 一般的なユースケース         |
    | -------- | ------- | ------------------ |
    | C        | 非常に良好   | システムプログラミング、組み込み   |
    | C++      | 非常に良好   | パフォーマンス重視のアプリケーション |
    | Rust     | 非常に良好   | メモリ安全なシステムプログラミング  |
    | Go       | 優秀      | 並行システム、クラウドサービス    |
    | Assembly | 良好      | 低レベルの最適化、デバッグ      |
  </Tab>
</Tabs>

**サポート品質:** 一般的な言語（JavaScript、Python、TypeScript）は学習データが豊富なため、より強力にサポートされています。あまり一般的でない言語やドメイン固有の言語はサポート品質が低下する場合がありますが、引き続き機能します。

***

## 使用上の制限とベストプラクティス [#使用上の制限とベストプラクティス]

<Tabs>
  <Tab title="ファイル操作">
    ### file\_read の効率化 [#file_read-の効率化]

    **ベストプラクティス:**

    * 500 行を超えるファイルでは行範囲を使い、コンテキストの過負荷を避ける
    * タスクに必要な箇所のみを読み取る
    * 大きなファイルでは、まず`grep_content`で関連する行番号を特定する

    ```bash
    # Good: Read specific section
    file_read("large-config.json", start_line=100, max_lines=50)

    # Less efficient: Read entire large file
    file_read("large-config.json")  # May consume excessive context
    ```

    ***

    ### file\_edit の精度 [#file_edit-の精度]

    **ベストプラクティス:**

    * 編集の失敗を避けるため、文字列を完全に一致させる
    * 類似した複数の変更には、`multiple=true`フラグを使用する
    * 編集前にファイルパスを確認する

    ***

    ### file\_write の安全性 [#file_write-の安全性]

    **ベストプラクティス:**

    * 誤った上書きを防ぐため、パスを再確認する
    * 新規ファイルまたは完全な書き換えにのみ使用する
    * 変更には安全のため`file_edit`を優先する
  </Tab>

  <Tab title="検索とナビゲーション">
    ### glob パターンの具体性 [#glob-パターンの具体性]

    **ベストプラクティス:**

    * スコープを絞るため具体的なパターンを使用する: `**/*`ではなく`src/**/*.ts`
    * 除外パターンでディレクトリを除外する: `!**/node_modules/**`
    * 出力が膨大にならないよう結果を制限する

    ```bash
    # Good: Specific scope
    glob("src/components/**/*.tsx", max_results=50)

    # Less efficient: Too broad
    glob("**/*")  # Returns thousands of results
    ```

    ***

    ### grep 戦略 [#grep-戦略]

    **推奨ワークフロー:**

    1. `grep_file`で関連ファイルを特定する
    2. `file_read`で特定のファイルを読み取る
    3. 周辺のコンテキストが必要な場合は`grep_content`を使用する

    **パフォーマンスのヒント:**

    * 正規表現パターンはリテラル文字列より時間がかかる場合がある
    * 大文字小文字を区別しない検索は遅くなる
    * コンテキスト行（`-A`、`-B`）は必要な分に制限する
  </Tab>

  <Tab title="コマンド実行">
    ### bash のベストプラクティス [#bash-のベストプラクティス]

    **安全なコマンド実行:**

    * コマンドの説明には明確な概要を提供する
    * 長時間実行される操作には適切なタイムアウトを設定する
    * 依存関係のあるコマンドは`&&`で連結する
    * 破壊的なコマンド（rm、drop、truncate）は慎重に確認する

    ```bash
    # Good: Clear summary, reasonable timeout
    bash("npm run build", timeout=120000, summary="Build production bundle")

    # Good: Chained dependencies
    bash("npm install && npm run test", timeout=180000)
    ```

    ***

    ### セキュリティに関する考慮事項 [#セキュリティに関する考慮事項]

    **重要な安全ルール:**

    * コマンドはユーザー権限で実行される
    * 信頼できないコマンドは決して実行しない
    * 共有コードベースではManual Accept Modeを使ってレビューする
    * 認証情報や機密データを露出するコマンドは避ける

    <Warning>
      共有コードベースや本番環境で作業する場合は、必ずManual Accept Modeで bash コマンドを確認してください。
    </Warning>
  </Tab>

  <Tab title="サブエージェントとコンテキスト">
    ### サブエージェント委任の効率化 [#サブエージェント委任の効率化]

    **サブエージェントを使うべき場面:**

    * **Explorer:** コードベースの検索、アーキテクチャに関する質問（メインのコンテキストを節約）
    * **Verifier:** 素早い検証チェック（分離された検証）
    * **Code-reviewer:** セキュリティと品質のレビュー（詳細な分析）
    * **General:** 複雑な複数ステップのタスク（並列実行）

    **ベストプラクティス:**
    探索や調査のタスクをサブエージェントに委任し、アクティブな開発作業のためにメインの会話のコンテキストを温存します。

    ***

    ### コンテキスト管理 [#コンテキスト管理]

    **戦略的なツールの使用:**

    * ファイルは戦略的に読み取る — 必要なものだけ
    * バックグラウンドの調査にはサブエージェントを使う
    * 長いセッション中はコンテキストの消費を監視する
    * 複雑な操作は todo\_update でステップに分解する

    **効率的なワークフロー:**

    1. **計画:** glob/grep でスコープを特定する
    2. **読み取り:** 関連するファイル/箇所のみを読み取る
    3. **実行:** 適切な場合はサブエージェントに委任する
    4. **検証:** Verifier サブエージェントで素早くチェックする
  </Tab>

  <Tab title="パフォーマンス">
    ### ファイルサイズの制限 [#ファイルサイズの制限]

    **大きなファイルの扱い:**
    非常に大きなファイル（10,000 行超）は、以下を避けるためにセクションに分けて読み取る必要があります。

    * コンテキストウィンドウの枯渇
    * 応答の遅延
    * メモリの問題

    <Tip>
      500 行を超えるファイルでは、最適なパフォーマンスを維持するために、常に`file_read`で行範囲を使用してください。
    </Tip>

    ***

    ### ツールのタイムアウトのデフォルト [#ツールのタイムアウトのデフォルト]

    **ツールの制限:**

    * **Bash のタイムアウト:** 最大 120 秒（2 分）
    * **ファイル操作:** サイズ制限なし（大きなファイルは自動的にバッチで読み取られる）
    * **大きなファイルの扱い:** 256KB を超えるファイルは最初の 256KB の内容のみを返す
    * **検索結果:** `glob`や`grep_content`の結果に制限なし
    * **並行サブエージェント:** 並列実行に制限なし

    **タイムアウトの設定:**

    * 長時間実行される操作には明示的なタイムアウトを設定する
    * ハングするプロセスを監視する
    * 2 分のタイムアウトを超えるコマンドは終了される

    ***

    ### 並行操作 [#並行操作]

    **並列実行:**
    複数のサブエージェントを並列実行することで、複雑な操作をより高速に行えます。メインエージェントが調整を自動的に処理します。

    **パフォーマンス上の利点:**

    * 複数ステップのタスクの総実行時間の短縮
    * 効率的なリソース利用
    * 自動的なタスクのオーケストレーション
    * 並行サブエージェント数に制限なし
  </Tab>
</Tabs>

***

## 関連情報 [#関連情報]

<CardGroup cols="2">
  <Card title="サブエージェントの管理" icon="users" href="/docs/verdent-for-vscode/agents-rules/subagent-management">
    専門エージェントについて学ぶ
  </Card>

  <Card title="実行モード" icon="sliders" href="/docs/verdent-for-vscode/execution-modes/overview">
    モードでツールの実行を制御する
  </Card>
</CardGroup>
