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

설치
# 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 옵션
| Option | Description | Default |
|---|---|---|
--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를 클릭하여 캔버스에 추가합니다.

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에 추가합니다.

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

채팅은 다음을 지원합니다:
- 실시간 SSE 스트리밍 응답
- Agent 실행 애니메이션
- 디버깅을 위한 이벤트 추적 패널
6단계: 생성된 코드 보기
View Code를 클릭하여 시각적 디자인에서 생성된 프로덕션 준비 Rust 코드를 확인합니다.

이 코드를 복사하거나 Compile을 사용하여 완전한 Rust 프로젝트를 생성할 수 있습니다.
기능
Agent 유형
| Agent | 설명 |
|---|---|
| LLM Agent | LLM 기반 단일 에이전트 |
| Sequential | 하위 에이전트를 순서대로 실행 |
| Parallel | 하위 에이전트를 동시에 실행 |
| Loop | 종료 조건이 충족될 때까지 반복 |
| Router | 입력에 따라 하위 에이전트로 라우팅 |
Tool 유형
| Tool | 설명 |
|---|---|
| Function | 코드 편집기가 있는 사용자 정의 Rust 함수 |
| MCP | Model Context Protocol 서버 |
| Browser | 46가지 WebDriver 자동화 액션 |
| Google Search | 근거 기반 웹 검색 |
| Load Artifact | 파일을 컨텍스트로 로드 |
실시간 채팅
스튜디오에서 에이전트를 직접 테스트:
- 실시간 SSE 스트리밍 응답
- Agent 실행 애니메이션
- 디버깅을 위한 이벤트 추적 패널
- Session 메모리 지속성
코드 생성
시각적 디자인을 프로덕션 코드로 변환:
- 코드 보기 - 구문 강조 기능으로 생성된 Rust 미리보기
- 컴파일 - 완전한 Rust 프로젝트 생성
- 빌드 - 실시간 출력으로 실행 파일 컴파일
- 실행 - 빌드된 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/projects | GET | 모든 프로젝트 나열 |
/api/projects | POST | 새 프로젝트 생성 |
/api/projects/:id | GET | 프로젝트 세부 정보 가져오기 |
/api/projects/:id | PUT | 프로젝트 업데이트 |
/api/projects/:id | DELETE | 프로젝트 삭제 |
코드 생성
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/api/projects/:id/codegen | POST | Rust 코드 생성 |
/api/projects/:id/build | POST | 프로젝트 컴파일 |
/api/projects/:id/run | POST | 빌드된 실행 파일 실행 |
채팅
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/api/chat | POST | 메시지 전송 (SSE stream) |
환경 변수
| 변수 | 설명 | 필수 |
|---|---|---|
GOOGLE_API_KEY | Gemini API 키 | 예 (Gemini의 경우) |
OPENAI_API_KEY | OpenAI 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을 내보내고 버전 관리하세요. |
| 템플릿 사용하기 | 일반적인 패턴에 대해서는 템플릿으로 시작하세요. |
이전: ← 메모리 | 다음: 개발 가이드라인 →