1. Introducción
En este codelab, crearás una conexión segura a un repositorio de GitHub con Developer Connect y usarás esa conexión para implementar directamente un agente con Agent Runtime en Gemini Enterprise Agent Platform.
Developer Connect establece la conectividad guiándote por los permisos, la autorización, la autenticación y las configuraciones de redes para las herramientas de desarrollo que no son de Google. Esto proporciona una forma directa y nativa de extraer el código de tu aplicación a los servicios de Google Cloud.
En este codelab, utilizaremos una conexión de repositorio de Git de Developer Connect para implementar directamente un agente con Agent Runtime en Gemini Enterprise Agent Platform. Developer Connect admite GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, GitLab y GitLab Enterprise. En este codelab, explicaremos cómo conectarse a GitHub.
Actividades
- Crea un agente básico en Agent Runtime y envíalo a GitHub
- Usa Developer Connect para vincular tu repositorio de GitHub a Google Cloud
- Implementa el agente en Agent Runtime de forma nativa con tu repositorio conectado
- Invoca y prueba tu agente remoto implementado
Requisitos
- Un navegador web, como Chrome
- Un proyecto de Google Cloud con la facturación habilitada.
- Una cuenta de GitHub y un token de acceso personal (clásico) con acceso al repositorio
Este codelab es para desarrolladores de todos los niveles, incluidos los principiantes. Los recursos que se administran en este codelab son, en su mayoría, APIs sin servidores y deberían costar menos de USD 1.
2. Antes de comenzar
Crea un proyecto de Google Cloud
- En la consola de Google Cloud, en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud.
- Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información para verificar si la facturación está habilitada en un proyecto.
Inicie Cloud Shell
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
- Una vez que te conectes a Cloud Shell, verifica tu autenticación:
gcloud auth list
- Confirma que tu proyecto esté configurado:
export PROJECT_ID=$(gcloud config get-value project)
- Si tu proyecto no está configurado como se esperaba, configúralo:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
Habilitar APIs
Ejecuta este comando para habilitar todas las APIs requeridas para Developer Connect y Vertex AI:
gcloud services enable \ developerconnect.googleapis.com \ aiplatform.googleapis.com
3. Prepara el código fuente del agente
Primero, crearás un repositorio de GitHub nuevo para almacenar el código fuente de tu agente y le agregarás un agente de razonamiento simple de Python.
- Accede a tu cuenta de GitHub.
- Crea un repositorio privado nuevo llamado
devconnect-agent. - No lo inicialices con un archivo README ni con
.gitignore.
Crea los archivos del agente de forma local
De vuelta en la terminal de Cloud Shell, crea un directorio para tu agente y define sus dependencias:
mkdir -p devconnect-agent/test cd devconnect-agent
Crea un archivo requirements.txt en el directorio test que especifique las bibliotecas de Agent Runtime:
cat <<EOF > test/requirements.txt google-cloud-aiplatform[agent_engines] EOF
Crea un archivo my_agent.py en el directorio test. Este script define un agente simple que responde consultas de listas:
cat <<EOF > test/my_agent.py
class MyAgent:
def query_none(self):
return None
def query_list(self):
return [1, 2, 3]
def register_operations(self):
return {
"": ["query_none", "query_list"],
}
agent = MyAgent()
EOF
Envía el código a GitHub
Inicializa un repositorio de Git y envía tu código al repositorio de GitHub que acabas de crear.
Reemplaza "<YOUR_GITHUB_USERNAME>" por tu nombre de usuario de GitHub y "<YOUR_GITHUB_TOKEN>" por tu token de acceso personal.
git init git branch -M main git add . git commit -m "Initial commit of agent source" git remote add origin https://<YOUR_GITHUB_TOKEN>@github.com/<YOUR_GITHUB_USERNAME>/devconnect-agent.git git push -u origin main
4. Configura Developer Connect
Ahora que tu repositorio está en GitHub, Developer Connect lo vinculará de forma segura a tu proyecto de Google Cloud.
Configura los permisos de IAM
Para autorizar a Developer Connect a acceder a tu proyecto de Google Cloud, genera una identidad de servicio.
gcloud beta services identity create \
--service=developerconnect.googleapis.com \
--project=$PROJECT_ID
Crea la conexión y el vínculo
Puedes crear la conexión y la vinculación con la consola de Google Cloud o la CLI de gcloud.
Opción 1: Usa la consola de Google Cloud
- En la consola de Google Cloud, navega a Developer Connect.
- Haz clic en Conectar en GitHub.
- Asigna un nombre a tu conexión
my-github-connectiony selecciónala enus-central1. - Sigue las indicaciones para autorizar la app de GitHub de Developer Connect.
- Selecciona el repositorio
devconnect-agentpara vincularlo a tu proyecto.
Opción 2: Usa la CLI de gcloud
Ejecuta los siguientes comandos en Cloud Shell para vincular tu repositorio de GitHub.
Primero, deberás otorgarle a la cuenta de servicio de Developer Connect acceso a Secret Manager.
# Get the service account
SERVICE_ACCOUNT=$(gcloud beta services identity create \
--service=developerconnect.googleapis.com \
--project=$PROJECT_ID \
--format="value(email)")
# Grant access to Secret Manager
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role="roles/secretmanager.admin"
# 1. Create the general Developer Connect connection to GitHub
gcloud developer-connect connections create my-github-connection \
--location=us-central1 \
--github-config-app=developer-connect
# 2. Link your specific agent repository to the connection
# Replace <YOUR_GITHUB_USERNAME> with your actual GitHub username
gcloud developer-connect connections git-repository-links create devconnect-agent \
--connection=my-github-connection \
--location=us-central1 \
--clone-uri=https://github.com/<YOUR_GITHUB_USERNAME>/devconnect-agent.git
5. Implementa el agente desde Developer Connect
Con tu repositorio conectado de forma segura, puedes implementar directamente un agente de Agent Runtime aprovechando el vínculo de Developer Connect de forma nativa.
Implementa Agent Runtime
Crea y ejecuta una secuencia de comandos de Python de forma local en Cloud Shell para implementar tu agente con el SDK de Vertex AI.
cd ~
cat <<EOF > deploy.py
import vertexai
PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)
# Define the full URI string for the Developer Connect repository link
repo_link = f"projects/{PROJECT_ID}/locations/{LOCATION}/connections/my-github-connection/gitRepositoryLinks/devconnect-agent"
print("Deploying to Agent Runtime from Developer Connect...")
remote_agent = client.agent_engines.create(
config={
"developer_connect_source": {
"git_repository_link": repo_link,
"revision": "main",
"dir": "test",
},
"entrypoint_module": "my_agent",
"entrypoint_object": "agent",
"requirements_file": "requirements.txt",
"class_methods": [
{"name": "query_list", "api_mode": ""}
],
"display_name": "DevConnect Agent",
},
)
print(f"Agent Runtime deployed successfully: {remote_agent.api_resource.name}")
EOF
Configura las credenciales predeterminadas de la aplicación en gcloud.
gcloud auth application-default login
Ejecuta la secuencia de comandos de implementación. Ten en cuenta que esta arquitectura permite que Vertex AI omita por completo los alcances de ejecución locales y compile la imagen del agente remoto desde la fuente.
python3 deploy.py
Prueba el agente
Una vez que finalice la implementación, ejecuta una secuencia de comandos para consultar el endpoint de tu agente.
cat <<EOF > invoke.py
import vertexai
PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)
# Retrieve the latest reasoning engine
engines = list(client.agent_engines.list())
if engines:
agent = client.agent_engines.get(name=engines[0].api_resource.name)
print("Invoking remote agent via endpoint...")
# NOTE: Invoking remote agent
response = agent.query_list()
print(f"Agent response: {response}")
else:
print("No deployment found.")
EOF
python3 invoke.py
Deberías ver un resultado similar a este:
Invoking remote agent via endpoint... Agent response: [1, 2, 3]
6. Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud, borra los recursos que creaste durante este codelab.
Libera espacio de los recursos de Developer Connect y Agent Runtime:
cat <<EOF > cleanup.py
import vertexai
PROJECT_ID = "$PROJECT_ID"
LOCATION = "us-central1"
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)
for engine in client.agent_engines.list():
print(f"Deleting {engine.api_resource.name}")
engine.delete()
EOF
python3 cleanup.py
Limpia los recursos de Developer Connect:
gcloud developer-connect connections git-repository-links delete devconnect-agent \
--connection=my-github-connection \
--location=us-central1 \
--quiet
gcloud developer-connect connections delete my-github-connection \
--location=us-central1 \
--quiet
7. Felicitaciones
¡Felicitaciones! Estableciste de forma segura una integración del repositorio de GitHub con Developer Connect y, de forma nativa, implementaste un agente de IA directamente desde tu árbol de código fuente.
Qué aprendiste
- Configuraste un proyecto de Google Cloud con Developer Connect y Vertex AI
- Almacenaste de forma segura un token de acceso personal en Secret Manager.
- Conexiones de Developer Connect generadas de forma explícita a través de la gcloud CLI
- Se creó una instancia de Vertex AI Agent Runtime de forma programática, con la asignación de objetos
developer_connect_source.
Próximos pasos
- Explora más con Gemini Code Assist, que se personaliza con la integración de tu base de código de Developer Connect.
- Experimenta con la creación de agentes de Agent Runtime sólidos.