google-developers

Kotlin용 ADK와 Android용 ADK 0.1.0 출시: 안드로이드 앱과 백엔드에서 AI 에이전트 만들기

요약

Google이 AI 에이전트 개발 프레임워크인 ADK의 Kotlin용과 Android용 0.1.0 버전을 출시했어요. 이 프레임워크는 온디바이스 및 클라우드 LLM을 활용해 복잡한 에이전트 시스템을 쉽고 유연하게 구축할 수 있도록 도와줘요.

인사이트

  • ADK는 Kotlin과 Android 플랫폼 모두에서 AI 에이전트 개발을 지원하며, 특히 Android에서는 온디바이스 LLM(Gemini Nano 등)을 활용해 개인 정보 보호 및 성능 향상에 집중하고 있어요.
  • 클라우드 기반 LLM과 온디바이스 LLM을 유연하게 조합하는 '하이브리드 오케스트레이션'을 통해 복잡한 AI 에이전트 시스템을 효율적으로 구축할 수 있도록 도와줘요.
  • 에이전트 간의 복잡한 작업 조율, 컨텍스트 관리, 오류 처리 등을 ADK가 대신 처리해줘서 개발자들이 AI 에이전트 구축에 더 쉽게 접근할 수 있게 됐어요.

왜 중요한가

모바일 기기에서 직접 AI 모델을 실행하는 '엣지 AI' 트렌드는 사용자 프라이버시 보호, 비용 절감, 그리고 빠른 응답 속도 면에서 정말 중요해요. ADK는 이런 온디바이스 AI 에이전트를 클라우드 AI와 유연하게 연동해서 복잡한 에이전트 시스템을 쉽게 만들 수 있게 해주기 때문에, 개발자들이 더욱 똑똑하고 안전한 앱을 만드는 데 큰 도움이 될 거예요.

2026년 5월 21일

Kotlin용 ADK는 백엔드 프로젝트에 에이전트 워크플로우를 도입하고, Android용 ADK는 특화된 온디바이스 최적화를 제공해요.

최근 Java용 ADKGo용 ADK 1.0.0 버전이 출시되고 Python용 ADK 2.0 베타도 나온 데 이어, Kotlin용 Agent Development Kit (ADK) 0.1.0 버전 출시를 알리게 되어 정말 기뻐요! 게다가 Android용 ADK라는 추가적인 전문 라이브러리도 함께 출시했어요. ADK는 AI 에이전트를 개발하고 실행하기 위한 유연한 오픈소스 프레임워크인데, 이제 Kotlin에서도 만나볼 수 있게 됐어요. Android 버전을 사용하면 앱 내에서 직접 온디바이스 LLM을 활용해 온디바이스에서 작동하는 AI 에이전트를 만들 수 있어서 개인 정보 보호를 강화하면서도 클라우드 기반 모델과 유연하게 연동할 수 있는 장점이 있어요.

왜 Kotlin용 ADK일까요?

AI 생태계가 엣지(Edge) 쪽으로 크게 전환되고 있어요. Android에 Gemini Nano 모델이 도입된 이후, 1억 4천만 대 이상의 기기에서 사용할 수 있게 되었어요. 개발자들이 더 빠르고, 비용 효율적이며, 개인 정보 보호를 강화하는 애플리케이션을 만들려고 하면서, 모바일 하드웨어에서 직접 AI 모델(Gemini Nano 같은 모델들)을 실행하는 능력이 그 어느 때보다 중요해졌어요. 하지만 에이전트 시스템을 구축하는 건 복잡할 수 있어요. 특히 클라우드와 엣지 사이에서 작업을 조율해야 할 때는 더 그렇죠. ADK는 복잡한 오케스트레이션, 컨텍스트 처리, 오류 처리 같은 모든 부분을 관리해서 이런 어려움을 없애줘요.

Kotlin 코드 몇 줄만으로도 다음을 할 수 있어요:

  • 필요에 따라 모델을 쉽게 교체할 수 있어요.
  • 멀티 에이전트 시스템의 여러 부분에 대해 다양한 온디바이스 및 클라우드 모델 중에서 선택할 수 있어요.
  • 여러 에이전트 간에 세션 상태를 끊김 없이 공유할 수 있어요.
  • Android 기기에서 에이전트를 직접 실행할 수 있어요.

