Configurare l'ambiente

Prima di utilizzare Vertex AI Agent Engine, devi assicurarti che il tuo ambiente sia configurato. Devi disporre di un progetto Google Cloud con la fatturazione abilitata, disporre delle autorizzazioni richieste, configurare un bucket Cloud Storage e installare l'SDK Vertex AI per Python. Utilizza i seguenti argomenti per assicurarti di essere pronto per iniziare a lavorare con Vertex AI Agent Engine.

Per un esempio di riferimento di Terraform per semplificare la configurazione e il deployment dell'ambiente Vertex AI Agent Engine, valuta la possibilità di esplorare l'agent-starter-pack.

Configura con Google Cloud

Puoi configurare Google Cloud per Vertex AI Agent Engine creando un progetto Google Cloud o registrandoti a Vertex AI in modalità express:

Google Cloud progetto

Ogni progetto può essere identificato in due modi: tramite il numero del progetto o l'ID progetto. PROJECT_NUMBER viene creato automaticamente quando crei il progetto, mentre PROJECT_ID viene creato da te o da chiunque abbia creato il progetto. Per configurare un progetto:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI, Cloud Storage, Cloud Logging, Cloud Monitoring, Telemetry, and Cloud Trace APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI, Cloud Storage, Cloud Logging, Cloud Monitoring, Telemetry, and Cloud Trace APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Modalità express

    Segui le istruzioni riportate in Vertex AI in modalità express per configurare Vertex AI Agent Engine in modalità express.

    Una volta configurato Vertex AI Agent Engine in modalità rapida, puoi passare al passaggio Installa e inizializza l'SDK Vertex AI per Python.

Ottenere i ruoli richiesti

Per ottenere le autorizzazioni necessarie per utilizzare Vertex AI Agent Engine, chiedi all'amministratore di concederti il ruolo IAM Vertex AI User (roles/aiplatform.user) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configurare l'identità e le autorizzazioni per l'agente

Quando configuri l'identità e le autorizzazioni, hai a disposizione le seguenti opzioni:

  • Identità dell'agente (consigliata) (Anteprima): utilizza l'identità dell'agente Identity Access Management (IAM) per fornire funzionalità di sicurezza e gestione dell'accesso quando utilizzi gli agenti su Vertex AI Agent Engine Runtime. L'identità dell'agente è legata a ogni singolo agente.

  • Service account: i service account sono condivisi tra gli agenti di cui esegui il deployment in Vertex AI Agent Engine. Hai due opzioni per il account di servizio:

    • Agente di servizio predefinito:per impostazione predefinita, gli agenti utilizzano l'agente di servizio AI Platform Reasoning Engine. Questo account di servizio gestito da Google ha il ruolo Vertex AI Reasoning Engine Service Agent (roles/aiplatform.reasoningEngineServiceAgent), che include le autorizzazioni predefinite richieste per gli agenti di cui è stato eseguito il deployment.
    • Service account personalizzato:puoi specificare il tuo account di servizio da utilizzare per gli agenti. In questo modo hai un controllo più granulare sulle autorizzazioni concesse agli agenti.

Identità dell'agente

Per configurare i criteri IAM prima di eseguire il deployment dell'agente, puoi creare un'identità dell'agente senza eseguire il deployment del codice dell'agente. Per farlo, crea un'istanza di Agent Engine con solo il campo identity_type:

remote_app = agent_engines.create(
      agent=app,
      config={
          "identity_type": types.IdentityType.AGENT_IDENTITY,
      },
)

Una volta creata l'istanza di Agent Engine con l'identità dell'agente, puoi:

  1. Esegui il provisioning dell'identità dell'agente con i seguenti ruoli consigliati:

    • roles/aiplatform.expressUser: concedi l'accesso all'esecuzione di inferenze, sessioni e memoria.

    • roles/serviceusage.serviceUsageConsumer: concedi all'agente l'autorizzazione a utilizzare la quota del progetto e l'SDK Vertex AI.

  2. Concedi all'identità dell'agente ruoli aggiuntivi in base alle esigenze del tuo caso d'uso.

  3. Aggiungi il codice agente utilizzando agent_engine.update(...).

Service Agent predefinito

Per impostazione predefinita, viene utilizzato l'agente di servizio del motore di ragionamento di AI Platform. Puoi visualizzare l'elenco completo delle autorizzazioni predefinite nella documentazione IAM.

Se il tuo agente richiede autorizzazioni oltre al set predefinito, puoi concedere a questo service agent ruoli aggiuntivi:

  1. Vai alla pagina IAM e seleziona la casella di controllo "Includi concessioni di ruoli fornite da Google".

    Vai a IAM

  2. Trova l'entità corrispondente a service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com.

  3. Aggiungi i ruoli richiesti all'entità facendo clic sul pulsante di modifica e poi sul pulsante di salvataggio.

