Vertex AI-Agents aus ABAP-Umgebung aufrufen

In dieser Kurzanleitung erfahren Sie, wie Sie Vertex AI-Agents, die mit dem Agent Development Kit (ADK) erstellt wurden, über Ihre ABAP-Umgebung aufrufen.

In diesem Leitfaden wird erläutert, wie Sie einen KI-Agenten mit der lokalen oder einer beliebigen Cloud-Version des ABAP SDK for Google Cloud aufrufen. Die Erstellung oder Bereitstellung wird nicht behandelt. Sie erstellen einen KI-Chatbot mit dem Agent Development Kit (ADK), einem Open-Source-Framework zum Entwerfen von Chatbots. Dieses Framework basiert auf demselben Framework, das Google Agentspace und die Customer Engagement Suite mit Google AI unterstützt. Anschließend stellen Sie Ihren Agenten in der Vertex AI Agent Engine bereit. Das ist eine vollständig verwaltete Laufzeit in Vertex AI, mit der Sie Ihre benutzerdefinierten Agenten mit integrierten Funktionen für Tests, Releases und Zuverlässigkeit auf globaler, sicherer Skale in der Produktion bereitstellen können.

Hinweise

Bevor Sie diese Kurzanleitung ausführen, müssen Sie oder Ihre Administratoren die folgenden Voraussetzungen erfüllt haben:

Agent in der Vertex AI Agent Engine bereitstellen

Erstellen, testen und in der Vertex AI Agent Engine bereitstellen In dieser Kurzanleitung können Sie einen Wetter- und Uhrzeit-Agenten erstellen und in der Vertex AI Agent Engine bereitstellen.

Informationen zum Erstellen, Testen und Bereitstellen Ihres Agents finden Sie unter:

Achten Sie darauf, dass Sie dem Kundenservicemitarbeiter die erforderlichen Berechtigungen zum Verwenden verwalteter Sitzungen erteilt haben.

Nach der Bereitstellung erhalten Sie eine Ressourcen-ID, die dem folgenden Beispiel ähnelt. Damit können Sie den Agenten in Ihrem ABAP-Programm aufrufen:

AgentEngine created. Resource name: projects/project_id/locations/us-central1/reasoningEngines/REASONING_ENGINE_ID

Notieren Sie sich die REASONING_ENGINE_ID aus der Ressourcen-ID, z. B. 6384464913570601984. Sie benötigen diese Informationen in einem späteren Schritt.

Programm zum Aufrufen von Vertex AI-Agenten aus einer ABAP-Umgebung erstellen

  1. Erstellen Sie im SAP-System ein ausführbares Programm in Ihrem benutzerdefinierten Namespace (z. B. Z oder Y) mit der Transaktion SE38.

    1. Geben Sie in der SAP-GUI den Transaktionscode SE38 ein.

    2. Geben Sie im Feld Programm einen Namen für Ihr Programm ein, z. B. ZDEMO_CALL_AGENT.

    3. Klicken Sie auf Erstellen.

    4. Geben Sie die Programmattribute an:

      1. Geben Sie im Feld Titel den Titel Ihres Programms ein, z. B. Call Vertex AI Agent.

      2. Wählen Sie im Feld Typ die Option Executable Program aus.

      3. Klicken Sie auf Speichern.

    5. Speichern Sie das Programm als lokales Objekt.

    6. Fügen Sie im ABAP-Editor folgenden Code ein:

        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.
      
      

      Ersetzen Sie Folgendes:

      • DEMO_AIPLATFORM: Der Clientschlüssel für die Authentifizierung bei Google Cloud.
      • LOCATION_ID: Der Standort, an dem der Agent bereitgestellt wird. Sie geben den Speicherort an, wenn Sie den Agenten initialisieren. Weitere Informationen finden Sie unter Agent initialisieren.
      • REASONING_ENGINE_ID: Die Ressourcen-ID für den Agenten, die Sie im Abschnitt Agent in der Vertex AI-Agent-Engine bereitstellen notiert haben.
  2. Führen Sie die Anwendung in SE38 aus.

  3. Prüfen Sie, ob die Ergebnisse mit denen übereinstimmen, die Sie bei der lokalen Ausführung des Agents beobachtet haben.

    Example response: OK. The weather in New York is sunny with a temperature of 25 degrees Celsius (41 degrees Fahrenheit).
    

Nächste Schritte