ADK(Agent Development Kit) 관련

ADK Runtime - RunConfig

alienbuddy 2025. 7. 11. 11:52

📌 개요

  • RunConfig는 ADK 에이전트 실행 시 런타임 동작 방식을 제어하는 설정 객체입니다.
  • LLM 호출 제한, 스트리밍 방식, 음성 합성, 아티팩트 저장 등 다양한 실행 옵션을 제공합니다.

🧩 주요 설정 항목 정리

파라미터                                   설명                                      기본값                             비고
streaming_mode 응답 스트리밍 방식 지정 StreamingMode.NONE SSE, BIDI 가능
max_llm_calls LLM 호출 최대 횟수 제한 500 0 이하이면 무제한(경고 발생)
speech_config 음성 합성 설정 없음 language_code, voice_name 포함
response_modalities 응답 모달리티 지정 None → 기본은 "AUDIO" 예: ["TEXT", "AUDIO"]
save_input_blobs_as_artifacts 입력 데이터를 아티팩트로 저장 False 디버깅/감사용
support_cfc CFC(조합적 함수 호출) 사용 False Python only, streaming_mode=SSE 필수
output_audio_transcription 음성 출력 자동 텍스트 변환 없음 접근성/기록용
 

🔊 음성 관련 설정 (speech_config)

구조

 
  • language_code: 음성 언어 코드 (ISO 639, 예: "en-US")
  • voice_name: 사전 구축된 음성 이름 (예: "Kore")
  • Live API 사용 시만 적용됨

🔁 스트리밍 모드 (streaming_mode)

모드설명
NONE 일반 모드 (전체 응답 단위로 반환)
SSE Server-Sent Events, 텍스트를 토큰 단위로 스트리밍
BIDI 양방향 스트리밍 (실시간 상호작용)
 

💡 SSE는 실시간 반응성에 유리하며, support_cfc 활성화 시 필요


🔧 고급 기능: support_cfc

  • CFC (Compositional Function Calling): LLM이 함수 조합 호출을 스스로 결정하도록 허용
  • 조건:
    • streaming_mode가 반드시 SSE
    • 현재 Python에서만 지원
    • 실험적 기능 (향후 변경 가능성 있음)

🧠 LLM 호출 제한 (max_llm_calls)

값 범위의미
1 ~ 500+ 지정한 횟수로 제한
0 이하 무제한 (주의 요망)
너무 큰 값 (sys.maxsize 등) 오류 발생 가능성 있음
 

⚠️ API 비용 및 실행 안정성을 위해 제한 설정 권장


💾 입력 아티팩트 저장 (save_input_blobs_as_artifacts)

  • 사용자가 업로드한 파일 등을 Artifact로 자동 저장
  • 디버깅, 기록, 감사를 위한 옵션
  • 기본값은 False

🛠 예시별 RunConfig 설정

✅ 기본 설정 (비스트리밍, 100회 제한)


✅ SSE 스트리밍 활성화


✅ 음성 + CFC + 아티팩트 저장

 


⚠️ 유의 사항

  • 지원되지 않는 조합: support_cfc=True이지만 streaming_mode≠SSE → 오류
  • 응답 모달리티를 지정하지 않으면 기본 "AUDIO" 사용
  • Java ADK에서는 해당 클래스가 immutable data class 형태로 구현됨

'ADK(Agent Development Kit) 관련' 카테고리의 다른 글

ADK - Sessions & Memory : Session  (0) 2025.07.14
ADK - Sessions & Memory  (2) 2025.07.12
ADK - Runtime  (4) 2025.07.09
ADK Tool - 인증 도구  (1) 2025.07.09
ADK Tool - OpenAPI  (2) 2025.07.08