複雑なワークフローのために、1つのエージェントとマルチエージェントシステムのどちらを選択するか。
ツールを持つシングルエージェントをデフォルトとする。タスクの境界が明確な場合、コンテキストがオーバーフローする場合、または異なるモデル階層が異なるサブタスクに適する場合にのみ、複数のエージェントに分割する。
理由: エージェントを追加するたびに、レイテンシ、エラー発生範囲、オーケストレーションコストが増大する。ほとんどのワークロードは、適切にツールを備えた1つのエージェントで成功する。
最終確認:2026年6月
NCP-AAI 試験で問われるアーキテクチャパターンのスキャン可能なリファレンス。上から順に読むか、セクションへジャンプ。
複雑なワークフローのために、1つのエージェントとマルチエージェントシステムのどちらを選択するか。
ツールを持つシングルエージェントをデフォルトとする。タスクの境界が明確な場合、コンテキストがオーバーフローする場合、または異なるモデル階層が異なるサブタスクに適する場合にのみ、複数のエージェントに分割する。
理由: エージェントを追加するたびに、レイテンシ、エラー発生範囲、オーケストレーションコストが増大する。ほとんどのワークロードは、適切にツールを備えた1つのエージェントで成功する。
オーケストレーターが異種のサブタスクを専門家にディスパッチする必要がある。
目標を分解し、独自のプロンプトとツールを持つワーカーエージェントにルーティングし、結果を集約するスーパーバイザーエージェントを使用する。
理由: 集中管理により状態の一貫性が保たれ、意思決定の境界が監査可能になる。無秩序なスウォームとは対照的である。
エージェントのフローに条件分岐、ループ、並列ファンアウトがある。
ワークフローを自由形式のループではなく、ノードとエッジの明示的なグラフとしてモデル化し、制御フローが決定論的で再開可能になるようにする。
理由: グラフにより、分岐がテスト可能になり、障害発生後に任意のノードからチェックポイントを設定し、再生できるようになる。
受信リクエストの種類とコストが大きく異なる。
システムの前面に軽量のルーターエージェントを配置し、意図を分類し、最も安価で対応可能なダウンストリームエージェントまたはツールにディスパッチする。
理由: ルーティングにより、些細なリクエストに対してフロンティアモデルのコストを支払うことを避け、パスごとに懸念事項を分離できる。
複数のエージェントが共通のワークフロー状態を読み書きする必要がある。
エージェント間で完全なトランスクリプトを渡すのではなく、セッションをキーとする共有ストア(キーバリューまたはドキュメント)に状態を外部化する。
理由: 共有ストアはコンテキストの増大を抑制し、エージェント間での状態の乖離したコピーを防ぐ。
水平スケールアウト向けのエージェントを設計する。
エージェントの計算をステートレスに保つ。会話とメモリを外部に永続化し、どのレプリカでも任意のリクエストを処理できるようにする。
理由: ステートレスノードはクリーンにオートスケールし、ポッドの再起動後も進行中の作業を失うことなく存続する。
ワークフローの途中でサブエージェントまたはツールが失敗する。
べき等なステップを再試行/バックオフ、副作用に対する補償アクション、および再試行が尽きた場合のフォールバックパスまたは人間によるエスカレーションを設計する。
理由: エージェントシステムは部分的に失敗する。リカバリは設計の第一級の懸念事項であり、後から考えるものではない。
サブエージェントが別々のチームによって開発されている。
各エージェントの入出力契約を型付きスキーマとして定義し、エージェントを安定したインターフェースの背後にあるサービスとして扱う。
理由: 明示的な契約により、エージェントは独立して進化し、単独で単体テストを行うことができる。
困難なタスクにおいて、エージェントの出力品質が一貫しない。
草稿を基準にレビューし、返す前に制限付きの再試行をトリガーする批評/反省ステップを追加する。
理由: 自己批評は安価にエラーを捕捉するが、暴走ループとコストを避けるためにイテレーションを制限する。
エージェントが外部API、データベース、またはファイルと対話する必要がある。
機能を型付き関数/ツール定義として公開する。モデルがツール呼び出しを発行し、コードがそれを実行して結果を返し、ループが継続する。
理由: 構造化されたツール呼び出しは、フリーテキストの指示を解析するよりも信頼性が高く、監査可能である。
エージェントが再び行動する前に、観測について推論する必要がある。
ReActループを実装する。モデルが思考を生成し、ツールを選択し、観測を受け取り、停止条件が満たされるまで繰り返す。
理由: 推論と行動を交互に行うことで、デバッグのためにチェーンが露呈され、多段階の精度が向上する。
モデルがツール引数を誤用したり、幻覚を起こしたりする。
正確なツール記述を記述し、引数の型と列挙型を制約し、ツールごとに1つまたは2つの使用例を提供する。
理由: ほとんどのツール呼び出しエラーは、曖昧なスキーマに起因する。記述はツールのプロンプトである。
ダウンストリームコードがエージェントからの信頼性の高いJSONを必要としている。
フリーテキストを解析するのではなく、JSONスキーマ(構造化出力)に生成を制約し、使用前に検証する。
理由: スキーマ制約付きデコーディングにより、壊れやすい正規表現の解析やサイレントなフォーマットのずれがなくなる。
NVIDIAスタックで本番環境のエージェントを構築する。
NeMo Agent Toolkitを使用してエージェント、ツール、ワークフローを構成し、モデル呼び出しをNIMで提供されるバックエンドに接続する。
理由: このツールキットは、エージェントの配管を標準化し、NVIDIAのサービスとネイティブに統合する。
ツールがエラーを返すか、タイムアウトする。
エラーをツール結果としてモデルに返し、モデルが再試行したり、引数を調整したり、代替パスを選択できるようにする。
理由: エージェントに障害を通知することで回復が可能になる。障害を隠蔽するとエージェントは盲目になる。
1つのステップで複数の独立したツール呼び出しが必要である。
モデルがサポートし、呼び出しに順序依存性がない場合、ツール呼び出しを並列で発行し、その後結果をマージする。
理由: 並列実行は、複数ソースのルックアップのようなファンアウト作業における実時間レイテンシを削減する。
専門的な機能をワークフロー間で再利用可能にする必要がある。
サブエージェントを単一のツールインターフェースの背後にラップし、親が他のツールと同様にそれを呼び出せるようにする。
理由: サブエージェントをツールとして扱うことで、構成が均一になり、内部の複雑さが隠蔽される。
エージェントがタスクから逸脱したり、制約を無視したりする。
簡潔なシステムプロンプトで役割、許可されたツール、出力フォーマット、および厳密な制約を固定する。重要なルールは最後に再記述する。
理由: 厳格なシステムプロンプトは、エージェントの動作を制御する上で最も安価で効果的な手段である。
エージェントが多段階タスクを正しく解決したかどうかを測定する。
最終的な回答と、ラベル付けされたセットに対して軌跡(ツール呼び出しの精度、ステップ順序、不要なアクション)の両方を評価する。
理由: 壊れた軌跡からの正しい回答は脆弱である。軌跡のスコアリングは潜在的な障害を捕捉する。
オープンエンドのエージェント出力に対して、正解ラベルが存在しない。
採点基準を持つLLM-as-judgeを使用し、少量の人間がラベル付けしたサンプルでキャリブレーションしてから出力を採点する。
理由: ジャッジモデルは評価をスケールアップするが、キャリブレーションしないと独自のバイアスが組み込まれる。
リリースごとに回帰を捕捉する必要がある。
変更ごとに実行され、合格しきい値でデプロイをゲートする固定シナリオスイートを備えたオフライン評価ハーネスを構築する。
理由: エージェントの動作はプロンプトやモデルの変更によって微妙に変化する。回帰スイートはセーフティネットである。
エージェントが誤ったツールまたは誤った引数を選択する。
エンドタスクの成功だけでなく、ツール選択の精度/再現率と引数の有効性を独立したメトリクスとして追跡する。
理由: ツール呼び出し層を分離することで、失敗が選択によるものか、スキーマによるものかを特定できる。
変更後、評価合格率が低下した。
失敗したケースの完全な軌跡を調査し、故障モードをクラスター化し、支配的なクラスターからまず修正する。
理由: 集計スコアは根本原因を隠蔽する。トレースごとのクラスター化により、実際の欠陥が明らかになる。
エージェントのパフォーマンスが低く、改善する必要がある。
まずプロンプトとツール記述を反復し、プロンプトの変更が頭打ちになった場合にのみ、より大きなモデルやファインチューニングに移行する。
理由: プロンプトの反復は高速で安価である。モデルの交換はコストが増加するため、証拠に基づいて行うべきである。
両方とも精度目標をクリアする2つのエージェント設計を比較する。
評価にタスクごとのコストとp95レイテンシを追加し、より安価で高速な設計が引き分けを制するようにする。
理由: 本番環境での実行可能性は、精度だけでなく、コストとレイテンシも考慮される。
本番環境でエージェント向けのモデル推論を提供する。
モデルをNIMマイクロサービスとしてデプロイし、エージェントにバッチ処理機能を内蔵した標準化されたGPUアクセラレーション推論エンドポイントを提供する。
理由: NIMは最適化された推論を安定したAPIの背後にパッケージ化するため、エージェントはサービス内部を管理する必要がない。
エージェントのトラフィックがスパイク状で予測不可能である。
エージェントとサービスをコンテナ化し、Kubernetes上で実行し、適切な最小/最大範囲で並行性またはGPU利用率に基づいてオートスケールする。
理由: オートスケーリングはスパイクを吸収し、最小レプリカはクリティカルパスでのコールドスタートレイテンシを回避する。
負荷がかかった状態でGPU推論コストが高すぎる。
ハードウェアを追加する前に、NIM層で動的/連続バッチ処理を有効にして、GPU秒あたりのトークン数を増やす。
理由: バッチ処理はGPU利用率を劇的に向上させる。まずノードをスケールさせると容量を浪費する。
エージェントが無限の並列ツール呼び出しとモデル呼び出しを発行する。
エージェントごとおよびグローバルな同時実行制限をキューとともに適用し、負荷がかかったときにシステムが正常に劣化するようにする。
理由: 無制限のファンアウトはGPUとダウンストリームのクォータを使い果たし、障害に連鎖する。
エージェント推論ワークロード用のGPUハードウェアを選択する。
モデルのフットプリントとレイテンシターゲットに合わせてサイズを決定する — 定評のある大規模モデルにはH100を、メモリ帯域幅と推論スループットが支配的な場合はBlackwellを選択する。
理由: ハードウェアをモデルに合わせることで、過小プロビジョニングとアイドル容量への支払いの両方を避けることができる。
新しいエージェントまたはモデルバージョンを安全に出荷する。
少量のトラフィックをカナリア方式で展開し、ライブメトリクスをベースラインと比較し、その後進行させるかロールバックする。
理由: エージェントの動作変更はオフラインで完全に予測するのが困難である。カナリア方式は影響範囲を制限する。
長いエージェントチェーンはハングするリクエストのリスクがある。
ステップごとおよびエンドツーエンドのタイムアウトバジェットを設定する。超過した場合はキャンセルしてフォールバックする。
理由: バジェットがないと、単一の遅いツールがGPUスロットを占有し、他のリクエストを枯渇させる可能性がある。
タスクに多くの相互依存するステップが必要である。
計画と実行のパターンを使用する。まず明示的な計画を生成し、次にステップを実行し、前提が崩れた場合は再計画する。
理由: 事前の計画により迷走が減り、ツール呼び出しを行う前に検証するためのチェックポイントが提供される。
分解の品質がボトルネックとなっている。
計画ステップをNemotron推論モデルにルーティングし、実行にはより安価なモデルを使用する。
理由: 推論グレードの計算能力は、計画など重要な部分に費やし、すべてのルーチンサブステップには費やさない。
エージェントが長時間のセッションにわたって事実を記憶する必要がある。
最近のやり取りは作業コンテキストに保持する。永続的な事実はオンデマンドで取得される長期記憶ストアに永続化する。
理由: すべてをコンテキストに詰め込むと、コストとレイテンシが増大し、最終的にウィンドウがオーバーフローする。
エージェントの記憶をどのように保存するかを選択する。
エピソード的インタラクション履歴を意味的事実とは別に保存する。意味的記憶は類似性によって、エピソード的記憶は新しさ/セッションによって取得する。
理由: 異なるアクセスパターンには異なるストアが必要である。1つのバケットではどちらも適切に取得できない。
長時間実行される会話がコンテキスト制限に近づいている。
古い会話をコンパクトな実行中の要約にまとめ、生履歴は削除し、最近の逐語的な会話のみを保持する。
理由: ローリング要約はトークンコストを制限し、切り捨てエラーを回避しながら継続性を保持する。
エージェントがプライベートな企業データに基づいて回答を生成する必要がある。
エージェントにベクトルストアに対する検索ツールを与え、常にコンテキストを先行して付加するのではなく、いつ何を検索するかをエージェントが決定できるようにする。
理由: エージェントによる検索は必要なときにのみデータを取得し、トークンと無関係なコンテキストを削減する。
NVIDIA上で高品質な検索パイプラインを構築する。
高速化された本番環境レベルのRAGには、NeMo Retrieverの埋め込みおよび再ランキングNIMマイクロサービスを使用する。
理由: NeMo Retrieverは、GPU上で効率的にサービスされるチューニングされた埋め込み/再ランキングモデルを提供する。
純粋なベクトル検索では、完全一致およびキーワードクエリが見落とされる。
密なベクトル検索と疎/キーワード検索を組み合わせ、結合された候補を再ランキングする。
理由: ハイブリッド検索は、埋め込みが曖昧にする正確な用語(ID、コード)を回復する。
取得されたチャンクが粗すぎるか、断片化されすぎている。
セマンティックな境界で適度なオーバーラップを伴ってチャンク化し、メタデータを添付する。埋め込みモデルとクエリタイプに合わせてサイズを調整する。
理由: チャンクの粒度が検索の関連性を直接左右する。両極端な場合、根拠付けが劣化する。
エージェントがインデックスから古い情報を返す。
ソースの変更に対して増分再インデックスをパイプライン化し、最新性を考慮したランキングのためにドキュメントにタイムスタンプを付与する。
理由: 新鮮さの処理がなければ、RAGは自信を持って古いデータに基づいて回答を生成する。
エージェントの推論のためのモデルバックエンドを選択する。
推論負荷に合わせてNemotronモデルを選択し、NIMを通じて提供して標準化されたエンドポイントとする。
理由: Nemotronの推論バリアントは、エージェントの計画とツール使用のためにチューニングされている。NIMはサービス提供を標準化する。
エージェントのニーズを適切なNVIDIAコンポーネントにマッピングする。
オーケストレーションにはNeMo Agent Toolkitを、サービス提供にはNIMを、RAGにはNeMo Retrieverを、安全性にはNeMo Guardrailsを、推論にはNemotronを使用する。
理由: どのコンポーネントがどの懸念事項を担うかを知ることは、試験および設計の繰り返し発生する決定事項である。
NVIDIA上でエンドツーエンドのエージェントアプリケーションを構築する。
エージェント層の背後に個別のNIMマイクロサービス(LLM、embedding、rerank、guardrails)を構成し、それぞれを独立してスケーリングする。
理由: マイクロサービスの分解により、各機能が独立してスケーリングおよびバージョン管理できるようになる。
データレジデンシー規則により、外部APIへのデータ送信が禁止されている。
NIMマイクロサービスを自社GPUインフラストラクチャにセルフホストし、モデルとデータが境界内に留まるようにする。
理由: NIMのポータブルなパッケージングは、レジデンシー要件を満たすオンプレミスデプロイメントをサポートする。
本番環境のエージェントが異常な動作を示し、診断する必要がある。
各モデル呼び出し、ツール呼び出し、意思決定をキャプチャする分散トレースを出力し、失敗した軌跡をエンドツーエンドで検査する。
理由: エージェントの障害は多段階であるため、完全なトレースがなければ推論がどこで間違ったかを特定できない。
エージェントのトークン消費量とレイテンシが時間とともに増加する。
エージェントごと、ツールごとにトークン、コスト、p95レイテンシを追跡し、しきい値違反でアラートを発する。
理由: プロンプトやトラフィックの変化に伴い、コストとレイテンシは静かに変動する。メトリクスで早期にそれを検出する。
コード変更なしに品質が徐々に低下する。
本番サンプルに対して評価スイートを継続的に実行し、ベースラインからのメトリクスのドリフトをアラートする。
理由: データやアップストリームモデルのドリフトは、リリース間で目に見えない形で品質を低下させる。
エージェントがトピックを維持し、安全でないリクエストを拒否する必要がある。
エージェントの周りにインプット、アウトプット、トピック、ダイアログのレールを備えたNeMo Guardrailsを適用する。
理由: プログラム可能なレールは、モデル自身の動作とは独立してポリシーを強制し、その最終的な防御策となる。
信頼できないコンテンツが、検索されたデータやツールデータを介してエージェントをハイジャックする可能性がある。
すべての外部コンテンツを信頼できないものとして扱い、指示から分離し、ツール権限を制約することで、注入されたコマンドがエスカレートできないようにする。
理由: インジェクションはエージェントの能力を悪用する。防御策は最小権限の原則と指示/データの分離である。
エージェントが規制されたデータまたは個人データを処理する。
モデル呼び出しの前にPIIを編集またはトークン化し、エージェントの行動とツール呼び出しの改ざん防止監査ログを書き込む。
理由: コンプライアンスは、情報漏洩を最小限に抑えることと、エージェントが何をしたかを証明することの両方を要求する。
エージェントが支払いまたは削除のような高リスクな行動をとる可能性がある。
不可逆的または影響の大きいツール呼び出しの前に人間の承認ゲートを挿入し、確認されるまでワークフローを一時停止する。
理由: 可逆的なステップであれば自律性は問題ないが、結果に重大な影響を及ぼす行動には人間が介在する必要がある。
エージェントが不確実であるか、タスクに繰り返し失敗する。
推測するのではなく、完全なコンテキストとともに人間にエスカレートするための信頼度/失敗しきい値を定義する。
理由: 重要な作業では、自信のある間違った回答よりも、適切な引き継ぎの方が優れている。
ステークホルダーがエージェントの出力を信用しない。
エージェントの推論の要約、ソース、使用されたツールを提示し、人間が決定をレビューし、オーバーライドできるようにする。
理由: 説明可能性は信頼を構築し、監視と監査のためにしばしば必要とされる。