---
title: "Google ADK for Java 1.0.0 출시 — 플러그인, 컨텍스트 엔지니어링, A2A까지 갖춘 에이전트 프레임워크"
published: 2026-03-30T15:05:01.857Z
canonical: https://jeff.news/article/1391
---
# Google ADK for Java 1.0.0 출시 — 플러그인, 컨텍스트 엔지니어링, A2A까지 갖춘 에이전트 프레임워크

Google의 오픈소스 Agent Development Kit(ADK)가 Java 1.0.0을 정식 출시함. 플러그인 아키텍처, 이벤트 컴팩션, Human-in-the-Loop, A2A 프로토콜 등 프로덕션급 에이전트 운영에 필요한 핵심 기능을 체계적으로 갖추고 있음.

## Google ADK for Java 1.0.0 출시 — AI 에이전트 프레임워크의 멀티랭귀지 시대

- Google의 오픈소스 Agent Development Kit(ADK)가 Java 1.0.0 정식 버전을 출시함
  - Python으로 시작한 ADK가 이제 Java, Go, TypeScript까지 지원하는 멀티랭귀지 생태계로 확장됨
  - Java 진영 개발자들이 에이전트 개발에 본격적으로 참여할 수 있는 기반이 마련된 셈

## 새로운 도구와 그라운딩 기능

- **GoogleMapsTool**과 **UrlContextTool** 등 새로운 그라운딩 도구가 추가됨
  - GoogleMapsTool은 Gemini 2.5 기반으로 위치 데이터를 활용한 에이전트 응답이 가능함
  - UrlContextTool은 프롬프트에 포함된 URL의 콘텐츠를 Gemini가 직접 가져와서 처리함 — 별도 웹 크롤링 파이프라인 불필요
- 코드 실행용으로 **ContainerCodeExecutor**(Docker 기반 로컬 실행)와 **VertexAiCodeExecutor**(클라우드 실행)를 제공함
- ComputerUseTool 추상화로 실제 브라우저/컴퓨터 조작도 가능하지만, BaseComputer 구현은 직접 해야 함

## App/Plugin 중앙 플러그인 아키텍처

- 기존에는 각 에이전트마다 콜백을 개별 설정해야 했는데, 이제 **App** 컨테이너와 **Plugin** 시스템으로 전역 제어가 가능함
  - App이 루트 에이전트, 글로벌 설정, 플러그인을 통합 관리하는 최상위 컨테이너 역할
  - Plugin은 에이전트/도구/LLM 동작을 전역적으로 가로채고 수정하는 AOP 스타일 확장 포인트
- 내장 플러그인 3종이 제공됨
  - **LoggingPlugin**: 에이전트 실행, LLM 요청/응답, 도구 호출 등의 구조화된 로깅
  - **ContextFilterPlugin**: 오래된 대화 턴을 필터링하되 함수 호출/응답 쌍은 안전하게 보존
  - **GlobalInstructionPlugin**: 모든 에이전트에 일관된 지시사항(정체성, 안전 규칙 등)을 동적 적용

## 이벤트 컴팩션 — 컨텍스트 엔지니어링

- 장시간 세션에서 토큰 한도 초과를 방지하기 위한 이벤트 컴팩션 전략이 도입됨
  - 슬라이딩 윈도우로 최근 이벤트만 유지하고, 오래된 이벤트는 LLM으로 요약 처리
  - compactionInterval, overlapSize, tokenThreshold, eventRetentionSize 등 세밀한 파라미터 제어 가능
  - BaseEventSummarizer, EventCompactor 인터페이스를 직접 구현해서 커스터마이징도 가능함

## Human-in-the-Loop(HITL)

- **ToolConfirmation** 기반의 인간 개입 워크플로우가 추가됨
  - 도구가 ToolContext.requestConfirmation()을 호출하면 LLM 플로우가 일시 중지됨
  - 사용자가 승인(+ 선택적 페이로드)을 제공하면 실행이 재개됨
  - ADK가 중간 이벤트를 자동 정리하고, 승인된 함수 호출을 후속 LLM 요청 컨텍스트에 주입함
- 위험한 작업 실행 전 승인, 법규/사내 프로세스에 따른 검증 등 다양한 시나리오에 활용 가능

## 세션/메모리/아티팩트 서비스

- 세션 관리: InMemory(로컬 개발), VertexAI(클라우드 관리형), Firestore(커뮤니티 기여) 3종 제공
- 장기 메모리: InMemoryMemoryService(키워드 매칭), FirestoreMemoryService(영구 저장)
  - LoadMemoryTool을 에이전트에 연결하면 과거 세션의 히스토리를 자동 조회함
- 아티팩트 관리: InMemory(로컬)와 GCS(Google Cloud Storage, 버전 관리 포함) 지원

## Agent2Agent(A2A) 프로토콜 지원

- 공식 A2A Java SDK Client를 사용해 원격 에이전트와 통신이 가능함
  - AgentCard(에이전트의 ID/능력/통신 설정)를 원격 엔드포인트에서 조회하고, RemoteA2AAgent로 래핑
  - 로컬 에이전트처럼 ADK 에이전트 계층에 배치 가능하며, Runner로 이벤트가 네이티브 스트리밍됨
- 반대로 자신의 ADK 에이전트를 A2A AgentExecutor로 감싸면 JSON-RPC REST 엔드포인트로 외부에 노출 가능
  - 다른 프레임워크/언어로 만든 에이전트와의 상호 운용성이 확보됨

> **핵심 포인트**: ADK for Java 1.0.0은 단순한 언어 포팅이 아니라, 플러그인 아키텍처/컨텍스트 엔지니어링/HITL/A2A 등 프로덕션급 에이전트 운영에 필요한 기능을 체계적으로 갖춘 릴리스임

## 핵심 포인트

- Python에서 시작한 ADK가 Java, Go, TypeScript로 확장되며 멀티랭귀지 생태계 형성
- App/Plugin 중앙 아키텍처로 에이전트 전역 제어 가능 (LoggingPlugin, ContextFilterPlugin, GlobalInstructionPlugin)
- 이벤트 컴팩션으로 슬라이딩 윈도우+요약 기반 토큰 한도 관리
- ToolConfirmation 기반 Human-in-the-Loop으로 에이전트 실행 중 인간 승인 워크플로우 지원
- 공식 A2A Java SDK Client로 원격 에이전트와 프레임워크/언어 무관 통신 가능

## 인사이트

단순한 언어 포팅이 아니라 프로덕션급 에이전트 운영에 필요한 기능을 체계적으로 갖춘 릴리스. Java 생태계의 에이전트 프레임워크 선택지가 크게 넓어짐.
