AlloyDB ve ADK için MCP Aracı Kutusu ile Çoklu Temsilci Uygulaması Oluşturma

AlloyDB ve ADK için MCP Aracı Kutusu ile Çoklu Temsilci Uygulaması Oluşturma

Bu codelab hakkında

subjectSon güncelleme Haz 17, 2025
account_circleYazan: Author: Abirami Sukumaran

1. Genel Bakış

Temsilci, sahip olduğu araçları ve bağlamı kullanarak hedefe dayalı bir işlem gerçekleştirmek için bir yapay zeka modeliyle konuşan ve gerçeğe dayalı otonom karar verme yeteneğine sahip otonom bir programdır.

Uygulamanızda, daha büyük bir amaca hizmet etmek için gerektiğinde bağımsız olarak ve birlikte çalışan birden fazla temsilci varsa ve her temsilci belirli bir odak alanından bağımsız olarak bilgi sahibi ve sorumluysa uygulamanız çok temsilcili bir sistem olur.

Temsilci Geliştirme Kiti (ADK)

Agent Development Kit (ADK), yapay zeka aracılarını geliştirmek ve dağıtmak için esnek ve modüler bir çerçevedir. ADK, birden fazla farklı aracı örneğini bir Çoklu Aracı Sistemi'nde (MAS) birleştirerek karmaşık uygulamalar oluşturmayı destekler.

ADK'de çok aracılı sistem, genellikle hiyerarşi oluşturan farklı aracıların daha büyük bir hedefe ulaşmak için birlikte çalıştığı veya koordine ettiği bir uygulamadır. Uygulamanızı bu şekilde yapılandırmak, gelişmiş modülerlik, uzmanlaşma, yeniden kullanılabilirlik, sürdürülebilirlik ve özel iş akışı aracılarını kullanarak yapılandırılmış kontrol akışları tanımlama gibi önemli avantajlar sunar.

Çok temsilcili sistemler için dikkat edilmesi gerekenler

Öncelikle, her temsilcinin uzmanlık alanını doğru şekilde anlamak ve gerekçesini bilmek önemlidir. — "Bir şey için neden belirli bir alt temsilciye ihtiyacınız olduğunu biliyor musunuz?" sorusunu yanıtlayın.

İkinci, yanıtların her birini yönlendirmek ve anlamlandırmak için bunları bir kök temsilciyle bir araya getirme.

Üçüncü olarak, bu dokümanda bulabileceğiniz birden fazla müşteri temsilcisi yönlendirme türü vardır. Hangisinin uygulamanızın akışına uygun olduğundan emin olun. Ayrıca, çok aracılı sisteminizin akış kontrolü için ihtiyaç duyduğunuz çeşitli bağlamlar ve durumlar da vardır.

Ne oluşturacaksınız?

