ADK Go 1.0이 드디어 출시됐어요!
요약
AI 에이전트가 실험 단계를 넘어 프로덕션 서비스로 거듭나면서, ADK Go 1.0이 OpenTelemetry 통합, 플러그인 시스템, 휴먼 인 더 루프(Human-in-the-Loop) 기능, 그리고 YAML 설정을 통한 구성 가능성으로 개발자에게 강력한 도구를 제공하며 에이전트 개발의 새로운 장을 열었어요.
인사이트
- ADK Go 1.0은 OpenTelemetry를 기본 통합하여 에이전트의 복잡한 동작을 쉽게 디버깅하고 '사고 연쇄(Chain of Thought)'를 시각화할 수 있게 해줘요.
- 새로운 플러그인 시스템은 로깅, 보안, 자가 복구 로직('Retry and Reflect' 플러그인 등)을 핵심 로직 수정 없이 추가할 수 있게 하여 에이전트의 확장성과 안정성을 크게 높여요.
- YAML 설정을 통한 에이전트 정의와 휴먼 인 더 루프(HITL) 확인 기능은 개발자가 에이전트를 더 안전하고 유연하게 관리하고 배포할 수 있도록 지원하며, 다국어 Agent2Agent (A2A) 프로토콜로 에이전트 간의 원활한 통신을 보장해요.
왜 중요한가
AI 에이전트가 실제 서비스에 적용되려면 예측 불가능성과 관리의 어려움을 극복해야 해요. ADK Go 1.0은 이러한 문제를 해결하기 위한 필수적인 기능들을 제공하면서, 개발자들이 에이전트를 안정적이고 안전하게 구축하며 운영할 수 있도록 돕습니다. 특히, 디버깅, 자가 복구, 사람의 개입, 그리고 손쉬운 설정 관리 기능은 에이전트 기반 애플리케이션의 개발을 가속화하고 프로덕션 환경에서의 신뢰성을 높여줄 거예요.
2026년 3월 31일
토니 클롭펜슈타인 ADK 개발자 관계 엔지니어
AI 에이전트들이 실험 단계 스크립트에서 벗어나 프로덕션 서비스로 거듭나고 있어요. 개발자들에게 이런 변화는 관측 가능하고, 안전하며, 확장 가능한 시스템을 요구하죠.
구글에서 Go 언어가 처음 탄생한 지 19년 만에, 구글은 그 고성능 엔지니어링의 유산을 계속 이어가게 되어 정말 기뻐요. 바로 Go용 에이전트 개발 키트(ADK Go) 1.0을 출시하면서 말이죠! 이번 업데이트는 기존 ADK Go 아키텍처를 확장해서 복잡한 다중 에이전트 시스템을 구현할 수 있도록 도와줘요. 단계별, 동시 처리 방식의 SequentialAgents와 ParallelAgents부터 반복적인 LoopAgents까지 말이죠.
ADK Go의 최신 기능들을 한번 살펴볼까요? 여기에는 이런 것들이 포함돼요:
- OpenTelemetry 통합을 사용한 심층 트레이싱
- 플러그인 시스템으로 자가 복구 로직 구현하기
- 휴먼 인 더 루프(Human-in-the-Loop) 확인으로 민감한 작업에 대한 안전 가이드라인 적용하기
- YAML 설정으로 에이전트를 정의해서 이식성 좋게 확장하기
OpenTelemetry로 블랙박스 내부 들여다보기
에이전트 배포의 가장 큰 난관은 본질적인 비결정성이에요. 에이전트가 실패했을 때, '왜' 실패했는지 알아야 하죠. 도구 문제였을까요? 모델의 환각(Hallucination)이었을까요? 아니면 잠재적인 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),
})
Go
Copied
이를 통해 Cloud Trace 같은 도구에서 기존 애플리케이션 지표와 함께 에이전트의 "사고 연쇄(Chain of Thought)"를 시각화할 수 있어요.
군더더기 없는 확장성: 새로운 플러그인 시스템
구글 팀은 핵심 에이전트 로직이 간결하고 깔끔하게 유지되어야 한다고 생각해요. 새로 추가된 플러그인 시스템을 사용하면 로깅, 보안 필터, 자체 수정 기능과 같은 횡단 관심사(cross-cutting concerns)를 에이전트의 주요 지침을 수정하지 않고도 주입할 수 있어요.
가장 좋아하는 새로운 기능 중 하나는 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(""),
},
},
})
Go
Copied
믿되, 확인하라: 휴먼 인 더 루프(Human-in-the-Loop, HITL)
보안은 코드만의 문제가 아니에요. 바로 '제어'에 관한 것이죠. 안전한 AI 프레임워크(SAIF) 가이드라인에 따라, ADK Go는 이제 강력한 요청 확인(Request Confirmation) 흐름을 지원해요.
금융 거래나 프로덕션 데이터베이스 변경과 같은 민감한 작업의 경우, 이제 도구를 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)
Go
Copied
YAML을 통한 에이전트 설정
1.0 릴리스의 일환으로, ADK Go는 이제 YAML 설정을 통해 직접 에이전트를 정의하는 것을 지원해서 기능 동등성과 언어 간 일관성을 보장해요. 이건 개발자들이 설정 변경할 때마다 상용구 Go 코드를 작성할 필요 없이 adk 명령줄 도구를 통해 에이전트를 관리하고 실행할 수 있다는 뜻이에요.
# 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"
Go
Copied
이를 통해 팀은 코어 바이너리를 다시 빌드할 필요 없이 에이전트 페르소나와 하위 에이전트 계층을 빠르게 반복 개발할 수 있어서, 설정과 비즈니스 로직을 더 쉽게 분리할 수 있게 해줘요.
다중 언어 미래: A2A 프로토콜 안정성
어떤 에이전트도 외딴섬처럼 존재하지 않아요. Agent2Agent (A2A) 프로토콜은 Go, Java, Python 에이전트 간의 원활한 통신을 지원하도록 개선되었어요. ADK Go는 이벤트 순서 지정과 응답 집계를 자동으로 관리해서 이런 오케스트레이션을 간소화해요. 이 덕분에 원격 에이전트의 데이터가 부분 응답 스트림 중에도 안정적으로 처리되도록 보장되죠. 이러한 다중 에이전트 프로토콜 세부 사항을 처리함으로써, A2A는 에이전트가 작업을 위임하고 통찰력을 효과적으로 공유하는 데 집중할 수 있도록 해줘요.
다음은 무엇일까요?
오늘 바로 시작하기 가이드를 통해 시작하고, GitHub 저장소에 접속해서 차세대 프로덕션급 AI를 구축해보세요.
Reddit이나 ADK 커뮤니티 구글 그룹에 참여해서 여러분이 만들고 있는 것을 공유하는 것도 잊지 마세요. 여러분의 이야기를 듣는 걸 정말 좋아해요!
Go 에이전트의 미래가 바로 여기에 있어요. 함께 만들어가요!
Next