주요 기능 하이라이트

  • 하이브리드 오케스트레이션: 클라우드 모델을 메인 오케스트레이터로 사용하고, 이 오케스트레이터가 특정 작업을 온디바이스에서 완전히 실행되는 서브 에이전트에게 위임할 수 있어요. ADK 라이브러리가 일반적인 에이전트 구현을 올바른 클라우드 또는 온디바이스 API에 맞게 조정하는 일을 처리해줘요.
  • 온디바이스 순차 에이전트: 서브 에이전트를 순차 에이전트로 정의할 수 있어요. 이건 여러 작업을 차례대로 실행해야 할 때 아주 유용하죠.
  • 로컬 검색: Gemini Nano 같은 온디바이스 모델을 활용해서 문서를 로컬에서 접근하고 파싱하는 검색 에이전트를 만들 수 있어요. 이렇게 하면 데이터가 하드웨어 밖으로 나갈 일이 없어서 안전하게 지킬 수 있어요.
  • 유연한 도구: 에이전트에 특정 도구를 장착하고 상위 지시를 제공해서, 에이전트가 어떻게 행동하고 언제 서브 에이전트에 위임해야 하는지 정확히 알도록 할 수 있어요.

실제 예시: 여행 도우미

Google I/O 세션에서 우리 팀은 Kotlin용 ADK가 앱 내 여행 도우미에 어떻게 활용되는지 시연했어요.

여행 중에 사용자가 문제에 부딪히면, 클라우드 기반 오케스트레이터가 사용자와 대화하며 문제를 파악해요. 하지만 예약 확인이 필요할 때는 이 작업을 온디바이스 서브 에이전트에게 위임하죠. 여러 검색 에이전트가 온디바이스 Gemini Nano 모델을 사용해서 사용자의 로컬 저장 문서에서 데이터를 추출해요. 마지막으로 유효성 검사 에이전트가 이 분석에서 나온 데이터를 비교하는 방식이에요. 이렇게 하면 개인 데이터는 오프라인 상태로 유지하면서도 클라우드 오케스트레이터의 추론 능력을 활용할 수 있어요.

Android용 ADK 시작하기

Android 앱에 ADK를 추가하려면, build.gradle.kts 파일에 다음 종속성을 추가하면 돼요.

implementation("com.google.adk:google-adk-kotlin-core-android:0.1.0") Kotlin

Copied

그다음 ADK 에이전트를 쉽게 구축할 수 있어요:

val orchestrator = LlmAgent(
  name = "genius_orchestrator",
  model = Gemini(apiKey = apiKey, name = MODEL_NAME),
  instruction = Instruction("""
    You are a travel genius assistant.
    First, use `get_trip_details` to get the full itinerary of the trip and 
    understand what events are scheduled.
    Then, respond with a welcome message tailored to the trip state.
    """.trimIndent()),
  tools = listOf(GetTripDetailsTool(tripId)),
  subAgents = listOf(carRentalPipeline, hotelPipeline),
  disallowTransferToPeers = true,
  disallowTransferToParent = true,
)

Kotlin

Copied

더 자세한 에이전트 설정은 Android용 ADK 데모를 확인해보세요.

Kotlin용 ADK 시작하기

build.gradle.kts 파일에 다음 종속성을 추가하세요:

dependencies {
      // Implementation dependency for ADK Core
      implementation("com.google.adk:google-adk-kotlin-core:0.1.0")
      
      // KSP processor for generating @AdkTools
      ksp("com.google.adk:google-adk-kotlin-processor:0.1.0")
  }

Kotlin

Copied

Kotlin용 ADK는 LLM에 추가 기능을 부여하는 도구를 정의할 수 있게 해줘요. <은하수를 여행하는 히치하이커를 위한 안내서>에서 영감을 받은 가상의 “비현실성 구동 장치(improbability drive)” 서비스를 만들어볼게요:

