1. Genel Bakış
Bu codelab'de, yapay zeka aracısının yerel geliştirme yaşam döngüsünün tamamını yönetmek için Agents CLI'yı nasıl kullanacağınızı öğreneceksiniz. İster mevcut Gemini modellerini sarmalıyor ister Agent Development Kit (ADK 2.0) ile sıfırdan özel aracılar oluşturuyor olun, Agents CLI, aracınızı yerel olarak iskeletini oluşturmak, derlemek, lint uygulamak ve test etmek için gerekli araçları sağlar.
Neler öğreneceksiniz?
agents-clive ilişkili becerileri yükleme ve ayarlama- Yeni bir aracı projesi oluşturma
- ADK 2.0 grafik iş akışı aracısı projesinin yapısı ve temel dosyaları.
- Otomatik linting ve kod temizleme işlemlerini çalıştırma
- Otomatik yeniden yükleme ile etkileşimli test için yerel web playground'u başlatma ve kullanma
İhtiyacınız olanlar
- Python 3.11 veya sonraki sürümler
- uv paket yöneticisi
- Node.js 18+ (kodlama aracısı becerilerini kullanıyorsanız)
- Antigravity IDE (Google Antigravity'den yükleyip yapılandırın)
Ön koşullar
Bu Codelab'de aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
- Terminal ve komut satırını kullanma
Yapay zeka sistemleri veya ADK 2.0 ile ilgili deneyiminiz olmasına gerek yok.
2. Kimlik Doğrulama ve Ortam Ayarlarını Yapma
Temsilcinin Gemini modellerini çağırması için kimlik doğrulama kimlik bilgilerinizi sağlayın.
1. seçenek: Gemini API anahtarı (Google AI Studio)
Standart bir Gemini API anahtarı kullanıyorsanız (Google AI Studio'dan edinebilirsiniz) IDE terminal oturumunuzda dışa aktarın:
export GEMINI_API_KEY="your_api_key_here"
export GOOGLE_GENAI_USE_ENTERPRISE=FALSE
2. seçenek: Google Cloud Uygulaması Varsayılan Kimlik Bilgileri
Google Cloud'da Vertex AI kullanıyorsanız Google Cloud Uygulama Varsayılan Kimlik Bilgileri (ADC) ile kimlik doğrulayın ve etkin Google Cloud projenizi ayarlayın:
gcloud auth application-default login
gcloud config set project <YOUR_PROJECT_ID>
export GOOGLE_GENAI_USE_ENTERPRISE=TRUE
export GOOGLE_CLOUD_PROJECT=REPLACE-WITH-YOUR-PROJECT_ID # Replace with your project ID
export GOOGLE_CLOUD_LOCATION=REPLACE-WITH-LOCATION # Replace the location
3. Agents CLI ve becerileri ayarlama
İlk adım, agents-cli aracını yüklemektir. Bu araç, temsilci proje yönetiminin zorlu kısımlarını halleder.
Antigravity yüklendikten sonra kurulum komutunu doğrudan terminalinizde çalıştırın.
👉 Bir terminal açıp şunu çalıştırın:
uvx google-agents-cli setup
Bu komut şunları otomatik olarak yükler:
- Agents CLI aracını sisteminize global olarak yükleyin.
- Antigravity'nin aracı oluşturmanıza, iskeletini oluşturmanıza, değerlendirmenize ve dağıtmanıza yardımcı olmak için kullanabileceği, alana özgü yedi kodlama asistanı becerisi. Bu beceriler
~/.agents/skills/'ye bir kez küresel olarak yüklenir ve Antigravity tarafından otomatik olarak keşfedilir.
Not: Beceriler ~/.agents/skills/ konumuna yüklenir ve Antigravity tarafından otomatik olarak alınır. Bunu /skills komutunu veya Antigravity ayarlarınızı kullanarak doğrulayabilirsiniz.
Beklenen çıktı (kırpılmış):
█▀█ █▀▀ █▀▀ █▄ █ ▀█▀ █▀ █▀▀ █ █`
`█▀█ █▄█ ██▄ █ ▀█ █ ▄█ █▄▄ █▄ █`
`Your coding agent just got an upgrade.`
`1. Authentication`
`─────────────────`
`✓ Authenticated with Google Cloud`
`2. CLI Installation`
`───────────────────`
`▸ uv tool install google-agents-cli`
`✓ Installed google-agents-cli`
`3. Skills Installation`
`──────────────────────`
`▸ npx -y skills add https://github.com/google/agents-cli -y --all -g`
`◇ Found 7 skills`
`~/.agents/skills/google-agents-cli-adk-code`
`~/.agents/skills/google-agents-cli-deploy`
`~/.agents/skills/google-agents-cli-eval`
`~/.agents/skills/google-agents-cli-observability`
`~/.agents/skills/google-agents-cli-publish`
`~/.agents/skills/google-agents-cli-scaffold`
`~/.agents/skills/google-agents-cli-workflow`
4. Aracı projenizi oluşturma
Bu bölümde, prototip şablonunu kullanarak tamamen yapılandırılmış bir proje dizini oluşturacaksınız.
👉 Antigravity'yi isteme:
Use ADK 2.0 to create a new graph workflow agent project called
customer-support-agent. I don't want to deploy this agent, so you can skip
the deployment files. The workflow should act as a customer support
representative for a shipping company. It should first classify if the user
query is related to shipping (rates, tracking, delivery, returns) or
unrelated. If it is related to shipping, route to a shipping FAQ agent to
answer the question. If it is unrelated, route to a node that politely
declines to answer.
Antigravity, iskele komutunu (agents-cli scaffold create customer-support-agent --prototype --yes) otomatik olarak çalıştırır ve proje dosyalarını sizin için ayarlar.
5. Agent Code'u keşfetme
👉 Antigravity'den oluşturulan kodu açıklamasını isteyin:
Read and explain the project structure of my new agent project. Walk me
through how `app/agent.py` is configured, highlighting the role of the
tools, nodes, edges, and the root Workflow.
Antigravity IDE'de yeni oluşturulan proje dosyaları ve yapılar doğrudan yardımcı bölmede (sol taraf) gösterilir. app/agent.py konumunda görüntüleyebilir veya iskelet kodu incelemek için IDE dosya gezgininden açabilirsiniz.
# app/agent.py
from __future__ import annotations
from typing import Any, Literal
from google.adk.agents.context import Context
from google.adk.apps.app import App
from google.adk.events.event import Event
from google.adk.workflow import Edge
from google.adk.workflow import Workflow
from google.adk.workflow.agents.llm_agent import LlmAgent
from google.adk.workflow.node import node
from pydantic import BaseModel
from pydantic import Field
class InquiryCategory(BaseModel):
category: Literal['shipping', 'unrelated'] = Field(
description=(
'Determine if the user query is related to shipping (rates, tracking,'
' delivery times, returns) or unrelated.'
)
)
def save_query(node_input: str):
"""Saves user query in state for downstream nodes."""
yield Event(data=node_input, state={'user_query': node_input})
categorize_agent = LlmAgent(
name='categorize',
model='gemini-3.1-flash-lite',
instruction='You are an expert classifier. Categorize the user query.',
output_key='inquiry_category',
output_schema=InquiryCategory,
)
@node
def route_inquiry(ctx: Context, node_input: Any):
"""Routes the workflow based on the classified category."""
category_data = ctx.state.get('inquiry_category', {})
category = category_data.get('category', 'unrelated')
query = ctx.state.get('user_query', '')
yield Event(data=query, route=category)
faq_agent = LlmAgent(
name='shipping_faq',
model='gemini-3.1-flash-lite'',
instruction="""You are a customer support representative for a shipping company. Answer user questions based ONLY on the shipping FAQ below. Do not answer questions outside of the FAQ.
SHIPPING FAQ:
- Rates: Standard shipping is $5.99. Express shipping is $12.99. Orders
over $50 qualify for free standard shipping.
- Tracking: You can track your order by entering your tracking number on
our website's tracking page.
- Delivery Times: Standard delivery takes 3-5 business days. Express
delivery takes 1-2 business days.
- Returns: We offer free returns within 30 days of delivery. Please make
sure the item is in its original condition.
""",
)
@node
def handle_unrelated(ctx: Context, node_input: Any):
"""Handles unrelated inquiries politely."""
yield Event(
data=(
'I am sorry, I am a shipping customer support assistant and can only'
' answer questions related to our shipping FAQ.'
)
)
root_agent = Workflow(
name='customer_support_workflow',
edges=[
*Edge.chain('START', save_query, categorize_agent, route_inquiry),
(route_inquiry, faq_agent, 'shipping'),
(route_inquiry, handle_unrelated, 'unrelated'),
],
)
app = App(
name='customer_support_agent',
root_agent=root_agent,
)
Temel Kavramlar
- İş Akışı ve Kenarlar: ADK 2.0'da aracı uygulamaları,
Workflowkullanılarak grafik olarak düzenlenir.edgeslistesi, yürütme akışını tanımlar, düğümleriSTARTile birbirine bağlar ve rotalara göre koşullu dallanmayı etkinleştirir (ör."shipping"üzerindefaq_agentveya"unrelated"üzerindehandle_unrelatedyönlendirmesi). - LlmAgent: Belirli talimatlar, modeller ve yapılandırılmış çıkışlarla (
output_schema) LLM destekli görevleri tanımlayan bildirimsel düğümler. - Düğümler ve Bağlam:
@nodeile süslenmiş (veya standart) Python işlevleri. Bu işlevler mantık yürütür,Contextaracılığıyla yürütme durumuna erişir ve verileri iletmek ve yönlendirme sinyallerini grafikte geçirmek içinEventnesneleri oluşturur. - Model: Varsayılan hızlı akıl yürütme modeli olarak "gemini-3.1-flash-lite" kullanılır.
- Uygulama sarmalayıcısı: En üst düzeydeki
Appnesnesi, kök iş akışını sarmalar. Yerel playground, ADK değerlendirme koşumları ve Agent Runtime gibi harici araçlar, iş akışınızı bu standartlaştırılmışapparayüzü üzerinden keşfedip yürütür.
6. Otomatik Linting
Aracınızı çalıştırmadan veya test etmeden önce kodunuzun temiz olduğundan ve doğru şekilde biçimlendirildiğinden emin olmanız iyi bir uygulamadır.
👉 Antigravity istemi:
Run linting on my agent project to verify its health.
Antigravity, dosyalarınızdaki içe aktarma, söz dizimi ve biçimlendirme tutarlılığını doğrulayan, önceden yapılandırılmış kontrolleri çalıştırmak için agents-cli lint komutunu arka planda yürütür.
7. Playground ile etkileşimli test
Yerel web playground, temsilcinizin davranışını doğrulamanın en hızlı yoludur. Bu arayüzde, aracınızla sohbet edebilir ve araç yürütmelerini anlık olarak inceleyebilirsiniz.
👉 Antigravity istemi:
Launch the local development playground for my agent.
Antigravity, yerel geliştirme sunucusunu (agents-cli playground) başlatır. Web tarayıcınızda sağlanan URL'yi (genellikle http://127.0.0.1:8080/dev-ui/?app=app) açın, açılır listeden app klasörünü seçerek temsilcinizle sohbet etmeye başlayın.
Web arayüzünde temsilcinizle sohbet etmeye başlayın. Kargoyla ilgili bir soru sormayı deneyin:
How much is standard shipping?
İş akışının, yanıtlamak için faq_agent'ya başarılı bir şekilde nasıl sınıflandırdığını ve yönlendirdiğini inceleyin. Ayrıca, iş akışının handle_unrelated yönlendirdiğini ve yanıt vermeyi doğru şekilde reddettiğini doğrulamak için alakasız bir soru sormayı deneyin:
What is the weather like?
Gerçek zamanlı otomatik yeniden yüklemeyi test etme
Ajanınızda yapılan gerçek zamanlı düzenlemelerin Playground'a nasıl yansıdığını görebilirsiniz.
- Antigravity'ye sorarak
app/agent.pyiçindekifaq_agenttalimatını değiştirin:Modify the faq_agent instruction in app/agent.py to make the shipping rates response more playful and enthusiastic. Add some emojis and highlight the free shipping threshold. - Otomatik yeniden yüklemeyi test etmek için oyun alanındaki aracıya yeni bir mesaj gönderin:
Playground, sunucuyu yeniden başlatmaya gerek kalmadan güncellenen kodunuzu otomatik olarak yeniden yükler ve anında yürütür. Yanıtı aldığınızda bazı emojiler görürsünüz.How much is standard shipping?
8. Komut Satırı Yürütme
Hızlı testler, otomasyon veya komut dosyası oluşturma için Antigravity'den aracınızı doğrudan terminalden çalıştırmasını isteyebilirsiniz.
👉 Antigravity'yi isteme:
Run a CLI query asking my agent how long standard delivery takes.
Antigravity, sorgu komutunu (agents-cli run "How long does standard delivery take?") yürütür. Bu işlem, hızlı bir tek dönüşlü çıkarım gerçekleştirir ve aracının son yanıtını araç yürütme ayrıntılarıyla birlikte yazdırır.
9. Temizleme
Yerel ortamınızda istenmeyen kaynaklar bırakmamak için aşağıdaki temizleme adımlarını uygulayın:
- Yerel sunucuları durdurma:
agents-cli playgroundsunucunuz hâlâ çalışıyorsa terminalinizdeCtrl + Ctuşuna basarak durdurun. - Yerel Proje Dosyalarını Kaldırın: İskele oluşturulmuş aracı proje dizinini yerel makinenizden silin.
rm -rf customer-support-agent
10. Özet ve Sonraki Adımlar
Tebrikler! Agents CLI ve ADK 2.0'ı kullanarak bir yapay zeka aracının uçtan uca yerel geliştirme yaşam döngüsünü başarıyla yönetmiş olmalısınız.
Öğrendikleriniz
- Araçlarınızı ayarlama: Agents KSA'yı yükledik ve Antigravity için alana özel iş akışı becerilerini yapılandırdık.
- Proje iskeleti oluşturma: Standartlaştırılmış şablonları kullanarak tamamen yapılandırılmış bir
customer-support-agentprojesi oluşturma. - ADK 2.0 Yapısını Analiz Etme: Grafik iş akışlarını, LLM aracılarını, düğümleri, kenarları ve koşullu yönlendirmeyi inceledim.
- Yönetilen Yerel Sağlık:
agents-cli lintkullanarak otomatik kod kalitesi kontrolleri gerçekleştirdi. - Doğrulanmış Davranış: Aracı, oyun alanı üzerinden gerçek zamanlı olarak yeniden yükleyerek etkileşimli bir şekilde test ettim ve komut satırında hızlı testler gerçekleştirdim.
Sırada ne var?
Yerel geliştirme döngüsünde ustalaştığınıza göre, aracınızı nasıl genişletebileceğiniz ve üretime hazır hale getirebileceğiniz aşağıda açıklanmıştır:
- Değerlendirme: Doğruluğu ölçmek ve gerilemeleri bulmak için
agents-cli eval runkullanarak aracınızı bir değerlendirme grubuyla karşılaştırın. - Kurumsal ölçekte bulut: Dağıtım ve Gözlemlenebilirlik:
agents-cli deploykullanarak aracınızı Agent Runtime veya Cloud Run gibi üretim ortamlarına paketleyin ve dağıtın. Günlükleri ve yürütme izlerini Cloud Trace ve BigQuery'ye aktarmak için üretim telemetrisini ayarlayın.