【要約】【AIエージェント自作】ファイル探索エージェントを作る [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が大規模なリポジトリを調査する際、目的のコードを探す作業に多大な時間を費やす。具体的には以下の課題が存在する。
- ・コードの所在を特定するための検索コストの増大。
- ・LLMに渡す情報量が増え、コンテキスト制限やコスト増を招く問題。
- ・LLMがファイルパスを誤認し、ツール実行が失敗する不安定さ。
// Approach
開発者が自然言語でコードを探索できるよう、3つの読み取り専用ツールを組み合わせた設計を採用する。
- ・list_files: 不要なディレクトリを除外し、構造をテキストで返す。
- ・read_file: 特定ファイルの内容を詳細に取得する。
- ・search_text: 正規表現で横断検索し、結果を50件に制限して節約する。
- ・dispatcher: 辞書を用いたマッピングにより、ツールの追加を容易にする。
// Result
本実装により、開発者は自然言語を用いてコードの構造や内容を迅速に把握できる。
- ・ディレクトリ構成の把握から、特定箇所の検索までを自律的に実行。
- ・システムプロンプトへのパス明示により、LLMの誤認を抑制。
- ・次フェーズの「書き込み操作」へ繋がる、安全な探索基盤を確立。
Senior Engineer Insight
> コンテキスト節約を設計の主眼に置いている点が極めて実戦的である。EXCLUDE_DIRSやMAX_RESULTSによる制御は、LLMの制約を理解した賢明な判断だ。ただし、パスの誤認はLLMの特性上、完全な排除は困難である。実運用では、エラーメッセージを介したLLMの自己修復能力に依存する部分が大きく、その設計の堅牢性が重要となる。