1. Wprowadzenie
W tym ćwiczeniu utworzysz bezpieczne połączenie z repozytorium GitHub przy użyciu Developer Connect i użyjesz go do bezpośredniego wdrożenia agenta za pomocą środowiska wykonawczego agenta na platformie Gemini Enterprise Agent Platform.
Developer Connect nawiązuje połączenie, przeprowadzając Cię przez konfiguracje uprawnień, autoryzacji, uwierzytelniania i sieciowe w przypadku narzędzi deweloperskich innych niż Google. Zapewnia to bezpośredni, natywny sposób przenoszenia kodu aplikacji do usług Google Cloud.
W tym ćwiczeniu użyjemy połączenia z repozytorium Git w Developer Connect, aby bezpośrednio wdrożyć agenta za pomocą środowiska wykonawczego agenta na platformie Gemini Enterprise Agent. Developer Connect obsługuje GitHub, GitHub Enterprise, Bitbucket Cloud, Bitbucket Data Center, Gitlab i GitLab Enterprise. W tym ćwiczeniu przeprowadzimy Cię przez proces łączenia z GitHubem.
Jakie zadania wykonasz
- Tworzenie agenta podstawowego w środowisku wykonawczym agentów i przesyłanie go do GitHub
- Użyj Developer Connect, aby połączyć repozytorium GitHub z Google Cloud
- Wdrożenie agenta w środowisku wykonawczym agenta przy użyciu połączonego repozytorium
- Wywoływanie i testowanie wdrożonego agenta zdalnego
Czego potrzebujesz
- przeglądarka, np. Chrome;
- projekt Google Cloud z włączonymi płatnościami;
- Konto GitHub i osobisty token dostępu (klasyczny) z dostępem do repozytorium
To ćwiczenie jest przeznaczone dla deweloperów na wszystkich poziomach zaawansowania, w tym dla początkujących. Zasoby, którymi zarządzasz w tych ćwiczeniach z programowania, to głównie interfejsy API bezserwerowe, a ich koszt powinien być niższy niż 1 USD.
2. Zanim zaczniesz
Tworzenie projektu Google Cloud
- W konsoli Google Cloud na stronie selektora projektu wybierz lub utwórz projekt w chmurze Google.
- Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie są włączone płatności.
Uruchamianie Cloud Shell
- Kliknij Aktywuj Cloud Shell u góry konsoli Google Cloud.
- Po połączeniu z Cloud Shell sprawdź uwierzytelnianie:
gcloud auth list
- Sprawdź, czy projekt jest skonfigurowany:
export PROJECT_ID=$(gcloud config get-value project)
- Jeśli projekt nie jest ustawiony zgodnie z oczekiwaniami, ustaw go:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
Włącz interfejsy API
Aby włączyć wszystkie interfejsy API wymagane w przypadku Developer Connect i Vertex AI, uruchom to polecenie:
gcloud services enable \ developerconnect.googleapis.com \ aiplatform.googleapis.com
3. Przygotowywanie kodu źródłowego agenta
Najpierw utworzysz nowe repozytorium GitHub, w którym będzie przechowywany kod źródłowy agenta, i dodasz do niego prostego agenta rozumowania w Pythonie.
- Zaloguj się na konto GitHub.
- Utwórz nowe repozytorium prywatne o nazwie
devconnect-agent. - Nie inicjuj go za pomocą pliku README ani
.gitignore.
Tworzenie plików agenta lokalnie
W terminalu Cloud Shell utwórz katalog dla agenta i zdefiniuj jego zależności:
mkdir -p devconnect-agent/test cd devconnect-agent
Utwórz w katalogu test plik requirements.txt, w którym określisz biblioteki środowiska wykonawczego agenta:
cat <<EOF > test/requirements.txt google-cloud-aiplatform[agent_engines] EOF
Utwórz plik my_agent.py w katalogu test. Ten skrypt definiuje prostego agenta odpowiadającego na zapytania dotyczące list:
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
Przenieś kod do GitHuba
Zainicjuj repozytorium Git i prześlij kod do nowo utworzonego repozytorium GitHub.
Zastąp `<YOUR_GITHUB_USERNAME>` swoją nazwą użytkownika GitHuba, a `<YOUR_GITHUB_TOKEN>` osobistym tokenem dostępu.
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. Konfigurowanie Developer Connect
Teraz, gdy repozytorium znajduje się na GitHubie, Developer Connect bezpiecznie połączy z nim Twój projekt Google Cloud.
Konfigurowanie uprawnień
Autoryzuj Developer Connect do uzyskiwania dostępu do projektu Google Cloud, generując tożsamość usługi.
gcloud beta services identity create \
--service=developerconnect.googleapis.com \
--project=$PROJECT_ID
Tworzenie połączenia i linku
Połączenie i link możesz utworzyć za pomocą konsoli Google Cloud lub interfejsu wiersza poleceń gcloud.
Opcja 1. Korzystanie z konsoli Google Cloud
- W konsoli Google Cloud otwórz Developer Connect.
- W sekcji GitHub kliknij Połącz.
- Nazwij połączenie
my-github-connectioni wybierz je wus-central1. - Postępuj zgodnie z instrukcjami, aby autoryzować aplikację Developer Connect na GitHubie.
- Wybierz repozytorium
devconnect-agent, aby połączyć je z projektem.
Opcja 2. Używanie gcloud CLI
Aby połączyć repozytorium GitHub, uruchom w Cloud Shell te polecenia:
Najpierw musisz przyznać kontu usługi Developer Connect dostęp do usługi 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. Wdróż agenta z poziomu Developer Connect
Po bezpiecznym połączeniu repozytorium możesz bezpośrednio wdrożyć agenta środowiska wykonawczego agenta, korzystając natywnie z linku Developer Connect.
Wdrażanie środowiska wykonawczego agenta
Utwórz i uruchom lokalnie w Cloud Shell skrypt w Pythonie, aby wdrożyć agenta za pomocą pakietu SDK 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
Skonfiguruj domyślne dane logowania aplikacji w gcloud.
gcloud auth application-default login
Uruchom skrypt wdrażania. Pamiętaj, że ta architektura umożliwia Vertex AI całkowite pominięcie lokalnych zakresów wykonywania i skompilowanie obrazu agenta zdalnego ze źródła.
python3 deploy.py
Testowanie agenta
Po zakończeniu wdrażania uruchom skrypt, aby wysłać zapytanie do punktu końcowego agenta.
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
Dane wyjściowe powinny być podobne do tych:
Invoking remote agent via endpoint... Agent response: [1, 2, 3]
6. Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud bieżącymi opłatami, usuń zasoby utworzone podczas tego ćwiczenia.
Zwolnij miejsce na zasoby Developer Connect i środowiska wykonawczego agenta:
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
Zwalnianie miejsca w zasobach 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. Gratulacje
Gratulacje! Bezpiecznie utworzono integrację repozytorium GitHub za pomocą Developer Connect i natywnie wdrożono agenta AI bezpośrednio z drzewa źródłowego.
Czego się dowiedziałeś(-aś)
- skonfigurować projekt w chmurze Google za pomocą Developer Connect i Vertex AI;
- bezpiecznie przechowywać osobisty token dostępu w usłudze Secret Manager,
- wygenerowane połączenia Developer Connect za pomocą gcloud CLI
- Utworzono instancję środowiska wykonawczego agentów Vertex AI programowo, używając mapowania obiektów
developer_connect_source.
Dalsze kroki
- Poznaj Gemini Code Assist dostosowane do Twojej integracji bazy kodu Developer Connect.
- Eksperymentuj z tworzeniem niezawodnych agentów środowiska wykonawczego.