Agent Development Kit: Mempermudah pembuatan aplikasi multi-agen

9 APRIL 2025
Erwin Huizenga Machine Learning Lead
Bo Yang Software Engineer

Dunia AI bergerak dengan cepat meninggalkan model bertujuan tunggal menuju sistem multi-agen yang cerdas dan otonom. Namun, membangun sistem multi-agen ini menghadirkan tantangan baru. Itulah sebabnya hari ini, kami memperkenalkan Agent Development Kit (ADK) di Google Cloud NEXT 2025, sebuah framework open source baru dari Google yang dirancang untuk menyederhanakan pengembangan stack lengkap secara menyeluruh untuk agen dan sistem multi-agen. ADK memampukan developer seperti Anda untuk membangun aplikasi agentik yang siap produksi dengan fleksibilitas yang lebih besar dan kontrol yang presisi.

ADK sama dengan framework yang digunakan untuk menjalankan agen di dalam produk Google, seperti Agentspace dan Google Customer Engagement Suite (CES). Dengan menjadikan ADK open source, kami bertujuan untuk menyediakan alat yang kuat dan fleksibel bagi developer untuk membangun lanskap agen yang berkembang pesat. ADK dirancang agar fleksibel, menggunakan model yang berbeda, dan membangun agen yang siap produksi untuk berbagai lingkungan deployment.


Pilar Utama ADK: Bangun, Interaksi, Evaluasi, Deploy

ADK menyediakan kemampuan di seluruh siklus proses pengembangan agen:

  • Multi-Agen berdasarkan Desain: Bangun aplikasi modular dan skalabel dengan menyusun beberapa agen khusus dalam sebuah hierarki. Memungkinkan koordinasi dan pendelegasian yang kompleks.

  • Ekosistem Model yang Berlimpah: Pilih model yang paling sesuai dengan kebutuhan Anda. ADK bekerja dengan model pilihan Anda – baik itu Gemini atau model apa pun yang bisa diakses melalui Vertex AI Model Garden. Framework ini juga menawarkan integrasi LiteLLM yang memungkinkan Anda memilih berbagai pilihan model dari penyedia seperti Anthropic, Meta, Mistral AI, AI21 Labs, dan masih banyak lagi!

  • Ekosistem Alat yang Berlimpah: Lengkapi agen dengan kemampuan yang beragam: gunakan alat yang sudah dibuat sebelumnya (Search, Code Exec), alat Model Context Protocol (MCP), integrasikan library pihak ketiga (LangChain, LlamaIndex), atau bahkan gunakan agen lain sebagai alat (LangGraph, CrewAI, dll).

  • Streaming bawaan: Berinteraksilah dengan agen Anda dalam percakapan layaknya manusia dengan kemampuan streaming audio dan video dua arah yang unik dari ADK. Hanya dengan beberapa baris kode, Anda bisa menciptakan interaksi alami yang mengubah cara Anda bekerja dengan agen – beralih dari sekadar teks menjadi dialog multimodal yang dinamis.

  • Orkestrasi Fleksibel: Tentukan alur kerja menggunakan agen alur kerja (Sequential, Parallel, Loop) untuk pipeline yang terprediksi, atau manfaatkan pemilihan rute dinamis berbasis LLM (LlmAgent transfer) untuk perilaku adaptif.

  • Pengalaman Developer Terintegrasi: Kembangkan, uji, dan debug secara lokal dengan CLI yang kuat dan UI Web visual. Periksa peristiwa, status, dan eksekusi agen langkah demi langkah.

  • Evaluasi Bawaan: Nilai performa agen secara sistematis dengan mengevaluasi kualitas respons akhir dan alur eksekusi langkah demi langkah terhadap kasus uji yang telah ditentukan.

  • Deployment yang Mudah: Tampung dan terapkan agen Anda di mana saja.


Memulai dengan agen pertama Anda

Meskipun kami mendorong Anda untuk menjelajahi contoh dalam dokumen, ide intinya adalah kesederhanaan Pythonic. Anda mendefinisikan logika agen Anda, alat yang dapat digunakan, dan bagaimana agen memproses informasi. ADK menyediakan struktur untuk mengelola status, mengatur panggilan alat, dan berinteraksi dengan LLM fundamentalnya. Berikut adalah contoh ilustrasi agen dasar.

