2.6. 도구 사용¶
도구 사용(Tool Calling)은 AI 모델을 수동적인 텍스트 생성기에서 능동적인 문제 해결사로 변모시키는 핵심 기능입니다. 이는 AI에게 파일 시스템, 인터넷, 그리고 컴퓨터의 내부 상태와 상호작용할 수 있는 "손"을 쥐어주는 것과 같습니다.
툴 콜링이란 무엇인가요?¶
일반적으로 LLM은 훈련된 데이터 내의 지식으로만 제한됩니다. 지금 몇 시인지, 내 바탕화면에 어떤 파일이 있는지, 오늘 뉴스 헤드라인이 무엇인지는 알 수 없습니다.
툴 콜링은 이러한 한계를 극복합니다. 모델은 답변을 지어내는 대신 이렇게 요청할 수 있습니다: "현재 애플 주가를 알기 위해 web_search 도구를 사용해야겠어."
Backend.AI GO는 이 요청을 가로채서 도구를 안전하게 실행한 뒤, 그 결과를 모델에게 돌려줍니다. 모델은 이 실제 데이터를 사용하여 사용자의 질문에 정확하게 답변합니다.
왜 중요한가요?¶
-
실시간 지식: 웹 검색을 통해 최신 뉴스, 날씨, 금융 정보에 접근할 수 있습니다.
-
시스템 상호작용: 채팅만으로 로그 파일을 읽거나, 폴더를 정리하거나, 시스템 상태를 점검할 수 있습니다.
-
정확성: 모델의 불안정한 암산 능력 대신 계산기 도구를 사용하여 정확한 수학 연산을 수행합니다.
-
에이전틱(Agentic) 행동: 이것은 AI 에이전트의 기반입니다. AI는 여러 도구 호출을 연쇄적으로 수행(검색 -> 읽기 -> 쓰기)하여 복잡한 워크플로우를 자율적으로 완수할 수 있습니다.
호환 모델¶
모든 모델이 툴 콜링을 지원하는 것은 아닙니다. 도구의 정의를 이해하고 구조화된 도구 요청을 출력하도록 미세 조정(Fine-tuned)된 모델이 필요합니다.
-
"Tool" 태그 확인: Backend.AI GO 모델 라이브러리에서
Tool또는Function Calling칩이 붙은 모델을 찾으세요. -
추천 모델: Gemma 3, Qwen3, Llama 3.1, Mistral Large, 그리고 (클라우드 연동 시) GPT-5.2, Gemini 3 Pro, Claude Sonnet 4.5가 탁월한 성능을 보여줍니다.
보안 및 권한 시스템¶
도구는 파일을 읽거나 코드를 실행할 수 있으므로 보안이 무엇보다 중요합니다. Backend.AI GO는 강력한 위험도 기반 권한 시스템(Risk-Based Permission System)을 탑재하고 있습니다.
위험도 레벨 (Risk Levels)¶
모든 도구에는 위험도가 할당됩니다:
-
🟢 안전 (Safe / No Risk): 단순히 공개된 데이터를 읽거나 계산을 하는 작업입니다.
- 예시: 계산기, 현재 시간 확인.
- 동작: 사용자에게 묻지 않고 자동으로 실행됩니다.
-
🟡 주의 (Moderate / Read Access): 개인 파일을 읽거나 외부 웹사이트에 접속하는 작업입니다.
- 예시: 파일 읽기, 웹 검색, 디렉토리 목록 조회.
- 동작: 세션당 한 번의 승인이 필요합니다. 한 번 승인하면 대화가 끝날 때까지 자유롭게 사용할 수 있습니다.
-
🔴 위험 (Critical / Write & Execute): 데이터를 수정하거나 코드를 실행하는 작업입니다.
- 예시: 파일 쓰기/삭제, 셸 명령어 실행.
- 동작: 매 호출마다 사용자의 명시적인 승인이 필요합니다. 사용자가 "승인" 버튼을 누르지 않으면 AI는 절대 파일을 삭제할 수 없습니다.
내장 도구 (Built-in Tools)¶

