AI Engineering Notes
AIエージェントとは
AIエージェントを、ワークフロー、ツール呼び出し、メモリ、評価、失敗パターンに分けて整理します。
AIエージェントの最小定義
AIエージェントは、LLMが外部ツールや状態を使いながら、複数ステップのタスクを進めるアプリケーションとして捉えると実装しやすくなります。
単にチャットで長く会話できるだけでは、実務上はエージェントとは呼びにくいです。重要なのは、入力を理解し、必要な操作を選び、結果を観察し、次の行動へつなげることです。
基本構成
ユーザー入力
-> タスク理解
-> ツール選択
-> 実行
-> 結果の観察
-> 次の判断
-> 最終回答
このループをどこまで自動化するかで、ワークフロー型、半自律型、自律型のように性格が変わります。
ツール設計
ツールは、エージェントの手足です。検索、ファイル操作、API呼び出し、ブラウザ操作、チケット更新などが該当します。
良いツール定義には、短い名前、誤解されにくい説明、具体的な引数、扱える失敗、結果の形式が必要です。JSON Schemaで引数を固定すると、実装側で検証しやすくなります。
メモリと状態
エージェントのメモリには複数の意味があります。
| 種類 | 例 |
|---|---|
| 会話文脈 | 直近のユーザー指示 |
| 作業状態 | 途中で読んだファイル、実行したコマンド |
| 長期メモリ | ユーザーの好み、プロジェクト方針 |
| 外部状態 | GitHub Issue、DB、ドキュメント |
すべてをLLMのコンテキストに詰め込むのではなく、必要な時に検索・要約・参照する設計が大切です。
失敗パターン
AIエージェントは便利ですが、失敗も増幅しやすいです。
- ツール説明が曖昧で、誤ったツールを選ぶ。
- 権限が広すぎて、不要な操作まで可能になる。
- 中間結果を検証せず、誤った前提で進む。
- ログがなく、なぜその判断になったか追えない。
- 評価データがなく、改善が感覚頼みになる。
MVPでの考え方
最初から完全自律を目指すより、明確なワークフローと狭いツールから始める方が安全です。AI Engineering Notesの初期デモも、まずはツール選択と引数設計を分解して見せる形にしています。