AI 에이전트에 도구 통합하기: Tavali 웹 검색 및 비동기 처리

AI on Rails: Give your agents internet access

작성자
Ruby AI News
발행일
2025년 12월 30일

핵심 요약

  • 1 AI 에이전트의 기능을 확장하기 위해 Tavali 웹 검색 도구를 통합하고, LangChain 도구를 활용하여 에이전트에 '초능력'을 부여합니다.
  • 2 에이전트의 성능과 품질을 최적화하기 위해 사용 가능한 도구들을 신중하게 선택하고, Ruby 코드에서 도구 호출 및 결과를 효율적으로 처리하는 방법을 구현합니다.
  • 3 사용자 경험 개선을 위해 에이전트의 장기 실행 작업을 SolidQueue를 활용한 백그라운드 작업으로 전환하여 비동기 처리를 구현합니다.

도입

이번 에피소드에서는 AI 에이전트에 도구를 통합하여 그 기능을 대폭 확장하는 방법을 다룹니다. 도구는 에이전트에게 ChatGPT와 같은 일반적인 AI와는 차별화되는 '초능력'을 부여합니다. 특히, Tavali 웹 검색 도구를 활용하여 에이전트가 웹에 연결하고 검색할 수 있도록 하며, 이는 에이전트가 더 풍부하고 정확한 정보를 바탕으로 작업을 수행할 수 있게 합니다. Tavali는 뛰어난 검색 결과 품질과 월 1,000건의 무료 API 크레딧을 제공하여 초기 통합에 매우 유용합니다.

에이전트 도구 통합 및 설정

AI 에이전트에 도구를 통합하는 과정은 다음과 같습니다.

1. Tavali 웹 검색 도구 활용

  • Tavali는 에이전트가 웹을 검색하고 연결할 수 있게 하는 강력한 도구입니다. LangChain에 내장된 Tavali 도구를 활용하여 쉽게 통합할 수 있습니다.

  • Tavali의 무료 플랜은 월 1,000개의 API 크레딧을 제공하며, 검색 결과의 품질이 우수하여 초기 개발에 적합합니다.

2. 에이전트 도구 관리

  • 에이전트에는 available_tools라는 해시를 통해 사용 가능한 도구 목록을 설정합니다.

  • 데이터베이스에서 특정 에이전트(예: ‘제품 설명 작성기’)에 허용된 도구 이름 배열을 관리합니다. 이는 성능 및 품질 문제를 방지하기 위함입니다. 20개 이상의 도구는 에이전트를 혼란스럽게 할 수 있으므로, 각 프롬프트에 필요한 도구만 선택적으로 제공하는 것이 중요합니다.

3. 코드 구현 및 개선

  • 도구 매핑 및 필터링: 어시스턴트에 전달되는 도구 배열은 문자열에서 심볼로 변환(to_sym)하고, 구현되지 않은 도구는 compact를 사용하여 제거합니다.

  • 데이터 인코딩 문제 해결: SQLite 사용 시 발생할 수 있는 UTF-8 인코딩 문제를 to_string.force_encoding('UTF-8')을 통해 해결했습니다.

  • 메시지 UI 개선: 에이전트 메시지 컴포넌트에서 tool_call 또는 tool_result가 존재할 경우, 빈 콘텐츠 대신 ‘Tool Called: [도구 이름] [ID]’와 같은 사용자 친화적인 메시지를 표시하도록 UI를 개선합니다.

4. 비동기 작업 처리 (SolidQueue)

  • 기존에는 에이전트 컨트롤러의 create 메서드에서 작업을 직접 실행하여 응답 시간이 길었습니다.

  • bin/rails generate job AI_task 명령어를 사용하여 백그라운드 작업을 생성하고, AI_task_job.perform_later(task)를 통해 작업을 비동기적으로 처리하도록 변경했습니다.

  • Procfile.devworker: solid_queue start를 추가하여 SolidQueue 워커가 백그라운드 작업을 처리하도록 설정함으로써, 사용자 인터페이스의 응답성을 크게 향상시켰습니다.

결론

이 에피소드에서는 AI 에이전트에 Tavali 웹 검색 도구를 통합하여 에이전트의 정보 검색 능력을 강화하는 방법을 성공적으로 시연했습니다. 또한, 에이전트에 할당되는 도구의 수를 신중하게 관리하여 성능과 정확성을 최적화하는 중요성을 강조했습니다. 코드 레벨에서는 도구 호출 처리, UI 개선, 그리고 SolidQueue를 활용한 백그라운드 작업 전환을 통해 사용자 경험을 향상시키는 방법을 다루었습니다. 이러한 통합 및 최적화 과정을 통해 에이전트는 더욱 강력하고 효율적으로 작동하며, 다음 에피소드에서는 커스텀 도구 작성에 대해 다룰 예정입니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!