AIエージェント基盤の選び方:Vertex AI・Bedrock AgentCore・LangGraphの役割を理解する
業務向けAIエージェントを初めて設計する人へ。AIが依頼を受けて外部の処理を呼び出す流れから、処理の組み立て方・実行環境・保存先の違いを整理し、Vertex AI系の基盤、Bedrock 、の役割を説明します。発注業務を例に構成を選び、承認待ちと再開まで設計します。
本文の点線の語を押すと、説明が開きます。
この記事の用語(43)
- AgentCore
- AWSの、AIエージェントを動かしたり、ツールへ接続したり、情報を保存したりするサービス群。必要な機能を組み合わせて使う。
- LangGraph
- 処理を線でつないだ図のように、実行順序や分岐をコードで定義するための仕組み。保存先を組み合わせて中断と再開も扱う。
- モデル
- 入力された文章やデータをもとに回答を作るAIの本体。この記事では、次に使うツールを選ぶ役割も担う。
- API
- 別のプログラムに処理を依頼したり、データを受け取ったりするための窓口。たとえば注文APIには、商品と数量を送って発注する。
- ツール
- AIが使えるように用意した処理の窓口。在庫の照会や注文などを、アプリ側のコードやAPIで実行する。
- 引数
- 関数やツールに渡す入力値。在庫照会なら商品ID、注文なら商品IDや数量など。
- ADK
- Agent Development Kitの略。Googleが提供する、AIエージェントの処理やツールをコードで組み立てるための開発用の仕組み。
- Runtime
- プログラムを動かす仕組みや環境。この記事でクラウドの製品名に付く場合は、主にアプリの配置先・実行環境を指す。
- Google Cloud Sessions
- Google Cloudで、一つの会話のメッセージや操作の履歴を保存する機能。
- AgentCore Memory
- AgentCoreの文脈では、会話の履歴や、会話をまたいで使う情報を保存する機能。
- Checkpointer
- LangGraphで、途中の処理状態を再開用に保存する仕組み。停止後も再開するには、データが残る保存先を選ぶ。
- Store
- 情報を保存する仕組みや保存先。LangGraphのStoreは、一連の実行をまたぐ情報を扱う。たとえば利用者が好む説明の詳しさを保存する。
- 認証
- 誰からの要求かを確認すること。ログインや署名の検証などがある。
- Gateway
- AgentCoreの文脈では、既存のAPIなどをエージェントのツールとして接続する窓口。
- Identity
- AgentCoreで、エージェントがサービスへアクセスするときの認証情報などを扱う機能。
- DB
- データベースの略。注文や利用者などの情報を保存し、検索・更新する仕組み。
- グラフ
- 処理と処理のつながりを表したもの。この記事では、丸や箱にあたるノードが処理、線にあたるエッジが進み先を表す。
- 永続ストレージ
- 計算環境が停止しても必要な状態を保持する保存先。
- フレームワーク
- アプリを組み立てるための共通の部品と仕組み。この記事では、処理の順序や分岐をコードで作るために使う。
- Memory Bank
- Google Cloudで、会話をまたいで利用する情報を作成・保存・検索する機能。
- Harness
- モデル・指示・ツールを指定すると、モデルとツールを繰り返し呼ぶ処理をサービス側で管理するAgentCoreの機能。
- ノード
- グラフに含まれる一つの処理。在庫を調べる、入力を確かめる、承認を待つ、といった役割を持つ。
- エッジ
- グラフの中で、ある処理から次の処理へ進むためのつながり。
- 実行基盤
- アプリを配置し、実行やスケーリングなどを管理する環境。
- プロセス
- 起動して動いているプログラム。終了すると、その実行中のメモリにだけ置いた情報は失われる。
- スレッド
- LangGraphで、一連の実行と保存状態をまとめて識別する単位。CPUの処理単位という意味のスレッドとは異なる。
- 認可
- その人やプログラムが、対象のデータに対してその操作をしてよいか判断すること。
- JSON
- 項目名と値の組み合わせや配列で、データを表す形式。記事の例では、案件IDや承認状態を記録する。
- JoinNode
- ADKで、並列に進めた処理の出力を集め、次の処理へ渡すための合流点。集まった値が業務上有効かどうかは別に確認する。
- チェックポイント
- 処理の途中の状態や、次に実行する位置を再開用に残した記録。注文先での受付結果と一致しているかは別に確認する。
- InMemorySaver
- LangGraphの保存用の部品の一つ。実行中のメモリだけに状態を置くため、プロセスの終了後には復元できない。
- セッション
- 関連する会話や呼び出しをまとめて扱う単位。セッションのIDが同じでも、実行中のプログラムがずっと動き続けるとは限らない。
- microVM
- 軽量な仮想マシン。AgentCoreでは、セッションごとの実行環境を分離するために使う。
- runtimeSessionId
- AgentCoreで、関連する呼び出しを同じセッションに結び付けるID。利用者との対応はアプリ側で管理する。
- thread_id
- LangGraphで、保存した状態をどのスレッドから読み出すか指定するID。ログイン情報ではないため、利用者がそのスレッドを使ってよいかは別に確認する。
- バックエンド
- 画面からの要求を受け、データの確認や保存などを行うサーバー側の処理。
- interrupt
- LangGraphで、外部からの入力を待つために処理を中断する関数。再開すると、この関数を呼んだノードの先頭から実行される。
- 冪等性キー
- 同じ操作の再送だと接続先が判断するための識別子。注文APIが対応していれば、同じ注文を二重に受け付けることを防ぐために使える。
- inbound
- 入口側という意味。この記事では、アプリからGatewayへ入る要求の確認を指す。
- outbound
- 出口側という意味。この記事では、Gatewayから接続先へ出る要求で使う認証を指す。
- サービスロール
- サービスがAWSリソースへアクセスする際に使うIAMロール。
- IAM
- AWSの利用者やサービスに、どの操作を許可するか管理する仕組み。
- OAuth
- パスワードを接続先へ渡す代わりに、許可された範囲のアクセス権を委任するための仕組み。
AWSの、AIエージェントを動かしたり、ツールへ接続したり、情報を保存したりするサービス群。必要な機能を組み合わせて使う。
処理を線でつないだ図のように、実行順序や分岐をコードで定義するための仕組み。保存先を組み合わせて中断と再開も扱う。
入力された文章やデータをもとに回答を作るAIの本体。この記事では、次に使うツールを選ぶ役割も担う。
別のプログラムに処理を依頼したり、データを受け取ったりするための窓口。たとえば注文APIには、商品と数量を送って発注する。
AIが使えるように用意した処理の窓口。在庫の照会や注文などを、アプリ側のコードやAPIで実行する。
関数やツールに渡す入力値。在庫照会なら商品ID、注文なら商品IDや数量など。
Agent Development Kitの略。Googleが提供する、AIエージェントの処理やツールをコードで組み立てるための開発用の仕組み。
プログラムを動かす仕組みや環境。この記事でクラウドの製品名に付く場合は、主にアプリの配置先・実行環境を指す。
Google Cloudで、一つの会話のメッセージや操作の履歴を保存する機能。
AgentCoreの文脈では、会話の履歴や、会話をまたいで使う情報を保存する機能。
LangGraphで、途中の処理状態を再開用に保存する仕組み。停止後も再開するには、データが残る保存先を選ぶ。
情報を保存する仕組みや保存先。LangGraphのStoreは、一連の実行をまたぐ情報を扱う。たとえば利用者が好む説明の詳しさを保存する。
誰からの要求かを確認すること。ログインや署名の検証などがある。
AgentCoreの文脈では、既存のAPIなどをエージェントのツールとして接続する窓口。
AgentCoreで、エージェントがサービスへアクセスするときの認証情報などを扱う機能。
データベースの略。注文や利用者などの情報を保存し、検索・更新する仕組み。
処理と処理のつながりを表したもの。この記事では、丸や箱にあたるノードが処理、線にあたるエッジが進み先を表す。
計算環境が停止しても必要な状態を保持する保存先。
アプリを組み立てるための共通の部品と仕組み。この記事では、処理の順序や分岐をコードで作るために使う。
Google Cloudで、会話をまたいで利用する情報を作成・保存・検索する機能。
モデル・指示・ツールを指定すると、モデルとツールを繰り返し呼ぶ処理をサービス側で管理するAgentCoreの機能。
グラフに含まれる一つの処理。在庫を調べる、入力を確かめる、承認を待つ、といった役割を持つ。
グラフの中で、ある処理から次の処理へ進むためのつながり。
アプリを配置し、実行やスケーリングなどを管理する環境。
起動して動いているプログラム。終了すると、その実行中のメモリにだけ置いた情報は失われる。
LangGraphで、一連の実行と保存状態をまとめて識別する単位。CPUの処理単位という意味のスレッドとは異なる。
その人やプログラムが、対象のデータに対してその操作をしてよいか判断すること。
項目名と値の組み合わせや配列で、データを表す形式。記事の例では、案件IDや承認状態を記録する。
ADKで、並列に進めた処理の出力を集め、次の処理へ渡すための合流点。集まった値が業務上有効かどうかは別に確認する。
処理の途中の状態や、次に実行する位置を再開用に残した記録。注文先での受付結果と一致しているかは別に確認する。
LangGraphの保存用の部品の一つ。実行中のメモリだけに状態を置くため、プロセスの終了後には復元できない。
関連する会話や呼び出しをまとめて扱う単位。セッションのIDが同じでも、実行中のプログラムがずっと動き続けるとは限らない。
軽量な仮想マシン。AgentCoreでは、セッションごとの実行環境を分離するために使う。
AgentCoreで、関連する呼び出しを同じセッションに結び付けるID。利用者との対応はアプリ側で管理する。
LangGraphで、保存した状態をどのスレッドから読み出すか指定するID。ログイン情報ではないため、利用者がそのスレッドを使ってよいかは別に確認する。
画面からの要求を受け、データの確認や保存などを行うサーバー側の処理。
LangGraphで、外部からの入力を待つために処理を中断する関数。再開すると、この関数を呼んだノードの先頭から実行される。
同じ操作の再送だと接続先が判断するための識別子。注文APIが対応していれば、同じ注文を二重に受け付けることを防ぐために使える。
入口側という意味。この記事では、アプリからGatewayへ入る要求の確認を指す。
出口側という意味。この記事では、Gatewayから接続先へ出る要求で使う認証を指す。
サービスがAWSリソースへアクセスする際に使うIAMロール。
AWSの利用者やサービスに、どの操作を許可するか管理する仕組み。
パスワードを接続先へ渡す代わりに、許可された範囲のアクセス権を委任するための仕組み。
この記事の目的と前提知識
目的: 、処理の制御、実行環境、保存先、業務の役割を理解し、どの処理を自分で実装し、どこを基盤へ任せるか判断できるようになります。
前提知識: Web で別の処理を呼び出し、データベースに情報を保存する基本を知っている方を想定します。AIエージェントの動作と各基盤の役割は、最初から説明します。
扱う範囲: 人の承認を待って発注する業務を例に、Vertex AI系の基盤、Bedrock 、を構成図へ結び付けます。承認待ちからの再開、重複発注の防止、権限の確認まで扱います。
AIエージェントの基本動作と
ここでは、依頼に応じてを選び、結果を見ながら処理を進めるエージェントを扱います。は入力された文章やデータから回答を生成し、ツール呼び出しに対応するモデルなら、必要なツール名とを出力できます。ツールは在庫照会のような処理を呼び出すために定義した関数やです。モデルへ渡す定義にはその用途と入力項目を記述します。
利用者の依頼を受ける → モデルへ依頼・ツール定義を渡す → ツール名と引数を受け取る → 権限と入力を検証してAPIを呼ぶ → 結果をモデルへ返し、回答か次の処理へ進む
たとえば「商品Aを10個、金曜までに届けたい」という依頼に、が在庫照会を選んだとします。モデルの出力を受けたアプリが入力と権限を確認し、在庫を呼びます。結果をモデルへ返すと、配送日を調べるか、条件に合わないと回答するかなど、次の処理を決められます。モデルが名を出力しただけでは、データベースの参照や注文は実行されません。管理されたサービスにツール実行を任せる構成もあります。
すべての手順をに選ばせる必要はありません。在庫と配送日の照会順序が決まっていればコードで制御し、依頼の解釈や発注案の説明をモデルへ任せられます。処理の繰り返しには回数・時間・費用の上限と、失敗時に保留する条件を設けます。これらをどの部品で制御するかが、基盤を選ぶときの論点です。
エージェントを構成する役割
「Vertex AI、Bedrock、のどれを使うか」という問いには、の提供元、処理の作り方、配置先という別々の選択が含まれます。まず、エージェントの動作に必要な役割を分けます。一つの製品が複数の役割を担う場合もあります。
| 役割 | 担当すること | 構成要素の例 |
|---|---|---|
| 呼び出し | 文章の解釈、回答や呼び出しの生成 | Google CloudやAmazon Bedrockなどの |
| 処理の制御 | 次の処理、分岐、並列実行、承認待ちを決める | 、、管理されたエージェントループ |
| 実行環境 | アプリを配置し、要求を受けて動かす | Google Cloud Agent 、 Runtime、自分たちで用意する実行環境 |
| 情報の保存 | 会話、再開に必要な状態、会話をまたぐ情報を残す | 、、、など |
| 業務への接続 | を公開し、接続先への情報を扱う | 既存をとして使うための関数、、など |
これらに加えて、注文や承認の現在状態を管理する業務とが必要です。会話履歴に「承認した」と残っていても、それだけでは現在の発注案に対する承認とは判断できません。また、実行環境が動いていることと、停止後に状態を復元できることは別の性質です。保存する内容と復元方法を設計します。
Google CloudのVertex AI系の基盤と
Vertex AIのエージェント基盤を調べると、現在の公式資料ではGemini Enterprise Agent Platformという名称が出てきます。Agent Engineの現在の名称はAgent です。旧名称と新名称を別製品として比較せず、どの機能を指す資料かを確認します。ここでは、コードで業務の制御を作ると、そのコードを配置するAgent Runtimeを中心に見ます。
Googleの(Agent Development Kit)は、エージェント、、処理のつながりをコードで組み立てるです。Agent はその実装を配置・実行する管理された環境で、ADK以外のフレームワークを使う構成もあります。つまり、ADKを選ぶことと、どこへ配置するかを決めることは別の判断です。
保存機能にも役割の違いがあります。は一つの会話で交わした履歴を扱い、は複数の会話をまたいで利用者に関する情報を扱います。「会話を覚えている」「処理を再開できる」「注文の現在状態が分かる」は同じではありません。独自の承認待ちを実装するなら、その再開に必要な値がどこへ保存されるかを別途確認します。
AWSのBedrockと
Amazon Bedrockにはを呼び出すがあります。一方、Bedrock は、エージェントの実行や接続などを支えるサービス群です。モデルAPIを呼べるようにしただけでは、業務アプリの配置先、承認待ちの保存先、注文APIへの権限までは決まりません。
は実行環境を提供し、は会話や長期的な情報を保存します。は既存などをとして接続し、は情報やサービスへのアクセスを扱います。これらは必要な機能を組み合わせて利用できます。Gatewayに接続したことだけを根拠に、利用者がすべての注文を操作できるようにはしません。
処理の制御にはやなどを組み合わせる構成も、管理されたエージェントループを使う もあります。自分でを実装するか、ループをサービスに任せるかで、アプリ側に書く処理が変わります。ここからの設計例はで制御を実装する構成を扱います。
のと状態
は、処理のつながりをで定義するです。は呼び出しや入力検証などの処理、は次にどのノードへ進むかという接続、状態(state)は各処理が参照・更新するデータです。たとえば、依頼内容、照会結果、発注案のバージョンを状態として持ち、承認が必要かどうかで進み先を変えます。すべてのノードがモデルを呼ぶ必要はありません。
承認待ちで止め、後から再開するには、の状態を保存する仕組みも必要です。後半で説明するがその役割を担います。の制御を選んでも、の提供元や配置先は別に選べます。Google CloudのAgent やAWSの Runtimeと組み合わせる構成も候補になるため、クラウドのとLangGraphを同列の代替品として比べる必要はありません。
承認を待って発注する購買業務の設計例
架空の社内購買業務を考えます。担当者が依頼した商品について在庫と配送日を照会し、エージェントが発注案を作ります。承認者が翌日に内容を確認することもあります。承認後は既存の注文へ送信し、注文が受け付けられたことを確認して完了にします。発注案ができただけでは業務は完了しません。
依頼と利用者を確認 → 在庫・配送日を並列照会 → 結果を検証して発注案を保存 → 承認待ちから再開 → 注文APIの受付を確認
構成の一例は、Bedrockの、の制御、 の実行環境、永続的な、既存の注文・承認、経由の業務APIです。Google Cloudを使うなら、またはLangGraphをAgent Runtimeへ配置する構成を検討できます。以下のADKとLangGraphの説明は、同じ業務要件をそれぞれで考える例であり、両方の導入を求めるものではありません。
| この例の構成 | 担当すること | アプリ側で具体化すること |
|---|---|---|
| Bedrockの | 依頼の解釈と発注案の説明 | 定義、入力する情報、呼び出しの上限 |
| +永続的な | 処理の制御と再開用の保存 | 分岐、承認待ち、と案件の対応 |
| エージェントの配置・実行 | 保存先への接続、停止後の復元 | |
| 注文・承認の業務 | 業務の現在状態の管理 | 案のバージョン、承認記録、操作ID |
| 経由の注文 | の接続と注文処理 | 接続時の、顧客・対象・操作の |
この例では、処理を進めてよい条件を先に決めます。在庫や配送日が未確定なら保留し、案が変わったら承認を取り直し、注文の結果が不明なら照会します。以降の、図、疑似コード、試験項目は独自の設計例で、製品の設定ファイルや導入効果の実測ではありません。
の並列処理とでの合流
2.xのなら、独立した在庫照会と配送日照会へ分岐し、という合流用ので結果をまとめる構成を考えられます。公式資料では、合流へ入る前段のノードに出力が必要とされています。前段の処理が終わることと、発注に必要な値が有効であることは分けて扱います。
| 分岐の状態(独自の例) | 後段へ渡す情報 | 合流後の判断 |
|---|---|---|
| 照会成功 | 対象ID、取得値、取得時点、出典 | 対象が正しく、情報が十分に新しいか確かめる |
| 取得できなかった | 対象ID、未確定状態、理由 | 推測で補わず、再試行・確認・保留へ進む |
| が出力しなかった | 正常結果としては扱えない | 実装やエラー処理を調べ、発注案を確定しない |
配送日を取得できなかった結果を空欄の正常データに変えると、後段のが「最短で届く」と補ってしまうかもしれません。取得できなかったことを状態として残し、発注案を作ってよいかはコードで検証します。一方の結果を他方の入力に必要とするなら、その2処理は同時に開始する対象から外します。
会話・実行状態・注文の保存先
で同じ流れを実装する場合、はごとの状態をとして保存します。スレッドは一連の実行と保存状態を識別する単位です。はスレッドをまたぐアプリの情報を扱います。たとえば承認待ちから処理を再開するための状態と、説明の好みのような情報は保存範囲が違います。注文が受け付けられたかは、注文や業務の現在状態で判断します。
| 保存するもの | この例の保存先 | 保存しただけでは分からないこと |
|---|---|---|
| 会話と、次に実行する処理に必要な状態 | 永続的な | 現在も同じ承認・権限で実行できるか |
| 会話をまたぐ説明の好み | 顧客・利用者の範囲を定めた | 最新の注文状態や操作の許可 |
| 発注案のバージョンと承認記録 | 業務 | 外部の注文受付が実際に完了したか |
| 送信した操作と注文受付結果 | 業務と注文の照会結果 | 応答を失った場合の結果。必要なら再照会する |
本番の実行環境を自分たちで運用する場合、だけを使うと、が失われた後の復元には使えません。永続的な保存実装を用意します。Agent Serverのように保存を管理するサービスを使う場合は、その機能がどこまでを管理するか確認します。クラウドの会話履歴やメモリ機能を使う場合も、の再開に必要な情報まで保存・復元する連携なのかを確かめます。
のと状態の復元
の(軽量な仮想マシン)はごとの実行環境を分離します。しかし、既定の計算環境のメモリとディスクは一時的です。停止後に同じで呼び出しても、新しい計算環境で動く場合があります。設定したセッションストレージでファイルを残せても、の変数まで自動で復元されるわけではありません。この説明を、保存方式の異なるRuntime Instancesへそのまま広げないようにします。
| 識別子 | 対応させる対象 | 再開時の確認 |
|---|---|---|
| case_id | 業務の案件 | 顧客と案件の現在状態 |
| で保存した実行状態 | その案件・利用者が参照できるか | |
| の実行 | が管理する利用者・会話との対応 | |
| operation_id | 発注する同一の操作 | 再送・結果照会でも同じ操作か |
これらは同じ値にそろえるためのIDではありません。が対応を管理し、利用者から渡されたIDを信用して別案件の状態を読み出さないようにします。AWSも、がと利用者の対応を強制しないため、アプリ側で関係を管理すると説明しています。
{
"tenant_id": "tenant-A",
"case_id": "case-42",
"thread_id": "thread-case-42",
"runtimeSessionId": "a88003d1-7216-48ef-91bc-aee70370b77f",
"proposal_revision": 3,
"approval_status": "pending",
"operation_id": "order-case-42-rev-3",
"order_status": "not_submitted"
}翌日に新しい計算環境で動くなら、保存先からの状態を読み、業務で発注案のバージョンと承認の有効性を確かめます。古い会話に「承認した」と書かれていても、発注案が更新されていれば現在の案の承認として使いません。
の承認待ちと再開時の再実行
では、関数で処理を止めて入力を待ちます。再開するときは、同じ処理を識別するを指定し、Commandにresume(再開用の入力値)を渡します。このとき、interruptを呼んだは先頭から実行されます。停止した行の次から、Pythonの続きをそのまま動かす方式ではありません。
def approval_node(state):
notify_reviewer(state["case_id"])
decision = interrupt(state["proposal"])
return {"decision": decision}この形では、承認者への通知が再送され得ます。通知を同じ通知IDで繰り返しても1回の結果になる処理にするか、通知と承認待ちを別のへ分けます。ノードを分けたことだけで通知先の処理と保存が一体になるわけではないため、通知の再送にも重複対策は必要です。
def approval_node(state):
decision = interrupt({
"case_id": state["case_id"],
"proposal_revision": state["proposal_revision"],
"proposal": state["proposal"],
})
return {"decision": decision}後続の処理は、decision(再開時に受け取った判断)の文字列や、承認を表す真偽値だけを信じて発注しません。した承認者、案件、対象の発注案のバージョン、期限、現在の権限を業務の承認記録と照合します。承認が有効なら操作へ進み、案が変わっていれば改めて確認します。待機中のを変更する場合も、保存済み状態との並びに互換性があるかを確かめます。
注文の応答を失ったときの結果照会
承認後の操作を別へ移しても、外部が注文を受け付けた直後にが停止すれば、側へ結果を保存できない場合があります。には「送信前」と残り、注文先には注文が存在するというずれです。ノードを再実行するだけでは、このずれは解決しません。
- 承認者: 発注案のバージョンを指定して承認
- 業務バックエンド: 承認・権限・現在状態を検証
- グラフ実行: 同じoperation_idで注文APIを呼ぶ
- 注文API: 注文は受付済みだが応答を失う
- グラフ実行: 再開時、未保存の結果を成功と決めつけない
- 業務バックエンド: 同じoperation_idで照会し、確認できなければ保留
アプリは発注する意図と操作IDを先に記録し、同じ操作の重複受付を条件付き更新などで管理します。ただし、その記録の保存と外部での注文受付を、まとめて成功・取り消しできるわけではありません。注文APIがと結果照会に対応しているなら、その仕様と保持期間の中で同じ操作IDを使います。
注文に重複防止や照会の機能がなければ、結果不明のまま新しい操作IDで再発注する設計は避けます。この業務では保留して担当者へ渡し、注文先の記録と突き合わせます。どのを使っても、外部サービスが提供しない保証をから作り出すことはできません。
のと業務の
を通してへ接続する場合、入口側()ではGatewayへ入る要求を確認し、出口側()では接続先へのを扱います。対応する接続ではGatewayの、呼び出し元のAWSの認証情報()、などを選べますが、接続先によって使える方式が異なります。inboundで認証した利用者の権限が、すべてのoutbound方式でそのまま伝わるとは考えません。
| 確認する場所 | この例での確認 | 混同しないこと |
|---|---|---|
| への要求 | 呼び出し元と、設定した方式に応じたアクセス条件 | 署名やログインの成功だけで全業務操作を許可しない |
| 接続先への要求 | 利用者の委任権限か、共有のサービス権限か | 共有の接続権限を利用者本人の権限と扱わない |
| 発注する業務 | 顧客、商品、数量、発注案のバージョン、承認、現在の権限 | が一覧に出ることを実行許可の証拠にしない |
特にAUTHENTICATE_ONLYは、署名を検証しても自身で判断をしない方式です。認可を別の構成要素へ委ねるなら、その構成要素で検証する必要があります。共有接続を使うこの発注例では、信頼できる呼び出し元の情報を業務まで結び付け、別顧客の商品や注文を更新しないようにします。
停止と再開を含む導入前の検証
次の表はこの発注業務の試験計画です。文章が自然かを確認する評価とは別に、保存状態と業務結果を照合します。これは実製品で実行済みの試験結果ではありません。
| 試す状況 | 期待する動作 | 確認する記録 |
|---|---|---|
| 配送日を取得できず並列処理が合流 | 未確定として保留し、値を推測しない | 分岐の結果・出典・保留理由 |
| 承認待ちの間に計算環境が停止 | 正しいを復元し、現在の承認を再確認 | 案件・・利用者の対応と |
| 同じ承認通知や再開要求が重複 | 同じ承認を照合し、同一操作の重複実行を防ぐ | 承認記録・操作ID・外部の受付結果 |
| 待機中に発注案が更新 | 古いバージョンの承認では実行しない | 承認対象のバージョンと現在のバージョン |
| 注文受付後に応答を失う | 同じ操作を照会し、不明なら保留する | 注文の記録とローカルの操作状態 |
| 別利用者のや顧客IDを指定 | 読み出し・再開・実行を拒否する | 誰からの要求かと、サーバー側で判定した操作対象 |
| 待機中のを更新 | 保存済み状態を互換性のあるバージョンで扱うか移行する | コードのバージョン・状態の形式・再開の検証結果 |
少なくとも、どの案件を再開したか、どの発注案が承認されたか、どの権限で何を実行したか、注文先でどう受け付けられたかを追えるようにします。会話の回答だけを見て「復旧できた」と判断せず、結果不明の案件と、人が処理する残件も確認します。
構成図に残す判断
- まず業務の完了条件と保留条件を決める。発注案のバージョン、承認、操作ID、受付結果のどれをどこに保存するかを明記する。
- 次に制御を選ぶ。依存関係が決まる処理はにし、独立した照会だけを並列化する。を使うならとの範囲、中断・再開の単位を決める。を使うなら対象バージョンの合流と出力の扱いを確認する。
- その実装を動かす基盤と接続方法を選ぶ。Agent やの対応バージョン、保存先へ接続できること、計算環境の停止、・を、同じ案件の試験で確かめる。
自分の構成図には、各役割の製品名に加え、保存する情報、権限を検証する場所、停止後の復元方法を追記します。たとえば「を で動かす」という選定は、処理の制御と配置先を決めた段階です。永続的な、承認記録、注文の重複対策まで具体化して、発注業務としての構成が決まります。
一次資料と確認範囲
製品の挙動は以下の公式資料で確認しました。2026年10月29日時点の説明で、提供地域・開発用の部品・連携先などの対応条件は採用時に再確認してください。この記事の発注処理、復旧手順、疑似コードと試験計画は設計を説明するための例で、クラウドへの配置、実の品質・費用、障害復旧の実測は行っていません。
- Google Cloud — Agents overview: ADK, Agent Runtime, Sessions, and Memory Bank
- AWS — Tool use with Amazon Bedrock models
- LangGraph — Overview
- Google Cloud — Agent Runtime framework quickstart
- Google Cloud — Agent Platform release notes
- Google ADK — Graph routes and JoinNode
- AWS — Amazon Bedrock AgentCore overview
- AWS — Bedrock Agents Classic maintenance mode
- AWS — AgentCore Runtime sessions
- AWS — Gateway inbound authorization
- AWS — Gateway outbound authorization
- LangGraph — Persistence: Checkpointer and Store
- LangGraph — Checkpointers
- LangGraph — Interrupts and node replay