1. Introducción
En este codelab, crearás una conexión segura a un repositorio de GitHub con Developer Connect y la usarás para implementar directamente un agente con Agent Runtime en la plataforma de agentes de Gemini Enterprise.
Developer Connect establece la conectividad guiándote a través de los permisos, la autorización, la autenticación y las configuraciones de redes para herramientas de desarrolladores 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.
Para este codelab, usaremos una conexión de repositorio de Git de Developer Connect para implementar directamente un agente con Agent Runtime en la plataforma de agentes de Gemini Enterprise. Developer Connect admite GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, Gitlab y GitLab Enterprise. En este codelab, analizaremos una conexión 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 con tu repositorio conectado de forma nativa.
- 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 está dirigido a desarrolladores de todos los niveles, incluidos principiantes. Los recursos administrados en este codelab son principalmente APIs sin servidores y deberían costar menos de USD 1.
2. Antes de comenzar
Cómo crear 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 sobre cómo 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 espera, configúralo:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
Habilita las 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 nuevo repositorio de GitHub para contener 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 nuevo y privado llamado
devconnect-agent. - No lo inicialices con un archivo README ni
.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. Esta secuencia de comandos define un agente simple que responde a las consultas de lista:
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 el vínculo 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 la 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 otorgar acceso a la cuenta de servicio de Developer Connect 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 extremo 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 cargos continuos en tu cuenta de Google Cloud, borra los recursos creados durante este codelab.
Libera espacio en 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 de repositorio de GitHub con Developer Connect y, de forma nativa, implementaste un agente de IA directamente desde tu árbol de origen.
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.
- Generaste conexiones de Developer Connect de forma explícita a través de la gcloud CLI.
- Creaste una instancia de Agent Runtime de Vertex AI de forma programática con la asignación de objetos
developer_connect_source.
Próximos pasos
- Explora más con Gemini Code Assist personalizado con la integración de tu base de código de Developer Connect.
- Experimenta con la creación de agentes robustos de Agent Runtime.