ADK-Rust 소개
Agent Development Kit (ADK)는 AI 에이전트를 개발하고 배포하기 위한 유연하고 모듈화된 프레임워크입니다. Gemini 및 Google 생태계에 최적화되어 있지만, ADK는 모델 불가지론적이며, 배포 불가지론적이며, 다른 프레임워크와의 호환성을 위해 구축되었습니다. ADK는 에이전트 개발이 소프트웨어 개발처럼 느껴지도록 설계되어, 개발자가 간단한 작업부터 복잡한 워크플로우에 이르는 에이전트 아키텍처를 더 쉽게 생성, 배포 및 오케스트레이션할 수 있도록 합니다.
참고: ADK-Rust v0.2.0에는 Rust 1.85.0 이상이 필요합니다.
설치
프로젝트에 ADK-Rust를 추가하세요:
cargo add adk-rust
또는 Cargo.toml에 추가하세요:
[dependencies]
adk-rust = "0.2.0"
tokio = { version = "1.40", features = ["full"] }
빠른 예제
use adk_rust::prelude::*;
use std::sync::Arc;
#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("GOOGLE_API_KEY")?;
let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
let agent = LlmAgentBuilder::new("assistant")
.description("A helpful AI assistant")
.model(Arc::new(model))
.build()?;
println!("Agent '{}' ready!", agent.name());
Ok(())
}
아키텍처 개요
ADK-Rust는 모듈성 및 확장성을 위해 설계된 계층형 아키텍처를 사용합니다:
┌─────────────────────────────────────────────────────────────┐
│ 애플리케이션 계층 │
│ CLI • REST Server • 웹 UI │
├─────────────────────────────────────────────────────────────┤
│ Runner 계층 │
│ Agent 실행 • 컨텍스트 관리 │
├─────────────────────────────────────────────────────────────┤
│ Agent 계층 │
│ LlmAgent • CustomAgent • Workflow Agents │
├─────────────────────────────────────────────────────────────┤
│ 서비스 계층 │
│ Models • Tools • Sessions • Artifacts • Memory │
└─────────────────────────────────────────────────────────────┘
핵심 개념
ADK-Rust는 강력한 AI 에이전트를 생성하기 위해 함께 작동하는 여러 핵심 기본 요소들을 기반으로 구축됩니다:
에이전트
특정 작업을 위해 설계된 근본적인 작업 단위입니다. ADK-Rust는 여러 에이전트 유형을 제공합니다:
- LlmAgent: 추론 및 의사 결정을 위해 Large Language Model을 사용합니다. 대부분의 사용 사례에서 기본 에이전트 유형입니다.
- RealtimeAgent: 양방향 오디오 스트리밍을 위해 OpenAI Realtime API 또는 Gemini Live API를 사용하는 음성 지원 에이전트입니다.
- GraphAgent: 상태 관리, 체크포인트 및 휴먼 인 더 루프(human-in-the-loop) 지원을 포함하는 LangGraph 스타일 워크플로우 오케스트레이션입니다.
- CustomAgent: 에이전트 동작을 완전히 제어하여 사용자 지정 로직을 구현할 수 있습니다.
- 워크플로우 에이전트: 미리 정의된 실행 경로를 따르는 결정론적 에이전트입니다:
SequentialAgent: 하위 에이전트를 순서대로 실행합니다ParallelAgent: 하위 에이전트를 동시에 실행합니다LoopAgent: 조건이 충족될 때까지 하위 에이전트를 반복적으로 실행합니다
도구
도구는 에이전트에게 대화 이상의 능력을 부여하여 외부 API와 상호 작용하고, 정보를 검색하거나, 사용자 지정 작업을 수행할 수 있게 합니다:
- FunctionTool: 모든 async Rust 함수를 도구로 래핑합니다
- GoogleSearchTool: 내장 웹 검색 기능
- BrowserToolset: 웹 자동화를 위한 46가지 WebDriver 도구 (탐색, 양식, 스크린샷 등)
- ExitLoopTool: LoopAgent에서 루프 종료를 제어합니다
- McpToolset: Model Context Protocol 서버와의 통합
세션
세션은 단일 대화의 컨텍스트를 처리하며 다음을 포함합니다:
- Session ID: 대화의 고유 식별자
- 이벤트: 대화 기록 (사용자 메시지, 에이전트 응답, 도구 호출)
- 상태: 스코프 접두사 (
app:,user:,temp:)가 있는 대화의 작업 메모리
콜백
에이전트 실행의 특정 지점에서 실행되는 사용자 지정 코드:
before_agent/after_agent: 에이전트 호출을 가로챕니다before_model/after_model: LLM 호출을 가로챕니다before_tool/after_tool: 도구 실행을 가로챕니다
콜백은 로깅, 가드레일, 캐싱 및 동작 수정을 가능하게 합니다.
아티팩트
파일, 이미지 또는 기타 텍스트가 아닌 콘텐츠를 위한 바이너리 데이터 저장소:
- 버전 관리와 함께 아티팩트를 저장하고 로드합니다
- 네임스페이스 범위 지정 (세션 수준 또는 사용자 수준)
- 플러그형 스토리지 백엔드
이벤트
세션 중에 발생하는 일을 나타내는 기본적인 통신 단위:
- 사용자 메시지
- 에이전트 응답
- 도구 호출 및 결과
- 상태 변경
이벤트는 대화 기록을 형성하고 재생 및 디버깅을 가능하게 합니다.
모델
LlmAgent를 구동하는 기본 LLM입니다. ADK-Rust는 Gemini에 최적화되어 있지만, Llm 트레이트를 통해 여러 제공업체를 지원합니다:
- Gemini: Google의 Gemini 모델 (
gemini-3-pro-preview,gemini-2.5-flash,gemini-2.5-pro) - OpenAI:
gpt-5.2,gpt-4o,gpt-4o-mini, Azure OpenAI - Anthropic:
claude-sonnet-4-5,claude-opus-4-5,claude-sonnet-4 - DeepSeek:
deepseek-chat,deepseek-reasoner(thinking mode 포함) - Groq:
llama-3.3-70b-versatile,mixtral-8x7b-32768를 사용한 초고속 추론 - Ollama:
llama3.2,qwen2.5,mistral,phi4를 사용한 로컬 추론 - mistral.rs: 하드웨어 가속을 통한 고성능 로컬 추론
모든 제공업체는 상호 교환 가능한 사용을 위해 동일한 트레이트를 구현합니다:
pub trait Llm: Send + Sync {
async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}
러너
실행 흐름을 관리하고, 에이전트 상호 작용을 조율하며, 백엔드 서비스와 협력하는 엔진입니다. 러너는 다음을 처리합니다:
- 에이전트 호출 및 응답 처리
- 도구 실행
- 세션 및 상태 관리
- 이벤트 스트리밍
기능 플래그
adk-rust는 모듈성을 위해 Cargo 기능을 사용합니다:
# Full installation (default)
adk-rust = "0.2.0"
# Minimal: Only agents + Gemini
adk-rust = { version = "0.2.0", default-features = false, features = ["minimal"] }
# Custom: Pick what you need
adk-rust = { version = "0.2.0", default-features = false, features = ["agents", "gemini", "tools"] }
사용 가능한 기능:
agents: Agent 구현 (LlmAgent, CustomAgent, workflow Agent)models: 모델 통합 (Gemini)openai: OpenAI 모델 (GPT-5, GPT-4o)anthropic: Anthropic 모델 (Claude 4.5, Claude 4)deepseek: DeepSeek 모델 (chat, reasoner)groq: Groq 초고속 추론ollama: 로컬 Ollama 모델tools: Tool 시스템 및 내장 Toolsessions: Session 관리artifacts: Artifact 저장소memory: 시맨틱 검색을 포함한 Memory 시스템runner: Agent 실행 런타임server: HTTP 서버 (REST + A2A)telemetry: OpenTelemetry 통합cli: CLI 런처
다른 언어
ADK는 여러 언어로 제공됩니다:
다음: 빠른 시작 →