이 문서는 AI 에이전트 섹션의 일부입니다.
에이전트 도구란?
AI 에이전트가 외부 세계와 상호작용하려면 도구(Tool) 가 필요합니다. 도구는 에이전트가 호출할 수 있는 함수로, 데이터 조회, API 호출, 계산 수행 등의 작업을 수행합니다. Databricks에서는 Unity Catalog 함수 를 에이전트 도구로 활용하여, 기존 거버넌스 체계(권한, 감사, 리니지)를 그대로 적용할 수 있습니다.💡 비유: 에이전트가 “두뇌(LLM)“라면, 도구는 “손(Tool)“입니다. 두뇌가 아무리 똑똑해도, 손이 없으면 문서를 검색하거나 주문을 확인할 수 없습니다.
도구 유형
Databricks Agent Framework에서 사용할 수 있는 도구 유형은 다음과 같습니다.SQL 도구 (SQL Function Tool)
데이터 조회 도구
집계 도구
💡 COMMENT가 매우 중요합니다. LLM은 함수의 COMMENT를 읽고 “이 도구를 언제 사용해야 하는지” 판단합니다. COMMENT에 도구의 목적, 사용 시나리오, 입력 형식을 상세히 기술하세요.
Python 도구 (Python Function Tool)
외부 API 호출, 이메일 발송, 복잡한 계산 등 SQL로 구현하기 어려운 로직에 사용합니다.Retriever 도구 (Vector Search 기반)
RAG 패턴에서 사용되는 문서 검색 도구입니다. Vector Search Index를 활용하여 의미적으로 관련된 문서를 검색합니다.UCFunctionToolkit
UCFunctionToolkit 은 Unity Catalog 함수들을 에이전트 도구로 일괄 등록하는 유틸리티입니다.LangChain과 연동
도구 호출 흐름
도구 설계 Best Practices
실전 인사이트: 도구를 10개 이상 등록하면 에이전트가 혼란스러워집니다
프로덕션 에이전트를 운영하면서 가장 많이 겪는 실수가 “도구를 너무 많이 등록하는 것”입니다. 처음에는 “도구가 많으면 더 많은 질문에 답할 수 있겠지”라고 생각하지만, 실제로는 정반대입니다.도구 수에 따른 에이전트 성능 변화 (실측)
⚠️ 실전 경험: 고객지원 에이전트에get_order_status,get_order_details,get_order_history,get_order_tracking을 모두 등록했더니, LLM이 “주문 상태 알려줘”라는 질문에 4개 중 어떤 도구를 쓸지 매번 다르게 선택했습니다. 이름이 비슷한 도구는 하나로 합치거나, COMMENT에서 “이 도구는 X 상황에서만 사용하세요. Y 상황에서는 Z 도구를 사용하세요”라고 명확히 구분해야 합니다.
도구가 많아질 때 대처법
실전 인사이트: 도구 설명(Description)이 프롬프트 엔지니어링보다 중요합니다
많은 팀이 시스템 프롬프트를 정교하게 작성하는 데 시간을 쏟지만, 정작 도구의 COMMENT를 대충 작성 합니다. 실전에서는 시스템 프롬프트보다 도구 설명이 에이전트 동작에 훨씬 큰 영향을 미칩니다.나쁜 COMMENT vs 좋은 COMMENT
💡 핵심 원칙: COMMENT에는 (1) 이 도구가 하는 일, (2) 이 도구를 사용해야 하는 상황, (3) 이 도구를 사용하면 안 되는 상황, (4) 입력값을 모를 때 어떻게 해야 하는지를 모두 포함하세요. COMMENT가 길어지는 것을 두려워하지 마세요. LLM은 긴 설명을 잘 읽습니다.
실전 인사이트: UC 함수의 실행 권한이 에이전트 보안의 핵심입니다
에이전트가 UC 함수를 도구로 호출할 때, 누구의 권한으로 실행되는지 가 매우 중요합니다. 이 부분을 간과하면 심각한 보안 사고로 이어질 수 있습니다.에이전트 실행 권한 모델
실전 보안 체크리스트
⚠️ 절대 하면 안 되는 것: 에이전트 서비스 프린시펄에 ALL PRIVILEGES를 부여하거나, 카탈로그/스키마 수준의 광범위한 권한을 주는 것입니다. 에이전트는 LLM이 판단하는 대로 함수를 호출하므로, 프롬프트 인젝션(Prompt Injection) 공격으로 의도하지 않은 함수가 호출될 수 있습니다. 최소 권한 원칙을 반드시 지키세요.