Google ADK Eğitimi: Bir MCP Sunucusu Lojistik Aracısı Oluşturma
Google ADK ve MCP sunucularını kullanarak akıllı bir lojistik aracısı oluşturmayı öğrenin. Özel API kodu yazmadan iş akışlarını otomatikleştirmek için BigQuery ve Google Maps’i bağlayın.
Bugün gelişmiş yapay zeka ajanları inşa etmenin en büyük engeli model değil, entegrasyondur. Bir ajanın on farklı kurumsal araca erişmesini istiyorsanız, genellikle on farklı API sarmalayıcısı yazmanız gerekir. Deneyimlerime göre bu, sarmalayıcı yorgunluğuna ve devasa bir bakım yüküne yol açıyor. Her API değiştiğinde ajanınız bozuluyor.
Çözüm, Google Agent Development Kit (ADK) ile Model Context Protocol (MCP) arasındaki iş birliğinde yatıyor. Yapay zekayı bir çalışan olarak düşünürsek, ADK "beyin"dir (mantığı ve hafızayı orkestre eder), MCP ise "elleri" temsil eder (herhangi bir aracı alıp kullanmanın standartlaştırılmış yolu).
Bu eğitimde, ADK kullanarak gerçek bir lojistik kurtarma ajanı oluşturacağız. Ajan şunları yapacak:
BigQuery’de yüksek öncelikli gecikmiş siparişleri sorgulamak.
Google Maps MCP sunucusunu kullanarak depodan müşteriye gerçek sürüş mesafesini hesaplamak.
Uzun mesafeli gönderiler için hava taşımacılığına yükseltme gibi bir kurtarma eylemi önermek.
Tüm bunlar, tek bir satır özel API kodu yazmadan gerçekleşir. Ajan araçları otomatik olarak keşfeder ve kullanır.
Google Cloud’a yeni misiniz? Faturalandırma, projeler ve temel hizmetleri kapsamak için ücretsiz Introduction to GCP kursuyla başlamanızı öneririm.
Google ADK Nedir?
Google Agent Development Kit (ADK), Google’ın yapay zeka ajanları oluşturmak, test etmek ve dağıtmak için sunduğu açık kaynaklı, kod odaklı bir çerçevedir. LangChain gibi çerçeveler zincirlere odaklanırken, ADK icra için tasarlanmıştır. Ajanların nasıl düşündüğüne, araç setlerini nasıl kullandığına ve üretim ortamlarında nasıl çalıştığına dair standart bir yapı sunar.
İşte temel kavramlar:
Ajanlar: Modeli (ör. Gemini 2.0 Flash) ve belirli talimat setiyle tanımlanan çekirdek varlık.
Araç setleri: Yetenekler koleksiyonu. Araçları elle tanımlamak yerine ADK’yi bir MCP sunucusuna yönlendiriyoruz ve o araçları otomatik olarak "öğreniyor".
Çalıştırıcılar (Runners): Konuşma durumunu ve yinelemeli "düşünce-eylem-gözlem" döngüsünü yöneten yürütme motoru.
Bu kod odaklı yaklaşımı kullanmak, sürüm kontrolü, test ve CI/CD’yi tıpkı normal yazılımda yaptığımız gibi kullanmamıza olanak tanır. Ayrıca derin Google entegrasyonu sunar; yani, yönetilen MCP sunucuları BigQuery veya Maps için neredeyse hiç dağıtım gerektirmez.
“Büyük üç” bulut sağlayıcısını ve hizmetlerini karşılaştırmak için AWS vs. Azure vs. Google Cloud rehberimize mutlaka göz atın.
Google ADK Entegrasyon Mimarisi ve Mantık Akışı
Lojistik kurtarma ajanımız bir iş problemini çözmek için net bir akıl yürütme yolunu izler. Akışı anlamak, daha sonra istem talimatlarını yazmaya başladığınızda yardımcı olur.
Akıl yürütme döngüsü şu adımları izler:
Ajan, status='Delayed' ve priority='High' olan satırları bulmak için BigQuery MCP’yi çağırır.
Dönen her sipariş için ajan, depo ve müşteri adreslerini çıkarır.
Ajan, sürüş mesafesini hesaplamak için her sipariş için Google Maps MCP’yi çağırır.
Ajan iş mantığını uygular (ör. 500 mil üzeri mesafe hava taşımacılığı demektir) ve önerilerin bulunduğu bir markdown tablosu sunar.
MCP Sunucularını Kurma
Kodlamaya başlamadan önce, temel bulut altyapısını hazırlamamız ve MCP sunucularını hazır hale getirmemiz gerekir. Deneyimlerime göre bu aşamada IAM izinlerini doğru ayarlamak en önemli kısımdır.
Adım 1: Google Cloud CLI’yı başlatma
Önce Google Cloud CLI’yı kurduğunuzdan emin olun. Başlamak için, terminalinizi açın ve yerel ortamınızı Google hesabınıza bağlamak üzere aşağıdaki komutu çalıştırın:
Bunu çalıştırdığınızda, otomatik olarak bir tarayıcı penceresi açılır. Google hesabınızla oturum açmanız istenir. Oturum açtıktan sonra, CLI’ın kaynaklarınızı yönetmesine izin vermek için Allow’a tıklayın.
Terminale geri döndüğünüzde, komut istemi sizden varsayılan bir proje seçmenizi isteyecektir. Halihazırda oluşturduysanız projenin kimliğini seçin ya da terminalde yeni bir proje oluşturun.
Adım 2: Faturalandırmayı ayarlama
API hizmetlerini kullanmak için faturalandırmayı ayarlamanız gerekir. Bununla birlikte Google Cloud, Compute, GKE ve Maps gibi hizmetleri denemeniz için 90 gün boyunca 300 $ ücretsiz kredi verir ve bu ücretsiz krediler bu eğitimdeki örnek için fazlasıyla yeterlidir. Yalnızca kullandıkça ödeyi veya ön ödemeyi açarsanız ücretlendirilirsiniz. Faturalandırmayı ayarlamak için:
Şimdi, Yönetilen MCP Uç Noktalarını etkinleştirmeliyiz. Bunları, normal API’lerin üzerine oturan çevirmen arayüzleri olarak düşünmenin faydalı olduğunu gördüm.
Önce, proje kimliğinizi ve hesap e-postanızı ortam değişkenlerine kaydedelim. Bu, sonraki her komut için bunları elle yazmamızı önler:
Bu değişkenler ayarlandıktan sonra, belirli projeniz için beta MCP özelliklerini açmak üzere aşağıdaki komutları çalıştırın. Bu komutlar, ajanın çağırması için uzak MCP uç noktalarını hazırlaması için Google’a talimat verir:
MCP, "çift katmanlı" bir güvenlik modeli kullanır. MCP sunucusuyla konuşmak için izin gerekir ve gerçek verilere (ör. bir tablodaki satırlar) erişmek için ayrı bir izin gerekir. Bunu gcloud CLI veya Google Cloud Console arayüzünü kullanarak yapabilirsiniz.
IAM Seçenek A: gcloud CLI kullanma
Hesabınıza MCP kullanma ve BigQuery ile etkileşim kurma izni vermek için şu üç komutu çalıştırın:
# MCP Çevirmen ile konuşma izni
gcloud projects add-iam-policy-binding $PROJECT_ID --member="user:$USER_EMAIL" --role="roles/mcp.toolUser"
# BigQuery işlerini çalıştırma ve verileri görüntüleme izinleri
gcloud projects add-iam-policy-binding $PROJECT_ID --member="user:$USER_EMAIL" --role="roles/bigquery.jobUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="user:$USER_EMAIL" --role="roles/bigquery.dataViewer"Altyapı:
IAM Seçenek B: Google Cloud Console’u (UI) kullanma
Görsel bir arayüzü tercih ediyorsanız, tarayıcıda şu adımları izleyebilirsiniz:
Google Cloud Console’unuzda IAM & Admin sayfasına gidin.
Listede e-posta adresinizi bulun ve Üyeyi Düzenle (kalem) simgesine tıklayın.
Başka Bir Rol Ekle’ye tıklayın ve MCP Tool Userı arayın.
Aynı işlemi BigQuery Data Viewer ve BigQuery Job Userı eklemek için tekrarlayın.
Kaydet’e tıklayın.
Bir Maps API anahtarı oluşturun
Son olarak, bir Maps API anahtarı oluşturun. Oturum açma bilgilerinizi kullanan BigQuery’den farklı olarak Maps MCP sunucusu, faturalandırma ve kota takibi için bu anahtarı kullanır:
Bu, tarayıcınızda bir web arayüzü başlatacaktır (genellikle http://localhost:3000). Aşağıdaki kurulum listesindeki belirli seçimleri, Google’ın sunucularının yerel bir taklidini değil Uzaktan Yönetilen sürümünü test ettiğimizden emin olmak için yaptım:
Taşıma türü: Streamable HTTP. Bunu seçiyoruz çünkü Google’ın yönetilen bulut sunucuları için kullandığı üretim standart protokoldür.
URL: https://mapstools.googleapis.com/mcp girin. Bu, Google’ın Maps MCP’sine doğrudan giriş kapısıdır.
Bağlantı Türü: Proxy aracılığıyla. Bu kritik bir seçimdir. "Proxy" seçilerek, inspector yerel gcloud oturum açmanızı kullanarak tüm karmaşık güvenlik el sıkışmalarını otomatik olarak halleder.
Özel Üstbilgiler: X-Goog-Api-Key ekleyin ve 3. Adımda aldığınız anahtarı yapıştırın.
Connect’e tıklayın.
Bağlandı durumunu şimdi yeşil olarak görmelisiniz. Sunucunun sunduğu tüm yeteneklerin bir listesini görmek için List Tools düğmesine tıklayın. Listede compute_routes görürseniz, altyapınız mükemmel şekilde yapılandırılmış demektir.
Ajanlarınız için BigQuery, Maps ve diğer Google hizmetlerinin nasıl kullanılacağına daha derinlemesine bir bakış için Google MCP Sunucuları üzerine bu eğitimi mutlaka inceleyin.
Google ADK ile Bir MCP Sunucusu Ajanı Oluşturma
Altyapı hazır olduğuna göre, şimdi yerel geliştirme ortamımıza geçebiliriz. Proje dosyalarımızı düzenleyerek başlayacağız.
Adım 1: Proje yapısını ve bağımlılıkları ayarlama
Başlamak için projeniz için bir klasör oluşturun ve bir sanal ortam ayarlayın.
mkdir my-agents
cd my-agents
python -m venv .venv
source .venv/bin/activateAltyapı:
Yukarıdaki son komut macOS veya Linux kullanıcıları içindir; Windows kullanıyorsanız bunun yerine .venv\Scripts\activate kullanın.
Sonraki adımda, google-adk paketini destekleyici kitaplıklarıyla birlikte kurabilirsiniz.
Yapmanız gereken bir şey daha var: kök klasörünüzde, önceki adımda oluşturduğunuz PROJECT_ID ve MAPS_API_KEY’i saklamak için bir .env dosyası oluşturun.
Adım 2: MCP araç setlerini yapılandırma
tools.py adlı bir betikte, "veri almak" için kod yazmıyoruz. Bunun yerine, veri almayı bilen bir sunucuya bağlanmak için kod yazıyoruz.
Araçları mantıktan ayırmanın projeyi hata ayıklamayı çok daha kolay hale getirdiğini gördüm. Uzak Google Cloud uç noktalarıyla konuştuğumuz için kimlik doğrulama üstbilgilerini yönetmek üzere StreamableHTTPConnectionParams kullanıyoruz.
import os
import google.auth
import google.auth.transport.requests
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams
# --- BigQuery Toolset ---defget_bigquery_mcp_toolset():
credentials, project_id = google.auth.default(
scopes=["https://www.googleapis.com/auth/bigquery"])
credentials.refresh(google.auth.transport.requests.Request())return MCPToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://bigquery.googleapis.com/mcp",
headers={"Authorization":f"Bearer {credentials.token}",# 'x-goog-user-project' is vital for BigQuery billing"x-goog-user-project": project_id,"Content-Type":"application/json"}))# --- Maps Toolset ---defget_maps_mcp_toolset():
maps_api_key = os.getenv('MAPS_API_KEY')return MCPToolset(
connection_params=StreamableHTTPConnectionParams(
url="https://mapstools.googleapis.com/mcp",
headers={"X-Goog-Api-Key": maps_api_key,"Content-Type":"application/json"}))Altyapı:
Adım 3: Ajanın görevini tanımlama
Şimdi "beyni" inşa ediyoruz. Deneyimlerime göre burada Gemini Flash modellerinden birini kullanmak en iyi seçim, çünkü araç çağırmada son derece hızlılar.
Ajanı agent.py dosyasındaki talimatlar aracılığıyla standart bir işletim prosedürü ile donatıyoruz. Ajanın kafasının karışmasını önlemek için nasıl net, dört adımlı bir hattı kullandığımıza dikkat edin.
from.tools import get_maps_mcp_toolset, get_bigquery_mcp_toolset
from google.adk.agents import LlmAgent
# We're giving the agent a very structured 'Instruction' set. # Think of this as the SOP (Standard Operating Procedure) for your agent.
root_agent = LlmAgent(
model='gemini-2.0-flash',
name='logistics_recovery_agent',
instruction="""
You are an expert Retail Operations Recovery Agent.
Your job is to find high-priority problems and solve them using the tools provided.
Step 1: Use 'execute_sql' to find orders where status is 'Delayed' and priority is 'High'.
Step 2: For every result, pull the warehouse and customer addresses.
Step 3: Call the Maps 'compute_routes' tool to find the exact drive distance.
Step 4: Use this logic: If distance > 500 miles, recommend 'Air Shipping'.
Otherwise, recommend 'Regional Express Ground'.
Output the final result as a clean Markdown table.
""",# We simply drop our toolsets here. # ADK handles the complexity of deciding which tool to call when.
tools=[get_maps_mcp_toolset(), get_bigquery_mcp_toolset()])Altyapı:
Adım 4: Ajan döngüsünü çalıştırma
Ajanı çalıştırmak için runner’ı kullanıyoruz. Bu bileşen, ajanın neleri hallettiğini ve sırada ne yapması gerektiğini bilmesi için konuşma durumunu takip eder.
from google.adk.runners import Runner
from google.genai import types
asyncdefmain():# The Runner acts as the host for our agent.
runner = Runner(app_name="logistics_app", agent=root_agent)# Wrap the user input in the standard GenAI Content format
user_input ="Identify high-priority delayed orders and suggest recovery shipping methods."
content = types.Content(role="user", parts=[types.Part(text=user_input)])print("--- Starting Smart Logistics Agent ---")# We use run_async to stream the 'events' (Thoughts and Tool Calls)asyncfor event in runner.run_async(user_id="admin_user", new_message=content):# We only want to print the text part of the response to the consoleifhasattr(event,'content')and event.content.parts:print(event.content.parts[0].text)Altyapı:
Arka planda neler oluyor?
runner.run_async çağrıldığında, ADK yinelemeli bir döngü başlatır:
ADK eyleme geçer: BigQuery MCP araç setinizden execute_sql aracını çağırır.
Gözlem: Araç, sipariş verilerini döndürür.
Gemini düşünür: "Şimdi bu iki sipariş için mesafelere ihtiyacım var."
ADK eyleme geçer: Maps MCP aracını iki kez çağırır.
Son Yanıt: Gemini tüm verileri görür, sizin "500 mil" mantığınızı uygular ve tabloyu biçimlendirir.
Google ADK Ajanımızı Web Konsolunda Test Etme
Terminal günlükler için harika olsa da ADK, ajanın içsel akıl yürütmesini görselleştiren yerleşik bir web konsolu içerir. Bunun hata ayıklama için en faydalı araç olduğunu gördüm.
Arayüzü adk web komutunu çalıştırarak başlatın. Sunucu başladıktan sonra tarayıcınızı http://127.0.0.1:8000 adresine açın. "Yüksek öncelikli gecikmiş siparişleri belirleyin ve kurtarma gönderim yöntemleri önerin." komutunu gönderebileceğiniz temiz, sohbet benzeri bir arayüz göreceksiniz.
Yürütme izini analiz etme
ADK konsolu, ajanın bulut altyapınızla tam olarak nasıl etkileşime girdiğine dair şeffaf bir "iz" sağlar.
Adım adım inceleyelim:
Arayüz el sıkışmaları: execute_sql ve compute_routes etiketli simgelere dikkat edin. İzde, şimşek simgesi bir araç çağrısını gösterir. Ajan sadece tahmin etmedi; siparişler tablonuzda belirli bir SQL sorgusunu çalıştırmak için BigQuery MCP sunucusuna fiilen ulaştı.
Sıralı mantık: İz, net bir işlem sırası gösterir. İlk olarak BigQuery aracılığıyla verileri çeker (ilk onay işareti). Depo ve müşteri adresleri eline geçince birden fazla compute_routes çağrısı görürsünüz. Ajan, gecikmiş siparişler arasında akıllıca "döngü" yaparak gerçek dünya mesafe verilerini Maps MCP sunucusundan alır.
Nihai sentez: İzin en altında nihai yanıtı görürsünüz.
Verilere bakın:
ORD-101: Mesafe 380 mil.
ORD-103: Mesafe 352 mil.
Ajana şu mantığı verdiğimiz için: "Mesafe > 500 mil ise Air Shipping öner, değilse Regional Express Ground öner"; ajan bu iş kuralını her iki siparişe de doğru şekilde uyguladı ve bunları güzel bir Markdown tablosuna biçimlendirdi.
Sonuç
BigQuery veya Google Maps için tek bir satır özel API kodu yazmadan işlevsel bir Lojistik Ajanı oluşturduk. ADK ve MCP kullanarak modüler, güvenli ve geliştirici odaklı bir mimari kurduk.
Yapay zekanın geleceği sadece konuşan sohbet botları değil, eyleme geçen ajanlardır. Bu araçlarla nihayet o gerçeğe doğru ilerliyoruz.
Bu eğitim, Google ADK ve MCP sunucularıyla denemeleriniz için harika bir başlangıç noktası olabilir:
Veri kaynaklarını değiştirmenin ne kadar kolay olduğunu görmek için BigQuery’i farklı bir veri setiyle (hatta yerel bir SQLite MCP sunucusuyla) değiştirin.
Tak-çalıştır doğasını kanıtlamak için Maps’i başka bir MCP sunucusuyla (ör. küme sağlık kontrolleri için GKE) değiştirin.
İsteminize daha fazla iş mantığı ekleyin (maliyet karşılaştırması, e‑posta taslağı) ve bunu ADK web arayüzünde canlı olarak test edin.
Ajan orkestrasyonu hakkında daha fazla bilgi edinmek istiyorsanız, Associate AI Engineer for Developers kariyer yoluna kaydolmanızı şiddetle tavsiye ederim.
Google ADK MCP Sunucusu SSS
ADK ile LangChain gibi diğer çerçeveler arasındaki temel fark nedir?⌄
LangChain genellikle sıralı zincirler oluşturmaya odaklanırken, Google ADK ajansal yürütme için tasarlanmış kod odaklı bir çerçevedir. MCP aracılığıyla hangi aracın gerektiğine dair akıl yürütmeye odaklanır ve karmaşık akıl yürütme döngülerini orkestre etmek için daha uygundur.
Google ADK’yi MCP sunucularıyla kullanmak için buluta bir şey dağıtmam gerekir mi?⌄
Hayır, bu makaledeki her şey dizüstü bilgisayarınızda yerel olarak çalışır. HTTPS üzerinden doğrudan Google’ın yönetilen uzak MCP sunucularına bağlanırsınız. Bulutta tek gereklilik, GCP projenizde faturalandırmayı ve API’leri/MCP’yi etkinleştirmek ve doğru IAM izinlerine sahip olmaktır. Geliştirme için Cloud Run’a veya Vertex dağıtımına gerek yoktur.
Şu anda beta aşamasında MCP için belirli bir "protokol ücreti" olmasa da, temel Google Cloud maliyetlerinden siz sorumlusunuz. Örneğin, ajanınızın sorguları standart BigQuery analiz ücretlerine ve Google Maps Platformu API kullanım ücretlerine tabidir. Google, yeni kullanıcılar için 300 $ ücretsiz kredi sunar.
Özel veriler için kendi MCP sunucumu oluşturabilir miyim?⌄
Kesinlikle! Google’ın yönetilen sunucuları (BigQuery veya Maps gibi) ihtiyaçlarınızı karşılamıyorsa, Python veya TypeScript ile özel bir MCP sunucusu yazabilirsiniz. Ardından bunu Cloud Run üzerinde barındırabilir ve aynı standartlaştırılmış arayüzü kullanarak ADK ajanınıza bağlayabilirsiniz.
ADK web konsolu üretim kullanıcıları için uygun mu?⌄
ADK web konsolu öncelikle geliştiriciler için hata ayıklama, izleme ve ajan akıl yürütmesini görselleştirme aracıdır. Üretim kullanımı için, ajanınızı Vertex AI Agent Engine’e dağıtmanızı veya ADK arka ucuyla etkileşime giren özel bir ön uç oluşturmanızı öneririm.
İnternette yazıyor ve içerik üretiyorum. Google Workspace için Google Developer Expert, NMIMS Bilgisayar Bilimleri mezunu ve otomasyon ile Üretken Yapay Zekâ alanında tutkulu bir yapıcıyım.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
API'leri ve açık kaynak kütüphanelerini kullanarak yapay zekayı yazılım uygulamalarına nasıl entegre edeceğinizi öğrenin. Yapay Zeka Mühendisi olma yolculuğunuza bugün başlayın!
Bugün gelişmiş yapay zeka ajanları inşa etmenin en büyük engeli model değil, entegrasyondur. Bir ajanın on farklı kurumsal araca erişmesini istiyorsanız, genellikle on farklı API sarmalayıcısı yazmanız gerekir. Deneyimlerime göre bu, sarmalayıcı yorgunluğuna ve devasa bir bakım yüküne yol açıyor. Her API değiştiğinde ajanınız bozuluyor.
Çözüm, Google Agent Development Kit (ADK) ile Model Context Protocol (MCP) arasındaki iş birliğinde yatıyor. Yapay zekayı bir çalışan olarak düşünürsek, ADK "beyin"dir (mantığı ve hafızayı orkestre eder), MCP ise "elleri" temsil eder (herhangi bir aracı alıp kullanmanın standartlaştırılmış yolu).
Bu eğitimde, ADK kullanarak gerçek bir lojistik kurtarma ajanı oluşturacağız. Ajan şunları yapacak:
Tüm bunlar, tek bir satır özel API kodu yazmadan gerçekleşir. Ajan araçları otomatik olarak keşfeder ve kullanır.
Google Cloud’a yeni misiniz? Faturalandırma, projeler ve temel hizmetleri kapsamak için ücretsiz Introduction to GCP kursuyla başlamanızı öneririm.
Google ADK Nedir?
Google Agent Development Kit (ADK), Google’ın yapay zeka ajanları oluşturmak, test etmek ve dağıtmak için sunduğu açık kaynaklı, kod odaklı bir çerçevedir. LangChain gibi çerçeveler zincirlere odaklanırken, ADK icra için tasarlanmıştır. Ajanların nasıl düşündüğüne, araç setlerini nasıl kullandığına ve üretim ortamlarında nasıl çalıştığına dair standart bir yapı sunar.
İşte temel kavramlar:
Bu kod odaklı yaklaşımı kullanmak, sürüm kontrolü, test ve CI/CD’yi tıpkı normal yazılımda yaptığımız gibi kullanmamıza olanak tanır. Ayrıca derin Google entegrasyonu sunar; yani, yönetilen MCP sunucuları BigQuery veya Maps için neredeyse hiç dağıtım gerektirmez.
“Büyük üç” bulut sağlayıcısını ve hizmetlerini karşılaştırmak için AWS vs. Azure vs. Google Cloud rehberimize mutlaka göz atın.
Google ADK Entegrasyon Mimarisi ve Mantık Akışı
Lojistik kurtarma ajanımız bir iş problemini çözmek için net bir akıl yürütme yolunu izler. Akışı anlamak, daha sonra istem talimatlarını yazmaya başladığınızda yardımcı olur.
Akıl yürütme döngüsü şu adımları izler:
Ajan,
status='Delayed'vepriority='High'olan satırları bulmak için BigQuery MCP’yi çağırır.Dönen her sipariş için ajan, depo ve müşteri adreslerini çıkarır.
Ajan, sürüş mesafesini hesaplamak için her sipariş için Google Maps MCP’yi çağırır.
Ajan iş mantığını uygular (ör. 500 mil üzeri mesafe hava taşımacılığı demektir) ve önerilerin bulunduğu bir markdown tablosu sunar.
MCP Sunucularını Kurma
Kodlamaya başlamadan önce, temel bulut altyapısını hazırlamamız ve MCP sunucularını hazır hale getirmemiz gerekir. Deneyimlerime göre bu aşamada IAM izinlerini doğru ayarlamak en önemli kısımdır.
Adım 1: Google Cloud CLI’yı başlatma
Önce Google Cloud CLI’yı kurduğunuzdan emin olun. Başlamak için, terminalinizi açın ve yerel ortamınızı Google hesabınıza bağlamak üzere aşağıdaki komutu çalıştırın:
Bunu çalıştırdığınızda, otomatik olarak bir tarayıcı penceresi açılır. Google hesabınızla oturum açmanız istenir. Oturum açtıktan sonra, CLI’ın kaynaklarınızı yönetmesine izin vermek için Allow’a tıklayın.
Terminale geri döndüğünüzde, komut istemi sizden varsayılan bir proje seçmenizi isteyecektir. Halihazırda oluşturduysanız projenin kimliğini seçin ya da terminalde yeni bir proje oluşturun.
Adım 2: Faturalandırmayı ayarlama
API hizmetlerini kullanmak için faturalandırmayı ayarlamanız gerekir. Bununla birlikte Google Cloud, Compute, GKE ve Maps gibi hizmetleri denemeniz için 90 gün boyunca 300 $ ücretsiz kredi verir ve bu ücretsiz krediler bu eğitimdeki örnek için fazlasıyla yeterlidir. Yalnızca kullandıkça ödeyi veya ön ödemeyi açarsanız ücretlendirilirsiniz. Faturalandırmayı ayarlamak için:
Google Console faturalandırma sayfasına gidin ve
gcloudiçin kullandığınız hesapla oturum açın.Bir faturalandırma hesabınız yoksa oluşturun (ödeme yöntemi eklemek gerekir, ancak önce ücretsiz kredi uygulanır).
Faturalandırma hesabını projenize bağlayın: Billing → Link a project → projenizi seçin veya şunu çalıştırın:
Adım 3: Çekirdek API’leri ve MCP hizmetlerini etkinleştirme
Sırada birincil ürün API’lerini etkinleştirmemiz gerekiyor. Bunlar, ajanın BigQuery ve Maps gibi ham veri hizmetlerine ulaşmasını sağlar.
Şimdi, Yönetilen MCP Uç Noktalarını etkinleştirmeliyiz. Bunları, normal API’lerin üzerine oturan çevirmen arayüzleri olarak düşünmenin faydalı olduğunu gördüm.
Önce, proje kimliğinizi ve hesap e-postanızı ortam değişkenlerine kaydedelim. Bu, sonraki her komut için bunları elle yazmamızı önler:
Bu değişkenler ayarlandıktan sonra, belirli projeniz için beta MCP özelliklerini açmak üzere aşağıdaki komutları çalıştırın. Bu komutlar, ajanın çağırması için uzak MCP uç noktalarını hazırlaması için Google’a talimat verir:
Adım 3: IAM ve Maps Anahtarlarını yapılandırma
MCP, "çift katmanlı" bir güvenlik modeli kullanır. MCP sunucusuyla konuşmak için izin gerekir ve gerçek verilere (ör. bir tablodaki satırlar) erişmek için ayrı bir izin gerekir. Bunu gcloud CLI veya Google Cloud Console arayüzünü kullanarak yapabilirsiniz.
IAM Seçenek A: gcloud CLI kullanma
Hesabınıza MCP kullanma ve BigQuery ile etkileşim kurma izni vermek için şu üç komutu çalıştırın:
IAM Seçenek B: Google Cloud Console’u (UI) kullanma
Görsel bir arayüzü tercih ediyorsanız, tarayıcıda şu adımları izleyebilirsiniz:
Bir Maps API anahtarı oluşturun
Son olarak, bir Maps API anahtarı oluşturun. Oturum açma bilgilerinizi kullanan BigQuery’den farklı olarak Maps MCP sunucusu, faturalandırma ve kota takibi için bu anahtarı kullanır:
Adım 4: MCP Inspector ile sunucuları yerelde doğrulama
Python kodumuzu yazmadan önce, MCP Inspector kullanarak bir sağlamlık kontrolü yapmalıyız. Node.js ile gelen npx komutunu kullanacağız.
Amacı, bir paketi (örneğin inspector) bilgisayarınıza kalıcı olarak kurmadan hemen çalıştırmanıza izin vermektir. Bunu terminalinizde çalıştırın:
Bu, tarayıcınızda bir web arayüzü başlatacaktır (genellikle http://localhost:3000). Aşağıdaki kurulum listesindeki belirli seçimleri, Google’ın sunucularının yerel bir taklidini değil Uzaktan Yönetilen sürümünü test ettiğimizden emin olmak için yaptım:
Taşıma türü: Streamable HTTP. Bunu seçiyoruz çünkü Google’ın yönetilen bulut sunucuları için kullandığı üretim standart protokoldür.
URL:
https://mapstools.googleapis.com/mcpgirin. Bu, Google’ın Maps MCP’sine doğrudan giriş kapısıdır.Bağlantı Türü: Proxy aracılığıyla. Bu kritik bir seçimdir. "Proxy" seçilerek, inspector yerel
gcloudoturum açmanızı kullanarak tüm karmaşık güvenlik el sıkışmalarını otomatik olarak halleder.Özel Üstbilgiler: X-Goog-Api-Key ekleyin ve 3. Adımda aldığınız anahtarı yapıştırın.
Connect’e tıklayın.
Bağlandı durumunu şimdi yeşil olarak görmelisiniz. Sunucunun sunduğu tüm yeteneklerin bir listesini görmek için List Tools düğmesine tıklayın. Listede
compute_routesgörürseniz, altyapınız mükemmel şekilde yapılandırılmış demektir.Ajanlarınız için BigQuery, Maps ve diğer Google hizmetlerinin nasıl kullanılacağına daha derinlemesine bir bakış için Google MCP Sunucuları üzerine bu eğitimi mutlaka inceleyin.
Google ADK ile Bir MCP Sunucusu Ajanı Oluşturma
Altyapı hazır olduğuna göre, şimdi yerel geliştirme ortamımıza geçebiliriz. Proje dosyalarımızı düzenleyerek başlayacağız.
Adım 1: Proje yapısını ve bağımlılıkları ayarlama
Başlamak için projeniz için bir klasör oluşturun ve bir sanal ortam ayarlayın.
Yukarıdaki son komut macOS veya Linux kullanıcıları içindir; Windows kullanıyorsanız bunun yerine
.venv\Scripts\activatekullanın.Sonraki adımda,
google-adkpaketini destekleyici kitaplıklarıyla birlikte kurabilirsiniz.Yapmanız gereken bir şey daha var: kök klasörünüzde, önceki adımda oluşturduğunuz
PROJECT_IDveMAPS_API_KEY’i saklamak için bir.envdosyası oluşturun.Adım 2: MCP araç setlerini yapılandırma
tools.pyadlı bir betikte, "veri almak" için kod yazmıyoruz. Bunun yerine, veri almayı bilen bir sunucuya bağlanmak için kod yazıyoruz.Araçları mantıktan ayırmanın projeyi hata ayıklamayı çok daha kolay hale getirdiğini gördüm. Uzak Google Cloud uç noktalarıyla konuştuğumuz için kimlik doğrulama üstbilgilerini yönetmek üzere
StreamableHTTPConnectionParamskullanıyoruz.Adım 3: Ajanın görevini tanımlama
Şimdi "beyni" inşa ediyoruz. Deneyimlerime göre burada Gemini Flash modellerinden birini kullanmak en iyi seçim, çünkü araç çağırmada son derece hızlılar.
Ajanı
agent.pydosyasındaki talimatlar aracılığıyla standart bir işletim prosedürü ile donatıyoruz. Ajanın kafasının karışmasını önlemek için nasıl net, dört adımlı bir hattı kullandığımıza dikkat edin.Adım 4: Ajan döngüsünü çalıştırma
Ajanı çalıştırmak için runner’ı kullanıyoruz. Bu bileşen, ajanın neleri hallettiğini ve sırada ne yapması gerektiğini bilmesi için konuşma durumunu takip eder.
Arka planda neler oluyor?
runner.run_asyncçağrıldığında, ADK yinelemeli bir döngü başlatır:Gemini düşünür: "Önce gecikmiş siparişleri görmem gerekiyor."
ADK eyleme geçer: BigQuery MCP araç setinizden
execute_sqlaracını çağırır.Gözlem: Araç, sipariş verilerini döndürür.
Gemini düşünür: "Şimdi bu iki sipariş için mesafelere ihtiyacım var."
ADK eyleme geçer: Maps MCP aracını iki kez çağırır.
Son Yanıt: Gemini tüm verileri görür, sizin "500 mil" mantığınızı uygular ve tabloyu biçimlendirir.
Google ADK Ajanımızı Web Konsolunda Test Etme
Terminal günlükler için harika olsa da ADK, ajanın içsel akıl yürütmesini görselleştiren yerleşik bir web konsolu içerir. Bunun hata ayıklama için en faydalı araç olduğunu gördüm.
Arayüzü
adk webkomutunu çalıştırarak başlatın. Sunucu başladıktan sonra tarayıcınızıhttp://127.0.0.1:8000adresine açın. "Yüksek öncelikli gecikmiş siparişleri belirleyin ve kurtarma gönderim yöntemleri önerin." komutunu gönderebileceğiniz temiz, sohbet benzeri bir arayüz göreceksiniz.Yürütme izini analiz etme
ADK konsolu, ajanın bulut altyapınızla tam olarak nasıl etkileşime girdiğine dair şeffaf bir "iz" sağlar.
Adım adım inceleyelim:
Arayüz el sıkışmaları:
execute_sqlvecompute_routesetiketli simgelere dikkat edin. İzde, şimşek simgesi bir araç çağrısını gösterir. Ajan sadece tahmin etmedi; siparişler tablonuzda belirli bir SQL sorgusunu çalıştırmak için BigQuery MCP sunucusuna fiilen ulaştı.Sıralı mantık: İz, net bir işlem sırası gösterir. İlk olarak BigQuery aracılığıyla verileri çeker (ilk onay işareti). Depo ve müşteri adresleri eline geçince birden fazla
compute_routesçağrısı görürsünüz. Ajan, gecikmiş siparişler arasında akıllıca "döngü" yaparak gerçek dünya mesafe verilerini Maps MCP sunucusundan alır.Nihai sentez: İzin en altında nihai yanıtı görürsünüz.
Verilere bakın:
Ajana şu mantığı verdiğimiz için: "Mesafe > 500 mil ise Air Shipping öner, değilse Regional Express Ground öner"; ajan bu iş kuralını her iki siparişe de doğru şekilde uyguladı ve bunları güzel bir Markdown tablosuna biçimlendirdi.
Sonuç
BigQuery veya Google Maps için tek bir satır özel API kodu yazmadan işlevsel bir Lojistik Ajanı oluşturduk. ADK ve MCP kullanarak modüler, güvenli ve geliştirici odaklı bir mimari kurduk.
Yapay zekanın geleceği sadece konuşan sohbet botları değil, eyleme geçen ajanlardır. Bu araçlarla nihayet o gerçeğe doğru ilerliyoruz.
Bu eğitim, Google ADK ve MCP sunucularıyla denemeleriniz için harika bir başlangıç noktası olabilir:
Ajan orkestrasyonu hakkında daha fazla bilgi edinmek istiyorsanız, Associate AI Engineer for Developers kariyer yoluna kaydolmanızı şiddetle tavsiye ederim.