谷歌的 Java 版 Agent Development Kit(ADK)正式发布 1.0 版本,新增外部工具集成、新的应用与插件架构、高级上下文工程、人机协同工作流等功能。
新增支持的工具包括:GoogleMapsTool(提供谷歌地图数据访问能力)、UrlContextTool(可直接获取并总结网页内容)、ContainerCodeExecutor 与 VertexAICodeExecutor(支持通过 Docker 容器在本地或借助 Vertex AI 在云端安全稳定地执行代码),以及 ComputerUseTool(可操控网页浏览器或计算机,需集成 Playwright)。
为了让智能体工具的交互能力更加强大,ADK 1.0 新增了两个 API:App 类作为智能体应用的顶层容器,负责托管根智能体、存储全局配置并处理插件集成;Plugins 用于定义扩展能力的基类。同时提供多个开箱即用的插件,包括用于结构化记录智能体执行与工具调用的 LoggingPlugin、通过过滤历史对话轮次管理上下文窗口的 ContextFilterPlugin,以及用于向所有智能体应用统一动态下发指令的 GlobalInstructionPlugin。
新版本还提供了一个实用功能:事件压缩(Event Compaction)。该功能通过“仅保留最近事件的滑动窗口和/或对历史事件进行摘要”来控制智能体的上下文大小。作为一项基础的上下文工程实践,它能有效避免上下文窗口超出词元限制,同时降低长时运行会话的延迟与成本。
事件压缩 API 允许开发者对压缩间隔、词元阈值、重叠大小、事件保留限制以及所用摘要器进行灵活配置。
该框架还内置了对人机协同工作流的支持。借助新版 ADK,智能体可在执行关键操作前暂停执行、请求人工批准,获得确认后再继续执行。
已注册的工具可访问
ToolContext并调用requestConfirmation(),这会自动中断执行流程,暂停 LLM 运行直至获取输入。……ADK 会自动清理中间事件,并将已确认的函数调用显式注入后续的 LLM 请求上下文,确保模型知晓该操作已获批准,避免陷入执行循环。
ADK 还原生支持 Agent2Agent(A2A)协议,让不同智能体可以相互通信、协作,即便它们基于不同的编程语言或框架实现。为此,ADK 已集成官方的 A2A Java SDK 客户端。
若要通过 A2A 协议对外暴露你自己的 ADK 智能体,需要创建一个 A2A AgentExecutor。它会对 ADK 智能体进行封装,并通过 JSON-RPC REST 接口对外暴露,将你的 ADK 智能体接入更广泛的 A2A 生态系统。
谷歌同时为 Java 和 Python 提供了 Agent Development Kit。在数月前发布 Java 版 ADK时,该项目主要贡献者 Guillaume Laforge 曾在 Reddit 上澄清:“新功能与新实验通常先在 Python 上落地,再逐步移植到 Java”。近期,Reddit 用户 Qubit99 建议开发者优先使用 Python 版而不是 Java 版 ADK,理由是对谷歌自身 Java 库维护情况的担忧。而 José Carlos Sancho 则在 X.com 上表示,Java 的类型安全是一项显著优势,能够在早期发现编排错误,这让 Java 智能体在大规模运行场景下比 Python 版本更稳定。
Java 版 ADK 可以从 GitHub 下载。
【声明:本文由 InfoQ 翻译,未经许可禁止转载。】
查看英文原文:https://www.infoq.com/news/2026/04/google-adk-1-0-new-architecture/





