1. Einführung
In diesem Codelab erstellen Sie mit Developer Connect eine sichere Verbindung zu einem GitHub-Repository und verwenden diese Verbindung, um einen Agenten direkt mit Agent Runtime auf der Gemini Enterprise Agent Platform bereitzustellen.
Developer Connect stellt eine Verbindung her, indem Sie durch die Konfigurationen für Berechtigungen, Autorisierung, Authentifizierung und Netzwerke für Entwicklertools von Drittanbietern geführt werden. So können Sie Ihren Anwendungscode direkt und nativ in Google Cloud-Dienste übertragen.
In diesem Codelab verwenden wir eine Developer Connect-Git-Repository-Verbindung, um einen Agenten direkt mit Agent Runtime auf der Gemini Enterprise Agent Platform bereitzustellen. Developer Connect unterstützt GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, GitLab und GitLab Enterprise. In diesem Codelab wird eine Verbindung zu GitHub beschrieben.
Aufgaben
- Einen einfachen Agenten in Agent Runtime erstellen und in GitHub übertragen
- Mit Developer Connect das GitHub-Repository mit Google Cloud verknüpfen
- Den Agenten mit dem verbundenen Repository nativ in Agent Runtime bereitstellen
- Den bereitgestellten Remote-Agenten aufrufen und testen
Voraussetzungen
- Ein Webbrowser wie Chrome
- Ein Google Cloud-Projekt mit aktivierter Abrechnung
- Ein GitHub-Konto und ein persönliches Zugriffstoken (klassisch) mit Repository-Zugriff
Dieses Codelab richtet sich an Entwickler aller Erfahrungsstufen, auch Anfänger. Die in diesem Codelab verwalteten Ressourcen sind größtenteils serverlose APIs und sollten weniger als 1 $ kosten.
2. Hinweis
Google Cloud-Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Informationen zum Prüfen, ob die Abrechnung für ein Projekt aktiviert ist.
Cloud Shell starten
- Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren.
- Sobald die Verbindung mit der Cloud Shell hergestellt ist, prüfen Sie die Authentifizierung:
gcloud auth list
- Prüfen Sie, ob Ihr Projekt konfiguriert ist:
export PROJECT_ID=$(gcloud config get-value project)
- Wenn Ihr Projekt nicht wie erwartet festgelegt ist, legen Sie es fest:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
APIs aktivieren
Führen Sie diesen Befehl aus, um alle erforderlichen APIs für Developer Connect und Vertex AI zu aktivieren:
gcloud services enable \ developerconnect.googleapis.com \ aiplatform.googleapis.com
3. Agent-Quellcode vorbereiten
Zuerst erstellen Sie ein neues GitHub-Repository für den Quellcode Ihres Agenten und fügen ihm einen einfachen Python-Agenten für die Schlussfolgerung hinzu.
- Melden Sie sich in Ihrem GitHub-Konto an.
- Erstellen Sie ein neues privates Repository mit dem Namen
devconnect-agent. - Initialisieren Sie es nicht mit einer README-Datei oder
.gitignore.
Agent-Dateien lokal erstellen
Erstellen Sie im Cloud Shell-Terminal ein Verzeichnis für Ihren Agenten und definieren Sie seine Abhängigkeiten:
mkdir -p devconnect-agent/test cd devconnect-agent
Erstellen Sie im Verzeichnis test eine Datei requirements.txt mit den Agent Runtime-Bibliotheken:
cat <<EOF > test/requirements.txt google-cloud-aiplatform[agent_engines] EOF
Erstellen Sie im Verzeichnis test eine Datei my_agent.py. Dieses Skript definiert einen einfachen Agenten, der Listenabfragen beantwortet:
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
Code in GitHub übertragen
Initialisieren Sie ein Git-Repository und übertragen Sie Ihren Code in das neu erstellte GitHub-Repository.
Ersetzen Sie `<YOUR_GITHUB_USERNAME>` durch Ihren GitHub-Nutzernamen und `<YOUR_GITHUB_TOKEN>` durch Ihr persönliches Zugriffstoken.
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. Developer Connect konfigurieren
Nachdem sich Ihr Repository auf GitHub befindet, verknüpft Developer Connect Ihr Google Cloud-Projekt sicher damit.
IAM-Berechtigungen einrichten
Autorisieren Sie Developer Connect für den Zugriff auf Ihr Google Cloud-Projekt, indem Sie eine Dienstidentität generieren.
gcloud beta services identity create \
--service=developerconnect.googleapis.com \
--project=$PROJECT_ID
Verbindung und Link erstellen
Sie können die Verbindung und den Link entweder über die Google Cloud Console oder die gcloud-Befehlszeile erstellen.
Option 1: Google Cloud Console verwenden
- Öffnen Sie in der Google Cloud Console Developer Connect.
- Klicken Sie unter „GitHub“ auf Verbinden.
- Geben Sie Ihrer Verbindung den Namen
my-github-connectionund wählen Sie sie inus-central1aus. - Folgen Sie der Anleitung, um die Developer Connect-GitHub-App zu autorisieren.
- Wählen Sie das Repository
devconnect-agentaus, um es mit Ihrem Projekt zu verknüpfen.
Option 2: gcloud CLI verwenden
Führen Sie die folgenden Befehle in Cloud Shell aus, um Ihr GitHub-Repository zu verknüpfen.
Zuerst müssen Sie dem Developer Connect-Dienstkonto Zugriff auf Secret Manager gewähren.
# 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. Agenten über Developer Connect bereitstellen
Nachdem Ihr Repository sicher verbunden ist, können Sie einen Agent Runtime-Agenten direkt über den Developer Connect-Link bereitstellen.
Agent Runtime bereitstellen
Erstellen und führen Sie ein Python-Skript lokal in Cloud Shell aus, um Ihren Agenten mit dem Vertex AI SDK bereitzustellen.
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
Konfigurieren Sie die Standardanmeldedaten für Anwendungen in gcloud.
gcloud auth application-default login
Führen Sie das Bereitstellungsskript aus. Mit dieser Architektur kann Vertex AI lokale Ausführungsumgebungen vollständig umgehen und das Remote-Agent-Image aus dem Quellcode erstellen.
python3 deploy.py
Agent testen
Führen Sie nach Abschluss der Bereitstellung ein Skript aus, um den Endpunkt Ihres Agenten abzufragen.
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
Die Ausgabe sollte etwa so aussehen:
Invoking remote agent via endpoint... Agent response: [1, 2, 3]
6. Bereinigen
Damit Ihrem Google Cloud-Konto keine laufenden Gebühren in Rechnung gestellt werden, löschen Sie die in diesem Codelab erstellten Ressourcen.
Developer Connect- und Agent Runtime-Ressourcen bereinigen:
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
Developer Connect-Ressourcen bereinigen:
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. Glückwunsch
Glückwunsch! Sie haben mit Developer Connect eine sichere GitHub-Repository-Integration eingerichtet und einen KI-Agenten nativ direkt aus Ihrer Quellstruktur bereitgestellt.
Lerninhalte
- Google Cloud-Projekt mit Developer Connect und Vertex AI konfiguriert
- Ein persönliches Zugriffstoken sicher in Secret Manager gespeichert
- Developer Connect-Verbindungen explizit über die gcloud CLI generiert
- Eine Vertex AI Agent Runtime-Instanz programmatisch mit der Zuordnung des Objekts
developer_connect_sourceerstellt
Nächste Schritte
- Weitere Informationen zu Gemini Code Assist, das mit Ihrer Developer Connect-Codebasisintegration angepasst wurde
- Mit dem Erstellen robuster Agent Runtime-Agenten experimentieren