ADK Go 1.0 출시!
Source: Google Developers Blog
2026년 3월 31일
Toni Klopfenstein
Developer Relations Engineer
ADK Developer Relations
AI 에이전트가 실험적인 스크립트 단계에서 실제 서비스 단계로 전환하고 있습니다. 개발자에게는 이러한 변화에 맞춰 관찰 가능하고, 안전하며, 확장 가능한 시스템이 필요합니다.
Go가 구글에서 처음 탄생한 지 19년이 지난 지금, 우리는 Agent Development Kit for Go 1.0 출시와 함께 고성능 엔지니어링 전통을 이어가게 되어 매우 기쁩니다. 이번 업데이트는 기존 ADK Go 아키텍처를 확장하여 복잡한 다중‑에이전트 시스템을 지원합니다—단계별 및 동시 실행이 가능한 SequentialAgents와 ParallelAgents부터 반복적인 LoopAgents까지.
ADK Go 1.0의 새로운 기능
- 심층 추적을 위한 OpenTelemetry 통합
- 자체 복구 로직을 위한 플러그인 시스템
- 민감한 작업을 위한 인간‑인‑루프(HITL) 확인
- 이식성을 위한 YAML 기반 에이전트 정의
OpenTelemetry로 블랙 박스 내부 들여다보기
에이전트를 배포할 때 가장 큰 장애물은 에이전트가 본질적으로 비결정적이라는 점입니다. 에이전트가 실패했을 때 왜 실패했는지 알아야 합니다: 도구 오류? 모델 환각? 숨겨진 API 호출?
ADK Go 1.0은 네이티브 OpenTelemetry (OTel) 통합을 도입합니다. OTel TraceProvider만 연결하면 모든 모델 호출 및 도구 실행 루프가 구조화된 트레이스와 스팬을 생성해 복잡한 에이전트 로직을 디버깅하는 데 도움을 줍니다.
// OTel Initialization in ADK Go
telemetryProviders, err := telemetry.New(
ctx,
telemetry.WithOtelToCloud(true),
)
if err != nil {
log.Fatal(err)
}
defer telemetryProviders.Shutdown(ctx)
// Register as global OTel providers
telemetryProviders.SetGlobalOtelProviders()
// Initialize the runner with telemetry support
r, _ := runner.New(runner.Config{
Agent: myAgent,
Telemetry: telemetry.NewOTel(tp),
})
이를 통해 Cloud Trace와 같은 도구에서 기존 애플리케이션 메트릭과 함께 에이전트의 “사고 흐름”을 시각화할 수 있습니다.
팽창 없는 확장성: 새로운 플러그인 시스템
핵심 에이전트 로직은 간결하게 유지되어야 합니다. 새로운 플러그인 시스템을 통해 로깅, 보안 필터, 자체 교정과 같은 횡단 관심사를 에이전트의 주요 지시를 수정하지 않고 주입할 수 있습니다.
우리가 가장 좋아하는 추가 기능 중 하나는 **Retry and Reflect 플러그인**입니다. 이 플러그인은 도구 오류를 가로채 모델에 다시 전달하고, 에이전트가 파라미터를 자체 교정한 뒤 재시도하도록 하여 수동 개입의 필요성을 줄여줍니다.
// Adding Plugins to the Runner
r, _ := runner.New(runner.Config{
Agent: myAgent,
SessionService: mySessionService,
PluginConfig: runner.PluginConfig{
Plugins: []*plugin.Plugin{
// Automatically retries failed tool calls with reflection
retryandreflect.MustNew(retryandreflect.WithMaxRetries(3)),
// Centralized logging for every turn
loggingplugin.MustNew(""),
},
},
})
Source: …
신뢰하되 검증하라: 인간‑인‑루프 (HITL)
보안은 코드뿐만 아니라 제어와도 관련이 있습니다. Safe AI Framework (SAIF) 가이드라인에 따라, ADK Go는 이제 강력한 요청 확인 흐름을 지원합니다.
민감한 작업—예를 들어 금융 거래나 프로덕션 데이터베이스 변경—에 대해 도구를 RequireConfirmation으로 표시할 수 있습니다. 에이전트는 일시 중지하고 확인 이벤트를 발생시킨 뒤, 인간의 신호를 기다린 후에 진행합니다.
// Human‑in‑the‑loop Tool Setup
myTool, _ := functiontool.New(functiontool.Config{
Name: "delete_database",
Description: "Deletes a production database instance.",
RequireConfirmation: true, // Triggers the HITL approval flow
}, deleteDBFunc)
YAML을 통한 구성 가능한 에이전트
ADK Go 1.0은 이제 YAML을 통해 직접 에이전트를 정의할 수 있게 되었으며, 기능 동등성과 언어 간 일관성을 보장합니다. 개발자는 adk CLI를 사용해 에이전트를 관리하고 실행할 수 있어, 매번 설정을 변경할 때마다 번거로운 Go 코드를 작성할 필요가 없습니다.
# agent_config.yaml
name: customer_service
description: An agent that handles customer questions for an airline.
instruction: >
You are a customer agent that helps users booking flights.
You are always helpful.
tools:
- name: "google_search"
- name: "builtin_code_executor"
sub_agents:
- "policy_agent"
- "booking_agent"
이렇게 하면 핵심 바이너리를 재빌드하지 않고도 에이전트 페르소나와 서브‑에이전트 계층 구조를 빠르게 반복할 수 있어, 구성과 비즈니스 로직을 분리할 수 있습니다.
폴리글롯 미래: A2A 프로토콜 안정성
No agent is an island. The Agent2Agent (A2A) protocol has been refined to support seamless communication between Go, Java, and Python agents. ADK Go simplifies orchestration by automatically managing event ordering and response aggregation, ensuring reliable processing of partial‑response streams from remote agents.
다음은?
오늘 ADK Go 1.0을 시작하고, 언어와 환경을 초월해 확장 가능한 관찰 가능하고 안전한 AI 에이전트를 구축하세요.
- 우리의 Quickstart Guide를 시작하고, GitHub 저장소에 들어가 차세대 프로덕션 급 AI 구축을 시작하세요.
- Reddit 또는 ADK Community Google Group에서 커뮤니티에 참여하고 여러분이 만들고 있는 것을 공유하세요.
Go 에이전트의 미래가 여기 있습니다. 함께 만들어갑시다.