Kode bisa ditemukan di panduan memulai cepat.

from google.adk.agents import LlmAgent 
from google.adk.tools import google_Search
 
dice_agent = LlmAgent(
    model="gemini-2.0-flash-exp", # Required: Specify the LLM 
    name="question_answer_agent", # Requdired: Unique agent name
    description="A helpful assistant agent that can answer questions.",
    instruction="""Respond to the query using google search""",
    tools=[google_search], # Provide an instance of the tool
)
 
# you can run this by using adk web

Contoh sederhana ini menunjukkan struktur dasarnya. ADK benar-benar cemerlang ketika membangun aplikasi yang lebih kompleks yang melibatkan banyak agen, penggunaan alat canggih, dan orkestrasi dinamis, semuanya sambil tetap mempertahankan kontrol.

ADK menawarkan fleksibilitas terkait cara Anda berinteraksi dengan agen: CLI, UI Web, Server API, dan API (Python). Cara Anda mendefinisikan agen (logika inti dalam agent.py) adalah sama, apa pun cara yang Anda pilih untuk berinteraksi dengannya. Perbedaannya terletak pada bagaimana Anda memulai dan mengelola interaksi. Anda dapat menemukan semua contohnya dalam dokumentasi ADK.

ADK architecture

Membangun Aplikasi Multi-Agen dengan ADK

ADK benar-benar cemerlang ketika Anda beralih dari sekadar agen tunggal menuju sistem multi-agen kolaboratif yang memanfaatkan alat. Bayangkan membuat tim agen khusus dengan agen utama yang dapat mendelegasikan tugas berdasarkan percakapan. ADK memudahkan hal ini melalui struktur hierarkis dan pemilihan rute yang cerdas.

Mari kita lihat contoh ilustratif – WeatherAgent yang menangani pertanyaan tentang cuaca tetapi mendelegasikan ucapan salam ke GreetingAgent khusus.


1. Tentukan Alat:
Agen menggunakan alat untuk melakukan tindakan. Di sini, WeatherAgent kami membutuhkan alat untuk mengambil data cuaca. Kami mendefinisikan fungsi Python; ADK menggunakan docstring untuk memahami kapan dan bagaimana cara menggunakannya.

def get_weather(city: str) -> Dict:
 
    # Best Practice: Log tool execution for easier debugging
    print(f"--- Tool: get_weather called for city: {city} ---")
    city_normalized = city.lower().replace(" ", "") # Basic input normalization
 
    # Mock weather data for simplicity (matching Step 1 structure)
    mock_weather_db = {
        "newyork": {"status": "success", "report": "The weather in New York is sunny with a temperature of 25°C."},
        "london": {"status": "success", "report": "It's cloudy in London with a temperature of 15°C."},
        "tokyo": {"status": "success", "report": "Tokyo is experiencing light rain and a temperature of 18°C."},
        "chicago": {"status": "success", "report": "The weather in Chicago is sunny with a temperature of 25°C."},
        "toronto": {"status": "success", "report": "It's partly cloudy in Toronto with a temperature of 30°C."},
        "chennai": {"status": "success", "report": "It's rainy in Chennai with a temperature of 15°C."},
 }
 
    # Best Practice: Handle potential errors gracefully within the tool
    if city_normalized in mock_weather_db:
        return mock_weather_db[city_normalized]
    else:
        return {"status": "error", "error_message": f"Sorry, I don't have weather information for '{city}'."}

2. Tentukan Agen dan Hubungannya: Kami menggunakan LlmAgent untuk membuat agen. Perhatikan dengan seksama kolom instruksi dan deskripsi – LLM sangat bergantung pada hal ini untuk memahami peran dan membuat keputusan delegasi menggunakan pendelegasian otomatis untuk sub agen.

greeting_agent = Agent(
         model=LiteLlm(model="anthropic/claude-3-sonnet-20240229"),
            name="greeting_agent",
            instruction="You are the Greeting Agent. Your ONLY task is to provide a friendly greeting to the user. " "Do not engage in any other conversation or tasks.",
            # Crucial for delegation: Clear description of capability
            description="Handles simple greetings and hellos",
 
 )
 
