블로그로 돌아가기
릴리스v0.2.0안정화그래프-에이전트실시간브라우저평가스튜디오

ADK-Rust v0.2.0: 첫 번째 안정화 릴리스

ADK-Rust v0.2.0 출시 - 그래프 에이전트, 실시간 음성, 브라우저 자동화, 평가 프레임워크 및 ADK Studio 시각적 빌더를 포함하는 첫 번째 안정화 릴리스입니다.

15분 읽기

ADK-Rust v0.2.0: 첫 번째 안정화 릴리스

프로덕션 준비가 된 AI 에이전트 구축을 위한 Rust 프레임워크의 첫 번째 안정화 릴리스인 ADK-Rust v0.2.0을 발표하게 되어 기쁩니다. 이번 릴리스는 중요한 새 기능, 향상된 안정성, 그리고 향후 시맨틱 버저닝에 대한 약속과 함께 주요 이정표를 세웁니다.

v0.2.0의 새로운 기능

🔀 그래프 에이전트 (LangGraph 스타일 워크플로)

새로운 adk-graph 크레이트는 Rust에 LangGraph 스타일 워크플로 오케스트레이션을 제공합니다:

use adk_graph::{prelude::*, node::AgentNode};

let graph = GraphAgent::builder("support_router")
    .channels(&["input", "category", "response"])
    .node(classifier_node)
    .node(billing_node)
    .node(technical_node)
    .edge(START, "classifier")
    .conditional_edges("classifier", Router::by_field("category", vec![
        ("billing", "billing_agent"),
        ("technical", "technical_agent"),
    ]))
    .edge("billing_agent", END)
    .edge("technical_agent", END)
    .build()?;

주요 기능:

  • 상태 관리: 자동 병합 기능이 있는 유형화된 상태 채널
  • 조건부 라우팅: 상태 필드 또는 사용자 지정 로직 기반 라우팅
  • 체크포인트: 내결함성을 위한 SQLite 및 인메모리 백엔드
  • 휴먼 인 더 루프: 인간 승인을 위한 워크플로 중단
  • 순환 그래프: 반복 제한이 있는 ReAct 패턴 지원

🎙️ 실시간 음성 에이전트

양방향 오디오 스트리밍으로 음성 지원 AI 비서를 구축하세요:

use adk_realtime::{RealtimeAgent, openai::OpenAIRealtimeModel};

let agent = RealtimeAgent::builder("voice_assistant")
    .model(Arc::new(OpenAIRealtimeModel::new(&api_key, "gpt-4o-realtime-preview")))
    .instruction("You are a helpful voice assistant.")
    .voice("alloy")
    .server_vad()  // Voice Activity Detection
    .build()?;

지원되는 공급자:

  • OpenAI 실시간 API (gpt-4o-realtime-preview, gpt-realtime)
  • Google Gemini 라이브 API (gemini-2.0-flash-live-preview)

기능:

  • 양방향 오디오 스트리밍 (PCM16, G711)
  • 서버 측 음성 활동 감지
  • 음성 대화 중 도구 호출
  • 다중 에이전트 핸드오프

🌐 브라우저 자동화

adk-browser 크레이트는 웹 자동화를 위한 46가지 WebDriver 도구를 제공합니다:

use adk_browser::{BrowserSession, BrowserToolset, BrowserConfig};

let session = Arc::new(BrowserSession::new(
    BrowserConfig::new().webdriver_url("http://localhost:4444")
));
let tools = BrowserToolset::new(session).all_tools();

let agent = LlmAgentBuilder::new("web_agent")
    .model(model)
    .instruction("Browse the web and extract information.")
    .tools(tools)
    .build()?;

도구 카테고리:

  • 탐색: browser_navigate, browser_back, browser_forward
  • 추출: browser_extract_text, browser_extract_links, browser_extract_html
  • 상호 작용: browser_click, browser_type, browser_select
  • 양식: browser_fill_form, browser_submit
  • 스크린샷: browser_screenshot, browser_screenshot_element
  • JavaScript: browser_evaluate, browser_evaluate_async

📊 에이전트 평가 프레임워크

adk-eval 크레이트로 에이전트 동작을 테스트하고 검증하세요:

use adk_eval::{Evaluator, EvaluationConfig, EvaluationCriteria};

let config = EvaluationConfig::with_criteria(
    EvaluationCriteria::exact_tools()
        .with_response_similarity(0.8)
);

let evaluator = Evaluator::new(config);
let report = evaluator
    .evaluate_file(agent, "tests/my_agent.test.json")
    .await?;

assert!(report.all_passed());

평가 기능:

  • 궤적 검증 (도구 호출 시퀀스)
  • 응답 유사성 (자카드, 레벤슈타인, ROUGE)
  • LLM 판단 의미 일치
  • 사용자 지정 기준을 사용한 루브릭 기반 점수 매기기
  • 안전 및 환각 감지

🎨 ADK Studio: 시각적 에이전트 빌더

