ADK Studio

드래그 앤 드롭으로 AI Agent를 구축하기 위한 시각적 개발 환경.

개요

ADK Studio는 ADK-Rust로 구축된 AI Agent를 설계, 테스트 및 배포하기 위한 로우코드 인터페이스를 제공합니다. 복잡한 다중 Agent 워크플로우를 시각적으로 생성한 다음, 프로덕션 Rust 코드로 컴파일할 수 있습니다.

ADK Studio 메인 인터페이스

설치

# Install from crates.io (self-contained binary)
cargo install adk-studio

# Or build from source
cargo build --release -p adk-studio

빠른 시작

# Start the studio server
adk-studio

# Open in browser
open http://localhost:3000

CLI 옵션

OptionDescriptionDefault
--port, -p서버 포트3000
--host, -h바인드 주소127.0.0.1
--dir, -d프로젝트 디렉터리~/.local/share/adk-studio/projects
--static, -s정적 파일 디렉터리 재정의(내장)
# Bind to all interfaces for remote access
adk-studio --host 0.0.0.0 --port 8080

# Custom projects directory
adk-studio --dir ./my-projects

단계별 튜토리얼

이 안내를 따라 ADK Studio에서 첫 번째 AI Agent를 구축해 보세요.

1단계: 새 프로젝트 생성

오른쪽 상단 모서리에 있는 + New Project 버튼을 클릭합니다.

새 프로젝트 생성

프로젝트 이름을 입력하고 (예: "Demo Project") Create를 클릭합니다.

2단계: 캔버스에 Agent 추가

왼쪽 사이드바에는 사용 가능한 Agent 유형이 포함된 Agent Palette가 있습니다:

  • LLM Agent - 단일 AI Agent (언어 모델 기반)
  • Sequential - 서브 Agent를 순서대로 실행
  • Parallel - 서브 Agent를 동시에 실행
  • Loop - 종료 조건까지 반복
  • Router - 입력에 따라 서브 Agent로 라우팅

LLM Agent를 클릭하여 캔버스에 추가합니다.

캔버스에 있는 Agent

3단계: Agent 구성

Agent를 선택하면 오른쪽에 Properties Panel이 나타납니다. 여기에서 다음을 구성할 수 있습니다:

  • Name - Agent의 식별자
  • Model - LLM 제공자 및 모델 (Gemini, OpenAI 등)
  • Instructions - Agent의 시스템 프롬프트

속성 패널

4단계: Agent에 Tool 추가

왼쪽 사이드바를 아래로 스크롤하여 Tool Palette를 찾습니다:

  • Function - 코드 편집기가 있는 사용자 정의 Rust 함수
  • MCP - Model Context Protocol 서버
  • Browser - 46가지 WebDriver 자동화 액션
  • Google Search - 접지형 웹 검색
  • Load Artifact - 컨텍스트에 파일 로드

Tool을 클릭하여 Agent에 추가합니다.

Google Search Tool이 있는 Agent

5단계: 구축 및 테스트

Build Project를 클릭하여 Agent를 컴파일합니다. 구축이 완료되면 하단의 Chat Panel을 사용하여 실제 대화로 Agent를 테스트합니다.

채팅 패널

채팅은 다음을 지원합니다:

  • 실시간 SSE 스트리밍 응답
  • Agent 실행 애니메이션
  • 디버깅을 위한 이벤트 추적 패널

6단계: 생성된 코드 보기

View Code를 클릭하여 시각적 디자인에서 생성된 프로덕션 준비 Rust 코드를 확인합니다.

생성된 코드 보기

이 코드를 복사하거나 Compile을 사용하여 완전한 Rust 프로젝트를 생성할 수 있습니다.


기능

Agent 유형

Agent설명
LLM AgentLLM 기반 단일 에이전트
Sequential하위 에이전트를 순서대로 실행
Parallel하위 에이전트를 동시에 실행
Loop종료 조건이 충족될 때까지 반복
Router입력에 따라 하위 에이전트로 라우팅

