목록 보기
에이전트의 도구 실행 경로를 native tool calling으로 전환하다
AI

에이전트의 도구 실행 경로를 native tool calling으로 전환하다

넥스트리
넥스트리
2026년 10월 26일

두줄요약

프롬프트 JSON 파싱 기반 에이전트 루프를 Spring AI 2.0의 native tool calling으로 전환했습니다. 실행 통제 계층은 유지하면서 메시지·도구 관리와 MCP 클라이언트를 개선했습니다.

문제 상황

  • 프롬프트 내 도구 목록과 텍스트 JSON 파싱에 의존한 에이전트 도구 실행 루프
  • 형식 오류 시 도구 미호출 종료, 관측 전문 재조립에 따른 프롬프트 선형 증가
  • 40개 이상 도구의 전량 전송과 직접 구현한 JSON-RPC MCP 클라이언트

원인 분석

  • prompt, systemPrompt 문자열만 가진 엔진 포트로 messages·tools 모델링 부재
  • 대화 이력·도구 목록·관측의 문자열 밀어넣기 구조
  • Spring AI 의존성 선언과 실제 클라이언트 구현 간의 불일치

해결 방법

  • 엔진 포트를 messages + tools 기반으로 전환하고 provider native tool calling의 구조화된 tool_calls 활용
  • Spring AI 2.0의 ChatModel 직접 호출로 실행 의도만 수신하고 도구 실행은 ToolExecutionGateway 유지
  • LLM 경계에서만 도구 이름 변환·충돌 검사 적용, 도메인 기반 도구 선택·TTL 캐시·도구 불필요 요청 조기 종료

성능/운영 포인트

  • assistant·tool 메시지 배열 누적으로 관측 문자열 재조립 제거
  • 정책·승인·감사 게이트웨이 무변경, 루프 모드와 종료 사유의 SSE·감사 로그 기록
  • native tool calling 실패 가능성에 대비한 fallback 유지와 단위 테스트 7종 추가

다음 읽기

#MCP 주제를 이어서 읽기

MCP 서버와 에이전트 호스트, 왜 둘로 나누었는가

MCP 서버와 에이전트 호스트를 책임과 통제 경계에 따라 분리한 설계를 설명했습니다. 승인 제안·폼 정의의 소유권을 서버로 모아 ID 노출과 조용한 실패를 줄였습니다.

넥스트리
넥스트리
AI
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...