콘텐츠로 이동하기
개발 및 IT운영

에이전트 개발 키트 하나로 5가지 언어 지원

2026년 10월 21일
https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-h.max-2500x2500.jpg
Karl Weinmeister

Director, Developer Relations

*이 콘텐츠는 AI 번역 도구를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역에는 오류나 누락이 포함될 수 있습니다. 정확한 정보는 영문 원본을 참고해 주시기 바랍니다.


에이전트에 대해 이야기할 때 반드시 Python만을 의미하는 것은 아닙니다. 오늘날의 현대적인 생태계에서 에이전트는 Cloud Run에서 높은 동시 실행 성능을 갖춘 Go 마이크로서비스로 구동될 수도 있고, 브라우저 탭에서 실행되며 Chrome의 온디바이스 모델을 호출할 수도 있습니다. 하지만 여전히 많은 에이전트 프레임워크가 Python 전용 스택만을 고려하고 있습니다. 이러한 가정으로 인해 팀은 에이전트 워크로드만을 위해 Python 서비스를 가동하거나 자체 언어로 에이전트 조정 로직을 처음부터 빌드해야 합니다.

Google의 에이전트 개발 키트(ADK)는 Python, Go, TypeScript, Java, Kotlin을 폭넓게 지원하여 이러한 절충점을 없애줍니다. ADK의 각 버전은 자체 런타임 및 유형 시스템을 위해 처음부터 빌드되는 동시에 개방형 프로토콜을 통한 상호 운용성을 갖춘 통합 아키텍처를 공유합니다.

공유 기반

5가지 언어 모두가 동일한 개방형 프로토콜을 지원하기 때문에, 사용하는 언어에 따라 아키텍처가 고정되지는 않습니다. ADK에는 모든 언어로 된 모델 컨텍스트 프로토콜 클라이언트가 포함되어 있으므로 MCP 서버로 노출된 커스텀 도구를 즉시 호출할 수 있습니다.

멀티 에이전트 시스템의 경우 ADK는 Agent2Agent (A2A) 프로토콜을 지원하여 에이전트가 HTTP를 통해 원격 에이전트와 통신할 수 있도록 합니다. A2A를 통해 다양한 언어 또는 프레임워크로 작성된 에이전트가 상호 운용될 수 있습니다.

에이전트 중심 시작

시작하려면 일회성 설정 명령어를 실행하여 Google Cloud 인증을 확인하고, CLI를 설치한 다음, Antigravity, Claude Code 또는 Codex와 같은 코딩 에이전트에서 퍼스트 파티 ADK 스킬을 설정합니다.

로드 중...

그런 다음 scaffold 명령어를 실행하여 A2A 엔드포인트와 Cloud Run, Gemini Enterprise Agent Runtime 또는 Google Kubernetes Engine(GKE)용 배포 구성이 포함된 작업 프로젝트를 생성합니다.

로드 중...

Python용 ADK 및 Kotlin용 ADK 저장소는 모두 소스 트리에 에이전트 빌더 기술을 제공하며, adk.dev/llms.txt 리소스는 5개 언어 모두에서 코딩 에이전트에 주문형 API 참고 리소스를 제공합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/one-agent-development-kit-five-languages-a.max-1700x1700.jpg

코딩 에이전트 스킬은 프로젝트를 스캐폴딩하고, MCP와 A2A는 5개의 언어 런타임을 모두 연결합니다.

각 ADK의 실습 뷰

5가지 언어의 차이를 가장 명확하게 느끼는 방법은 각 언어로 동일한 날씨 도구를 정의하고 그 설계가 런타임에 어떻게 부합하는지 확인하는 것입니다.

Python

Python용 ADK에서는 데코레이터나 스키마 빌더 클래스가 필요하지 않습니다. 일반 Python 함수를 tools 파라미터에 전달하면 ADK가 시작 시 함수의 시그니처, 유형 힌트, docstring을 검사하여 도구 선언과 Pydantic 파라미터 스키마를 자동으로 구성합니다.

lang-py
로드 중...

Python은 빠른 프로토타입 제작뿐만 아니라 ADK의 참조 구현으로서, 가장 광범위한 Google Cloud 통합 기능(BigQuery, Spanner, Bigtable)과 모델 어댑터(Gemini, Anthropic, OpenAI, LiteLLM)를 함께 제공합니다. adk eval 또는 agents-cli eval run 명령어와 함께 사용하면, 평가 도구가 지속적 통합(CI) 단계에서 골든 데이터 세트를 기준으로 에이전트의 궤적을 분석합니다. 이를 통해 프로덕션 서비스가 다른 언어로 실행되는 환경에서도 전체 시스템을 엔드 투 엔드로 테스트할 수 있습니다.

Go

Python이 실험과 평가 분야를 선도한다면, ADK for Go는 프로덕션 백엔드 엔지니어링에 가장 적합한 선택입니다.

Go 도구 함수는 agent.Context 구성과 강력한 유형의 입력 구조체를 사용합니다. functiontool.New 함수는 Go 제네릭을 사용하여 struct 태그에서 입력 및 출력 스키마를 모두 추론합니다.

로드 중...

functiontool.New 함수는 핸들러의 시그니처에 대해 제네릭을 지원하므로, Go 컴파일러는 바이너리가 실행되기 전에 함수가 예상된 계약을 준수하는지 미리 검증해 줍니다.

