OAuth
イベント
該当するコンテンツが見つかりませんでした
マガジン
該当するコンテンツが見つかりませんでした
技術ブログ
「社内のドキュメント、どこにあったかな?」「ストレージのあのファイルの内容、AI に聞けたら便利なのに…」 多くの企業が社内ナレッジをさまざまなストレージツール上に保管しています。蓄積された膨大な情報を効率よく活用するのは簡単ではありません。 Amazon Quick なら、組織に散らばり保存された社内ナレッジを AI エージェントに接続し、自然言語で質問するだけで必要な情報を引き出せます。 本ブログでは、Amazon Quick の AI エージェントを社内ナレッジへ接続する例として、Microsoft SharePoint Online(以下、SharePoint と記載)での連携方法を取り上げます。ナレッジベース連携とアクション連携の、2 つのアプローチについて、セットアップ手順をステップバイステップで解説します。 2 つの連携方式の違い Amazon Quick の SharePoint 連携には、目的の異なる 2 つのタイプがあります。用途に応じて選択、または両方を組み合わせて使用できます。 ナレッジベース連携 アクション連携 できること SharePoint 上のドキュメントを AI が検索・回答 (同期時点での情報を取得) SharePoint のリスト・ファイル・Excel を自然言語で操作 (リアルタイム) データの流れ Amazon Quick が定期クロール → インデックス化 → AI 検索 ユーザーの操作リクエスト → Graph API → SharePoint ユースケース 社内規程検索、技術文書 Q&A、プロジェクトナレッジ ファイル取得、リスト更新、Excel 読み書き 1. ナレッジベース連携(Knowledge Base Integration) ナレッジベース連携では、SharePoint 上のドキュメントを Amazon Quick が自動的にクロール・インデックス化し、AI エージェントが検索・回答できるようにします。Entra ID のアプリ登録は不要で、SharePoint にサインインするだけで接続が完了します。 SharePoint 側のドキュメントレベルのアクセス制御(ACL)をナレッジベースに引き継ぎたい場合は、Admin-managed setup(サービス資格情報)による構成が必要です。詳細は本セクション末尾の 補足: ドキュメントレベルのアクセス制御(ACL)が必要な場合 を参照してください。 詳細な手順は公式ドキュメント Microsoft SharePoint ナレッジベースの統合 も参照してください。 1-1. Amazon Quick でナレッジベース作成ウィザードを開く Amazon Quick コンソールの左ナビゲーション → 「ナレッジ」 を選択 「Microsoft SharePoint Online」 の追加(+)ボタンをクリック 1-2. SharePoint にサインインする 事前に管理者の組織同意が必要です ナレッジベース統合の際には、Microsoft Entra の管理者が一度だけサインインして「組織の同意」を付与する必要があります。管理者が同意していない状態で一般ユーザーがサインインすると、「管理者の承認が必要」画面が表示され、先に進めません。 組織の同意を付与すると 、Microsoft Entra はテナントにエンタープライズアプリケーション(サービスプリンシパル)を自動的に作成します。過去に無効化していた場合は、再度有効にしてアクセスを復元してください。同意時に付与されるアクセス許可の詳細は、 Amazon Quick ユーザーガイド: SharePoint ナレッジベースの前提条件 を参照してください。 「Sign in to SharePoint」 ボタンをクリック Microsoft のサインイン画面が表示されるので、SharePoint にアクセスできるアカウントでサインイン アクセス許可を承認 1-3. Amazon Quick でインデックスするコンテンツを選択する ナレッジベースの 名前 と 説明 (任意)を入力 「Add content」 ボタンをクリック 取り込みたい特定のサイトやドキュメントフォルダ、ページなどを選択し、 「Add」 をクリック 「Create」 をクリック 作成後、初回の同期が自動的に開始される 1-4. Amazon Quick で AI エージェントにナレッジベースを接続する 作成したナレッジベースを、Amazon Quick の AI エージェントが活用できるようにします。 方法 A: スペース経由 左ナビゲーション → 「スペース」 → 対象のスペースを開く ナレッジベースをスペースに追加 スペースをカスタム AI エージェントにリンク 方法 B: チャットから直接 チャットフッターの ナレッジ アイコンを選択 作成した SharePoint ナレッジベースを直接スコープに追加、または「すべてのデータ」(ナレッジベースは自動利用) を選択 補足: ドキュメントレベルのアクセス制御(ACL)が必要な場合 上記の Quick setup で Amazon Quick が SharePoint コンテンツのインデックスを作成する場合、SharePoint からのアクセスコントロールリスト(ACL)は同期されません。インデックス付きコンテンツはすべて、SharePoint のアクセス許可に関係なく、Amazon Quick のナレッジベースにアクセスできるすべてのユーザーがアクセスできます。ナレッジベースの作成時に含めるコンテンツを確認してください。 SharePoint 側のアクセス権限をナレッジベースに引き継ぎたい場合は、 Admin-managed setup(サービス資格情報) を使用します。セットアップは以下の 2 つのフェーズで構成されます。 フェーズ 1: サービス資格情報のセットアップ KMS 署名鍵の作成、証明書の生成、Entra ID へのアプリケーション登録、Amazon Quick への鍵のアクセス権付与を行います。具体的には、以下の構成が必要です。 AWS KMS で非対称署名鍵(RSA_2048)を作成する KMS 公開鍵を使って自己署名証明書を生成する Microsoft Entra ID にアプリケーションを登録し、証明書をアップロードする Entra ID アプリに SharePoint のアプリケーション権限を付与する(詳細は下記参照) Amazon Quick に KMS 鍵へのアクセス権を付与する Entra ID アプリへの SharePoint アプリケーション権限付与について 以下の 2 つのパターンから 1 つを選択して適用します(混在不可)。 All sites(ACL クロールあり) Microsoft Graph: Sites.Read.All Microsoft Graph: User.Read.All Microsoft Graph: GroupMember.Read.All SharePoint REST: Sites.FullControl.All Selected sites(ACL クロールあり) Microsoft Graph: Sites.Selected Microsoft Graph: User.Read.All Microsoft Graph: GroupMember.Read.All SharePoint REST: Sites.Selected Sites.Selected を選んだ場合は、Microsoft Graph API を通じて対象サイトごとに個別の権限付与が必要です。 詳細は Set up service credentials を参照してください。 フェーズ 2: Amazon Quick でナレッジベースを作成 フェーズ 1 で取得したサービス資格情報を使用して、SharePoint ナレッジベースを作成します。 詳細は Create the knowledge base in Amazon Quick を参照してください。 この構成により、Amazon Quick が SharePoint の ACL を自動同期し、クエリ時にユーザーのアクセス権をリアルタイムで検証します。ユーザーは自分がアクセス権を持つドキュメントからのみ回答を得ることができます。 注意 : ACL 管理はナレッジベース作成後に変更できません。ACL が必要かどうかは、作成前に検討してください。 ドキュメントレベルのアクセス制御の仕組みについては、 Document-level access controls を参照してください。 2. アクション連携(Action Integration) アクション連携では、Microsoft Graph API を介して SharePoint のリスト、アイテム、ファイル、Excel ワークブックを自然言語で直接操作できます。ユーザーごとの OAuth 認証を使うため、各ユーザーの権限に基づいたアクセス制御が自動的に適用されます。 ナレッジベース連携とは異なり、事前に Microsoft Entra ID でのアプリ登録が必要です。連携を作成すると、その事前作成された連携を利用して、ユーザー自身の認証でアクションを利用することが可能となります。 詳細な手順は公式ドキュメント Microsoft SharePoint アクション統合 も参照してください。 事前準備 以下の管理者権限を使用し、2-1 から 2-5 を事前に実施する必要があります。 Microsoft Entra ID(旧 Azure AD)のアプリ登録権限 Amazon Quick の管理者または Author 権限 2-1. Microsoft Entra 管理センターでアプリを登録する Microsoft Entra 管理センター でアプリケーションの登録を行います。 正式な手順については Microsoft 公式ドキュメント: Microsoft ID プラットフォームにアプリケーションを登録する を参照してください。 「アプリの登録」 → 「新規登録」 を選択 アプリ名を設定(例: QuickSharePointIntegration ) 「サポートされているアカウントの種類」で 「シングルテナントのみ」 を選択(任意で指定) 「リダイレクト URI」で 「Web」 を選択し、以下の URL を入力 https://{リージョン}.quicksight.aws.amazon.com/sn/oauthcallback {リージョン} は Amazon Quick のリージョンに置き換え(例: 東京なら ap-northeast-1 ) 「登録」 をクリック 登録後、 概要ページ に表示される以下の値を控えておきます。Amazon Quick 側の設定で使用します。 アプリケーション(クライアント)ID ディレクトリ(テナント)ID ポイント : 複数リージョンで Amazon Quick を利用する場合は、リダイレクト URI を複数登録してください。登録したアプリ → 「認証」 からリダイレクト URI を追加できます。 2-2. Microsoft Entra 管理センターでクライアントシークレットを作成する 登録したアプリ → 「証明書とシークレット」 を選択 「新しいクライアントシークレット」 を選択 説明と有効期限(最大 730 日)を設定し、追加 表示された 「値」 をコピーして安全に保管 重要 : シークレットの「値」は作成直後しか表示されません。この画面を閉じると二度と確認できないため、必ずこのタイミングでコピーしてください。Amazon Quick に設定するのは 「シークレット ID」ではなく「値」 の方です。 2-3. Microsoft Entra 管理センターでエンドポイント URL を取得する 登録したアプリの 「概要」 → 「エンドポイント」 から、以下の 2 つの URL を控えます。 OAuth 2.0 トークンエンドポイント (v2) : https://login.microsoftonline.com/{テナントID}/oauth2/v2.0/token OAuth 2.0 認証エンドポイント (v2) : https://login.microsoftonline.com/{テナントID}/oauth2/v2.0/authorize 2-4. Microsoft Entra 管理センターで Graph API のアクセス許可を設定する Entra ID で Graph API のアクセス許可(委任されたアクセス許可)を設定します。 登録したアプリ → 「API のアクセス許可」 を選択 「アクセス許可の追加」 → 「Microsoft Graph」 → 「委任されたアクセス許可」 を選択 以下のスコープを追加 Files.ReadWrite : ファイルの読み取り・作成・更新・削除 Sites.ReadWrite.All : サイトコレクション内のドキュメントとリストの編集・削除 offline_access : アクセストークンの自動更新(再認証の頻度を軽減) 「{テナント名} に管理者の同意を与えます」 をクリックして権限を承認 Tip : どのアクションにどのスコープが必要かの詳細は、 Microsoft 公式ドキュメント: Microsoft Graph API のアクセス許可リファレンス を参照してください。 2-5. Amazon Quick で OAuth 接続を設定する Amazon Quick コンソールで、アクション連携の接続設定を作成します。 左ナビゲーション → 「Connectors」 → 「Create for your team」 → 「Microsoft SharePoint Online」 を選択 既に接続が存在し新規作成する場合は、 「No, create new」 を選択 「統合タイプを選択」 画面で 「次へ」 を設定 「Microsoft SharePoint Online 接続の詳細」 画面で以下を設定 (*以下ではユーザー認証 (OAuth) の方法を取り上げています。) 名前 : 任意の名前を入力 Description : 任意で入力 接続タイプ : パブリックネットワーク (*VPC指定も可能) OAuth Configuration : Custom OAuth app OAuth Configuration の詳細 : 以下の値を入力 設定項目 入力する値 ベース URL https://graph.microsoft.com/v1.0 (固定値) クライアント ID 2-1 で取得したアプリケーション(クライアント)ID クライアントシークレット 2-2 で取得したシークレットの「値」 トークン URL 2-3 で取得したトークンエンドポイント 認証 URL 2-3 で取得した認証エンドポイント リダイレクト URL 自動で入力されている(2-1 で Entra ID に登録済み) 「作成して続行」 をクリック 共有するユーザーを選択 「Next」 をクリック ユーザーがアクションを利用する方法 事前作成されたアクションを共有されたユーザーは、アクションを利用して SharePoint の利用を開始できます。初回アクション利用時、または認証が切断されていた場合は、ユーザー自身で認証を行う必要があります。 方法 A: スペース経由 左ナビゲーション → 「スペース」 → 対象のスペースを開く アクションをスペースに追加 スペースをカスタム AI エージェントにリンク 方法 B: チャットから直接 チャットフッターの ナレッジ アイコンを選択 作成した SharePoint ナレッジベースを直接スコープに追加、または「すべてのデータ」(アクションは自動利用)を選択 「SharePoint のファイルを確認して」等のプロンプトでアクションを利用 アクション連携で利用できる操作 Amazon Quick の SharePoint アクションコネクタでは、以下の操作が利用できます。 カテゴリ 操作 説明 リストとアイテム View items / Get Item / Get List / Update Item / Delete Item リストの閲覧、アイテムの取得・更新・削除 ファイル Upload File / Search Site Drive Items ファイルのアップロード(最大 250 MB)、検索 Excel ワークブック List Sheets / Add Sheet / Read Sheet / Update Sheet / Delete Sheet シートの一覧・追加・読み取り・更新・削除 Excel ワークブック Read Cell / Write Cell / Read Range / Write Range / Clear Range / Delete Range / Get Used Range セル・範囲の読み書き・クリア 連携方式の選び方ガイド 「検索して答えてほしい」→ ナレッジベース連携 社内規程・マニュアルの質問応答、技術文書の横断検索、プロジェクトドキュメントの Q&A、新入社員のオンボーディング支援など、蓄積されたドキュメントに対して AI が検索・回答するケースに適しています。 「操作してほしい」→ アクション連携 「この Excel の売上データを見せて」「SharePoint リストに新しいアイテムを追加して」「あのファイルをダウンロードして」など、SharePoint 上のデータを直接操作したい場合に適しています。 「両方やりたい」→ 両方設定 両方の連携は共存可能です。セキュリティの観点からは、用途ごとに Entra ID アプリを分けて最小権限を付与するのがベストプラクティスです。 まとめ Amazon Quick と SharePoint の連携は、「検索するか、操作するか」という目的に応じて適切な方式を選ぶことがポイントです。ナレッジベース連携はサインインするだけで接続が完了するため、まずはここから試してみることをおすすめします。アクション連携は Entra ID でのアプリ登録が必要ですが、一度設定すれば SharePoint のリスト・ファイル・Excel を自然言語で直接操作できるようになります。Amazon Quick は SharePoint だけでなく、Confluence、Google Drive、OneDrive、S3、Web クローラーなど、複数のナレッジソースをひとつのスペースに集約できます。まずは 1 つの SharePoint サイトから始めて、効果を実感したら徐々にスコープを広げていくのがおすすめです。ぜひ皆様の組織でも Amazon Quick を活用し、社内ナレッジの活用を加速させてみてはいかがでしょうか。 著者について 加藤 菜々美 (Nanami Kato) アマゾンウェブサービスのソリューションアーキテクトです。エンタープライズの小売・消費財業界のお客様を支援しています。AI/ML や、サーバーレスの専門チームにも所属しています。お客様の業種業態に特化したビジネス課題に対して、テクノロジーを駆使した解決手段をお客様と一緒に検討・策定し、展開するご支援をしています。
G-gen の河野です。当記事では、 Gemini Enterprise と Agent Development Kit (ADK)を組み合わせて、Google Workspace のリソースを操作する独自の AI エージェントを開発しデプロイする手順を解説します。 はじめに Gemini Enterprise とは Agent Development Kit(ADK)とは 当記事について 背景と構成 なぜ独自開発が必要なのか エージェントの構成 ADK エージェントの実装 ディレクトリ構成 agent.py requirements.txt __init__.py .env Agent Engine へのデプロイ デプロイコマンドの実行 Gemini Enterprise との接続 Google Sheets API の有効化 OAuth クライアント作成 Gemini Enterprise アプリの作成 エージェントの接続設定 動作確認 はじめに Gemini Enterprise とは Gemini Enterprise は、組織内に分散しているデータを横断的に検索し、情報の発見を手助けする生成 AI サービスです。対話型のアシスタント機能や、AI エージェントのプラットフォームとしての機能を備えています。 Gemini Enterprise の詳細については、以下の記事を参照してください。 blog.g-gen.co.jp Agent Development Kit(ADK)とは Agent Development Kit (以下、ADK)は、Google によって開発された AI エージェント構築用のフレームワークです。ADK を使用することで、エージェントへの関数処理組み込みや外部ツールの使用、マルチエージェントの実装が行えます。 以下の記事カテゴリも参照してください。 blog.g-gen.co.jp 当記事について 当記事では、Gemini Enterprise の標準機能だけでは実現が難しい「Google Workspace リソースへの複雑な操作」を、ADK を用いて実装する方法を解説します。 当記事で実装したのは、ユーザーがアップロードした議事録ファイルからタスクを抽出し、指定した Google スプレッドシートに自動で登録する AI エージェントです。 背景と構成 なぜ独自開発が必要なのか Gemini Enterprise には、 Google Workspace と連携するための標準コネクタが用意されています。しかし、標準コネクタでできることは、Google ドライブや Gmail などに対する横断検索や、カレンダーの予定作成、Gmail の送信といった一部の操作に限定されています。 参考 : Connect a Google data source - Supported actions 標準のコネクタでは実行できない操作や、複数の Google Workspace リソースを連携させた複雑な処理を実現したい場合などには、独自のエージェントの開発が必要です。 エージェントの構成 ユーザーが Gemini Enterprise の画面から Google ドキュメントで書かれた議事録を送信すると、 Vertex AI Agent Engine 上で稼働する ADK エージェントが、タスク管理表に抽出するべきタスクを抽出します。 その後エージェントは、ユーザーの権限(OAuth 認証で取得したアクセストークン)を使用して Google Sheets API を呼び出し、スプレッドシートのタスク管理表に、抽出したタスクを追記します。 構成図 ADK エージェントの実装 ディレクトリ構成 以下の構成で、ファイルを作成します。 agent_folder(任意のフォルダ名) ├── agent.py ├── requirements.txt ├── .env └── __init__.py agent.py agent.py は、議事録からタスクを抽出してスプレッドシートに書き込むための AI エージェント本体です。Python 用の ADK を用いてコーディングされています。 コード内の {auth_id} には、任意の値を設定してください。この値は、後述の Gemini Enterprise の設定で使用するので、控えておいてください。 {スプレッドシートID} と {シート名} はタスクの出力先となるスプレッドシートの情報に置き換えてください。 from typing import List, Dict from google.adk.agents.llm_agent import Agent from google.adk.tools.tool_context import ToolContext from google.oauth2.credentials import Credentials from googleapiclient.discovery import build def write_tasks_to_sheet (tool_context: ToolContext, tasks: List[Dict]) -> str : """ 抽出されたタスクのリストを受け取り、スプレッドシートに書き込む Args: tasks: 書き込むタスクのリスト。各タスクは「タイトル」「詳細」「担当者」「期限」のキーを持つ辞書。 Returns: 処理結果を文字列として返す。 """ # Gemini EnterpriseでのOAuth認証で得たアクセストークンを取得 access_token = tool_context.state.get( "{auth_id}" ) if not access_token: return "エラー: アクセストークンが使用できません。認証設定を確認してください。" # アクセストークンを使用して、スプレッドシートを操作するインスタンスを作成 creds = Credentials(token=access_token) service = build( 'sheets' , 'v4' , credentials=creds) # スプレッドシートに書き込む values = [[ task.get( 'タイトル' , '' ), task.get( '内容' , '' ), task.get( '担当者' , '' ), task.get( '期限' , '' ) ] for task in tasks] service.spreadsheets().values().append( spreadsheetId= "{スプレッドシートID}" , range = "{シート名}!A1" , valueInputOption= 'USER_ENTERED' , insertDataOption= 'INSERT_ROWS' , body={ 'values' : values} ).execute() return f "{len(tasks)} 件のタスクを正常に記録しました。" root_agent = Agent( model= 'gemini-2.5-flash' , name= 'root_agent' , description= '入力された議事録を分析し、タスクをスプレッドシートに記録するエージェント' , instruction=( "入力された議事録を分析し、タスクをスプレッドシートに記録するエージェント" "ユーザーからテキストまたはファイルにて議事録を受け取った場合、以下の手順で処理してください: \n " "1. 議事録のテキストを読み取り、内容を分析し、具体的なアクションアイテムを抽出します。 \n " "2. 各タスクを「タイトル」「内容」「担当者」「期限」のフィールドを持つJSONオブジェクトに変換します。" "不明なフィールドは「不明」とします。 \n " "例: {'タイトル':'タスク名','内容':'詳細','担当者':'名前','期限':'YYYY/MM/DD'} \n " "3. 抽出・変換したタスクのJSON配列を 引数`tasks`として、`write_tasks_to_sheet` ツールを呼び出します。" ), tools=[write_tasks_to_sheet], ) 上記のソースコードは、大きく分けて「AI エージェントの定義」と「スプレッドシートへの書き込み処理」の2つのパートで構成されます。 AIエージェントの定義(43~57行目) エージェントにおける AI の推論部分を担います。 instruction (システムプロンプト)の中で、AI に対して「議事録を受け取ったらタスクを抽出し、指定のフォーマットに整形してツールを呼び出す」ように手順を指示しています。 tools=[write_tasks_to_sheet] と定義することで、関数 write_tasks_to_sheet (抽出したタスクをスプレッドシートへ書き込む処理を行う)の呼出しができます。 スプレッドシートへの書き込み処理(9~41行目) 議事録から抽出したタスクのリストを受け取り、Google Sheets API を使って指定のスプレッドシートに追記する処理を担います。 引数 tool_context からユーザーが Gemini Enterprise 上で行った OAuth 認証のアクセストークンを取得し、安全にユーザー権限でスプレッドシートを操作します。 ADK において、ソースコードの Docstring(関数の説明文)は LLM がツールの用途を正しく理解するための重要な要素となるため、適切に記述することが推奨されます。 requirements.txt 必要なライブラリを定義します。2026年4月時点での最新バージョンを指定しています。 google-adk== 1.28 . 1 # ADKのフレームワーク google-auth== 2.49 . 1 # OAuth認証用 google-api-python-client== 2.193 . 0 # スプレッドシートAPI用 __init__.py エージェント起動時に agent.py が読み込まれるようにするためのファイルです。 from . import agent .env エージェント起動時に読み込まれる環境変数を定義します。 GOOGLE_GENAI_USE_VERTEXAI = 1 GOOGLE_CLOUD_PROJECT = { 自身のプロジェクトID } GOOGLE_CLOUD_LOCATION =us-central1 Agent Engine へのデプロイ デプロイコマンドの実行 ターミナルで agent_folder ディレクトリに移動し、ソースコードを Agent Engine にデプロイします。 ※ ライブラリ google-adk がインストールされた環境で実行して下さい。 cd agent_folder adk deploy agent_engine \ --project = 自身のプロジェクトID \ --region = us-central1 \ --display_name =" TaskCreateAgent " \ . デプロイ完了後、Google Cloud コンソールの [Vertex AI] > [Agent Engine] 画面で、エージェントがデプロイされていることを確認します。 後の手順で使用するため、デプロイされたエージェントの リソース名 を控えておきます。 Gemini Enterprise との接続 Google Sheets API の有効化 Google Cloud コンソールで「Google Sheets API」を検索し、有効化します。 OAuth クライアント作成 Google Cloud コンソールの [Google Auth Platform] > [クライアント] から、以下のパラメータで「OAuth クライアント ID」を作成します。以下の表に記載が無いパラメータについては、未入力でも問題ありません。 設定項目 設定値 アプリケーションの種類 ウェブ アプリケーション 名前 任意の名前 承認済みのリダイレクト URI https://vertexaisearch.cloud.google.com/oauth-redirect 承認済みのリダイレクト URI とは、認証後に取得したアクセス権をGemini Enterprise上で使用することを許可する設定です。 OAuth クライアントの作成後、表示される「クライアント ID」と「クライアント シークレット」を控えておきます。 Gemini Enterprise アプリの作成 Gemini Enterprise でエージェントを稼働させるためのアプリを作成します。アプリを作成するユーザーには、以下の IAM ロールが必要になります。 ディスカバリー エンジン管理者( roles/discoveryengine.admin ) 以下の手順でアプリを作成します。 Google Cloud コンソールの [Gemini Enterprise] > [アプリ] から [アプリを作成する] を選択します。 アプリ名に任意の値を入力し、場所は global を選択して作成します。 global 以外のロケーションを利用する場合、機能制限があるため、今回は global を選択しました。 参考 : マルチリージョンの制限事項 エージェントの接続設定 デプロイした Agent Engine のエージェントを、作成した Gemini Enterprise のアプリに接続します。 1.アプリの管理画面から [エージェント] > [エージェントを追加] をクリックし、「Agent Engine によるカスタム エージェント」を選択します。 2.「承認」の設定画面にて、以下のパラメータで「承認を追加」します。 設定項目 設定値 認証名 任意の値 認証ID agent.pyで入力した{auth_id}の値 クライアント ID 控えておいたOAuth クライアント ID クライアント シークレット 控えておいたOAuth クライアント シークレット トークン URI https://oauth2.googleapis.com/token 承認 URI https://accounts.google.com/o/oauth2/v2/auth?scope=https%3A//www.googleapis.com/auth/spreadsheets&include_granted_scopes=true&response_type=code&access_type=offline&prompt=consent&client_id={クライアントID} 設定値の トークン URI とは、Google提供のAPIを使用する際の「アクセストークン」を発行してくれる窓口です。 承認 URI とは、OAuth認証画面において承認するスコープ等を定義したURIです。今回はスプレッドシートを操作するスコープ( googleapis.com/auth/spreadsheets )を設定しています。 {クライアントID} の部分は実際のOAuthクライアントIDに置き換えて下さい。 参考: ウェブサーバー アプリケーションに OAuth 2.0 を使用する 3.「構成」の設定画面で、以下のパラメータで構成を「保存」します。 設定項目 設定値 エージェント名 任意の名前 エージェントの説明 エージェントの説明 Agent Engine 推論エンジン 控えておいたAgent Engine のリソース名 動作確認 以下の手順で、エージェントの動作確認を行います。 Google ドライブ上に、Google ドキュメントで議事録ファイルを、Google スプレッドシートでタスク管理用シートを作成します。 Gemini Enterprise で、エージェント一覧から、作成したエージェントを選択します。 アシスタントに、議事録ファイルを Google ドライブから追加したうえで「タスクを登録して」と入力します。 タスク管理用シートに、抽出されたタスクが登録されたことを確認します。 河野 利紀 (記事一覧) クラウドソリューション部 デジタルワークプレイス課 2025年10月にG-genに入社。 神奈川在住で、Google Cloud をマスターするため日々エンジニアとして修行中。
こんにちは。SCSK渡辺(大)です。 2026年4月22日にプレビューリリースされた Amazon Bedrock AgentCore Managed Harness (以下、AgentCore Harness)を、AWSマネジメントコンソールで触ってみました。 私と同じく「AIエージェントを動かす基盤」と言われてもピンとこない方向けに、コンソール操作の流れに沿って「何が作られるのか」「料金はどうなるのか」等の整理をしてみました。 AgentCore Harnessをひとことで言うと 「モデル・指示文・ツールを指定するだけで、コードを書かずにAIエージェントが動く仕組み」です。 通常、AIエージェントを作るには「モデルを呼ぶ→ツールを使うか判断→ツール実行→結果をモデルに戻す→また判断…」というループ処理を自分で実装する必要があります。AgentCore Harnessはこのループ処理をAWSが全部やってくれるので、開発者はコンソールでの設定やJSON定義だけで済みます。 AWS公式ブログ でも以下のように説明されています(筆者要約)。 エージェントを動かすには、フレームワーク選定、オーケストレーションコードの実装、ツール接続、認証設定など、多くのインフラ作業が必要でした。 そのため、殆どのチームがエージェントのロジックではなくインフラに何日も費やしていました。 AgentCore Harnessはこれらを設定に置き換え、数分でエージェントをテストできるようにします。 AgentCore harness overview - Amazon Bedrock AgentCore Every agent has an orchestration layer: the loop that calls the model, decides which tool to invoke, passes results back... docs.aws.amazon.com 勘違いしやすいサービスとの比較 「AIエージェント」に関連するAWSサービスが複数あるため、混乱しやすいです。 Claude Code 、Kiro との比較 Claude CodeやKiroもエージェント的に動作しますが、AgentCore Harnessとは役割が全く異なります。 Claude Code、Kiro :開発者の作業を効率化するツール AgentCore Harness :エンドユーザー向けエージェントの実行基盤 Claude Code、Kiro AgentCore Harness 目的 開発者自身の作業を効率化する エンドユーザー向けのエージェントを本番運用する 使う人 開発者・開発チーム 作ったアプリのエンドユーザー 動く場所 ローカルPC / クラウド(※) AWSクラウド(マイクロVM) エンドユーザーへの提供 想定されていない API経由で提供可能 マルチテナント 非対応(開発者向けツール) 対応(セッション分離・IAM/OAuth認証) ※Claude Codeは基本ローカル実行ですが、「Claude Code on the web」や「 Routines 」(Anthropicクラウド上でのスケジュール実行、2026年4月リサーチプレビュー)も提供されています。 Kiroも「 Kiro Autonomous Agent 」が発表されています。 Bedrock Agents 、AgentCore Runtime との比較 AWSサービスの中にはエージェント関連のサービスが複数あります。 その中から抜粋して比較しました。 Bedrock Agents :Bedrockの世界で完結する従来型のエージェント。Knowledge BaseやGuardrailsとの統合が強み AgentCore Runtime :自分でコードを書いて自由にエージェントを構築する実行環境 AgentCore Harness :設定だけでエージェントを動かせる仕組み。マルチモデル対応で、MCP等の標準プロトコルを使う。Runtimeとは別のアプローチであり、Runtimeで作ったコードをHarnessに変換する機能はない Bedrock Agents AgentCore Runtime AgentCore Harness 正式名称 Amazon Bedrock Agents Amazon Bedrock AgentCore Runtime Amazon Bedrock AgentCore Managed Harness ステータス GA GA プレビュー コード記述 不要(設定ベース) 必要(自分でループを実装) 不要(設定ベース) モデル Bedrockモデルのみ 任意(制限なし) Bedrock / OpenAI / Gemini ツール接続 Action Groups(Lambda / OpenAPI)、Knowledge Base 任意(自分で実装) MCP / Gateway / Browser / Code Interpreter フレームワーク AWS独自 LangChain / LlamaIndex / Strands等 自由 Strands Agents(AWS製OSS) 実行環境 AWSマネージド(詳細非公開) マイクロVM マイクロVM シェル/ファイル操作 不可 可能 可能(デフォルトで有効) 自由度 中(設定範囲内) 高(何でもできる) 中(設定範囲内) 向いている人 Bedrock中心で手軽に作りたい 独自ロジックが必要 マルチモデルで手軽に作りたい なぜAgentCore Harnessはエンドユーザーに提供できるのか 比較表で「エンドユーザーへの提供が可能」と書きましたが、なぜそう言えるのかを補足します。 Kiro/Claude Codeは開発者が自分のターミナルやIDEで使うツールなので、「自分のアプリのユーザーに使わせる」仕組みがそもそもありません。 一方、AgentCore Harnessには以下のような「サービスとして提供するための仕組み」が組み込まれています。 例えば「社内のカスタマーサポート用AIチャットボット」を作る場合、自分のWebアプリから invoke_harness APIを呼び出し、ユーザーごとにセッションIDとactorIdを割り当てれば、各ユーザーが独立してエージェントと会話できるサービスが作れます。 仕組み 何ができるか invoke_harness API 自分のアプリのバックエンド(Webサーバーやモバイルアプリ)からエージェントをAPI経由で呼び出せる。 つまり、自分のアプリの画面からエージェントと会話する機能を作れる。 セッション分離 セッションごとにマイクロVMが割り当てられる。 つまり、ユーザーAとユーザーBの会話が混ざらない IAM / OAuth認証 エンドユーザーのJWTトークンを受け取って認証できる。 つまり、「誰がアクセスしているか」を識別できる。 actorIdによるメモリ分離 ユーザーごとにメモリ(会話履歴・学習内容)を分離できる。 つまり、Aさんの好みとBさんの好みが混ざらない。 サーバーレスなスケーリング 同時に何千セッションでも自動でスケールする。 料金について 先に気になる料金を整理します。 AgentCore料金ページ によると、AgentCore Harness自体に追加料金はかかりません。 課金されるのは裏側で使われるAgentCoreの各機能(Runtime、ツール等)の従量課金です。 料金は全リージョン共通で、リージョン別の価格差はありません(2026年4月時点)。 プレビュー期間中も上記の従量課金は発生します。 試した後はセッションを終了し、不要なHarnessは削除してください。 課金対象 料金 備考 Managed Harness自体 無料 設定・管理に追加料金なし Runtime(CPU) $0.0895 / vCPU時間 実際にCPUを消費した時間のみ。I/O待ち(モデル応答待ち等)は無料 Runtime(メモリ) $0.00945 / GB時間 ピークメモリ使用量ベース。最低128MB Browser / Code Interpreter Runtimeと同じ単価 ツールを使った場合のみ Memory 長期短期記憶: $0.25/1000イベント 長期メモリストレージ: $0.75/1000レコード/月 長期記憶検索: $0.50/1000検索 メモリを有効にした場合のみ Observability CloudWatch料金に準拠 トレース・ログ・メトリクスは自動収集 モデル利用料 各モデルの料金 Bedrock / OpenAI / Gemini の利用料は別途 前提条件 東京リージョン(ap-northeast-1)は現時点で非対応です。 そのため、本記事ではus-east-1(バージニア北部)を使用します。 項目 内容 リージョン us-east-1 / us-west-2 / eu-central-1 / ap-southeast-2 のいずれか Bedrockモデルアクセス 使用するモデル(デフォルト: Claude Sonnet 4.6)のアクセスを有効化済み IAM権限 AgentCore関連の操作権限(AdministratorAccessがあれば問題なし) ステップ1: コンソールでHarnessを作成する 1-1. AgentCoreコンソールを開く リージョンをus-east-1に切り替えます。 検索バーで「Agentcore」と入力し、 Amazon Bedrock AgentCore のコンソールを開きます。 左側のサイドバーに「Harness」というメニューが追加されています。 1-2. Quick create harnessで作成する Harnessのページを開くと「Quick create harness」ボタンがあります。 これを押すと「Quick create harness」か「Advanced create harness」のどちらかを選択できます。 「Quick create harness」を押した場合、推奨設定でHarnessが自動作成されます。 しばらく待つと(約1〜2分)、プレイグラウンド画面にリダイレクトされます。 「Quick create harness」を押すと、裏側で以下のリソースが自動作成されます。 リソース 内容 Harness本体 エージェントの設定(モデル・プロンプト・ツール)を保持するリソース AgentCore Runtime エージェントが実際に動くサーバーレス実行環境(FirecrackerマイクロVM) IAM実行ロール AmazonBedrockAgentCoreHarnessDefaultServiceRole-xxxxx という名前で自動作成される Bedrockモデル呼び出し、CloudWatchログ出力等の権限を持つ IAM実行ロールの信頼ポリシーは以下のようになっていました。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "[AWSID]" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:[AWSID]:*" } } } ] } このロールには、Bedrockモデル呼び出し、CloudWatchログ・メトリクス出力、X-Rayトレース、Browser/Code Interpreterの操作権限などが含まれます。 「Quick create harness」ではこれらが AmazonBedrockAgentCoreHarnessDefaultServiceRole-xxxxx という名前のロールとして自動作成されるため、 手動でのIAMロール作成は不要 です。 ステップ2: プレイグラウンドで会話してみる プレイグラウンドで、さっそくエージェントと会話できます。 テキスト入力欄にメッセージを入力して送信するだけです。まずはシンプルな質問を試してみましょう。 こんにちは!あなたは何ができますか? この時点ではツールを追加していないので、モデルの知識だけで回答します。次のステップでツールを追加してみましょう。 ステップ3: ツールを追加する Harnessにはツールを追加できます。ツールを追加すると、エージェントが「考えるだけ」でなく「行動できる」ようになります。 追加できるツールの種類 公式ドキュメント によると、下表に加えて shell (bashコマンド実行)と file_operations (ファイル操作)がデフォルトで全セッションに含まれています。 ツール できること Gateway APIやLambda関数への接続(事前にGatewayリソースの作成が必要) Browser Webサイトの閲覧・操作(ナビゲーション、フォーム入力、スクリーンショット取得など) Code Interpreter Python / JavaScript / TypeScript のコード実行(計算、データ分析、グラフ作成など) Remote MCP Server 外部のMCPサーバーへの接続(URLを指定) Custom functions クライアント側で実行するカスタム関数の定義(人間による承認フローや社内API呼び出し等) ブラウザツールを追加してみる プレイグラウンド画面またはHarnessの設定画面から、ツールの追加ができます。 今回は「AgentCore Browser Tool」を追加してみます。 追加後、ブラウザを使う質問をしてみましょう。 エージェントがブラウザツールを使ってWebページにアクセスし、内容を要約してくれるはずです。 ブラウザツールを使用して、https://aws.amazon.com/bedrock/agentcore/ の概要を教えて AgentCore Browserのドキュメント によると、ブラウザはコンテナ化された環境で動作し、セッションごとに分離されます。 セッション終了時にリセットされるエフェメラル(一時的)な設計で、セキュリティ面も考慮されています。 ステップ4: 設定を確認・編集する Harnessの詳細確認画面および編集画面では、以下のセクションを確認・編集できます。 セクション 概要 Harness details ARN、IAMロール、ステータス等の基本情報 View invocation code プログラムからの呼び出しサンプルコード Model and system prompt 使用モデルとシステムプロンプトの設定 Memory セッションを跨いだ会話履歴の保持設定 Tools エージェントが使用できるツールの管理 Skills エージェントに専門知識を持たせるスキルファイルの設定 Advanced configurations ツール制限、ネットワーク、トランケーション、実行制限、ライフサイクル Inbound Auth 認証方式(IAM / OAuth)の設定 Observability メトリクス表示、ログ配信、トレースの設定(確認画面のみ) Permissions Harnessが使用するIAMサービスロールの設定(編集画面のみ) Harness details 項目 内容 Harness ARN Harnessの一意な識別子。boto3等からの呼び出しに使用 IAM Role Harnessが使用する実行ロール Status READY / CREATING / FAILED など View invocation code このHarnessをプログラムから呼び出すためのサンプルコードを表示できます。 Model and system prompt 項目 内容 provider Bedrock / OpenAI / Gemini(デフォルト: Bedrock) Model 使用するモデル(デフォルト: global.anthropic.claude-sonnet-4-6) System prompt エージェントへの指示文(デフォルト: You are a helpful assistant.) Memory AgentCore Memoryを接続すると、セッションを跨いで会話履歴を保持できます。 未設定の場合、各呼び出しは前の会話を覚えていない状態で始まります。 項目 内容 Memory 接続するAgentCore Memoryリソースを選択。 事前にMemoryリソースの作成が必要 Actor ID メモリの検索対象を特定のユーザーやエンティティに絞るための識別子。 複数ユーザーが同じMemoryを共有する場合に、ユーザーごとの記憶を分離できる Number of messages セッション開始時にメモリから取得する過去メッセージの件数。 多いほどコンテキストが豊富になるが、トークン消費も増える Tools 追加したツールの一覧が表示されます。ここからツールの追加・削除もできます。 Skills エージェントに専門知識を持たせるスキルファイルを設定できます。 スキルはHarnessのファイルシステムにマウントされたファイルやスクリプトのバンドルで、実行時にエージェントが参照します。 Advanced configurations 公式ドキュメント によると、以下のコスト制御パラメータが設定できます。 パラメータ 内容 デフォルト値 Allowed tools エージェントが使用できるツールの制限。省略すると全ツールが許可される。 shell や file_operations 等のビルトインツールもここで制限可能 All tools (*) Network Harnessセッションのネットワークモード。 VPCを選択するとプライベートリソース(DB、内部API等)にアクセス可能 PUBLIC Truncation Strategy コンテキストがモデルの上限を超えた場合の切り詰め方式。 sliding_window は直近のメッセージを保持、 summarization は要約して圧縮 sliding_window Max iterations 1回の呼び出しあたりの推論・行動ループの最大回数 75 Timeout duration 1回の呼び出しのタイムアウト 1 hour Max tokens 1回の呼び出しあたりのトークン上限 なし Idle session timeout アイドル状態のマイクロVMが維持される時間 15 minutes Max lifetime マイクロVMセッションの最大生存時間 8 hours コスト管理のため、テスト時はMax iterationsやTimeout durationを小さめに設定しておくと安心です。 エージェントが暴走して大量のトークンを消費するのを防げます。 Inbound Auth デフォルトではIAM認証が設定されています。 OAuth(JWT)認証に変更することも可能です。 Observability トレース・ログ・メトリクスが自動収集されます。ランタイムセッション数、ランタイムエラー率、vCPU消費量、メモリ消費量などのメトリクスが表示されます。 ログの配信とトレース(確認画面のみ) 項目 内容 ログ配信 CloudWatch Logsへのログ配信先を設定 Tracing CloudWatchへのトレース配信を有効化。 パフォーマンスのボトルネック特定やエラーのトラブルシュートに使用 Permissions(編集画面のみ) Harnessが使用するIAMサービスロールを設定します。 「新規作成」または「既存ロールの選択」が可能です。 「Quick create harness」で作成した場合は AmazonBedrockAgentCoreHarnessDefaultServiceRole-xxxxx が自動選択されています。 ステップ5:クリーンアップ テストが終わったら、不要なリソースを削除しましょう。 Harnessを削除すると、裏側で管理されていたRuntimeリソースも一緒に削除されます。 Harnessを選択 ⇒ 「Delete」を実行 「Quick create harness」で自動作成された AmazonBedrockAgentCoreHarnessDefaultServiceRole-xxxxx は、Harness削除後も残る場合があります。不要であればIAMコンソールから手動で削除してください。 まとめ AgentCore Harnessは「モデル・指示文・ツールを指定するだけでAIエージェントが動く」サービス Quick createなら数クリック・数分で作成完了 Harness自体に追加料金はなく、裏側のRuntime等の従量課金のみ(I/O待ちは無料) 作成後はプレイグラウンドですぐに会話でき、ツール追加やプロンプト変更もコンソールで完結 KiroやClaude Codeとは役割が異なる テスト後はHarnessを削除すれば裏側のRuntimeリソースも消える(IAMロールは手動確認を推奨) 当記事において不備がございましたらご連絡いただけますと幸いです。
動画
該当するコンテンツが見つかりませんでした









