Untuk developer, status “flow” sangatlah sakral. Ini adalah ruang ajaib di mana ide-ide Anda diterjemahkan ke dalam kode dengan mudah. Musuh terbesar dari flow ini adalah friksi— pembacaan dokumentasi, pemilihan framework, dan pengalihan konteks yang menarik Anda keluar dari zona kreatif.
Itulah sebabnya kami sangat senang bisa mengumumkan update Agent Development Kit (ADK), yang jika dipasangkan dengan Gemini CLI, didesain untuk mengeliminasi friksi dan meningkatkan pengalaman “vibe coding” agen Anda. Kombinasi ini memungkinkan semua konteks yang tepat dalam percakapan yang mulus antara Anda dan Gemini, mengubah ide tingkat tinggi Anda menjadi agen fungsional dengan kecepatan dan fluiditas yang tak tertandingi. Dengan cara ini, Anda dapat menghabiskan lebih banyak waktu untuk memecahkan masalah dunia nyata menggunakan agen dan meminimalkan waktu untuk melakukan coding dari awal.
Jantung dari upgrade ini adalah perubahan file llms-full.txt
yang disertakan dalam repositori ADK. Ibaratkan file ini seperti panduan yang terorganisir dengan sempurna dan ringkas untuk seluruh framework ADK. Ini adalah peta yang merinci semua komponen, fungsi, dan praktik terbaik ADK.
Secara khusus, kami memperpendek file hingga lebih dari 50% (lebih sedikit token, yay!) agar lebih mudah dipahami oleh LLM. Ini adalah kunci untuk pengalaman vibe coding yang lebih baik karena artinya: Gemini memiliki pemahaman penuh tentang ADK…tanpa memakan jendela konteks Anda atau menjadi mangsa “pembusukan konteks”.
Jadi saat dipasangkan dengan Gemini CLI, Anda memiliki asisten coding kuat yang telah Anda ubah menjadi spesialis ADK dengan biaya yang jauh lebih rendah dan akurasi yang lebih baik. CLI mendapatkan pemahaman framework native yang mendalam, memungkinkannya menerjemahkan rencana tingkat tinggi Anda secara langsung ke dalam kode multi-agen yang akurat dan idiomatis. Hal ini secara dramatis mempercepat laju pembuatan prototipe; karena Anda dapat membuat agen fungsional dalam hitungan menit, Anda bebas bereksperimen dan melakukan iterasi tanpa investasi awal yang besar pada waktu coding.
Mari kita lihat bagaimana rasanya dalam skenario dunia nyata. Kami akan membangun agen AI untuk melabeli masalah Github ADK untuk mempermudah penugasan dan prioritas masalah. Mulai dari sebuah ide sederhana, kita akan membuat agen ADK yang berfungsi penuh hanya dalam beberapa langkah.
Download llms-full.txt
dari adk-python ke direktori kerja Anda.
Pertama, kami menggunakan Gemini CLI sebagai mitra curah pendapat untuk membuat rencana tingkat tinggi.
Anda: Saya ingin membuat agen AI, memanfaatkan framework ADK, untuk membantu saya melabeli masalah Github dengan Gemini di repositori saya (https://github.com/google/adk-python). Agen ini harus membaca masalah Github dan melabelinya dengan beberapa label yang telah ditentukan sebelumnya (silakan buat beberapa label umum terlebih dahulu). Buatlah rencana tentang cara melakukannya. @llms-full.txt
Gemini CLI:
Rencana: Agen Pelabelan Masalah GitHub
Tujuannya adalah membuat agen AI berbasis Python yang bisa menganalisis masalah GitHub dan menerapkan label yang relevan dan sudah ditentukan sebelumnya dari repositori Anda. Kami akan menggunakan framework ADK untuk mengatur logika agen dan model Gemini untuk analisis.
Tahap 1: Persiapan Project & Konfigurasi
1. Lakukan Inisialisasi Project: Siapkan direktori project Python baru.
2. Instal Dependensi: Instal library google-adk
dan library klien GitHub API seperti PyGithub
.
3. Autentikasi GitHub: Buat Personal Access Token (PAT) GitHub dengan izin repo
untuk memperbolehkan agen membaca masalah dan menerapkan label. Token ini akan dikonfigurasikan secara aman sebagai variabel lingkungan.
Tahap 2: Kembangkan Alat Khusus untuk GitHub
Agen membutuhkan alat untuk berinteraksi dengan GitHub. Kami akan membuat file github_tools.py
yang berisi fungsi berikut, yang akan diekspos ke agen:
get_issue(repo_name, issue_number)
: Mengambil judul dan isi dari masalah GitHub tertentu.get_available_labels(repo_name)
: Mengambil daftar semua label yang ada untuk repositori.apply_label(repo_name, issue_number, label)
: Menerapkan label yang diberikan untuk masalah tertentu.
Tahap 3: Membangun Agen Pelabelan
Menggunakan framework ADK, kami akan menetapkan Agent
baru dalam file main.py
:
1. Definisi Agen: Agen akan dikonfigurasi agar menggunakan model Gemini (mis., gemini-1.5-flash
).
2. Integrasi Alat: Alat GitHub khusus dari Tahap 2 akan diberikan kepada agen.
3. Instruksi Inti (Prompt): Prompt sistem agen akan menginstruksikan agen untuk mengikuti alur kerja yang jelas:
get_issue
untuk memahami isi masalah.get_available_labels
untuk melihat opsi yang valid.apply_label
untuk menambahkan label terpilih ke dalam masalah.
Tahap 4: Buat Titik Masuk Aplikasi
Kami akan membuat antarmuka command line (CLI) sederhana di main.py
yang memungkinkan Anda menjalankan agen. Ia akan menerima nama repositori GitHub dan nomor masalah sebagai input, lalu memicu agen untuk melakukan tugas pelabelan.
Apakah Anda ingin saya melanjutkan implementasi rencana ini?
Anda telah mendefinisikan logika tanpa menulis kode apa pun.
Sekarang, mari gunakan llms-full.txt
ADK untuk mengubah rencana tersebut menjadi agen nyata.
Anda: Bagus. Sekarang, buatlah kode untuk rencana ini menggunakan Python ADK. @llms-full.txt (Gemini CLI sekarang mereferensikan llms-full.txt
ADK untuk menerjemahkan rencana ke dalam kode ADK yang tepat).
Gemini CLI
import argparse
import asyncio
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai import types
from github_tools import get_issue, get_available_labels, apply_label
labeling_agent = Agent(
name="github_labeler",
model="gemini-1.5-flash",
instruction="""You are an AI agent that labels GitHub issues.
1. First, use the 'get_issue' tool to read the issue's title and body.
2. Then, use the 'get_available_labels' tool to see all possible labels for the repository.
3. Analyze the issue content and choose the most relevant label from the available options.
4. Finally, use the 'apply_label' tool to add the chosen label to the issue.
5. Respond with a confirmation message stating which label was applied.
""",
tools=[get_issue, get_available_labels, apply_label],
)
from github import Github
from config import GITHUB_TOKEN
g = Github(GITHUB_TOKEN)
def get_issue(repo_name: str, issue_number: int) -> str:
"""Fetches the title and body of a specific GitHub issue."""
repo = g.get_repo(repo_name)
issue = repo.get_issue(number=issue_number)
return f"Title: {issue.title}\nBody: {issue.body}"
def get_available_labels(repo_name: str) -> list[str]:
"""Retrieves the list of all existing labels for the repository."""
repo = g.get_repo(repo_name)
labels = [label.name for label in repo.get_labels()]
return labels
def apply_label(repo_name: str, issue_number: int, label: str) -> str:
"""Applies a given label to a specific issue."""
repo = g.get_repo(repo_name)
issue = repo.get_issue(number=issue_number)
issue.add_to_labels(label)
return f"Successfully applied label '{label}' to issue #{issue_number}."
(Ini juga menghasilkan requirements.txt, label_config.py tetapi kami tidak akan mencantumkannya di sini untuk mempersingkatnya).
Secara instan, Anda memiliki aplikasi agen yang lengkap dan berfungsi yang dengan baik menggunakan framework ADK. CLI menangani semua boilerplate karena file llms-full.txt
memberikan konteks yang diperlukan.
Dengan kode yang dibuat, Anda bisa mengujinya secara lokal. Mungkin Anda menemukan bug atau menginginkan peningkatan. Misalnya, Anda menginginkan ringkasan setelah agen ADK menyelesaikan pelabelan. Tetaplah berada dalam alur dan cukup minta perubahan.
Anda: Dapatkah Anda menambahkan label baru bernama “some_new_label” ke agen?
Gemini CLI, yang masih memegang konteks skrip Anda, melakukan pemfaktoran ulang kode untuk mengimplementasikan perubahan. Anda tidak perlu mengedit kode secara manual atau kehilangan momentum.
Loop iteratif ini adalah alur kerja yang baru:
1: Pahami logika agen Anda.
2: Hasilkan kode ADK dengan Gemini CLI.
3: Uji secara instan.
4: Tingkatkan dengan permintaan percakapan yang sederhana.
Anda bisa mengulangi siklus ini hingga agen Anda sempurna, semua tanpa friksi yang biasanya membuat Anda keluar dari zona kreatif.