Go는 Python에 이어  ADK 2.0 그래프 워크플로 런타임을 지원하는 첫 번째 언어이기도 합니다. LLM 추론과 함께 결정론적인 제어 흐름이 필요한 경우, workflow.New 함수를 사용하면 에이전트와 일반 Go 함수를 조건부 라우팅 및 병렬 단계가 포함된 방향성 그래프로 연결할 수 있습니다.

로드 중...

Go는 Cloud Run과 GKE의 프로덕션에서 특히 뛰어난 성능을 발휘합니다. 컴파일된 Go 에이전트는 언어 VM이나 무거운 종속 항목 트리 없이 약 2MiB Google distroless 정적 기본 이미지에 가볍게 패키징됩니다. 정적 Go 바이너리는 컨테이너가 시작되는 즉시 포트에 바인딩되므로 동적 언어의 모듈 가져오기와 JVM 서비스의 JAR 압축해제 및 JIT 준비를 건너뜁니다.

일단 실행되고 나면, Go의 동시 실행 모델은 에이전트 워크로드에 자연스럽게 어우러집니다. 각 goroutine은 2KB 스택과 최소한의 스케줄링 오버헤드로 시작하므로, 단일 인스턴스에서 수천 개의 동시 스트리밍 요청과 도구 호출을 다중화할 수 있습니다. Go용 ADK에는 기본 제공되는 A2A 서버 핸들러와 OpenTelemetry 추적 기능도 포함되어 있습니다.

TypeScript

TypeScript는 JavaScript로 컴파일할 때 유형 주석을 삭제하므로 런타임 리플렉션을 사용할 수 없습니다. 대신 TypeScript용 ADK는 Zod와 페어링됩니다. z.object(…) 스키마를 FunctionTool 함수에 전달하면 TypeScript가 단일 선언에서 execute 콜백의 매개변수 유형을 정적으로 추론합니다.

로드 중...

런타임 입력 검증, 모델로 전송되는 JSON 스키마, execute 콜백 내의 IDE 자동 완성은 모두 단일 정보 소스를 기반으로 유기적으로 작동합니다.

TypeScript는 ADK 2.0 그래프 워크플로 엔진에서도 실행되며 독립형 브라우저 번들도 함께 제공합니다. Node.js 서비스 외에도 페이지 수준 도구용 WebMCP와 Chrome의 온디바이스 Prompt API를 사용하여 브라우저 탭에서 직접 ADK 에이전트를 실행할 수 있습니다.

Java

Java용 ADK는 Maven, Gradle, Spring Boot를 표준으로 사용하는 팀에 적합합니다. 메서드 파라미터에 @Schema 주석을 추가하고 유연한 LlmAgent.builder() API를 사용하여 에이전트를 조합합니다.

로드 중...

런타임 시 러너는  RxJava를 통해 에이전트 이벤트를 반응형으로 스트리밍합니다. Java용 ADK는 로컬 테스트 및 기존 JVM 앱을 위해 Maven Dev UI 플러그인을 제공하며, Spring AI와 LangChain4j용 퍼스트 파티 브리지도 함께 지원합니다.

Kotlin

Kotlin용 ADK는 빌드 시간 안전성을 무엇보다 중요하게 여깁니다. Kotlin Symbol Processing(KSP) 컴파일러 플러그인은 빌드 시간에 @Tool 및 @Param 주석을 읽고 도구 스키마를 바이트 코드로 직접 내보냅니다.

로드 중...

도구 시그니처가 지원되지 않는 유형을 사용하거나 null을 허용하지 않는 파라미터에 기본값을 선언하는 경우, 프로덕션 환경에서 오류가 발생하기 전에 Gradle 빌드 단계에서 즉시 실패 처리됩니다. .generatedTools() 함수는 런타임 리플렉션을 사용하지 않으므로 Android R8 축소 과정에서도 코드가 유실되지 않고 그대로 유지됩니다.

이러한 제로 리플렉션 설계 덕분에 Android 기기 로컬 환경에서 전체 에이전트 루프를 실행할 수 있습니다. Spring AI 브리지와 실험용 ADK 2.0 그래프 워크플로를 포함한 JVM 서버 지원을 제공합니다. 온디바이스 환경에서 Kotlin용 ADK는 도구 호출을 위해 LiteRT-LM과 통합되며, 텍스트 생성에는 ML Kit(Gemini Nano)를 활용합니다. 또한 로컬 상태를 위한 Room 및 AppSearch, OS 수준 작업을 위한 Android AppFunctions와도 연동되며, 이 모든 기능은 네트워크 연결 없이도 작동합니다.

타협할 필요 없는 선택

ADK에서 5가지 네이티브 언어를 지원하므로, 조직 전체에서 하나의 런타임만 고집할 필요가 없습니다. ADK의 모든 버전은 MCP와 A2A를 지원하므로 시스템의 각 구성요소에 가장 적합한 언어를 선택해 사용할 수 있습니다.

Google의 ADK를 사용하여 에이전트를 빌드할 때 어떤 언어를 사용해 보셨나요? 현재 어떤 스택을 사용하고 계신지 X, LinkedIn 또는 Bluesky를 통해 알려주세요.

게시 위치