Per eseguire il deployment di un agente su Vertex AI Agent Engine:
- (Facoltativo) Definisci i requisiti del pacchetto
- (Facoltativo) Definisci i file di origine
- (Facoltativo) Organizza la directory Cloud Storage
- (Facoltativo) Definisci i metadati della risorsa
- Crea un'istanza
AgentEngine
Prima di iniziare
Prima di eseguire il deployment di un agente, assicurati di aver completato le seguenti attività:
Passaggio 1: definisci i requisiti del pacchetto
Fornisci l'insieme di pacchetti richiesti dall'agente per il deployment. Può essere un elenco di elementi da installare tramite pip o il percorso di un file che segue il formato del file dei requisiti.
Se l'agente non ha dipendenze, puoi impostarlo su Nessuno:
requirements = None
Se l'agente utilizza un modello specifico per il framework, devi specificare la versione dell'SDK importata (ad es. 1.77.0
) durante lo sviluppo dell'agente.
LangChain
requirements = [
"google-cloud-aiplatform[agent_engines,langchain]",
# any other dependencies
]
LangGraph
requirements = [
"google-cloud-aiplatform[agent_engines,langgraph]",
# any other dependencies
]
[Facoltativo] Vincoli di versione
Se vuoi o devi impostare un limite superiore o bloccare la versione di un determinato pacchetto
(ad es. google-cloud-aiplatform
):
requirements = [
# See https://pypi.org/project/google-cloud-aiplatform for the latest version.
"google-cloud-aiplatform[agent_engines,langgraph]==1.77.0",
]
Puoi aggiungere altri pacchetti e vincoli all'elenco:
requirements = [
"google-cloud-aiplatform[agent,langgraph]==1.75.0",
"cloudpickle==3.0", # new
]
[Facoltativo] Branch di sviluppo
Puoi fare riferimento alla versione di un pacchetto che si trova in un ramo o in una richiesta di pull di GitHub, ad esempio:
requirements = [
"google-cloud-aiplatform[agent_engines,langchain] @ git+https://github.com/googleapis/python-aiplatform.git@BRANCH_NAME", # new
"cloudpickle==3.0",
]
[Facoltativo] Formato del file dei requisiti
Puoi gestire l'elenco dei requisiti in un file (ad es. path/to/requirements.txt
):
requirements = "path/to/requirements.txt"
dove path/to/requirements.txt
è un file di testo conforme al formato del file dei requisiti, ad esempio:
google-cloud-aiplatform[agent_engines,langchain]
cloudpickle==3.0
Passaggio 2: pacchetti extra
Puoi includere file o directory locali contenenti i file di codice sorgente Python locali richiesti. Rispetto ai requisiti del pacchetto, questo ti consentirà di utilizzare utilità private che hai sviluppato e che non sono altrimenti disponibili su PyPI o GitHub.
Se l'agente non richiede pacchetti aggiuntivi, puoi impostarlo su None
:
extra_packages = None
[Facoltativo] File e directory
Per includere un singolo file (ad es. agents/agent.py
), puoi aggiungerlo all'elenco:
extra_packages = ["agents/agent.py"]
Per includere l'insieme di file di un'intera directory (ad es. agents/
), puoi specificare la directory:
extra_packages = ["agents"] # directory that includes agents/agent.py
[Facoltativo] Binari della ruota
Puoi includere i binari di Python Wheel (ad es. path/to/python_package.whl
) e specificarli nei requisiti del pacchetto:
requirements = [
"google-cloud-aiplatform[agent,langgraph]",
"cloudpickle==3.0",
"python_package.whl", # install from the whl file that was uploaded
]
extra_packages = ["path/to/python_package.whl"] # bundle the whl file for uploading
Passaggio 3: directory Cloud Storage
Gli artefatti di staging verranno sovrascritti se corrispondono a un sottobucket esistente (una cartella in un bucket Cloud Storage). Se necessario, puoi
specificare il sottobucket per gli elementi di staging. Questo passaggio è facoltativo e puoi impostarlo su None
se non ti dispiace la potenziale sovrascrittura dei file nel subbucket predefinito:
gcs_dir_name = None
Per evitare di sovrascrivere i file (ad es. per ambienti diversi come dev, staging e prod), puoi configurare i sottobucket corrispondenti e specificare il sottobucket in cui eseguire lo staging dell'elemento, ad esempio:
gcs_dir_name = "dev" # or "staging" or "prod"
Se vuoi o devi evitare collisioni, puoi generare un UUID casuale, ad esempio:
import uuid
gcs_dir_name = str(uuid.uuid4())
Passaggio 4: metadati delle risorse
Puoi impostare i metadati sulla risorsa
ReasoningEngine
creata in Vertex AI, ad esempio:
display_name = "Currency Exchange Rate Agent (Staging)"
description = """
An agent that has access to tools for looking up the exchange rate.
If you run into any issues, please contact the dev team.
"""
Per un insieme completo dei parametri, consulta la documentazione dell'API.
Passaggio 5: crea un'istanza AgentEngine
Per eseguire il deployment dell'agente su Vertex AI, utilizza agent_engines.create
e passa
l'oggetto come parametro:
remote_agent = agent_engines.create(
local_agent, # Required.
requirements=requirements, # Optional.
extra_packages=extra_packages, # Optional.
gcs_dir_name=gcs_dir_name, # Optional.
display_name=display_name, # Optional.
description=description, # Optional.
)
L'esecuzione del deployment richiede alcuni minuti. Quando esegui il deployment dell'agente,
- Viene generato localmente un insieme di elementi, tra cui:
*.pkl
un file pickle corrispondente a local_agent.requirements.txt
un file di testo contenente i requisiti del pacchetto.dependencies.tar.gz
un file tar contenente eventuali pacchetti aggiuntivi.
- Il bundle viene caricato su Cloud Storage (nel sottobucket corrispondente) per l'implementazione degli elementi.
- Gli URI Cloud Storage per i rispettivi artefatti sono specificati in PackageSpec.
- Il servizio Vertex AI Agent Engine riceve la richiesta, crea i contenitori e attiva i server HTTP sul backend.
La latenza di deployment dipende dal tempo totale necessario per installare i pacchetti richiesti. Una volta disegnato, remote_agent
corrisponde a un'istanza di
local_agent
in esecuzione su Vertex AI e può essere sottoposto a query o
eliminato. È separato dalle istanze locali dell'agente.
Identificatore di risorse
Ogni agente di cui è stato eseguito il deployment ha un identificatore univoco. Puoi eseguire il seguente comando per recuperare l'identificatore resource_name
dell'agente di cui è stato eseguito il deployment:
remote_agent.resource_name
Sarà una stringa nel seguente formato:
"projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/RESOURCE_ID"
dove
PROJECT_ID
è l' Google Cloud ID progetto sotto cui verrà eseguito l'agente di cui è stato eseguito il deployment.LOCATION
è la regione in cui verrà eseguito l'agente di cui è stato eseguito il deployment eRESOURCE_ID
è l'ID dell'agente di cui è stato eseguito il deployment come risorsareasoningEngine
.
Best practice
- Blocca le versioni dei pacchetti (per build riproducibili). I pacchetti comuni da monitorare includono:
google-cloud-aiplatform
,cloudpickle
,langchain
,langchain-core
,langchain-google-vertexai
epydantic
. - Riduci al minimo il numero di dipendenze nell'agente. In questo modo si riduce il numero di modifiche che causano interruzioni durante l'aggiornamento delle dipendenze e diventa più facile aggiornare l'agente nel tempo per le funzionalità più recenti.
Esegui il deployment in produzione con lo Starter Pack di agenti
L'Agent Starter Pack è una raccolta di modelli di agenti di IA generativa pronti per la produzione creati per Vertex AI Agent Engine. Accelera il deployment fornendo:
- Modelli di agenti predefiniti: ReAct, RAG, multi-agente e altro ancora.
- Playground interattivo: testa e interagisci con il tuo agente.
- Infrastruttura automatizzata: utilizza Terraform per semplificare la gestione delle risorse.
- Pipeline CI/CD: workflow di deployment automatico che sfruttano Cloud Build.
- Osservabilità: include il supporto integrato per Cloud Trace e Cloud Logging.
Per iniziare: Guida rapida
Passaggi successivi
- Utilizza l'agente.
- Gestire gli agenti di cui è stato eseguito il deployment.
- Risolvi i problemi di implementazione di un agente.
- Richiedi assistenza.