작은 언어모델로 에이전트 도구 호출의 의도 일치를 검증한다
Toward SLM-based agentic task-tool intent matching
무엇인가
도구를 장착한 AI 에이전트는 도구 호출로 데이터에 접근하고 외부 시스템을 조작한다. 에이전트 시스템이 수평적으로 늘어나면 이런 상호작용의 수가 함께 늘고, 호출 단위로 저지연 또는 온프렘에서 동작하는 자동 감시가 필요해진다. 저자들이 지적하는 문제는 기존 권한 부여 방식의 한계다. 통상적인 인가 체계는 에이전트가 그 도구를 부를 권한이 있는지는 판단할 수 있지만, 그 도구 선택이 과제 의도를 충족하는 논리적이고 관련성 있는 단계인지는 평가하지 못한다. 그래서 허용된 호출도 의도에서 벗어날 수 있고, 악성 에이전트가 호출을 틀어지게 만들거나 다른 에이전트를 부추겨 의도에 맞지 않는 호출 조합을 만들 수 있다. 결론은 모든 호출을 검증해야 한다는 것이다.
어떻게 동작하나
제안 방법은 SLM을 과제-도구 관련성(task-tool relevance) 이진 분류기로 쓰는 것이다. 분류기는 과제 q와 후보 도구 c의 이름·설명을 받아 구조화된 출력을 내고, 여기서 불리언 예측을 파싱한다. 도구 후보는 서버-도구 쌍으로 표현해 서로 다른 서버에 있는 동명 도구를 구분한다. 과제 q에 대해 주석된 grounding 도구 집합 G(q)가 있을 때, c가 G(q)에 속하면 레이블 1, 아니면 0이다. 오탐은 무관한 도구를 허용하는 것이고 미탐은 과제에 필요한 도구를 거부하는 것이며, 깨진 출력은 파싱 실패로 기록된다. 저자들은 이 작업을 Task Based Access Control(TBAC)의 확장으로 위치시킨다. 원래의 TBAC는 과제·워크플로 단계·의존성·권한이 사전에 명시적으로 모델링됐다고 가정하는데, 자연어의 유연성 때문에 에이전트 시스템에서는 그런 사전 모델링이 불가능하고, TBAC 자체도 도구가 자연어 의도와 의미적으로 맞는지 판단하지 못한다는 것이다.
무엇과 다른가
데이터는 12개 MCP 서버의 352개 도구 카탈로그로 만들었다. 서버가 겹치지 않는 두 풀로 나눠(194개 도구·8개 서버, 158개 도구·4개 서버) 검증·테스트로 쓴다. 각 과제는 2~3개의 grounding 도구를 가지며 서버마다 정확히 하나씩, 즉 여러 MCP 서버에 걸친 cross-MCP 과제다. 후보 집합은 세 종류다. 정답 집합은 G(q) 그대로, 오답 집합은 grounding 도구를 같은 서버의 다른 도구로 교체, 널 집합은 grounding 서버 밖의 서버에서 뽑되 서버가 겹치지 않게 한다. 오답과 널은 모두 관련성 없음 레이블 0으로 매핑된다. 큐레이션된 9289개 행 중 7811개가 3155개 완전 그룹을 이루고, 996개 불완전 그룹의 1478개 행은 제거됐다.
어떻게 쓰나
최적화는 Gemma 3 1B와 4B 두 모델에 같은 순차 전략을 적용한다. Base → GEPA → SFT → GRPO 순서다. GEPA는 프롬프트 최적화로, GPT-5.6 Sol을 optimizer/reflection LLM으로 쓰고 reflection 미니배치 35, 학습 500·검증 250 샘플로 돌려 SFT에 쓸 프롬프트를 만든다. SFT는 그 프롬프트로 LoRA(r=32, α=64)를 클래스 균형을 맞춘 단일 도구 ASTRA 예시 4404개에 학습하고 1136개 검증 예시로 체크포인트를 고른다. 단일 도구 과제는 구성적 의존성이 없는 저복잡도 커리큘럼 단계로 취급한다. GRPO는 F1로 선택된 SFT 체크포인트에서 시작해 단일 도구, 동일 MCP 다중 도구, cross-MCP 다중 도구를 섞은 9485개 학습·2927개 검증 데이터로 돌린다. 보상은 스키마 준수, 레이블 정확성, 과도한 추론에 대한 페널티를 결정적으로 결합하고, 오탐과 미탐을 동등하게 벌하며 잘못된 출력에는 추가 페널티를 준다. LLM 기반 추론 판정자는 쓰지 않는다. 프롬프트당 16개 응답을 온도 1.1로 샘플링하고 Dr. GRPO 목적식에 KL 페널티 β=10⁻³을 적용한다.
전제와 한계
결과에서 프런티어 LLM인 GPT-5.6 Sol은 홀드아웃 테스트에서 정확도 98.58%, F1 98.86%, 오탐률 1.42%, 미탐률 1.41%, 파싱 실패 0을 기록해 95% 운영 목표를 넘겼다. SLM은 출발점이 낮았다. Gemma 3 1B는 E2E 정확도 60.94%에서 시작해 SFT 후 정확도 61.59→80.06, F1 66.74→81.82로 올랐지만 파싱 실패가 103→175로 늘어 E2E는 78.63%에 그쳤고, GRPO가 파싱 실패를 1개로 줄이면서 E2E 89.60%, F1 91.39%까지 올렸다. 다만 95% 목표에는 미달했다. Gemma 3 4B는 87.48%에서 시작해 GEPA가 E2E와 F1을 각각 4.10pp, 4.07pp 올리고 SFT가 2.20pp, 1.56pp, GRPO가 2.35pp, 1.92pp를 더해 누적 8.65pp·7.55pp, E2E 96.13%로 목표를 살짝 넘겼다. 단계별 오류 트레이드오프도 다르다. 1B에서는 SFT가 오탐률을 38.76→6.86으로 크게 낮추고 GRPO가 미탐률을 27.87→11.61로 낮추는 대신 오탐률을 8.37로 소폭 올렸다. 4B에서는 GEPA가 미탐률을 15.89→5.30으로 낮추면서 오탐률을 6.92→13.39로 키웠고, SFT가 오탐률을 6.95로 되돌렸으며, GRPO가 오탐 5.42%·미탐 2.94%로 가장 균형 잡힌 지점을 만들었다.
개발자 관점에서 이 논문의 실무적 의미는 명확하다. 프라이버시·비용·지연·조직 정책 때문에 프런티어 LLM을 못 쓰는 환경에서, 4B급 SLM을 호출 단위 관련성 분류기로 특화해 의도 기반 TBAC의 집행 신호로 쓸 수 있다는 근거를 제시한다. 다만 도입 전에 확인할 것이 있다. 분류기는 선택된 도구를 과제에 대해 하나씩 독립적으로 평가할 뿐 호출 조합 전체의 궤적을 보는 것이 아니므로, 여러 호출이 합쳐져 생기는 편차는 별도 계층에서 다뤄야 한다. 또 파싱 실패가 E2E 정확도를 직접 깎기 때문에 구조화 출력의 안정성이 실배포 성패를 가른다. 보상 설계에서 오탐과 미탐을 같은 무게로 벌했다는 점도, 보안 정책상 어느 쪽 오류를 더 용납할 수 있는지에 따라 재조정이 필요한 지점이다.
저자들이 밝힌 한계는 분명하다. 평가가 합성 데이터, 즉 LLM이 큐레이션한 과제-도구 쌍에 한정되고, 단일 모델 패밀리(Gemma 3)의 두 크기만 다룬다. 1B는 GRPO 이후에도 운영 목표인 95%에 도달하지 못했고, 4B만 96.13%로 간신히 넘겼다. 그럼에도 이 결과는 특화된 SLM이 에이전트 시스템의 의도 기반 TBAC에서 프런티어 모델의 실용적 대안이 될 수 있다는 가설을 뒷받침한다고 저자들은 정리한다. 코드와 데이터는 공개 저장소에서 확인할 수 있다.