AI 에이전트 구축을 위한 드래그 앤 드롭 인터페이스:

cargo install adk-studio
adk-studio

기능:

  • 시각적 워크플로 설계를 위한 ReactFlow 캔버스
  • 전체 에이전트 팔레트: LLM, 순차, 병렬, 루프, 라우터
  • 도구 통합: 함수, MCP, 브라우저, Google 검색
  • SSE 스트리밍을 통한 실시간 채팅 테스트
  • 프로덕션 Rust로 원클릭 코드 생성

🛡️ 가드레일

adk-guardrail 크레이트를 사용한 입력/출력 유효성 검사:

use adk_guardrail::{Guardrails, PiiRedactor, ContentFilter};

let guardrails = Guardrails::new()
    .add(PiiRedactor::default())
    .add(ContentFilter::block_harmful());

let safe_input = guardrails.process_input(user_message)?;
let safe_output = guardrails.process_output(agent_response)?;

내장 가드레일:

  • PII 수정 (이메일, 전화번호, SSN, 신용카드)
  • 콘텐츠 필터링 (유해, 부적절)
  • JSON 스키마 유효성 검사
  • 사용자 지정 유효성 검사 규칙

🖼️ 동적 UI 생성

adk-ui 크레이트는 에이전트가 풍부한 인터페이스를 렌더링할 수 있도록 합니다:

use adk_ui::{UiToolset, UI_AGENT_PROMPT};

let agent = LlmAgentBuilder::new("ui_assistant")
    .instruction(UI_AGENT_PROMPT)
    .tools(UiToolset::all_tools())
    .build()?;

구성 요소: 카드, 테이블, 차트, 양식을 포함한 28가지 UI 구성 요소 템플릿: 일반적인 패턴을 위한 10가지 사전 구축된 템플릿 React 클라이언트: npm install @zavora-ai/adk-ui-react

주요 변경 사항

RunnerConfig 변경 사항

RunnerConfig 구조체에 이제 run_config 필드가 포함됩니다:

// Before (v0.1.x)
let runner = Runner::new(RunnerConfig {
    app_name: "my_app".to_string(),
    agent: agent.clone(),
    session_service: session_service.clone(),
    artifact_service: None,
    memory_service: None,
})?;

// After (v0.2.0)
let runner = Runner::new(RunnerConfig {
    app_name: "my_app".to_string(),
    agent: agent.clone(),
    session_service: session_service.clone(),
    artifact_service: None,
    memory_service: None,
    run_config: None,  // NEW: Optional RunConfig for execution settings
})?;

종속성 업데이트

  • sqlx 0.7에서 0.8로 업그레이드 (SQLite 호환성을 위해 필요)
  • Rust 2024 에디션 (Rust 1.85+ 필요)

마이그레이션 가이드

  1. Cargo.toml 업데이트:

    adk-rust = "0.2.0"
  2. RunnerConfig에 run_config: None 추가:

    RunnerConfig {
        // ... existing fields ...
        run_config: None,
    }
  3. SQLite 세션 사용 시 sqlx 업데이트:

    sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }

성능 향상

  • 스트리밍 최적화: 이벤트 스트리밍에서 메모리 할당 감소
  • 세션 캐싱: 세션 조회 성능 향상
  • 도구 실행: 가능한 경우 병렬 도구 실행

문서

모든 문서는 v0.2.0에 맞춰 업데이트되었습니다:

문서는 이제 영어, 스페인어, 중국어, 일본어, 포르투갈어, 독일어, 프랑스어, 아랍어, 힌디어, 한국어를 포함한 9개 언어로 제공됩니다.

다음 단계

v0.3.0에 대한 작업이 이미 진행 중이며, 다음과 같은 기능이 계획되어 있습니다:

  • 클라우드 통합 (AWS Bedrock, Azure OpenAI, GCP Vertex AI)
  • 더 많은 벡터 데이터베이스 백엔드를 통한 향상된 메모리 시스템
  • 워크플로 템플릿 및 사전 구축된 에이전트 패턴
  • 성능 프로파일링 및 최적화 도구

시작하기

# Create a new project
cargo new my_agent
cd my_agent

# Add ADK-Rust
echo 'adk-rust = "0.2.0"' >> Cargo.toml
echo 'tokio = { version = "1.40", features = ["full"] }' >> Cargo.toml

# Set your API key
export GOOGLE_API_KEY="your-api-key"

# Run an example
cargo run --example quickstart

감사드립니다

코드, 문서, 버그 보고서 및 피드백을 통해 이번 릴리스에 기여해주신 모든 분들께 진심으로 감사드립니다. ADK-Rust는 커뮤니티에 의해, 커뮤니티를 위해 만들어집니다.

링크:

즐거운 빌딩 되세요! 🦀🤖

ADK-Rust v0.5.0을 사용해 볼 준비가 되셨나요?

AI 에이전트 구축을 위한 가장 강력한 Rust 프레임워크를 시작하세요.