class ImprobabilityDriveService {
 /** Calculates the improbability of a given event. */
 @Tool
 fun calculateImprobability(
   @Param("The event to calculate the improbability for, e.g., 'A cup of tea materializing'")
   event: String
 ): String {
   return "The improbability of '$event' is approximately 42 to 1 against."
 }
}

Kotlin

Copied

@Tool@Param 어노테이션을 사용해서 LLM에 도구를 설명하는 걸 주목해보세요.

이제 첫 번째 에이전트를 만들어볼까요? 이 에이전트는 나중에 정의할 메인 에이전트의 서브 에이전트가 될 거예요. HeartOfGold 에이전트는 우주선의 컴퓨터를 나타내죠:

val heartOfGoldAgent =
    LlmAgent(
      name = "HeartOfGold",
      description = "The Heart of Gold ship computer. Handles improbability drive queries.",
      model = Gemini(apiKey = apiKey, name = "gemini-2.5-flash"),
      instruction =
        Instruction(
          """
          You are the ship computer of the Heart of Gold. You are cheerful, helpful, and slightly annoying.
          You have access to the Infinite Improbability Drive.
          Use real facts about yourself if asked, but keep it funny.
          """
          .trimIndent()
        ),
      tools = ImprobabilityDriveService().generatedTools()
    )

Kotlin

Copied

이제 이 서브 에이전트를 우리의 루트 에이전트에서 사용할 수 있어요:

val rootAgent =
  LlmAgent(
    name = "MissionControl",
    description = "The central router for space queries. Routes to HeartOfGold.",
    subAgents = listOf(heartOfGoldAgent),
    model = Gemini(apiKey = apiKey, name = "gemini-2.5-flash"),
    instruction =
      Instruction(
        """
        You are Mission Control. You are the central hub for all communications.
        Your main job is to route the user's query to the most appropriate agent.
        - If the query is about improbability, the Infinite Improbability Drive, or the Heart of Gold, transfer to `HeartOfGold`.
        - Otherwise, respond directly with a professional but stressed persona.
        """
        .trimIndent()
      )
  )

Kotlin

Copied

heartOfGoldAgent는 이 메인 에이전트의 에이전트 설정에서 서브 에이전트로 정의되어 있어요.

사용자가 어떤 기이한 사건의 비현실성(improbability)에 대해 질문하면, 메인 에이전트는 그 작업을 heartOfGoldAgent에 위임하고, heartOfGoldAgent는 로컬 함수 도구를 호출해서 확률을 계산한 다음 사용자에게 답변을 보내는 방식이에요.

이게 바로 Kotlin용 ADK에서 도구와 서브 에이전트를 정의하는 간단한 예시예요.

ADK 기능 세트

Kotlin용 ADK와 Android용 ADK 0.1.0 버전은 Android 및 그 너머에서 AI 에이전트를 구축하는 데 필요한 기본적인 기능 세트를 포함하고 있어요. 에이전트 실행에 대한 고급 제어, 포괄적인 도구, 그리고 상태 관리를 위한 필수 서비스들이 있죠.

에이전트

도구 및 통합

런타임 및 관찰성

개발자 경험

Android 모델

  • AICore를 통해 온디바이스 Gemini Nano에 접근하는 ML Kit GenAI
  • 클라우드에서 실행되는 Gemini 모델에 접근하는 Firebase AI Logic
  • 빠른 프로토타이핑을 위한 Google GenAI

다음 단계는 무엇일까요?

이번 0.1 릴리스는 ADK 라이브러리의 첫 실험 버전으로, 현재 ML Kit GenAI API를 위한 기본 에이전트와 클라우드의 Gemini에 직접 연결하는 기능을 제공하고 있어요. 하지만 이건 이제 시작일 뿐이에요!

우리 팀은 인앱 AI의 미래에 대해 엄청나게 기대하고 있고, 여러분이 만들 똑똑한 경험들을 어서 빨리 보고 싶어요. GitHub 프로젝트도 꼭 확인해보세요!

이전 글

다음 글

google-developers · 원문 보기 · 2026-05-21

이 글은 원문을 한국어로 번역한 것입니다. 저작권은 원 저작자에게 있습니다.