ADK(Agent Development Kit) 관련

ADK Tool - Built-in Tools

alienbuddy 2025. 7. 3. 09:09

✅ Built-in Tools란?

  • ADK에서 미리 제공하는 도구로, 별도 개발 없이 사용할 수 있음
  • 대표 예시:
    • google_search – 웹 검색
    • BuiltInCodeExecutor – 코드 실행
    • VertexAiSearchTool – Vertex AI 문서 검색

✅ 사용 방법 (3단계)

  1. Import
  1. Initialize (필요 시)
    일부 도구는 파라미터 필요 (예: Vertex AI Search → 데이터스토어 ID 필요)
  2. Agent에 등록

✅ 주요 Built-in Tools 정리

1. 📡 Google Search

  • 기능: 실제 웹을 검색해 최신 정보 획득
  • 모델 제약: Gemini 2 모델 전용
  • 주의: 검색 결과에 포함된 renderedContent(HTML UI)는 앱에서 반드시 렌더링하여 사용자에 보여줘야 함

2. 🧮 BuiltInCodeExecutor (코드 실행)

  • 기능: 에이전트가 Python 코드를 작성하고 실행
  • 용도: 계산, 데이터 처리, 간단한 스크립트 실행
  • 등록 위치: tools가 아닌 executor에 등록

executor와 tools는 동시에 사용할 수 없음


3. 📂 Vertex AI Search Tool

  • 기능: GCP Vertex AI Search를 이용한 사내 문서/지식 검색
  • 필수조건: data_store_id (GCP 검색 인덱스) 필요

✅ 함께 사용하는 예시 (Multi-Agent로 연결)

Built-in Tool은 다른 도구와 함께 단일 Agent에서 사용할 수 없음서브 에이전트 형태로 우회 가능

 


❗ 제한 사항 (Limitations – Built-in Tools)

ADK에서 Built-in Tool 사용 시 주의해야 할 제한 사항은 다음과 같습니다:

제한 항목                    설명                                                                                                    예시                               가능 여부
🔸 FunctionTool 등과 병행 불가 FunctionTool, RestApiTool 등 일반 도구들과 동일 Agent 내에서 Built-in Tool (google_search, BuiltInCodeExecutor)을 함께 사용할 수 없음 tools=[google_search, my_custom_tool]
🔸 executor 병행 불가 executor=[BuiltInCodeExecutor]와 tools=[FunctionTool(...)] 같이 executor와 다른 도구를 동시에 등록할 수 없음 tools=[my_tool], executor=[BuiltInCodeExecutor]
🔸 Sub-agent로 사용 불가 Built-in Tool을 포함한 Agent를 sub_agents=[...]에 넣으면 작동하지 않음 sub_agents=[Agent(tools=[google_search])]
🔸 여러 Built-in Tool 직접 포함 불가 하나의 Agent에 여러 개의 Built-in Tool을 직접 등록할 수 없음 tools=[google_search, VertexAiSearchTool(...)]
 

✅ 권장 사용 방법

방법                          설명                                                                                 예시                                                    가능 여부
Agent-as-a-Tool 방식 사용 Built-in Tool을 포함한 Agent를 각각 생성하고, AgentTool(agent=...)로 루트 Agent에 등록하면 정상 작동 tools=[AgentTool(agent=search_agent), AgentTool(agent=code_agent)] ✔️
 

✅ 요약 비교

도구명                                         기능                            모델제약                      설정위치          특이사항
google_search 웹 검색 Gemini 2 전용 tools UI 렌더링 필수
BuiltInCodeExecutor 코드 실행 Gemini 2 전용 executor tools와 병행 사용 ❌
VertexAiSearchTool 사내 문서 검색 Gemini 2 전용 tools data_store_id 필요