ADK Go 1.0 출시!

발행: (2026년 4월 1일 AM 11:18 GMT+9)
7 분 소요

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 아키텍처를 확장하여 복잡한 다중‑에이전트 시스템을 지원합니다—단계별 및 동시 실행이 가능한 SequentialAgentsParallelAgents부터 반복적인 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 에이전트를 구축하세요.

Go 에이전트의 미래가 여기 있습니다. 함께 만들어갑시다.

Previous | Next

0 조회
Back to Blog

관련 글

더 보기 »

개발자 가이드: AI 에이전트 프로토콜

소개 이 가이드는 MCP와 A2A와 같은 여섯 개의 프로토콜을 소개하며, AI 에이전트가 작동하는 방식을 표준화함으로써 맞춤형 통합 코드를 없애는 것을 목표로 합니다.