发布 Kotlin版ADK与Android版ADK 0.1.0:在Android及其他平台构建AI Agent

Google Developers Blog(RSS)·2026-05-21 00:00·91天前
AI 导读

Google发布了面向开发者的新工具包:Kotlin版ADK与Android版ADK 0.1.0。这两个工具包旨在帮助开发者构建AI Agent。其中,Kotlin版ADK将代理工作流引入后端项目开发;Android版ADK则专注于移动端应用,提供了构建AI代理所需的特定功能。此次发布为开发者提供了在Android生态及更广泛平台创建AI应用的官方工具基础。

Google Developers Blog(RSS)
精选
63AI 编辑部评分,满分 100

发布 Kotlin版ADK与Android版ADK 0.1.0:在Android及其他平台构建AI Agent

2026-05-21 00:00· 91天前
AI 导读

Google发布了面向开发者的新工具包:Kotlin版ADK与Android版ADK 0.1.0。这两个工具包旨在帮助开发者构建AI Agent。其中,Kotlin版ADK将代理工作流引入后端项目开发;Android版ADK则专注于移动端应用,提供了构建AI代理所需的特定功能。此次发布为开发者提供了在Android生态及更广泛平台创建AI应用的官方工具基础。

推荐理由

Google 首次为 Android 推出端侧多 agent 开发框架,虽然还只是 0.1 版,但端云混合编排的思路已清晰,移动开发者可以提前踩坑了,这是端侧 AI 应用爆发前的一个信号。

正文 · AI 翻译
GoogleForDevelopers-ComboIO-Wagtail-1600x476

ADK for Kotlin 为你的后端项目带来了智能体工作流,而 ADK for Android 则提供了专门的设备端优化能力。

继近期 ADK for Java 和 Go 的 1.0.0 版本,以及 ADK for Python 2.0 的测试版发布之后,我们激动地宣布推出 Kotlin 版智能体开发套件(ADK)0.1.0 版本!此外,我们还推出了一款名为 ADK for Android 的专用库。ADK 是一个用于开发和运行 AI 智能体的灵活开源框架,现在已支持 Kotlin。借助 Android 版本,你可以创建能够在设备端直接运行的 AI 智能体,利用本地设备端大语言模型在你的应用中工作,从而增强隐私保护,同时也能灵活地与云端模型进行桥接。

为什么选择 ADK for Kotlin?

自 Gemini Nano 作为 Android 端模型推出以来,AI 生态系统正经历着向边缘端的大规模迁移,该模型现已覆盖超过 1.4 亿台设备。随着开发者寻求构建更快、更具成本效益且更能保护隐私的应用,直接在移动硬件上运行 AI 模型(如 Gemini Nano 这类模型)的能力变得前所未有的重要。然而,构建智能体系统可能非常复杂,尤其是在协调云端与边缘端之间的任务时。ADK 通过为你管理所有复杂的编排、上下文处理和错误处理,消除了这一障碍。

只需几行 Kotlin 代码,你就可以:

  • 根据需求轻松切换模型
  • 在多智能体系统的不同部分,灵活选择各种设备端和云端模型
  • 在多个智能体之间无缝共享会话状态
  • 直接在 Android 设备上运行智能体

功能亮点

  • 混合编排:你可以使用云端模型作为主编排器,然后将特定任务卸载给完全在设备端运行的子智能体。ADK 库负责将通用的智能体实现适配到正确的云端或设备端 API。
  • 设备端顺序智能体:你可以将子智能体定义为顺序智能体,这非常适合需要依次运行的多个任务。
  • 本地检索:通过利用 Gemini Nano 等设备端模型,你可以创建能够访问和解析本地文档的检索智能体,从而确保数据无需离开硬件。
  • 灵活的工具集成:你可以为智能体配备特定工具,并提供顶层指令,使其确切了解应如何行动以及何时将任务委派给子智能体。

实际案例:旅行助手

在我们的 I/O 大会环节中,我们展示了 ADK for Kotlin 如何为应用内旅行助手提供支持。

当用户在旅途中遇到问题时,云端编排器会与用户交互以了解问题。然而,当需要核实预订确认信息时,它会将任务委派给设备端的子智能体。多个检索智能体利用设备端的 Gemini Nano 模型,从用户本地存储的文档中提取数据。最后,一个验证智能体会对这些分析得出的数据进行比对。这样既能将私有数据保持在离线状态,又能充分利用云端编排器的推理能力。

ADK for Android 入门

要将 ADK 添加到你的 Android 应用中,请在 `build.gradle.kts` 文件中添加以下依赖:

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

Kotlin

然后,你就可以轻松构建你的 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

如需更复杂的智能体配置,请查看 ADK for Android 演示示例。

ADK for Kotlin 入门

在你的 `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

ADK for Kotlin 允许你定义工具,为大语言模型赋予额外能力。让我们创建一个虚构的“无限非概率驱动”服务,灵感来自《银河系漫游指南》:

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

请注意使用 `@Tool` 和 `@Param` 注解来向大语言模型描述该工具。

现在,我们可以创建第一个智能体,它将成为我们稍后定义的主智能体的子智能体。`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

现在,我们可以在根智能体中使用这个子智能体:

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

`heartOfGoldAgent` 在此主智能体的智能体配置中被定义为一个子智能体。

当用户询问某个奇怪事件发生的可能性时,主智能体会将任务委派给 `heartOfGoldAgent`,后者会调用本地函数工具来计算概率,然后回复用户。

这是一个简单示例,展示了如何在 ADK for Kotlin 中定义工具和子智能体。

ADK 功能集

ADK for Kotlin 和 ADK for Android 0.1.0 版本包含了在 Android 及更广泛平台上构建 AI 智能体所需的基础功能集,包括对智能体执行的高级控制、全面的工具支持以及用于状态管理的基本服务。

智能体

  • 基于大语言模型、基于工作流、自定义智能体
  • 多智能体系统

工具与集成

  • 函数工具
  • 长时间运行的函数工具
  • MCP 工具
  • A2A
  • 插件

运行时与可观测性

  • 用于短期记忆的会话状态
  • 用于长期记忆的记忆服务
  • 遥测(OpenTelemetry)

开发者体验

  • 用于开发和实验的 Web 界面

Android 模型

  • ML Kit GenAI,通过 AICore 访问设备端 Gemini Nano
  • Firebase AI Logic,用于访问云端运行的 Gemini 模型
  • Google GenAI,用于快速原型开发

下一步计划?

这个 0.1 版本是我们对该库的第一个实验性版本,目前提供了针对 ML Kit GenAI API 的默认智能体,以及到云端 Gemini 的直接连接。但这仅仅是个开始!

我们对应用内 AI 的未来感到无比兴奋,并迫不及待地想看到你们构建的智能体验。请务必在 GitHub 上查看该项目!

  • 移动端
  • AI
  • 公告
  • 学习
  • 探索