Tool 유형

Tool설명
Function코드 편집기가 있는 사용자 정의 Rust 함수
MCPModel Context Protocol 서버
Browser46가지 WebDriver 자동화 액션
Google Search근거 기반 웹 검색
Load Artifact파일을 컨텍스트로 로드

실시간 채팅

스튜디오에서 에이전트를 직접 테스트:

  • 실시간 SSE 스트리밍 응답
  • Agent 실행 애니메이션
  • 디버깅을 위한 이벤트 추적 패널
  • Session 메모리 지속성

코드 생성

시각적 디자인을 프로덕션 코드로 변환:

  1. 코드 보기 - 구문 강조 기능으로 생성된 Rust 미리보기
  2. 컴파일 - 완전한 Rust 프로젝트 생성
  3. 빌드 - 실시간 출력으로 실행 파일 컴파일
  4. 실행 - 빌드된 Agent 실행

아키텍처

┌─────────────────────────────────────────────────────────────┐
│                     ADK Studio UI                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Palette   │  │   Canvas    │  │   Properties        │ │
│  │  - Agents   │  │  ReactFlow  │  │  - Name             │ │
│  │  - Tools    │  │  Workflow   │  │  - Model            │ │
│  │             │  │  Designer   │  │  - Instructions     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ HTTP/SSE
┌─────────────────────────────────────────────────────────────┐
│                    ADK Studio Server                        │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Routes    │  │   Codegen   │  │   Storage           │ │
│  │  /api/*     │  │  Rust code  │  │  Projects           │ │
│  │  /chat      │  │  generation │  │  File-based         │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ Build
┌─────────────────────────────────────────────────────────────┐
│                   Generated Rust Project                    │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Cargo.toml + src/main.rs                           │   │
│  │  Uses: adk-rust, adk-agent, adk-model, etc.        │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

API 엔드포인트

프로젝트

엔드포인트메서드설명
/api/projectsGET모든 프로젝트 나열
/api/projectsPOST새 프로젝트 생성
/api/projects/:idGET프로젝트 세부 정보 가져오기
/api/projects/:idPUT프로젝트 업데이트
/api/projects/:idDELETE프로젝트 삭제

코드 생성

엔드포인트메서드설명
/api/projects/:id/codegenPOSTRust 코드 생성
/api/projects/:id/buildPOST프로젝트 컴파일
/api/projects/:id/runPOST빌드된 실행 파일 실행

채팅

엔드포인트메서드설명
/api/chatPOST메시지 전송 (SSE stream)

환경 변수

변수설명필수
GOOGLE_API_KEYGemini API 키예 (Gemini의 경우)
OPENAI_API_KEYOpenAI API 키예 (OpenAI의 경우)
ADK_DEV_MODE로컬 워크스페이스 의존성 사용아니요
RUST_LOG로그 레벨아니요 (기본값: info)

생성된 코드 구조

my-project/
├── Cargo.toml
└── src/
    └── main.rs

생성된 main.rs 예시:

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.0-flash")?;

    let agent = LlmAgentBuilder::new("assistant")
        .description("Helpful AI assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

템플릿

Studio에는 미리 빌드된 템플릿이 포함되어 있습니다:

  • Basic Assistant - 간단한 LLM 에이전트
  • Research Agent - Google 검색 기능이 있는 에이전트
  • Support Router - 다중 에이전트 라우팅
  • Code Assistant - 코드 도구가 있는 에이전트

모범 사례

실천 사항설명
간단하게 시작하기단일 LLM 에이전트로 시작하여 복잡성을 추가하세요.
자주 테스트하기채팅 패널을 사용하여 동작을 검증하세요.
코드 검토하기배포 전에 생성된 코드를 검토하세요.
프로젝트 버전 관리프로젝트 JSON을 내보내고 버전 관리하세요.
템플릿 사용하기일반적인 패턴에 대해서는 템플릿으로 시작하세요.

이전: ← 메모리 | 다음: 개발 가이드라인 →