Generare manualmente l'agente di servizio predefinito

Sebbene il service agent Reasoning Engine venga sottoposto a provisioning automatico durante il deployment di Vertex AI Agent Engine, potrebbero verificarsi scenari in cui è necessario generarlo manualmente in anticipo. Ciò è particolarmente importante quando devi concedere ruoli specifici all'agente di servizio per garantire che il processo di deployment disponga delle autorizzazioni necessarie ed evitare potenziali errori di deployment.

Ecco i passaggi per generare manualmente un agente di servizio del motore di ragionamento:

  1. Genera l'agente di servizio Reasoning Engine utilizzando Google Cloud CLI.

    gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT-ID-OR-PROJECT-NUMBER
  2. Vai alla pagina IAM e fai clic su Concedi l'accesso.

    Vai a IAM

  3. Nella sezione Aggiungi entità, inserisci service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com nel campo Nuove entità.

  4. Nella sezione Assegna i ruoli, individua e seleziona i ruoli di cui hai bisogno.

  5. Fai clic sul pulsante Salva.

Service account personalizzato

Per utilizzare il tuo account di servizio, devi concedergli le autorizzazioni necessarie per eseguire l'agente. Il tuo account di servizio personalizzato probabilmente richiede il ruolo Utente Vertex AI (roles/aiplatform.user).

  1. Se non hai un account di servizio, creane uno. Vedi Creare service account.

  2. Concedi al account di servizio il ruolo Utente Vertex AI (roles/aiplatform.user).

  3. Concedi all'account di servizio tutti gli altri ruoli richiesti dal codice agente.

  4. Per eseguire il deployment dell'agente con questo account di servizio, concediti il ruolo Utente service account (roles/iam.serviceAccountUser) in questo service account personalizzato.

  5. Quando esegui il deployment dell'agente, specifica l'indirizzo email del tuo service account personalizzato. Per i dettagli, vedi Configurare un service account personalizzato.

Account di servizio personalizzato tra progetti

Se il tuo account di servizio personalizzato proviene da un progetto diverso, devi eseguire configurazioni aggiuntive sia nel progetto in cui si trova il account di servizio sia nel progetto in cui viene eseguito il deployment dell'agente.

  1. Policy dell'organizzazione Disabilita l'utilizzo dei account di servizio tra i progetti:nel progetto in cui si trova il account di servizio, assicurati che la policy dell'organizzazione iam.disableCrossProjectServiceAccountUsage NON venga applicata. Per ulteriori dettagli, consulta Disabilita l'applicazione dell'utilizzo dei account di servizio tra i progetti.

  2. Concedi le autorizzazioni all'agente di servizio Vertex AI:nel progetto in cui si trova il account di servizio, concedi il ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator) all'agente di servizio Vertex AI (service-RESOURCE_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com) del progetto in cui prevedi di eseguire il deployment dell'agente.

  3. Concedi le autorizzazioni al service account personalizzato:nel progetto in cui prevedi di eseguire il deployment dell'agente, concedi i ruoli necessari al account di servizio personalizzato. In genere, questo include il ruolo Utente Vertex AI (roles/aiplatform.user) e qualsiasi altro ruolo richiesto dal codice dell'agente.

(Facoltativo) Crea un bucket Cloud Storage

La necessità di un bucket Cloud Storage dipende dal fatto che l'SDK Vertex AI Python abbia bisogno di un luogo in cui preparare il codice dell'agente prima del deployment:

  • Deployment dai file di origine: l'agente esiste come file. L'SDK Vertex AI per Python può raggruppare e caricare questi file direttamente nel servizio di deployment, quindi non è necessario un bucket di staging Cloud Storage.

  • Esegui il deployment dall'oggetto agente: l'agente esiste in memoria. L'SDK Vertex AI Python pacchettizza questo oggetto e lo carica in un bucket Cloud Storage, che funge da area di gestione temporanea per il servizio di deployment.

Deployment dai file di origine

Se esegui il deployment di un agente dai file di origine, non è necessario un bucket Cloud Storage.

Esegui il deployment dall'oggetto

Quando esegui il deployment da un oggetto agente, Vertex AI Agent Engine esegue lo staging degli artefatti degli agenti di cui è stato eseguito il deployment in un bucket Cloud Storage nell'ambito del processo di deployment. Assicurati che l'entità autenticata per utilizzare Vertex AI (tu o un account di servizio) abbia accesso Storage Admin a questo bucket. Questo è necessario perché l'SDK Vertex AI per Python scrive il codice in questo bucket.

Se hai già configurato un bucket, puoi saltare questo passaggio. In caso contrario, puoi seguire le istruzioni standard per creare un bucket.

