yoi/docs/ref/reference-tool-spec.md
2026-04-21 17:39:43 +09:00

99 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# リファレンス: ローカルファイル操作ツール仕様
Claude Code がエージェントとして使うファイル操作ツールの仕様。
Pod のツール設計の参考資料。
## Read
ファイルを読む。画像・PDF・Jupyter notebook にも対応。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `file_path` | string | 必須 | 絶対パス |
| `offset` | integer | 任意 | 読み開始行番号0始まり |
| `limit` | integer | 任意 | 読み取り行数offset と併用) |
| `pages` | string | 任意 | PDF用ページ範囲 (例: `"1-5"`)。最大20ページ/回 |
- デフォルトで先頭から最大2000行
- 出力は行番号付き1始まり
- ディレクトリは読めない
## Write
ファイルを新規作成、または全体上書き。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `file_path` | string | 必須 | 絶対パス |
| `content` | string | 必須 | 書き込む内容全体 |
- 既存ファイルは上書き
- 既存ファイルを Write する前に Read が必要(未読だとエラー)
## Edit
既存ファイルの部分的な文字列置換。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `file_path` | string | 必須 | 絶対パス |
| `old_string` | string | 必須 | 置換対象(ファイル内で一意であること) |
| `new_string` | string | 必須 | 置換後old_string と異なること) |
| `replace_all` | boolean | 任意 | `true` で全出現箇所を置換。デフォルト `false` |
- 事前に Read が必要(未読だとエラー)
- `old_string` がファイル内で一意でないとエラー(`replace_all: true` 除く)
## Glob
ファイルパターン検索。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `pattern` | string | 必須 | glob パターン (例: `"**/*.rs"`) |
| `path` | string | 任意 | 検索ディレクトリ。省略時はカレント |
- 結果は更新日時順ソート
## Grep
ファイル内容の正規表現検索ripgrep ベース)。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `pattern` | string | 必須 | 正規表現パターン |
| `path` | string | 任意 | 検索対象。省略時はカレント |
| `glob` | string | 任意 | ファイルフィルタ (例: `"*.rs"`) |
| `type` | string | 任意 | ファイル種別 (例: `"rust"`, `"py"`) |
| `output_mode` | enum | 任意 | `"files_with_matches"` (デフォルト) / `"content"` / `"count"` |
| `-n` | boolean | 任意 | 行番号表示 (content モード、デフォルト `true`) |
| `-i` | boolean | 任意 | 大文字小文字無視 |
| `-A` | number | 任意 | マッチ後の行数 |
| `-B` | number | 任意 | マッチ前の行数 |
| `-C` | number | 任意 | マッチ前後の行数 |
| `multiline` | boolean | 任意 | 複数行マッチ。デフォルト `false` |
| `head_limit` | number | 任意 | 出力件数制限。デフォルト 250 |
| `offset` | number | 任意 | 先頭N件スキップ |
## Bash
シェルコマンド実行。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| `command` | string | 必須 | 実行するコマンド |
| `description` | string | 任意 | コマンドの説明 |
| `timeout` | number | 任意 | タイムアウト ms (最大 600000、デフォルト 120000) |
| `run_in_background` | boolean | 任意 | バックグラウンド実行 |
- 作業ディレクトリはコマンド間で永続
- シェル状態(変数・エイリアス)は永続しない
## 設計上の特徴
- **パスは全て絶対パス**
- **Read → Edit/Write の順序制約**: 未読ファイルの編集を防ぐ安全弁
- **専用ツール優先**: cat/grep/find/sed の代わりに専用ツールを使う
- **冪等性**: Edit は差分ベース、Write は全体上書き
- **ワークフロー**: Glob/Grep で探索 → Read で確認 → Edit で変更