[開発者向け]ADKとGemini CLIで加速する!AIエージェント開発の新常識

目次

はじめに

 本稿では、AIエージェントの開発を効率化する新しい手法について、Google Developers Blogの記事「Simplify your Agent “vibe building” flow with ADK and Gemini CLI」を基に解説します。

 AIエージェント開発には、専門知識や多くのコーディング作業が必要で、開発者が本来集中したい創造的な作業の妨げになることがありました。今回ご紹介するAgent Development Kit (ADK)Gemini CLI を組み合わせた方法は、そうした開発の「摩擦」を取り除き、アイデアを素早く形にすることを可能にします。

参考記事

要点

  • GoogleのAgent Development Kit (ADK)とGemini CLIを組み合わせることで、AIエージェント開発のプロセスが劇的に効率化される。
  • この手法の核となるのは、ADKのフレームワーク情報を凝縮したllms-full.txtというファイルである。
  • llms-full.txtをGemini CLIに読み込ませることで、GeminiがADKの専門家となり、自然言語での大まかな指示から、精度の高い完全なコードを生成することが可能になる。
  • これにより、開発者はコーディングの細部に煩わされることなく、アイデアの考案や改善といった本質的な作業に集中できる「フロー状態」を維持しやすくなる。

詳細解説

開発を円滑にするための前提知識

 本題に入る前に、いくつかの重要なキーワードについてご説明します。

  • AIエージェントとは?
     AIエージェントとは、特定の目的を達成するために、自律的に状況を判断し、タスクを実行するプログラムのことです。例えば、「受信したメールの内容を分析して、重要度に応じて自動でフォルダに振り分ける」といった作業を行うのがAIエージェントです。
  • 開発者の「フロー状態」と「摩擦」
     開発者が作業に完全に集中し、時間が経つのも忘れるほど没頭している状態を「フロー状態」と呼びます。この状態では生産性が最大限に高まります。一方で、このフロー状態を妨げる様々な要因を「摩擦」と呼びます。例えば、ツールの使い方を調べるためにドキュメントを読んだり、別の作業のために頭を切り替えたりすることが摩擦にあたります。今回の手法は、この摩擦を極限まで減らすことを目的としています。
  • Agent Development Kit (ADK) と Gemini CLI
    • ADK (Agent Development Kit): Googleが提供する、AIエージェントを効率的に開発するためのツールキット(フレームワーク)です。
    • Gemini CLI: Googleの高性能AI「Gemini」を、コマンドライン(黒い画面)から対話形式で利用できるツールです。

新手法の心臓部:llms-full.txtの役割

 今回の開発手法で最も重要なのが、ADKのリポジトリに含まれるllms-full.txtというファイルです。

※実際のtxtファイル:https://github.com/google/adk-python/blob/main/llms-full.txt

 このファイルは、いわば「ADKフレームワークの完璧な設計図」や「Geminiのための教科書」のようなものです。ADKに含まれる全ての機能、使い方、ベストプラクティスが、AI(LLM)にとって理解しやすいように整理・要約されています。

 開発者は、このllms-full.txtファイルをGemini CLIに読み込ませるだけで、Geminiを即座にADKの専門家に変えることができます。これにより、GeminiはADKのルールや作法を完全に理解した上で、私たちの指示に応えてくれるようになります。その結果、曖昧な指示からでも、ADKの作法に則った正確なコードを生成できるのです。

 また、このファイルは従来よりも50%以上も内容が凝縮されており、AIに読み込ませる際のコストと時間を削減する効果もあります。

対話で作る!AIエージェント開発の具体的な流れ

 この手法を使って「GitHubのIssue(課題報告)に自動で適切なラベルを付けるAIエージェント」を開発する例が紹介されています。その流れを見ていきましょう。

Step 1: Geminiとの対話で計画を立てる

 まず、開発者はコードを一行も書くことなく、やりたいことを自然な言葉でGemini CLIに伝えます。

開発者: 「ADKフレームワークを使って、GitHubのIssueにラベルを付けるAIエージェントを作りたい。Issueを読んで、あらかじめ定義したラベルを付けてほしい。どうやって作ればいいか計画を立てて。」

 この指示と共にllms-full.txtを読み込ませると、Gemini CLIはADKの知識を基に、具体的な開発計画を提示します。

Step 2: 計画からコードを生成する

 次に、提示された計画に同意し、コードの生成を依頼します。

開発者: 「素晴らしい計画だね。この計画に沿って、Python ADKを使ったコードを生成して。」

 Gemini CLIは、llms-full.txtを参照しながら、計画を実行するための完全なPythonコードを瞬時に生成します。これには、エージェント本体のコードだけでなく、GitHubを操作するためのツール関数なども含まれます。開発者は、面倒な定型コードを書く必要が一切ありません。

※生成されるコード例

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],
)

Step 3 & 4: テストと改善を繰り返す

 生成されたコードをすぐに実行し、動作をテストします。もしバグが見つかったり、機能を追加したくなったりした場合も、再び対話で指示するだけです。

開発者: 「新しいラベル『some_new_label』をエージェントに追加してくれない?」

 すると、Gemini CLIは現在のコードの文脈を理解したまま、指示通りにコードを修正してくれます。手動でコードを編集する手間がなく、思考の流れを止めずに開発を続けられます。

Step 5: 理想のエージェントが完成するまで反復

 この「①アイデア出し → ②コード生成 → ③テスト → ④改善」というサイクルを繰り返すことで、開発者はストレスなく、理想のAIエージェントが完成するまで創造的な作業に没頭できます。

まとめ

 本稿では、GoogleのADKとGemini CLIを組み合わせた、新しいAIエージェント開発の手法について解説しました。

 この手法の鍵は、ADKの知識を凝縮したllms-full.txtファイルにあります。これを活用することで、開発者はコーディングの細かな作業から解放され、「何を作りたいか」というアイデアそのものに集中できるようになります。

 これは、単なる開発の効率化に留まりません。開発者が常に「フロー状態」を維持し、創造性を最大限に発揮できる環境を提供することで、これまで以上に革新的で便利なAIエージェントが次々と生まれてくる可能性を秘めています。AIとの対話を通じてアイデアを形にしていくこの新しい開発スタイルは、今後のソフトウェア開発のスタンダードになっていくかもしれません。

この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!
目次