本快速入门介绍如何从 ABAP 环境中调用使用代理开发套件 (ADK) 构建的 Vertex AI 代理。
本指南介绍了使用本地版本或任何云版本的 ABAP SDK for Google Cloud 调用 AI 代理的过程,但不涵盖创建或部署过程。您可以使用代理开发套件 (ADK) 创建 AI 代理,该套件是一个用于设计代理的开源框架,它基于为 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 API 的身份验证。了解如何设置身份验证。
确保已在 Google Cloud 项目中启用 Vertex AI API。
已创建 Cloud Storage 存储桶来存储代理部署文件。如需了解详情,请参阅创建存储桶。
将代理部署到 Vertex AI Agent Engine
创建、测试代理并将其部署到 Vertex AI Agent Engine。在此快速入门中,您可以创建天气和时间代理,并将该代理部署到 Vertex AI Agent Engine。
如需了解如何创建、测试和部署代理,请参阅以下内容:
确保您已为代理授予使用受管理的会话的所需权限。
部署后,您会获得一个资源标识符,类似于以下示例,该标识符可在 ABAP 程序中启用代理调用:
AgentEngine created. Resource name: projects/project_id/locations/us-central1/reasoningEngines/REASONING_ENGINE_ID
从资源标识符中记下 REASONING_ENGINE_ID
,例如 6384464913570601984
。您在后面的步骤中需要用到它。
创建一个程序以从 ABAP 环境调用 Vertex AI 代理
在 SAP 系统中,使用事务
SE38
在自定义命名空间中创建可执行程序(例如 Z 或 Y)。在 SAP GUI 中,输入事务代码
SE38
。在程序字段中,输入程序的名称,例如
ZDEMO_CALL_AGENT
。点击创建。
指定程序属性:
在标题字段中,输入程序标题,例如
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 部分中记下的代理资源标识符。
在
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。