Backend.AI GO는 6개 카테고리에 걸쳐 19개의 내장 도구를 제공합니다.
1. 파일 시스템 도구¶
| 도구 | 설명 | 위험도 |
|---|---|---|
파일 읽기 (read_file) | 지정된 경로의 파일 내용을 읽습니다. | 🟢 낮음 |
파일 쓰기 (write_file) | 지정된 경로에 내용을 씁니다. | 🟡 중간 |
디렉토리 목록 (list_directory) | 지정된 경로의 파일 및 디렉토리 목록을 표시합니다. | 🟢 낮음 |
디렉토리 생성 (create_directory) | 지정된 경로에 새 디렉토리를 생성합니다. | 🟡 중간 |
파일 삭제 (delete_file) | 지정된 경로의 파일을 삭제합니다. 매 호출마다 승인이 필요합니다. | 🔴 높음 |
파일 이동 (move_file) | 파일을 다른 위치로 이동하거나 이름을 변경합니다. 매 호출마다 승인이 필요합니다. | 🔴 높음 |
파일 검색 (search_files) | 글로브 패턴(예: *.pdf, **/*.ts)에 매칭되는 파일을 검색합니다. | 🟢 낮음 |
내용 검색 (search_content) | 정규식 패턴을 사용하여 파일 내용을 검색합니다. 하위 디렉토리까지 재귀적으로 탐색하며, 바이너리 파일과 대용량 파일(10 MB 초과)은 자동으로 건너뜁니다. | 🟢 낮음 |
2. 웹 도구¶
| 도구 | 설명 | 위험도 |
|---|---|---|
웹 검색 (web_search) | Brave Search 또는 Google Search(Serper 경유)를 사용하여 웹을 검색합니다. 제목, URL, 요약이 포함된 검색 결과를 반환합니다. 설정에서 API 키를 등록해야 합니다. | 🟢 낮음 |
URL 가져오기 (fetch_url) | URL에서 콘텐츠를 가져옵니다. HTML 페이지는 자동으로 Markdown으로 변환되어 효율적으로 사용됩니다. | 🟡 중간 |
3. 유틸리티 및 시스템 도구¶
| 도구 | 설명 | 위험도 |
|---|---|---|
계산기 (calculator) | 수학 표현식을 평가합니다. 기본 연산(+, -, *, /, ^, %), 괄호, 함수(sqrt, sin, cos, log, exp 등)를 지원합니다. | 🟢 안전 |
현재 시간 (get_current_time) | 현재 날짜와 시간을 가져옵니다. ISO 8601, Unix 타임스탬프, 사람이 읽기 쉬운 형식, 사용자 정의 strftime 형식을 지원합니다. | 🟢 안전 |
시스템 정보 (get_system_info) | CPU, 메모리, 디스크, OS 정보를 포함한 시스템 정보를 가져옵니다. 카테고리별로 필터링하여 특정 데이터만 조회할 수 있습니다. | 🟢 안전 |
4. 데이터 조회 도구¶
| 도구 | 설명 | 위험도 |
|---|---|---|
JSON 쿼리 (json_query) | JSONPath 구문을 사용하여 JSON 데이터를 조회합니다. 경로 접근, 배열 연산, 필터링을 지원합니다. 문자열 또는 파일에서 읽을 수 있습니다. | 🟢 낮음 |
CSV 리더 (csv_reader) | 설정 가능한 파싱 옵션으로 CSV 파일을 읽고 분석합니다. 컬럼 선택, 사용자 정의 구분자, 행 제한(최대 10,000행)을 지원합니다. | 🟢 낮음 |
5. 코드 실행 도구¶
| 도구 | 설명 | 위험도 |
|---|---|---|
파이썬 실행 (run_python) | 파이썬 코드를 실행하고 결과를 반환합니다. | 🔴 위험 |
셸 실행 (run_shell) | 셸 명령어를 실행하고 결과를 반환합니다. 위험한 명령어는 내장 셸 보안 검증기에 의해 차단됩니다. | 🔴 위험 |
6. 오디오 도구¶
| 도구 | 설명 | 위험도 |
|---|---|---|
오디오 변환 (audio_transcribe) | Whisper 음성 인식 엔진을 사용하여 오디오 파일을 텍스트로 변환합니다. MP3, WAV, M4A, FLAC, OGG, WebM, MP4, MPEG, MPGA, OGA, Opus 형식을 지원합니다. 언어를 자동 감지하거나 명시적으로 지정할 수 있습니다(예: en, ko, ja). whisper-server에 Whisper 모델이 로드되어 있어야 합니다. | 🟡 중간 |
audio_transcribe 매개변수¶
| 매개변수 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
path | string | 필수 | 변환할 오디오 파일 경로 |
language | string | 선택 | 언어 코드(예: en, ko, ja). 지정하지 않으면 자동 감지합니다. |
timestamps | boolean | 선택 | 출력에 구간별 타임스탬프를 포함합니다. 기본값: false. |
model_size | string | 선택 | Whisper 모델 크기: tiny, base, small, medium 중 하나. |
채팅 내 도구 실행 결과¶

도구 실행이 완료되면 결과가 채팅 대화에 인라인으로 표시됩니다. 결과 블록을 펼쳐 파일 목록, 검색 결과, 명령어 출력 등의 전체 데이터를 확인할 수 있습니다. 이러한 투명한 표시 방식을 통해 AI가 어떤 정보를 바탕으로 작업하고 있는지 항상 확인할 수 있습니다.