Chiedi all'amministratore di concederti il ruolo IAM Amministratore archiviazione (roles/storage.admin) nel progetto.

  • In the Google Cloud console, go to the Cloud Storage Buckets page.

    Go to Buckets

  • Click Create.
  • On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
    1. In the Get started section, do the following:
      • Enter a globally unique name that meets the bucket naming requirements.
      • To add a bucket label, expand the Labels section (), click Add label, and specify a key and a value for your label.
    2. In the Choose where to store your data section, do the following:
      1. Select a Location type.
      2. Choose a location where your bucket's data is permanently stored from the Location type drop-down menu.
      3. To set up cross-bucket replication, select Add cross-bucket replication via Storage Transfer Service and follow these steps:

        Set up cross-bucket replication

        1. In the Bucket menu, select a bucket.
        2. In the Replication settings section, click Configure to configure settings for the replication job.

          The Configure cross-bucket replication pane appears.

          • To filter objects to replicate by object name prefix, enter a prefix that you want to include or exclude objects from, then click Add a prefix.
          • To set a storage class for the replicated objects, select a storage class from the Storage class menu. If you skip this step, the replicated objects will use the destination bucket's storage class by default.
          • Click Done.
    3. In the Choose how to store your data section, do the following:
      1. Select a default storage class for the bucket or Autoclass for automatic storage class management of your bucket's data.
      2. To enable hierarchical namespace, in the Optimize storage for data-intensive workloads section, select Enable hierarchical namespace on this bucket.
    4. In the Choose how to control access to objects section, select whether or not your bucket enforces public access prevention, and select an access control method for your bucket's objects.
    5. In the Choose how to protect object data section, do the following:
      • Select any of the options under Data protection that you want to set for your bucket.
        • To enable soft delete, click the Soft delete policy (For data recovery) checkbox, and specify the number of days you want to retain objects after deletion.
        • To set Object Versioning, click the Object versioning (For version control) checkbox, and specify the maximum number of versions per object and the number of days after which the noncurrent versions expire.
        • To enable the retention policy on objects and buckets, click the Retention (For compliance) checkbox, and then do the following:
          • To enable Object Retention Lock, click the Enable object retention checkbox.
          • To enable Bucket Lock, click the Set bucket retention policy checkbox, and choose a unit of time and a length of time for your retention period.
      • To choose how your object data will be encrypted, expand the Data encryption section (), and select a Data encryption method.
  • Click Create.
  • Installare e inizializzare l'SDK Vertex AI Python

    Questa sezione presuppone che tu abbia configurato un ambiente di sviluppo Python o che tu stia utilizzando Colab (o qualsiasi altro runtime adatto che lo abbia configurato per te).

    (Facoltativo) Configurare un ambiente virtuale

    Ti consigliamo inoltre di configurare un ambiente virtuale per isolare le dipendenze.

    Installazione

    Per ridurre al minimo l'insieme di dipendenze da installare, abbiamo suddiviso le dipendenze in:

    • agent_engines: l'insieme di pacchetti richiesti per il deployment in Vertex AI Agent Engine.
    • adk: l'insieme di pacchetti Agent Development Kit compatibili.
    • langchain: il set di pacchetti LangChain e LangGraph compatibili.
    • ag2: l'insieme di pacchetti AG2 compatibili.
    • llama_index: l'insieme di pacchetti LlamaIndex compatibili.

    Quando installi l'SDK Vertex AI Python, puoi specificare le dipendenze richieste (separate da virgole). Per installarli tutti:

    pip install google-cloud-aiplatform[agent_engines,adk,langchain,ag2,llama_index]>=1.112.0

    Per utilizzare Agent2Agent (A2A) su Agent Engine, devi installare anche il pacchetto a2a-sdk:

    pip install a2a-sdk>=0.3.4

    Autenticazione

    Colab

    Esegui questo codice:

    from google.colab import auth
    
    auth.authenticate_user(project_id="PROJECT_ID")
    

    Cloud Shell

    Non occorre alcun intervento.

    Shell locale

    Esegui questo comando:

    gcloud auth application-default login

    Modalità express

    Se utilizzi Vertex AI in modalità rapida, non è necessaria alcuna azione.

    Importa e inizializza l'SDK

    Esegui il seguente codice per importare e inizializzare l'SDK per Vertex AI Agent Engine:

    Progetto Google Cloud

    import vertexai
    from vertexai import agent_engines # For the prebuilt templates
    
    client = vertexai.Client(  # For service interactions via client.agent_engines
        project="PROJECT_ID",
        location="LOCATION",
    )
    

    dove

    Modalità express

    Se utilizzi Vertex AI in modalità express, esegui il seguente codice:

    import vertexai
    from vertexai import agent_engines # For the prebuilt ADK template
    
    client = vertexai.Client(  # For service interactions via client.agent_engines
        api_key="API_KEY"
    )
    

    dove API_KEY è la chiave API che utilizzi per autenticare l'agente.

    Passaggi successivi