AlloyDB ve ADK için MCP Aracı Kutusu'nu kullanarak mutfak yenileme işlemlerini yürütecek çok aracılı bir sistem oluşturalım.

  1. Yenileme Teklifi Temsilcisi
  2. İzinler ve Uygunluk Kontrolü Temsilcisi
  3. Sipariş Durumu Kontrolü (Veritabanları için MCP Araç Kutusu'nu kullanan araç)

Mutfak yenileme teklifi belgesini oluşturmak için yenileme teklifi temsilcisi.

İzinler ve uygunluk temsilcisi, izinler ve uygunlukla ilgili görevleri yerine getirmek için.

AlloyDB'de oluşturduğumuz sipariş yönetimi veritabanında çalışarak malzemelerin sipariş durumunu kontrol etmek için Sipariş Durumu Kontrol Ajansı. Ancak bu veritabanı bölümünde, siparişler için durum alma mantığını uygulamak üzere AlloyDB için MCP Aracı Kutusu'nu kullanacağız.

2. MCP

MCP, Anthropic tarafından geliştirilen ve yapay zeka temsilcilerinin harici araçlar, hizmetler ve verilerle tutarlı bir şekilde bağlantı kurmasını sağlayan açık bir standart olan Model Context Protocol'ün kısaltmasıdır. Temel olarak yapay zeka uygulamaları için ortak bir standart işlevi görür ve bu uygulamaların farklı veri kaynakları ve araçlarla sorunsuz şekilde etkileşim kurmasına olanak tanır.

  1. Yapay zeka uygulamalarının (ana makineler) MCP sunucularıyla iletişim kuran MCP istemcisini çalıştırdığı bir istemci-sunucu modeli kullanır.
  2. Bir yapay zeka aracısının belirli bir araca veya verilere erişmesi gerektiğinde, MCP istemciye yapılandırılmış bir istek gönderir. Bu istek, uygun MCP sunucusuna yönlendirilir.
  3. Yapay zeka modellerinin her entegrasyon için özel kod gerektirmeden harici verilere ve araçlara erişmesine olanak tanır.
  4. Büyük dil modelleri (LLM'ler) üzerine temsilci ve karmaşık iş akışları oluşturma sürecini basitleştirir.

Veritabanları için MCP Araç Seti

Google'ın Veritabanları için MCP Araç Kutusu, veritabanları için açık kaynak bir MCP sunucusudur. Kurumsal düzeyde ve üretim kalitesinde tasarlanmıştır. Bağlantı havuzu oluşturma, kimlik doğrulama ve daha birçok karmaşıklığı ele alarak araçları daha kolay, daha hızlı ve daha güvenli bir şekilde geliştirmenize olanak tanır.

Temsilcilerinizin veritabanınızdaki verilere erişmesine izin verin. Nasıl mı?

Basitleştirilmiş geliştirme: Araçları 10 satırdan kısa bir kodla aracınıza entegre edin, araçları birden fazla aracı veya çerçeve arasında yeniden kullanın ve araçların yeni sürümlerini daha kolay dağıtın.

Daha iyi performans: Bağlantı havuzu, kimlik doğrulama ve daha fazlası gibi en iyi uygulamalar.

Gelişmiş güvenlik: Verilerinize daha güvenli erişim için entegre kimlik doğrulama

Uçtan uca gözlemlenebilirlik: OpenTelemetry için yerleşik destek içeren hazır metrik ve izleme.

Bunun MCP'den önce gerçekleştiğini belirtmek isteriz.

Veritabanları için MCP Araç Kutusu, aracı uygulamanızın orkestrasyon çerçevesi ile veritabanınız arasında yer alır ve araçları değiştirmek, dağıtmak veya çağırmak için kullanılan bir kontrol düzlemi sağlar. Araçları depolamak ve güncellemek için merkezi bir konum sunarak araçlarınızın yönetimini basitleştirir. Böylece, araçları temsilciler ve uygulamalar arasında paylaşabilir ve uygulamanızı yeniden dağıtmadan bu araçları güncelleyebilirsiniz.

9a9018b8596bd34e.png

Bu aracıları, gereksinime göre düzenleyen bir kök aracımız olacaktır.

Şartlar

  • Chrome veya Firefox gibi bir tarayıcı
  • Faturalandırma özelliği etkinleştirilmiş bir Google Cloud projesi.

3. Başlamadan önce

Proje oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Projede faturalandırmanın etkin olup olmadığını nasıl kontrol edeceğinizi öğrenin .

Ayrıca, bu makaleyi okuyor ve Google Cloud'a başlamanıza ve ADK'yı kullanmanıza yardımcı olacak krediler almak istiyorsanız kredileri kullanmak için bu bağlantıyı kullanın. Buradaki talimatları uygulayarak kodu kullanabilirsiniz. Bu bağlantının, yalnızca Mayıs ayının sonuna kadar kullanılabileceğini lütfen unutmayın.

  1. Bu bağlantıyı tıklayarak Cloud Shell'i etkinleştirin. Cloud Shell'de ilgili düğmeyi tıklayarak Cloud Shell Terminal (bulut komutlarını çalıştırmak için) ve Düzenleyici (proje oluşturmak için) arasında geçiş yapabilirsiniz.
  2. Cloud Shell'e bağlandıktan sonra aşağıdaki komutu kullanarak kimliğinizin doğrulanıp doğrulanmadığını ve projenin proje kimliğinize ayarlanıp ayarlanmadığını kontrol edebilirsiniz:
gcloud auth list
  1. gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın.
gcloud config list project
  1. Projeniz ayarlanmadıysa ayarlamak için aşağıdaki komutu kullanın:
gcloud config set project <YOUR_PROJECT_ID>
  1. Aşağıdaki komutları çalıştırarak aşağıdaki API'leri etkinleştirin:
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com \alloydb.googleapis.com
  1. Python 3.9 veya sonraki bir sürümün yüklü olduğundan emin olun.
  2. gcloud komutları ve kullanımı için belgelere bakın.

4. ADK kurulumu

  1. Sanal Ortam Oluşturma ve Etkinleştirme (Önerilir)

Cloud Shell Terminal'inizden sanal ortam oluşturun:

python -m venv .venv

Sanal ortamı etkinleştirin:

source .venv/bin/activate
  1. ADK'yı yükleme
pip install google-adk

5. Proje Yapısı

  1. Kök ve proje klasörleri oluşturmak için Cloud Shell Terminal'de aşağıdaki komutları tek tek çalıştırın:
mkdir agentic-apps
cd agentic
-apps
mkdir renovation
-agent
  1. Cloud Shell düzenleyicisine gidin ve aşağıdaki dosyaları (başlangıçta boş) oluşturarak aşağıdaki proje yapısını oluşturun:
renovation-agent/
        __init__
.py
        agent
.py
       
.env

6. Kaynak Kod

  1. init.py dosyasına gidin ve aşağıdaki içerikle güncelleyin:
from . import agent
  1. agent.py dosyasına gidin ve dosyayı aşağıdaki yoldaki içerikle güncelleyin:
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py

agent.py dosyasında gerekli bağımlılıkları içe aktarır, yapılandırma parametrelerini .env dosyasından alır ve bu uygulamada oluşturmayı planladığımız 3 alt aracıyı koordine eden root_agent'ı tanımlarız. Bu alt aracıların temel ve destekleyici işlevlerine yardımcı olan çeşitli araçlar vardır.

  1. Cloud Storage paketinizin bulunduğundan emin olun

Bu, temsilcinin oluşturduğu teklif belgesini depolamak içindir. Vertex AI ile oluşturulan çok temsilcili sistemin erişebilmesi için bu kaynağı oluşturun ve erişim izni verin. Bunu şu şekilde yapabilirsiniz:

https://cloud.google.com/storage/docs/creating-buckets#console
  1. Paketinizi "next-demo-store" veya adlandırmanıza izin verilen herhangi bir adla adlandırın. .env dosyasında (ENV Değişkenleri Kurulumu adımında) STORAGE_BUCKET değerini güncellemeniz gerektiğinden bunu not edin.
  2. us-central1 bölgesinde oluşturun
  3. Pakete erişimi ayarlamak için Cloud Storage Console'a ve Storage paketinize gidin (bizim durumumuzda paket adı "next-demo-storage"dır: https://console.cloud.google.com/storage/browser/next-demo-storage).

İzinler -> Ana Hesapları Görüntüle -> Erişim İzni Ver'e gidin. Yetkililer olarak "allUsers", Rol olarak da "Storage Object User"ı seçin.

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.

7. Veritabanı Kurulumu

ordering_agent tarafından kullanılan "check_status" adlı araçlardan birinde, siparişlerin durumunu almak için AlloyDB siparişler veritabanına erişiriz. Bu bölümde, AlloyDB veritabanı kümesini ve örneğini oluşturacağız.

Küme ve örnek oluşturma

  1. Cloud Console'da AlloyDB sayfasına gidin. Cloud Console'daki çoğu sayfayı bulmanın kolay bir yolu, konsolun arama çubuğunu kullanarak arama yapmaktır.
  2. Bu sayfada KÜME OLUŞTUR'u seçin:

f76ff480c8c889aa.png

  1. Aşağıdakine benzer bir ekran görürsünüz. Aşağıdaki değerlerle bir küme ve örnek oluşturun (Repo'dan uygulama kodunu klonluyorsanız değerlerin eşleştiğinden emin olun):
  • küme kimliği: "vector-cluster"
  • password: "alloydb"
  • PostgreSQL 16 ile uyumlu / en son sürüm önerilir
  • Bölge: "us-central1"
  • : "default"

538dba58908162fb.png

  1. Varsayılan ağı seçtiğinizde aşağıdaki gibi bir ekran görürsünüz.

BAĞLANTI KUR'u seçin.
7939bbb6802a91bf.png

  1. Buradan "Otomatik olarak atanmış bir IP aralığı kullan"ı seçip Devam'ı tıklayın. Bilgileri inceledikten sonra BAĞLANTI OLUŞTUR'u seçin. 768ff5210e79676f.png

6. ÖNEMLİ NOT: Örnek kimliğini (küme / örnek yapılandırması sırasında bulabilirsiniz) şununla değiştirdiğinizden emin olun:

vector-instance. Değiştiremiyorsanız sonraki tüm referanslarda örnek kimliğinizi kullanmayı unutmayın.

  1. Toolbox'u kurmaya hazırlanırken yeni aracın veritabanına erişebilmesi için AlloyDB örneğimizde herkese açık IP bağlantısını etkinleştirelim.
  2. Herkese açık IP bağlantısı bölümüne gidin, Herkese açık IP'yi etkinleştir onay kutusunu işaretleyin ve Cloud Shell makinenizin IP adresini girin.
  3. Cloud Shell makinenizin IP adresini almak için Cloud Shell Terminal'e gidip ifconfig yazın. Sonuçta eth0 inet adresini belirleyin ve son 2 basamağı "/16" maske boyutuyla 0,0 ile değiştirin. Örneğin, XX'lerin sayı olduğu "XX.XX.0.0/16" şeklinde görünür.
  4. Bu IP'yi, örnek düzenleme sayfasının Yetkili harici ağlar "Ağlar" metin kutusuna yapıştırın.

e4d1045e1255e40f.png

  1. Ağınız oluşturulduktan sonra kümenizi oluşturmaya devam edebilirsiniz. Kümenin ayarlanmasını tamamlamak için KÜME OLUŞTUR'u tıklayın. Aşağıda gösterildiği gibi:

e06623e55195e16e.png

Küme oluşturma işleminin yaklaşık 10 dakika süreceğini unutmayın. İşlem başarıyla tamamlandığında, yeni oluşturduğunuz kümenize genel bakış sunan bir ekran görürsünüz.

Veri kullanımı

Şimdi, mağazayla ilgili verileri içeren bir tablo ekleme zamanı. AlloyDB'ye gidin, birincil kümeyi ve ardından AlloyDB Studio'yu seçin:

847e35f1bf8a8bd8.png

Örneğinizin oluşturulmasının tamamlanmasını beklemeniz gerekebilir. Bu işlem tamamlandıktan sonra, kümeyi oluştururken oluşturduğunuz kimlik bilgilerini kullanarak AlloyDB'de oturum açın. PostgreSQL'de kimlik doğrulama için aşağıdaki verileri kullanın:

  • Kullanıcı adı : "postgres"
  • Veritabanı : "postgres"
  • Şifre : "alloydb"

AlloyDB Studio'da kimlik doğrulamayı başarıyla tamamladıktan sonra Düzenleyici'ye SQL komutları girilir. Son pencerenin sağındaki artı işaretini kullanarak birden fazla Düzenleyici penceresi ekleyebilirsiniz.

91a86d9469d499c4.png

Gerektiği gibi Çalıştır, Biçimlendir ve Temizle seçeneklerini kullanarak AlloyDB komutlarını düzenleyici pencerelerine girersiniz.

Tablo oluşturma

AlloyDB Studio'da aşağıdaki DDL ifadesini kullanarak tablo oluşturabilirsiniz:

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

Kayıt ekleme

Yukarıda belirtilen database_script.sql komut dosyasından insert sorgu ifadesini düzenleyiciye kopyalayın.

Çalıştır'ı tıklayın.

Veri kümesi hazır olduğuna göre, AlloyDB'deki tüm Sipariş Veritabanı etkileşimlerimiz için kontrol düzlemi görevi görecek veritabanları için MCP Aracı Kutusu'nu ayarlayalım.

8. Veritabanı Kurulumu için MCP Toolbox

Araç Kutusu, uygulamanızın orkestrasyon çerçevesi ile veritabanınız arasında yer alır ve araçları değiştirmek, dağıtmak veya çağırmak için kullanılan bir kontrol düzlemi sağlar. Araçları depolamak ve güncellemek için merkezi bir konum sunarak araçlarınızın yönetimini basitleştirir. Böylece, araçları temsilciler ve uygulamalar arasında paylaşabilir ve uygulamanızı yeniden dağıtmadan bu araçları güncelleyebilirsiniz.

Veritabanları için MCP Toolbox'un desteklediği veritabanlarından birinin AlloyDB olduğunu görebilirsiniz. Önceki bölümde temel hazırlığı yaptığımız için Toolbox'u ayarlamaya başlayalım.

  1. Cloud Shell terminalinize gidin ve projenizin seçildiğinden ve terminal isteminde gösterildiğinden emin olun. Proje dizininize gitmek için Cloud Shell terminalinizde aşağıdaki komutu çalıştırın:
cd adk-renovation-agent
  1. Araç kutusunu yeni klasörünüze indirip yüklemek için aşağıdaki komutu çalıştırın:
# see releases page for other versions
export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. Cloud Shell Düzenleyici'ye (kod düzenleme modu için) gidin ve projenin kök klasörüne "tools.yaml" adlı bir dosya ekleyin.
sources:
    alloydb-orders:
        kind: "alloydb-postgres"
        project: "<<YOUR_PROJECT_ID>>"
        region: "us-central1"
        cluster: "<<YOUR_ALLOYDB_CLUSTER>>"
        instance: "<<YOUR_ALLOYDB_INSTANCE>>"
        database: "<<YOUR_ALLOYDB_DATABASE>>"
        user: "<<YOUR_ALLOYDB_USER>>"
        password: "<<YOUR_ALLOYDB_PASSWORD>>"

tools:
  get-order-data:
    kind: postgres-sql
    source: alloydb-orders
    description: Get the status of an order based on the material description.
    parameters:
      - name: description
        type: string
        description: A description of the material to search for its order status.
    statement: |
      select order_status from material_order_status where lower(material_name) like lower($1)
      LIMIT 1;

Sorgu bölümünde (yukarıdaki "statement" parametresine bakın), materyal adı kullanıcının arama metniyle eşleştiğinde yalnızca order_status alanının değerini alırız.

tools.yaml dosyasını anlayalım

Kaynaklar, bir aracın etkileşime geçebileceği farklı veri kaynaklarınızı temsil eder. Kaynak, bir aracın etkileşim kurabileceği bir veri kaynağını temsil eder. Kaynakları, tools.yaml dosyanızın sources bölümünde bir harita olarak tanımlayabilirsiniz. Genellikle bir kaynak yapılandırması, veritabanına bağlanmak ve veritabanı ile etkileşimde bulunmak için gereken tüm bilgileri içerir.

Araçlar, bir aracının yapabileceği işlemleri (ör. bir kaynağa okuma ve yazma) tanımlar. Araçlar, temsilcinizin yapabileceği bir işlemi (ör. SQL ifadesi çalıştırma) temsil eder. tools.yaml dosyanızın tools bölümünde Araçlar'ı bir harita olarak tanımlayabilirsiniz. Genellikle bir aracın işlem yapması için bir kaynak gerekir.

tools.yaml dosyanızı yapılandırma hakkında daha fazla bilgi için bu dokümanlara bakın.

Veritabanı Sunucusu için MCP Araç Kutusu'nu çalıştıralım

Sunucuyu başlatmak için mcp-toolbox klasöründen aşağıdaki komutu çalıştırın:

./toolbox --tools-file "tools.yaml"

Artık sunucuya bulutta web önizleme modunda bakarsanız Toolbox sunucusunun, get-order-data adlı yeni aracınızla çalışır durumda olduğunu görebilirsiniz.

MCP Toolbox sunucusu varsayılan olarak 5000 numaralı bağlantı noktasında çalışır. Bunu test etmek için Cloud Shell'i kullanalım.

Cloud Shell'de aşağıdaki gibi Web Önizlemesi'ni tıklayın:

f990712162e8e924.png

Bağlantı noktasını değiştir'i tıklayın ve bağlantı noktasını aşağıda gösterildiği gibi 5000 olarak ayarlayın. Ardından Değiştir ve Önizle'yi tıklayın.

d1b9de0c46ecef8a.png

Bu işlem sonucunda şu çıkışı alırsınız:

2fdcdac326034d41.png

Veritabanları için MCP Aracı Kiti'nde, araçları doğrulamanız ve test etmeniz için bir Python SDK'sı açıklanmaktadır. Bu dokümana buradan ulaşabilirsiniz. Bu bölümü atlayıp doğrudan bu araçları kullanacak olan sonraki bölümdeki Temsilci Geliştirme Kiti'ne (ADK) geçeceğiz.

Araç Kitimizi Cloud Run'a dağıtalım

Öncelikle MCP Toolbox sunucusuyla başlayıp bunu Cloud Run'da barındırabiliriz. Bu sayede, diğer uygulamalarla ve/veya Agent uygulamalarıyla entegre edebileceğimiz herkese açık bir uç nokta elde ederiz. Bu uygulamayı Cloud Run'da barındırmayla ilgili talimatlar burada verilmiştir. Şimdi önemli adımları inceleyeceğiz.

  1. Yeni bir Cloud Shell Terminal'i başlatın veya mevcut bir Cloud Shell Terminal'i kullanın. Araç kutusu ikili dosyası ve tools.yaml dosyasının bulunduğu proje klasörüne gidin (bu örnekte adk-renovation-agent).
  2. PROJECT_ID değişkenini Google Cloud proje kimliğinizi işaret edecek şekilde ayarlayın.
export PROJECT_ID="<<YOUR_GOOGLE_CLOUD_PROJECT_ID>>"
  1. Bu Google Cloud hizmetlerini etkinleştirme
gcloud services enable run.googleapis.com \
                       cloudbuild.googleapis.com \
                       artifactregistry.googleapis.com \
                       iam.googleapis.com \
                       secretmanager.googleapis.com
  1. Google Cloud Run'a dağıtacağımız Toolbox hizmetinin kimliği olarak kullanılacak ayrı bir hizmet hesabı oluşturalım.
gcloud iam service-accounts create toolbox-identity
  1. Ayrıca bu hizmet hesabının doğru rollere (ör.Secret Manager'a erişme ve AlloyDB ile iletişim kurma) sahip olduğundan emin oluruz.
gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/secretmanager.secretAccessor

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/alloydb.client

gcloud projects add-iam-policy-binding $PROJECT_ID \
   --member serviceAccount:toolbox-identity@$PROJECT_ID.iam.gserviceaccount.com \
   --role roles/serviceusage.serviceUsageConsumer
  1. tools.yaml dosyasını gizli olarak yükleriz:
gcloud secrets create tools --data-file=tools.yaml

Gizli anahtarınız varsa ve gizli anahtar sürümünü güncellemek istiyorsanız aşağıdakileri yapın:

gcloud secrets versions add tools --data-file=tools.yaml

Cloud Run için kullanmak istediğiniz container görüntüsüne bir ortam değişkeni ayarlayın:

export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:latest
  1. Cloud Run'a yönelik tanıdık dağıtım komutunun son adımı:
gcloud run deploy toolbox \
--image $IMAGE \
--service-account toolbox-identity \
--region us-central1 \
--set-secrets "/app/tools.yaml=tools:latest" \
--args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080" \
--allow-unauthenticated

Bu işlem, yapılandırılmış tools.yaml dosyamızla birlikte Toolbox sunucusunu Cloud Run'a dağıtma işlemini başlatır. Dağıtım başarılı olduğunda aşağıdakine benzer bir mesaj görürsünüz:

Deploying container to Cloud Run service [toolbox] in project [YOUR_PROJECT_ID] region [us-central1]
OK Deploying new service... Done.                                                                                                                                                                                    
  OK Creating Revision...                                                                                                                                                                                            
  OK Routing traffic...                                                                                                                                                                                              
  OK Setting IAM Policy...                                                                                                                                                                                            
Done.                                                                                                                                                                                                                
Service [toolbox] revision [toolbox-00001-zsk] has been deployed and is serving 100 percent of traffic.
Service URL: https://toolbox-<SOME_ID>.us-central1.run.app

Yeni dağıtılan aracınızı temsilci uygulamanızda kullanmaya hazırsınız.

Araç Kutusu Aracı'nı temsilcimize bağlayalım.

Çok aracılı sistemimizin kaynağını zaten oluşturduk. Bu listeyi, Cloud Run'da yeni kullanıma sunduğumuz Veritabanları için yeni bir MCP Aracı Kutusu aracını içerecek şekilde güncelleyelim.

  1. requirements.txt dosyanızı, depodaki kaynakla değiştirin:

Veritabanları için MCP Toolbox bağımlılığını requirements.txt dosyasına ekliyoruz

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/requirements.txt

  1. agent.py dosyanızı, depodaki kodla değiştirin:

Sipariş edilen belirli bir malzemenin sipariş verilerini almak için araç kutusu uç noktasını çağıran aracı ekliyoruz.

https://github.com/AbiramiSukumaran/renovation-agent-adk-mcp-toolbox/blob/main/agent.py

9. Model Kurulumu

Temsilcinizi kullanıcı isteklerini anlama ve yanıt oluşturma özelliği, büyük dil modeli (LLM) tarafından desteklenir. Temsilcinizi bu harici LLM hizmetine güvenli çağrılar yapması gerekir. Bu işlem için kimlik doğrulama kimlik bilgileri gerekir. Geçerli kimlik doğrulaması olmadan LLM hizmeti aracının isteklerini reddeder ve aracı çalışamaz.

  1. Google AI Studio'dan API anahtarı alın.
  2. .env dosyasını ayarladığınız sonraki adımda <<your API KEY>> değerini gerçek API KEY değerinizle değiştirin.

10. ENV Değişkenleri Kurulumu

  1. Şablon .env dosyasında parametre değerlerini ayarlayın. Benim durumumda .env dosyası şu değişkenleri içeriyor:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>

Yer tutucuları kendi değerlerinizle değiştirin.

11. Temsilcinizi çalıştırma

  1. Terminali kullanarak temsilci projenizin üst dizinine gidin:
cd renovation-agent
  1. Bağımlılıkları yükleyin:
pip install -r requirements.txt
  1. Aracıyı çalıştırmak için Cloud Shell terminalinizde aşağıdaki komutu çalıştırabilirsiniz:
adk run .
  1. ADK tarafından sağlanan bir web kullanıcı arayüzünde çalıştırmak için aşağıdakileri çalıştırabilirsiniz:
adk web
  1. Şu istemleri kullanarak test yapın:
user>> 

Hello. Check order status for Cement Bags.

13. Temizleme

Bu yayında kullanılan kaynaklar için Google Cloud hesabınızın ücretlendirilmesini istemiyorsanız şu adımları uygulayın:

  1. Google Cloud Console'da Kaynakları yönetin sayfasına gidin.
  2. Proje listesinde, silmek istediğiniz projeyi seçin ve ardından Sil'i tıklayın.
  3. İletişim kutusuna proje kimliğini yazın ve projeyi silmek için Kapat'ı tıklayın.

14. Tebrikler

Tebrikler! Veritabanları için ADK ve MCP Aracı Kutusu'nu kullanarak çok aracılı bir uygulama oluşturdunuz. Daha fazla bilgi için Agent Development Kit ve Veritabanları için MCP Aracı Kutusu ürün dokümanlarına bakın.