Verdent Docs
高度な機能

ツールシステムリファレンス

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

このページで学べること

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


利用可能なツールの概要

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

ツール目的主な機能
file_readファイル内容の読み取り大きなファイル向けの行範囲指定に対応、あらゆるテキスト形式で動作
file_edit対象を絞った変更完全一致したテキストの置換、複数箇所の置換、書式の保持
file_writeファイルの作成または上書きファイルの作成・置換を完全に実行、テキストコンテンツを処理
ツール目的主な機能
globパターンベースのファイル検索Glob パターン(**/*.ts)、除外パターン、結果数の制限
grep_contentコンテキスト付きの内容検索正規表現対応、コンテキスト行、大文字小文字を区別しないオプション
grep_file一致するファイルの一覧表示内容を読み取る前にファイルを素早く特定
list_dirディレクトリ構造階層の表示、除外パターン、深さの制御
ツール目的主な機能
bashシェルコマンドの実行タイムアウト設定、概要説明、コマンドの連結
spawn_subagent専門エージェントへの委任general、explorer、verifier、code-reviewer サブエージェントの起動
todo_updateタスクの進捗管理タスクリストの管理、ステータスの更新、進捗の追跡
ツール目的主な機能
web_searchインターネット検索クエリの実行、結果数の制御、新しさによるフィルタリング
web_fetchページの取得と分析コンテンツの取得、クエリによる情報抽出

ツールの機能とユースケース

file_read

機能:

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

ユースケース:

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

例:

# 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

機能:

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

ユースケース:

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

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


file_write

機能:

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

ユースケース:

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

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

glob

機能:

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

ユースケース:

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

パターンの例:

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

grep_content

機能:

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

ユースケース:

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

例:

# 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_contentより高速
  • 正規表現パターン対応
  • ファイルタイプの Glob フィルタリング

ユースケース:

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

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


list_dir

機能:

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

ユースケース:

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

bash

機能:

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

ユースケース:

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

例:

# 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

機能:

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

ユースケース:

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

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


todo_update

機能:

  • タスクリストの作成と管理
  • タスクステータス(pending、in_progress、completed)の更新
  • 複雑な実装全体にわたる進捗の追跡

ユースケース:

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

機能:

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

ユースケース:

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

web_fetch

機能:

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

ユースケース:

  • ドキュメントページの読み取り
  • APIドキュメントの分析
  • チュートリアルからの例の抽出

ファイル形式のサポート

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

カテゴリ言語/拡張子
WebJavaScript、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
形式一般的な例
JSONpackage.json、tsconfig.json、settings.json
YAMLdocker-compose.yml、GitHub Actions、Kubernetes 設定
TOMLCargo.toml、pyproject.toml
XMLpom.xml、web.xml、設定ファイル
INI.gitconfig、.editorconfig
ENV.env ファイル、環境設定
HCLTerraform 設定
形式ユースケース
MarkdownREADME.md、ドキュメントファイル
HTMLテンプレート、Web ページ
LaTeX科学文書、学術論文
reStructuredTextPython ドキュメント
AsciiDoc技術ドキュメント

データ形式

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

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

ファイル目的
Makefileビルドの自動化
package.jsonNode.js の依存関係
requirements.txtPython パッケージ
GemfileRuby gem
Cargo.tomlRust パッケージ
build.gradleGradle ビルド
形式タイプ編集可否
画像PNG、JPG、GIF、SVG(バイナリ)直接編集不可
動画MP4、AVI、MOV直接編集不可
コンパイル済みバイナリEXE、DLL、SO直接編集不可
アーカイブZIP、TAR、GZ直接編集不可
Office ドキュメントDOCX、XLSX、PPTX直接編集不可
PDFPDF ファイル直接編集不可

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


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

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

言語/フレームワークサポートレベル一般的なユースケース
JavaScript優秀フロントエンドのロジック、Node.js バックエンド、ツール
TypeScript優秀型安全な Web アプリ、大規模プロジェクト
React優秀コンポーネントベースの UI、フック、状態管理
Vue優秀プログレッシブ Web アプリ、単一ファイルコンポーネント
Angular優秀エンタープライズアプリケーション、TypeScript 連携
Svelte非常に良好コンパイル型コンポーネント、リアクティブプログラミング
HTML/CSS優秀マークアップ、スタイリング、レスポンシブデザイン
SCSS/LESS優秀高度なスタイリング、変数、ミックスイン
言語/フレームワークサポートレベル一般的なユースケース
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、レガシーアプリ
言語/フレームワークサポートレベル一般的なユースケース
Swift優秀iOS/macOS ネイティブアプリ
Kotlin優秀Android ネイティブアプリ
Dart/Flutter優秀クロスプラットフォームのモバイルアプリ
React Native優秀JavaScript ベースのモバイルアプリ
Objective-C良好レガシーな iOS/macOS アプリ
言語サポートレベル一般的なユースケース
Python優秀NumPy、Pandas、scikit-learn、TensorFlow
R非常に良好統計分析、データ可視化
SQL優秀データベースクエリ、スキーマ設計
Julia良好科学技術計算、数値解析
言語サポートレベル一般的なユースケース
C非常に良好システムプログラミング、組み込み
C++非常に良好パフォーマンス重視のアプリケーション
Rust非常に良好メモリ安全なシステムプログラミング
Go優秀並行システム、クラウドサービス
Assembly良好低レベルの最適化、デバッグ

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


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

file_read の効率化

ベストプラクティス:

  • 500 行を超えるファイルでは行範囲を使い、コンテキストの過負荷を避ける
  • タスクに必要な箇所のみを読み取る
  • 大きなファイルでは、まずgrep_contentで関連する行番号を特定する
# 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 の精度

ベストプラクティス:

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

file_write の安全性

ベストプラクティス:

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

glob パターンの具体性

ベストプラクティス:

  • スコープを絞るため具体的なパターンを使用する: **/*ではなくsrc/**/*.ts
  • 除外パターンでディレクトリを除外する: !**/node_modules/**
  • 出力が膨大にならないよう結果を制限する
# Good: Specific scope
glob("src/components/**/*.tsx", max_results=50)

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

grep 戦略

推奨ワークフロー:

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

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

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

bash のベストプラクティス

安全なコマンド実行:

  • コマンドの説明には明確な概要を提供する
  • 長時間実行される操作には適切なタイムアウトを設定する
  • 依存関係のあるコマンドは&&で連結する
  • 破壊的なコマンド(rm、drop、truncate)は慎重に確認する
# 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を使ってレビューする
  • 認証情報や機密データを露出するコマンドは避ける

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

サブエージェント委任の効率化

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

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

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


コンテキスト管理

戦略的なツールの使用:

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

効率的なワークフロー:

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

ファイルサイズの制限

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

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

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


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

ツールの制限:

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

タイムアウトの設定:

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

並行操作

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

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

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

関連情報