このクイックスタートでは、エージェント開発キット(ADK)で構築された Vertex AI エージェントを ABAP 環境から呼び出す方法について説明します。
このガイドでは、ABAP SDK for Google Cloud のオンプレミス エディションまたはクラウド エディションを使用して AI エージェントを呼び出すプロセスについて説明します。作成手順やデプロイ手順については説明しません。AI エージェントは、エージェント開発キット(ADK)を使用して作成します。これはエージェントを設計するためのオープンソース フレームワークで、Google Agentspace と Customer Engagement Suite with Google AI を支えるフレームワークと同じフレームワーク上に構築されます。次に、Vertex AI Agent Engine にエージェントをデプロイします。これは、テスト、リリース、信頼性の機能が組み込まれた Vertex AI のフルマネージド ランタイムで、カスタム エージェントをグローバル規模で安全に本番環境にデプロイできます。
始める前に
このクイックスタートを実行する前に、自身または管理者によって次の事前準備が完了していることを確認してください。
Google Cloud アカウントとプロジェクトがある。
プロジェクトで課金が有効になっている。プロジェクトに対して課金が有効になっていることを確認する方法をご覧ください。
ABAP SDK for Google Cloud のオンプレミス版またはクラウド版がインストールされ、構成されている。オンプレミス版またはクラウド版の ABAP SDK for Google Cloud をインストールして構成する方法をご覧ください。
Google Cloud APIs にアクセスするための認証が設定されている。認証の設定方法をご覧ください。
Google Cloud プロジェクトで Vertex AI API が有効になっていることを確認します。
エージェント デプロイ ファイルを保存する Cloud Storage バケットが作成されている。詳細については、バケットを作成するをご覧ください。
Vertex AI Agent Engine にエージェントをデプロイする
エージェントを作成、テストして Vertex AI Agent Engine にデプロイします。このクイックスタートでは、天気と時刻のエージェントを作成し、Vertex AI Agent Engine にデプロイします。
エージェントを作成、テスト、デプロイする方法については、以下をご覧ください。
エージェントがマネージド セッションを使用するために必要な権限が付与されていることを確認します。
デプロイすると、次の例のようなリソース ID が取得され、ABAP プログラム内でエージェントの呼び出しが可能になります。
AgentEngine created. Resource name: projects/project_id/locations/us-central1/reasoningEngines/REASONING_ENGINE_ID
リソース ID から REASONING_ENGINE_ID
をメモします(例: 6384464913570601984
)。この値は後の手順で必要になります。
ABAP 環境から Vertex AI エージェントを呼び出すプログラムの作成
SAP システムで、トランザクション
SE38
を使用して、カスタム名前空間(Z や Y など)に実行可能プログラムを作成します。SAP GUI で、トランザクション コード
SE38
を入力します。[Program] フィールドに、プログラムの名前を入力します(例:
ZDEMO_CALL_AGENT
)。[Create] をクリックします。
プログラムの属性を指定します。
[表題] フィールドに、プログラムのタイトル(例:
Call Vertex AI Agent
)を入力します。[タイプ] フィールドで
Executable Program
を選択します。[保存] をクリックします。
プログラムをローカル オブジェクトとして保存します。
ABAP エディタで、次のコードを追加します。
REPORT zdemo_call_agent. DATA lv_p_projects_id TYPE string. DATA lv_p_locations_id TYPE string. DATA lv_p_reasoning_engines_id TYPE string. DATA ls_input TYPE /goog/cl_aiplatform_v1=>ty_1072. TYPES: BEGIN OF ty_agent_input, message TYPE string, session_id TYPE string, user_id TYPE string, END OF ty_agent_input. DATA ls_agent_input TYPE ty_agent_input. TYPES: BEGIN OF ty_response, content TYPE /goog/cl_aiplatform_v1=>ty_695, END OF ty_response. DATA ls_agent_response TYPE ty_response. TRY. " Open HTTP Connection DATA(lo_client) = NEW /goog/cl_aiplatform_v1( iv_key_name = 'DEMO_AIPLATFORM' ). DATA lv_agent_response_txt TYPE string. " Populate relevant parameters lv_p_projects_id = lo_client->gv_project_id. lv_p_locations_id = 'LOCATION_ID'. lv_p_reasoning_engines_id = 'REASONING_ENGINE_ID'. ls_agent_input-message = 'What is the weather in New York'. "Prompt ls_agent_input-user_id = 'use-101'. ls_input-class_method = 'stream_query'. GET REFERENCE OF ls_agent_input INTO ls_input-input. lo_client->add_json_name_mapping( iv_abap = 'CLASS_METHOD' iv_json = 'class_method' ). lo_client->add_json_name_mapping( iv_abap = 'SESSION_ID' iv_json = 'session_id' ). lo_client->add_json_name_mapping( iv_abap = 'USER_ID' iv_json = 'user_id' ). " Call API method: aiplatform.projects.locations.reasoningEngines.streamQuery lo_client->stream_query_reasoning_engi( EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_locations_id = lv_p_locations_id iv_p_reasoning_engines_id = lv_p_reasoning_engines_id is_input = ls_input IMPORTING es_raw = lv_agent_response_txt ev_ret_code = DATA(lv_ret_code) ev_err_text = DATA(lv_err_text) es_err_resp = DATA(ls_err_resp) ). " Handle the output IF lo_client->is_success( lv_ret_code ). SPLIT lv_agent_response_txt AT cl_abap_char_utilities=>newline INTO TABLE DATA(lt_result_event_tab). " Deserialize to read the final response event from agent /goog/cl_json_util=>deserialize_json( EXPORTING iv_json = lt_result_event_tab[ 3 ] iv_pretty_name = /ui2/cl_json=>pretty_mode-extended IMPORTING es_data = ls_agent_response ). cl_demo_output=>display( ls_agent_response-content-parts[ 1 ]-text ). ELSE. MESSAGE lv_err_text TYPE 'E'. ENDIF. " Close HTTP Connection lo_client->close( ). CATCH /goog/cx_sdk INTO DATA(lo_exception). MESSAGE lo_exception->get_text( ) TYPE 'E'. ENDTRY.
次のように置き換えます。
DEMO_AIPLATFORM
: Google Cloudの認証用のクライアント キー。LOCATION_ID
: エージェントがデプロイされているロケーション。ロケーションは、エージェントを初期化するときに指定します。詳細については、エージェントを初期化するをご覧ください。REASONING_ENGINE_ID
: Vertex AI Agent Engine にエージェントをデプロイするでメモしたエージェントのリソース ID。
SE38
でアプリを実行します。結果が、エージェントをローカルで実行したときに観測された結果と一致していることを確認します。
Example response: OK. The weather in New York is sunny with a temperature of 25 degrees Celsius (41 degrees Fahrenheit).
次のステップ
- GitHub リポジトリ(GoogleCloudPlatform/google-cloud-abap/abap-sdk/ZGOOG_SDK_QUICKSTART/)で利用可能なその他のクイックスタートを確認する。
- オンプレミス版またはクラウド版の ABAP SDK for Google Cloud を使用したアプリケーション開発ガイドを確認する。
- コードサンプルを確認する。
- Cloud フォーラムのコミュニティで ABAP SDK for Google Cloud について質問したり、ディスカッションに参加したりする。