Spring AI 2.0을 사용하여 Java로 다단계 AI 에이전트 구축하기
요약
Spring AI 2.0을 사용하여 Java 기반의 다단계 AI 에이전트를 구축하는 방법을 설명합니다. 사용자의 질문에 따라 모델이 스스로 도구를 체이닝하여 최적의 답변을 도출하는 에이전틱 워크플로우 구현 과정을 다룹니다.
핵심 포인트
- Spring AI 2.0의 도구 호출(tool-calling) 설정 및 변경 사항 안내
- LLM이 스스로 도구 호출 순서를 결정하는 에이전틱 워크플로우 구현
- 구조화된 타입 출력(structured typed output) 활용 방법
- 모델의 환각을 방지하기 위한 인용(citation) 검증 가드 구현
저는 일반적인 날씨 API 호출 대신 실제 운영 프로젝트와 유사한 환경에서 Spring AI의 에이전트 도구(agentic tooling)를 테스트해보고 싶었습니다. 그래서 시민 연구 보조원(civic research assistant)이라는 예시 Spring Boot API를 구축했습니다. 사용자가 일상적인 영어로 문제를 입력하고 영국 우편번호(UK postcode)를 제공하면, 이 시스템은 해당 문제를 의회(Parliament)에 제기하는 가장 효과적인 방법을 찾아냅니다. 이 시스템은 LLM (ChatGPT)과 함께 무료 UK 우편번호 및 Open Parliament API를 사용합니다. 흐름은 코드에 의해 강제되지 않습니다. 우리는 몇 가지 @Tool 메서드(우편번호 확인, 국회의원(MP) 찾기, 법안 검색, 위원회 및 공개 조사 찾기, 투표 기록 확인)를 등록하고, 모델이 어떤 도구를 어떤 순서로 호출할지 결정하도록 합니다. 모델은 스스로 도구들을 체이닝(chaining)하며, 모든 주장마다 인용(citation)을 포함한 최종 답변을 반환합니다. 기술 스택은 Java 25, Spring Boot 4.1 및 Spring AI 2.0입니다.
전체 튜토리얼에서는 Spring AI 2.0의 도구 호출(tool-calling) 설정과 1.x 버전 이후 변경된 사항, 도구 등록, 자유 형식의 텍스트 대신 구조화된 타입 출력(structured typed output)을 받는 방법, 그리고 모델이 출처를 몰래 지어내지 못하도록 모든 인용이 실제로 도구 호출에서 왔는지 확인하는 작은 가드(guard)에 대해 자세히 설명합니다. 모든 코드는 GitHub에 전체 코드가 공개되어 있어 실행 가능합니다.
전체 튜토리얼: https://tucanoo.com/building-an-agentic-workflow-in-java-multi-step-ai-agents-with-spring-ai-and-tool-calling/
출처: https://github.com/tucanoo/spring-ai-civic-research-assistant
만약 여러분이 실제 데이터에 접근하는 작업에 Spring AI의 도구 호출을 사용하고 있다면, 모델이 가져오지도 않은 내용을 인용하지 않도록 그라운딩(grounding)을 어떻게 처리하고 계신지 궁금합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기