farewell_agent = Agent(
          model=LiteLlm(model="anthropic/claude-3-sonnet-20240229"),
            name="farewell_agent",
            instruction="You are the Farewell Agent. Your ONLY task is to provide a polite goodbye message. "
                        "Do not perform any other actions.",
            # Crucial for delegation: Clear description of capability
            description="Handles simple farewells and goodbyes",
 
 )
 
root_agent = Agent(
        name="weather_agent_v2", 
        model="gemini-2.0-flash-exp",
        description="You are the main Weather Agent, coordinating a team. - Your main task: Provide weather using the `get_weather` tool. Handle its 'status' response ('report' or 'error_message'). - Delegation Rules: - If the user gives a simple greeting (like 'Hi', 'Hello'), delegate to `greeting_agent`. - If the user gives a simple farewell (like 'Bye', 'See you'), delegate to `farewell_agent`. - Handle weather requests yourself using `get_weather`. - For other queries, state clearly if you cannot handle them.",
        tools=[get_weather], # Root agent still needs the weather tool
        sub_agents=[greeting_agent, farewell_agent]
)

Cara Kerja Delegasi:

  • Perilaku agen secara default adalah mengizinkan delegasi.

  • Saat memproses pesan pengguna, LLM mempertimbangkan kueri, description agen saat ini, dan kolom description agen terkait (induk / sub agen yang didefinisikan dalam hierarki).

  • Jika LLM menentukan agen lain lebih cocok berdasarkan deskripsinya (mis., pengguna mengatakan “Hai”, cocok dengan deskripsi GreetingAgent, maka LLM akan memulai proses transfer.

Deskripsi yang jelas dan berbeda sangatlah penting! LLM menggunakannya untuk merutekan tugas secara efektif.

Dalam pengaturan ini, jika pengguna memulai dengan “Hai”, WeatherAgent (jika ini adalah agen root yang memproses input) bisa mengenali bahwa ini bukan pertanyaan cuaca, melihat GreetingAgent yang lebih cocok melalui deskripsinya, dan secara otomatis mentransfer kontrol. Jika pengguna bertanya “Bagaimana cuaca di Chicago?”, WeatherAgent akan menanganinya secara langsung dengan menggunakan alat get_weather.

Contoh ini menunjukkan bagaimana struktur hierarkis dan delegasi berbasis deskripsi dari ADK memungkinkan Anda membangun aplikasi multi-agen yang terorganisir, mudah dikelola, dan canggih.


Menyelesaikan Siklus Proses: Evaluasi dan Deployment

Membangun agen cerdas seperti agen cuaca kami merupakan hal yang fundamental, tetapi menghadirkannya secara andal kepada pengguna melibatkan langkah penting berikutnya: evaluasi yang ketat dan deployment yang mulus. Sebelum diluncurkan, pastikan agen Anda berperilaku dengan tepat dan dapat diprediksi. Alat evaluasi terintegrasi ADK dirancang secara khusus untuk hal ini, sehingga Anda bisa menguji jalur eksekusi dan kualitas respons secara sistematis terhadap set data yang telah ditetapkan sebelumnya, seperti evaluation.test.json atau test.json. Anda dapat menjalankan pemeriksaan ini secara terprogram dalam rangkaian pengujian menggunakan AgentEvaluator.evaluate(). Anda juga bisa menggunakan evaluasi secara langsung melalui alat command line ADK eval atau melalui UI web.

Setelah Anda puas dengan performanya, ADK akan menawarkan jalur yang jelas dan mudah menuju produksi melalui opsi untuk menerapkan ke runtime penampung apa pun atau menggunakan integrasinya dengan Vertex AI Agent Engine. Ini memungkinkan Anda untuk memanfaatkan runtime level perusahaan yang terkelola sepenuhnya dan skalabel, menyelesaikan siklus proses pengembangan dan memampukan Anda untuk beralih dari prototipe canggih ke aplikasi agentik yang tangguh dan siap produksi.


Memilih framework untuk Anda: ADK atau Genkit?

Ketika menjelajahi kemungkinan membangun sistem multi-agen dengan ADK, Anda mungkin bertanya-tanya bagaimana kesesuaiannya dengan lanskap yang lebih luas terkait alat pengembangan GenAI dari Google. Meskipun tersedia berbagai SDK dan framework, seperti framework Genkit, ada baiknya Anda memahami fokus relatif ADK. Berikut adalah perbandingan singkatnya:


Agent Development Kit:

  • Dioptimalkan untuk agen kompleks dan sistem multi-agen, ia menyediakan abstraksi dengan level yang lebih tinggi untuk pengembangan agen dengan integrasi bawaan untuk LiteLLM dan Vertex AI Model Garden yang mendukung berbagai model.

  • Berfokus pada penentuan perilaku dan interaksi agen.

  • Mendukung streaming dua arah.


Genkit:

  • Menyediakan blok pembangunan fundamental untuk membangun berbagai macam pengalaman berbasis AI.

  • Menyertakan alat developer untuk melakukan iterasi, pengujian, dan proses debug interaksi terkait AI Anda.

  • Mendukung berbagai model bahasa besar dari Google AI, Vertex AI, dan dari pihak ketiga melalui plugin komunitas.


Memilih Alat yang Tepat

Pada akhirnya, pilihan terbaik tergantung pada tujuan spesifik project tersebut. Jika Anda membangun sistem agen kolaboratif yang rumit dalam framework yang terdefinisi dengan baik, ADK menawarkan solusi yang kuat. Untuk banyak project GenAI lainnya yang membutuhkan fleksibilitas dan dukungan model yang luas, Genkit adalah pilihan yang sangat baik.


ADK dapat digunakan di mana saja, tetapi dioptimalkan untuk Google Cloud

Meskipun Agent Development Kit (ADK) menawarkan fleksibilitas untuk bekerja dengan berbagai alat, ADK dioptimalkan untuk integrasi yang mulus di dalam ekosistem Google Cloud, khususnya dengan model Gemini dan Vertex AI. Desain yang disesuaikan ini memungkinkan developer untuk sepenuhnya memanfaatkan kemampuan canggih Gemini, seperti penalaran yang disempurnakan dan penggunaan alat yang ditemukan di Gemini 2.5 Pro Eksperimental, serta menyediakan jalur native secara langsung untuk menerapkan agen-agen ini ke dalam runtime level perusahaan yang terkelola sepenuhnya oleh Vertex AI untuk skalabilitas.

Yang terpenting, integrasi yang mendalam ini menjangkau lanskap perusahaan Anda yang lebih luas; ADK memungkinkan agen untuk terhubung langsung ke sistem dan data melalui lebih dari 100 konektor yang telah dibuat sebelumnya, memanfaatkan alur kerja yang dibangun dengan Application Integration, dan mengakses data yang disimpan dalam sistem, seperti AlloyDB, BigQuery, dan NetApp tanpa perlu melakukan duplikasi data.

Selain itu, agen yang dibangun dengan ADK bisa dengan aman memanfaatkan investasi API organisasi Anda yang dikelola melalui Apigee, yang semakin meningkatkan kemampuan mereka dengan memanfaatkan antarmuka yang sudah ada.

Konektivitas yang komprehensif di seluruh model AI lanjutan, deployment yang skalabel, sumber data yang beragam, dan API yang ada menjadikan ADK sangat kuat saat digunakan di lingkungan Google Cloud.


Membangun Agen generasi berikutnya dengan ADK

Agent Development Kit (ADK) menyediakan fondasi yang kuat, fleksibel, dan open source untuk membangun aplikasi AI generasi berikutnya. ADK mengatasi tantangan utama pengembangan multi-agen dengan menawarkan:

  • Kontrol yang presisi atas perilaku dan orkestrasi agen.

  • Ekosistem yang melimpah dengan alat dan integrasi.

  • Pengalaman developer terintegrasi untuk membangun dan melakukan proses debug.

  • Framework evaluasi tangguh yang penting untuk agen yang andal.

  • Jalur yang jelas untuk deployment, termasuk opsi terkelola.

Kami ingin segera melihat kreasi Anda dengan ADK!

Jelajahi Kode: Dokumentasi ADK Resmi.