Tool Selection & Disambiguation
이 문서는 CCAF Domain 2를 이해하기 위한 개념 설명용 노트다.
여기서는 개별 도구 하나의 설명 품질보다, 도구 집합 전체에서 경계를 어떻게 나눌 것인가를 다룬다. 즉 tool selection을 단순한 모델 추론 문제가 아니라, toolset-level boundary design 문제로 이해하는 데 초점을 둔다.
tool selection 문제는 왜 생기는가
Agent Loop에서 모델은 종종 여러 도구 중 하나를 골라야 한다.
이때 실패는 단순히 모델이 “멍청해서” 생기는 것이 아니다.
실제로는:
- 도구 이름이 비슷하거나
- 설명이 겹치거나
- 책임 경계가 모호하거나
- 입력 구조가 지나치게 유사하면
모델은 충분히 헷갈릴 수 있다.
즉 tool selection 실패는 종종
선택 문제라기보다 경계 설계 문제
다.
disambiguation이란 무엇인가
Disambiguation은 여러 도구가 비슷해 보일 때, 각 도구가 언제 선택되어야 하는지를 더 분명하게 만드는 작업이다.
즉 목적은:
- “이 도구도 되고 저 도구도 될 듯”한 상태를 줄이고
- 각 도구의 책임을 더 분리하고
- 모델이 선택 시 더 적은 모호성을 느끼게 만드는 것
이다.
한 문장으로 줄이면:
Disambiguation은 도구를 더 많이 설명하는 작업이 아니라, 도구들 사이를 덜 겹치게 만드는 작업이다.
겹치는 도구는 왜 위험한가
비슷한 도구가 많으면 선택지가 늘어나므로 좋아 보일 수 있다.
하지만 실제로는 다음 문제가 생긴다.
- 잘못된 도구를 선택할 확률이 올라간다
- 같은 기능을 여러 방식으로 호출하게 된다
- 결과 일관성이 떨어진다
- 에러 복구 경로도 복잡해진다
예를 들어:
search_docslookup_docsretrieve_knowledgefind_internal_doc
이 네 개가 실제론 거의 비슷한 역할을 한다면, 모델은 선택 경계를 안정적으로 잡기 어렵다.
즉 도구 수가 많다고 capability가 좋아지는 것은 아니다.
많은 도구보다, 경계가 분명한 도구 집합이 더 낫다.
선택 경계를 어떻게 나눠야 하는가
도구 경계를 나눌 때는 보통 아래 축이 유용하다.
1. 데이터 소스 기준
- 내부 DB 조회
- 외부 웹 검색
- 파일 시스템 읽기
2. 작업 목적 기준
- 조회
- 수정
- 실행
- 검증
3. 결과 책임 기준
- 사실 조회
- 변환/가공
- 상태 변경
- 검증/승인
이런 기준으로 나누면 각 도구의 역할이 더 선명해진다.
예를 들어:
search_web는 외부 공개 웹 검색lookup_customer는 내부 고객 DB 조회process_refund는 실제 상태 변경
이렇게 구분되면 선택 품질도 올라간다.
이름과 설명으로 어떻게 구분을 강화할 수 있는가
도구를 구분하려면 이름만 다르게 짓는 것으로는 부족하다.
설명에서도 차이를 드러내야 한다.
예:
search_web: 외부 공개 웹 자료 검색용search_internal_docs: 내부 문서 저장소 검색용lookup_customer: 검증된 customer ID 기반 고객 조회용
이렇게 하면:
- 데이터 소스
- 입력 조건
- 사용 시점
이 분명해진다.
즉 disambiguation의 핵심은:
각 도구가 무엇을 하는지보다, 다른 도구와 무엇이 다른지를 드러내는 것
이다.
좋은 toolset은 어떤 모습인가
좋은 toolset은 단순히 기능이 많은 집합이 아니다.
보통 아래 특징을 가진다.
- 각 도구의 책임이 겹치지 않는다
- 비슷한 기능이 있더라도 차이가 명확하다
- 입력 조건이 선명하다
- 결과 책임이 분리되어 있다
- 모델이 “언제 이 도구를 써야 하는지” 쉽게 추론할 수 있다
즉 좋은 toolset은 풍부한 카탈로그라기보다,
선택 가능한 경계가 잘 정리된 카탈로그
다.
좋은 toolset과 나쁜 toolset의 차이
나쁜 toolset
- 기능이 겹치는 도구가 많다
- 같은 데이터를 여러 도구가 비슷하게 다룬다
- 이름은 다르지만 설명상 차이가 거의 없다
- 모델이 도구 간 우선순위를 추론해야 한다
좋은 toolset
- 각 도구의 책임이 분리돼 있다
- 겹치더라도 차이가 설명에 명시돼 있다
- 도구 간 선택 기준이 명확하다
- 모델이 억지 추론보다 명시적 경계에 기대어 선택할 수 있다
즉 tool selection 품질은 개별 도구 설명만이 아니라, 도구 집합 전체의 경계 구조에서 나온다.
흔한 오해
“도구가 많을수록 더 똑똑한 시스템이다”
그렇지 않다. 너무 많으면 오히려 selection noise가 커진다.
“설명에 기능만 적으면 된다”
아니다. 선택 기준과 구분 기준까지 드러나야 한다.
“겹치는 도구는 모델이 알아서 잘 고른다”
그 기대는 위험하다. 경계가 모호하면 모델도 흔들린다.
한 문장 요약
Tool selection 품질은 개별 도구 설명의 품질만이 아니라, 도구 집합 전체의 책임 경계를 얼마나 명확하게 분리했는지에 크게 좌우된다.
관련 개념
- Tool Interface Design — 개별 도구의 인터페이스 설계
- MCP Integration — 도구 집합 관리를 위한 프로토콜
- Tool Safety Boundaries — 도구 호출의 안전 경계