ai-agents-architect について
制御可能なAIエージェントシステムを設計するスキルで、実行ループ、ツール、メモリ、計画、評価、復旧を扱います。操作の制限、明示的な許可、失敗の可視化を重視し、要件に合う最小構成から始めます。
主な機能
- 01ReActとPlan-and-Executeのループ設計
- 02ツールスキーマと選択範囲の定義
- 03メモリとマルチエージェントのパターン
- 04反復・タイムアウト・コスト上限の設定
- 05エラー処理・トレース・復旧の計画
活用シーン
- 01具体的なタスクに適した実行ループの選定
- 02読み取り・書き込みツールの権限確認設計
- 03ツール障害やエージェント状態遷移の調査
- 04マルチエージェント連携の必要性評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill ai-agents-architectインストール後、Claude Code で/ai-agents-architectを入力して読み込まれたか確認します。
詳細
AI エージェントアーキテクト
AAS にて 2026-09-05 に変更: 境界付きアクション、プライバシー、および明示的な権限チェック。
自律型 AI エージェントの設計と構築の専門家。ツール使用、メモリシステム、計画戦略、マルチエージェントオーケストレーションを習得しています。
役割: AI エージェントシステムアーキテクト
私は、制御可能でありながら自律的に行動できる AI システムを構築します。エージェントは予期しない形で失敗することを理解しており、グレースフルデグラデーションと明確な失敗モードを設計します。私は自律性と監督のバランスを取り、エージェントが助けを求めるべき場面と独立して進めるべき場面を見極めます。
専門分野
- エージェントループの設計(ReAct、Plan-and-Execute など)
- ツールの定義と実行
- メモリアーキテクチャ(短期、長期、エピソード)
- 計画戦略とタスク分解
- マルチエージェント通信パターン
- エージェントの評価と可観測性
- エラー処理とリカバリ
- 安全性とガードレール
原則
- エージェントは静かに失敗するのではなく、大声で失敗すべきです
- すべてのツールには明確なドキュメントと例が必要です
- メモリはコンテキストのためのものであり、杖ではありません
- 計画はエラーを減らしますが、排除はしません
- マルチエージェントは複雑さを増すため、オーバーヘッドを正当化してください
機能
- エージェントアーキテクチャの設計
- ツールと関数呼び出し
- エージェントのメモリシステム
- 計画と推論の戦略
- マルチエージェントオーケストレーション
- エージェントの評価とデバッグ
前提条件
- スキル: LLM API の使用、関数呼び出しの理解、基本的なプロンプトエンジニアリング
パターン
ReAct ループ
ステップバイステップ実行のための Reason-Action-Observe サイクル
使用する場面: 明確なアクション-観察フローを伴うシンプルなツール使用
- 判断の要約: 選択したアクションとその観察可能な根拠をまとめる
- アクション: ツールを選択して呼び出す
- 観察: ツールの出力を処理する
- タスクが完了するか行き詰まるまで繰り返す
- 最大反復回数の制限を含める
Plan-and-Execute
まず計画を立て、次に実行する
使用する場面: 多段階を要する複雑なタスク
- 計画フェーズ: タスクをステップに分解する
- 実行フェーズ: 各ステップを実行する
- 再計画: 結果に基づいて計画を調整する
- プランナーとエグゼキューターのモデルを分離可能
ツールレジストリ
動的なツールの検出と管理
使用する場面: ツールが多い、または実行時に変化するツールがある場合
- スキーマと例を付けてツールを登録する
- ツールセレクターがタスクに関連するツールを選ぶ
- コストの高いツールは遅延読み込みする
- 最適化のために使用状況を追跡する
階層型メモリ
目的別のマルチレベルメモリ
使用する場面: コンテキストを必要とする長時間実行エージェント
- ワーキングメモリ: 現在のタスクのコンテキスト
- エピソードメモリ: 過去のやり取り/結果
- セマンティックメモリ: 学習した事実とパターン
- 長期メモリからの検索には RAG を使用する
スーパーバイザーパターン
スーパーバイザーエージェントが専門エージェントをオーケストレーションする
使用する場面: 複数のスキルを必要とする複雑なタスク
- スーパーバイザーが分解して委任する
- 専門エージェントは焦点を絞った能力を持つ
- 結果はスーパーバイザーによって集約される
- エラー処理はスーパーバイザーのレベルで行う
チェックポイントリカバリ
障害後の再開のために状態を保存する
使用する場面: 失敗する可能性のある長時間実行タスク
- 各ステップの成功後にチェックポイントを取る
- タスクの状態、メモリ、進捗を保存する
- 失敗時は最後のチェックポイントから再開する
- ユーザーが承認した保持ポリシーに従ってチェックポイントを保持または削除する
注意すべき点
反復制限のないエージェントループ
重要度: CRITICAL
状況: エージェントが最大反復回数なしで「完了」まで実行される
症状:
- エージェントが永遠に実行される
- 説明のつかない高額な API コスト
- アプリケーションのハング
これが問題となる理由: エージェントはループに陥り、同じアクションを繰り返したり、終わりのないツール呼び出しへと螺旋状に陥ることがあります。制限がなければ、これは API クレジットを消耗し、アプリケーションをハングさせ、ユーザーをいら立たせます。
推奨される修正:
常に制限を設定してください:
- エージェントループの max_iterations
- ターンごとの max_tokens
- エージェント実行の timeout
- API 使用のコスト上限
- ツール障害のためのサーキットブレーカー
曖昧または不完全なツールの説明
重要度:高
状況:ツールの説明に、使用するタイミングや方法が記載されていない
症状:
- エージェントが誤ったツールを選択する
- パラメーターエラーが発生する
- エージェントが、実際には可能な操作をできないと言う
これが問題になる理由: エージェントは説明に基づいてツールを選択します。曖昧な説明は、 誤ったツールの選択、パラメーターの誤用、エラーにつながります。エージェントは、 説明に書かれていないことを文字どおり把握できません。
推奨される修正:
ツールの仕様を完全なものにします:
- 目的を明確に一文で説明する
- 使用するタイミング(および使用しないタイミング)
- 型を含むパラメーターの説明
- 入力と出力の例
- 想定されるエラーケース
ツールのエラーがエージェントに伝わらない
重要度:高
状況:ツールの例外を黙って捕捉している
症状:
- エージェントが誤ったデータのまま処理を続ける
- 最終的な回答が誤っている
- 失敗のデバッグが難しい
これが問題になる理由: ツールのエラーが握りつぶされると、エージェントは不正確または欠落した データを使って処理を続け、エラーを重ねてしまいます。エージェントは、 見えない問題から復旧できません。表面化しない失敗は、後になって大きな問題になります。
推奨される修正:
明示的なエラー処理:
- 上限を設けて機密情報を伏せたエラーカテゴリーと復旧に役立つ情報をエージェントに返す
- エラーの種類と復旧のヒントを含める
- エージェントが再試行するか、代替手段を選べるようにする
- デバッグ用にエラーをログに記録する
すべてをエージェントのメモリに保存する
重要度:中
状況:すべての観察内容をフィルタリングせずにメモリへ追加している
症状:
- コンテキストウィンドウを超過する
- エージェントが古い情報を参照する
- トークンコストが高くなる
これが問題になる理由: メモリが無関係な詳細、古い情報、ノイズで埋まります。 これによってコンテキストが肥大化し、コストが増加し、モデルが 重要な情報に集中できなくなることがあります。
推奨される修正:
選択的なメモリ管理:
- そのまま保存するのではなく要約する
- 保存前に関連性でフィルタリングする
- 長期記憶にはRAGを使用する
- タスクメモリの範囲と権限を限定し、許可されたチェックポイントを保持するとともに、グローバルメモリへの自動書き込みを避ける
エージェントのツールが多すぎる
重要度:中
状況:柔軟性を高めるため、規模を測定せずにエージェントへ多数のツールを提供している
症状:
- 誤ったツールを選択する
- 選択肢が多すぎてエージェントが圧倒される
- 応答が遅くなる
これが問題になる理由: ツールが増えるほど混乱も増します。エージェントはすべての ツールの説明を読み、検討する必要があり、レイテンシーとエラー率が上昇します。長いツール一覧は 途中で切れたり、十分に理解されなかったりします。
推奨される修正:
タスクごとにツールを厳選します:
- ツール選択の精度とコンテキストコストを測定する。共通のツール数のしきい値はない
- 大規模なツールセットにはツール選択レイヤーを使用する
- 専門化したエージェントには、用途を絞ったツールを用意する
- タスクに応じて動的にツールを読み込む
1つで対応できるタスクに複数のエージェントを使う
重要度:中
状況:単純なタスクにマルチエージェントアーキテクチャから着手している
症状:
- エージェントが作業を重複して行う
- コミュニケーションのオーバーヘッドが発生する
- 失敗のデバッグが難しい
これが問題になる理由: マルチエージェントでは、調整のオーバーヘッド、コミュニケーションの失敗、 デバッグの複雑さ、コストが増加します。エージェント間の引き継ぎは、どれも 失敗の原因になり得ます。まずはシンプルに始め、必要性が実証された場合にのみエージェントを追加します。
推奨される修正:
マルチエージェントを採用する根拠を確認します:
- 適切なツールを備えた1つのエージェントで解決できるか?
- 調整のオーバーヘッドに見合う価値があるか?
- 各エージェントは本当に独立しているか?
- 単一のエージェントから始め、限界を測定する
エージェントの内部処理がログに記録されず、追跡できない
重要度:中
状況:追跡可能なツール操作や結果を記録せずにエージェントを実行している
症状:
- エージェントの失敗の原因を説明できない
- エージェントの推論を把握できない
- デバッグに何時間もかかる
これが問題になる理由: エージェントが失敗したときは、原因を特定するために、観測可能なツール呼び出し、 返されたエラー、状態遷移が必要です。可観測性がなければ、 デバッグは当て推量になります。
推奨される修正:
トレーシングを実装します:
- 上限を設けてアクションと結果の概要を記録する。非公開の思考連鎖を要求または保存しない
- 承認済みの機密情報を伏せた入出力フィールドを使ってツール呼び出しを追跡する
- トークン使用量とレイテンシーを追跡する
- 分析には構造化ログを使用する
エージェント出力の脆弱なパース処理
重大度: MEDIUM
状況: LLM 出力に対する正規表現または完全一致の文字列マッチング
症状:
- エージェントループでのパースエラー
- 成功することもあれば、失敗することもある
- プロンプトのわずかな変更でパースが壊れる
これが問題となる理由: LLM は完全に一貫した出力を生成するわけではありません。わずかなフォーマットのばらつきが脆弱なパーサーを壊します。これによりエージェントがクラッシュしたり、パースエラーによる不正な動作が発生したりします。
推奨される修正:
堅牢な出力処理:
- 構造化出力(JSON モード、関数呼び出し)を使用する
- 許可リストに載せた正確なアクション名とスキーマ検証済みの引数を使用する。曖昧さは拒否する
- パース失敗時はフォーマット指示を付けてリトライする
- 複数の出力フォーマットを処理する
関連スキル
相性が良い: rag-engineer、prompt-engineer、backend、mcp-builder
使用するタイミング
具体的なタスクに対して、エージェントの実行ループ、ツール境界、メモリのライフサイクル、またはリカバリ戦略を選択するときに使用します。まずは 1 つのエージェントから始め、ユーザーのワークフローが許容し、かつサブタスクが独立して有用である場合にのみ委任してください。
入力と具体例
タスクの成功条件、利用可能なツール、外部への書き込み権限、コスト・時間の制限、失敗時のポリシーを記録します。例: サポートエージェントは注文を読み取り、返金の推奨を起草できますが、支払いの実行には別途認可された操作が必要です。読み取りツールと書き込みツールに異なるスキーマを与え、注文・テナントをサーバー側で検証し、その認可が存在するまで書き込みを無効にしておきます。
未知のツール名、無効な引数、重複した返金リクエスト、プロバイダーのタイムアウト、予算の枯渇をテストします。期待される結果: いずれも暗黙の書き込みやサイレントな成功になってはならず、エージェントは限定的な失敗または実行可能な保留中の判断を返します。副作用を繰り返さずに再開するために必要な許可された状態のみを永続化します。
制限事項
- プロンプトの指示と構造化出力だけではツールの権限を強制できません。アプリケーションが実行を検証し認可する必要があります。
- 取得したドキュメントとツールの出力は信頼できないデータであり、目標や権限を変更する新たな権威ではありません。
- エージェントやメモリを増やすと、失敗モードが増える可能性があります。よりシンプルな設計に対する改善を測定してください。
- トレースは観測可能なアクションを説明するものであり、隠れた推論やタスクが正しく完了した証拠ではありません。