목차
툴 콜링의 정의와 배경
이 글은 AI 언어 모델과 외부 도구를 연결하는 기본 구조를 다룹니다. 툴 콜링은 모델이 직접 데이터베이스나 API를 실행하는 기술이 아니라, 필요한 도구와 인자를 선택해 애플리케이션에 실행을 요청하는 방식입니다.
일반적인 모델은 학습된 정보만 답하지만, 툴 콜링을 사용하면 날씨 조회, 주문 검색, 파일 저장처럼 최신 데이터와 실제 작업을 처리할 수 있습니다. 모델은 사용자 요청을 분석한 뒤 적절한 도구를 고르고, 실행 결과를 다시 읽어 최종 답변을 만듭니다.
도구 스키마와 메시지 구조
도구 스키마(schema)는 도구의 이름, 설명, 입력 인자의 타입을 정의한 명세입니다. 모델은 이 정보를 보고 어떤 함수를 언제 사용할지 판단하므로 설명은 모호하지 않게 작성해야 합니다. 아래는 특정 API에 종속되지 않도록 단순화한 개념 예시입니다.
{
"name": "get_order",
"description": "주문 번호로 주문 상태를 조회합니다.",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string"}
},
"required": ["order_id"]
}
}
대화 흐름에서는 일반 답변 메시지와 도구 호출 메시지가 구분됩니다. 구체적인 메시지 형식은 API마다 다릅니다. 일반적으로 모델이 함수명과 인자를 담은 호출 요청을 반환하면 애플리케이션이나 API 서버가 도구를 실행하고, 호출 식별자와 함께 결과를 다시 모델에 전달합니다. 예를 들어 OpenAI Responses API는 function_call과 function_call_output을 call_id로 연결합니다.
호출·실행·결과 루프와 안전성

작동 과정은 다음과 같습니다.
- 애플리케이션이 사용자 요청과 도구 목록을 모델에 전달합니다.
- 모델이 직접 답하거나 함수명과 인자를 포함한 호출을 반환합니다.
- 애플리케이션이 인자를 검증하고 도구를 실행한 뒤 결과를 모델에 재주입합니다.
- 모델이 결과를 해석해 사용자에게 최종 답변을 보냅니다.
4단계에서 모델이 최종 답변 대신 추가 호출을 반환하면 2~3단계를 반복하며, 이 반복이 에이전트의 기본 루프입니다.
인자 검증은 반드시 모델 출력과 실행 사이에서 이뤄져야 합니다. 문자열이어야 할 주문 번호가 객체로 들어오거나, 허용되지 않은 파일 경로가 전달될 수 있으므로 JSON Schema나 애플리케이션 코드로 타입, 필수값, 허용 범위를 확인합니다.
도구 결과를 재주입할 때는 호출 ID를 유지해야 모델이 어떤 요청의 결과인지 구분할 수 있습니다. 결과에 비밀번호나 내부 오류 메시지를 그대로 넣으면 정보가 노출될 수 있으므로, 실행 권한과 반환 필드도 제한하는 편이 안전합니다.
직접 응답과 툴 콜링 비교
| 비교 항목 | 직접 응답 | 툴 콜링 |
|---|---|---|
| 최신 데이터 | 제한적 | 외부 시스템 조회 가능 |
| 실제 작업 | 외부 시스템 작업 불가 | API·함수 실행 가능 |
| 구현 난이도 | 낮음 | 검증·루프 필요 |
| 오류 관리 | 오답을 사용자가 판별 | 실행 오류까지 처리 |
빠른 설명이나 창작처럼 외부 데이터가 필요하지 않다면 직접 응답이 단순합니다. 반대로 재고 조회, 일정 등록, 결제 전 검증처럼 사실 확인이나 작업 실행이 필요하면 툴 콜링이 적합합니다.
다만 툴 콜링을 사용해도 모델이 항상 올바른 도구를 고르는 것은 아닙니다. 중요한 작업은 사용자 확인, 권한 검사, 중복 실행 방지까지 애플리케이션에서 통제해야 합니다. 도구가 반환한 웹페이지·문서·이메일 내용도 신뢰된 명령으로 취급해서는 안 됩니다. 외부 데이터에는 프롬프트 인젝션이 포함될 수 있으므로, 모델에게 필요한 최소 권한만 부여하고 중요한 변경·삭제·결제 같은 작업은 별도의 권한 검사와 사용자 확인 단계를 두는 것이 안전합니다.
자주 묻는 질문
툴 콜링과 에이전트는 같은 뜻인가요?
같지는 않습니다. 툴 콜링은 도구를 호출하는 통신 방식이고, 에이전트는 목표에 따라 여러 호출을 계획하고 결과를 활용하는 전체 실행 구조에 가깝습니다.
모델이 도구를 직접 실행하나요?
사용자가 정의한 함수 도구는 일반적으로 모델이 호출 요청과 인자를 만들고 애플리케이션이 실제 함수를 실행합니다. 다만 웹 검색이나 파일 검색처럼 AI 플랫폼이 서버 측에서 직접 실행을 관리하는 도구도 있으므로 실행 주체는 사용하는 API와 도구 유형에 따라 달라집니다.
호출 결과가 틀리면 어떻게 하나요?
실행 결과의 형식을 검증하고 오류 상태를 별도로 전달한 뒤, 재시도·대체 도구·사용자 확인 중 하나를 선택하도록 설계합니다.
결론
툴 콜링은 모델의 판단과 프로그램의 실행을 연결하는 규칙입니다. 스키마, 호출 ID, 인자 검증, 결과 재주입을 함께 설계해야 안정적인 에이전트를 만들 수 있습니다. 한 번의 호출이 아니라 추가 호출이 이어지는 반복 구조를 전제로 설계해야 합니다.