피드로 돌아가기
Dev.toAI/ML
원문 읽기
LLM Tool-use 정확도 향상을 위한 5가지 설계 패턴과 모호성 제거 전략
Designing tools so an LLM actually calls them correctly: 5 patterns from the CCA-F blueprint
AI 요약
Context
정확한 Schema 정의에도 불구하고 LLM이 툴을 오호출하는 문제는 툴 정의를 단순 API 명세서처럼 작성하는 관행에서 기인함. 모델이 호출 여부와 시점을 결정하는 과정에서 발생하는 모호성이 시스템 신뢰도를 저하시키는 핵심 병목 지점으로 분석됨.
Technical Solution
- Tool Description을 단순 기능 설명이 아닌 '호출 시점(When)'과 '제한 사항'을 명시한 Prompt로 설계하여 모델의 추측 가능성 제거
- Enum, Minimum/Maximum, ISO 8601 Format 등 엄격한 Schema 제약을 적용하여 LLM의 임의 데이터 생성(Improvisation) 방지
- Error Response에 단순 실패 메시지가 아닌 'Hint' 필드를 포함하여 모델이 스스로 다음 최적의 툴을 선택하게 하는 Self-recovery 루프 구현
- 단일 툴에 여러 기능을 통합하는 REST API 방식 대신 'One Tool, One Job' 원칙을 적용하여 Parameter 간의 의존성 복잡도 해소
- Parallel-safety 명시를 통해 동시 호출 시 발생하는 Undefined Behavior를 방지하고 실행 순서 제어 로직 반영
- MCP(Model Context Protocol) 환경에서 단순 데이터 조회 작업은 Tool이 아닌 Resource로 분리하여 Token 비용 절감 및 캐싱 효율 증대
실천 포인트
- 툴 설명에 'When'이라는 단어가 포함되어 호출 조건이 명확한가? - String 타입 필드를 Enum이나 정형 포맷으로 대체하여 모호성을 제거했는가? - 에러 응답이 모델에게 '다음 단계에서 무엇을 다르게 해야 하는지' 가이드를 제공하는가? - 하나의 툴이 너무 많은 Action을 처리하여 입력 값의 조건부 필수 여부가 복잡하지 않은가? - 동시 호출 시 상태 오염 가능성이 있는 툴에 대해 명시적 제약 조건을 기술했는가?