Active Agent를 활용한 Rails AI 기능 구축: Rails 네이티브 AI 개발의 새로운 지평

AI + Rails Workshop | thoughtbot Open Summit 2025

작성자
jeff
발행일
2025년 11월 19일

핵심 요약

  • 1 Active Agent는 Rails 애플리케이션에 AI 기능을 통합하기 위한 Rails 네이티브 오픈소스 프로젝트입니다.
  • 2 Active Agent는 기존 Rails 프레임워크(Active Record, Action View, Action Controller)의 패턴과 Gem을 활용하여 AI 개발에 '설정보다 관례'를 제공합니다.
  • 3 본 세션에서는 Writebook 앱에 Active Agent를 사용하여 콘텐츠 요약, 문법 수정, 이미지 캡션 자동 생성 등의 AI 기능을 구현하는 과정을 시연했습니다.

도입

ThoughtBot의 Chad Pitel과 Active Agent의 개발자 Justin Bowen이 Open Summit에서 만나 Rails 애플리케이션에 AI 기능을 통합하는 방법에 대해 논의합니다. Justin은 Active Agent가 Rails의 기존 패턴과 Gem을 활용하여 AI 기능 개발을 위한 Rails 네이티브 방식을 제공한다고 소개하며, Ruby on Rails가 외부 서비스와의 API 통신에 능숙하여 AI 제품 개발에 매우 적합하다고 강조합니다. 이는 AI 개발의 상당 부분이 API 통신으로 이루어지는 현재 상황에서 Rails의 강점을 부각합니다.

Active Agent는 Rails 개발자들이 익숙한 Active Record, Action View, Action Controller와 같은 Gem들을 AI 기능 개발에 활용할 수 있도록 설계되었습니다. 이는 웹 애플리케이션 개발에서 Rails가 제공하는 ‘설정보다 관례(convention over configuration)’ 원칙을 AI 기능에도 적용하려는 시도입니다.

Active Agent의 핵심 원칙 및 구조

  • 기존 Rails Gem 재활용: Active Record는 컨텍스트(메시지, 로그)를 저장하고, Action View는 프롬프트 템플릿팅에 사용되며, Action Controller는 에이전트 클래스의 기반이 됩니다.

  • Action Prompt 인터페이스: Action View가 LLM과 대화하며 동적 프롬프트를 에이전트에 렌더링하는 역할을 합니다.

  • Agent Class: Action Mailer와 유사하게, Active Agent 클래스는 컨트롤러와 같아서 공개 메서드가 뷰를 렌더링하고 백그라운드에서 생성 작업을 수행할 수 있습니다.

  • 비동기 작업 및 스트리밍 지원: Active Job을 활용한 비동기 작업(generate_later)과 Action Cable을 통한 AI 응답 스트리밍 기능(on_stream 콜백)을 지원하여 사용자 경험을 개선합니다.

데모 및 기능 구현

  • Writebook 앱 활용: 37signals의 Writebook 애플리케이션을 복제하여 AI 기능을 추가하는 데모를 진행했습니다.

  • AI 기능 예시:
    • 콘텐츠 요약/확장/문법 수정: 텍스트 에디터 툴바에 ‘요약’, ‘확장’, ‘문법 수정’ 등의 버튼을 추가하여 선택된 콘텐츠에 AI 기능을 적용합니다.
    • 이미지 캡션 자동 생성: 이미지 업로드 시 AI가 이미지를 분석하여 자동으로 캡션을 생성합니다.
  • LLM 연동: OpenAI (ChatGPT) 또는 Olama와 같은 LLM 제공자와의 API 통신을 통해 AI 기능을 구현합니다.

개발 과정에서의 도전과제

  • 프론트엔드 통합: Stimulus 컨트롤러를 사용하여 AI 기능 호출 및 응답 처리를 담당합니다. 실시간 스트리밍 구현 시 Turbo Stream과 Action Cable을 활용하는 방안을 논의했습니다.

  • 콜백 필터링 문제: Action Mailer의 콜백 필터링(only: :improve)이 제대로 작동하지 않는 문제점을 언급하며, Active Agent에서는 이를 해결하기 위한 구현 방식을 소개했습니다.

Rails AI 생태계의 비전

  • Justin은 Rails 커뮤니티가 AI 분야에서 기회를 잡고, Ruby LLM과 같은 프로젝트를 통해 생태계를 강화해야 한다고 주장합니다.

  • 궁극적인 목표는 Rails 개발자들이 AI 제품 개발을 위해 Next.js와 같은 다른 프레임워크로 전환하는 대신, Rails 내에서 강력한 AI 기능을 구축할 수 있도록 지원하는 것입니다.

결론

Active Agent는 Rails 개발자들이 익숙한 '설정보다 관례' 철학을 AI 기능 개발에 도입함으로써, Rails 생태계 내에서 AI 기능을 쉽고 효율적으로 구축할 수 있는 강력한 도구를 제공합니다. 기존 Rails 컴포넌트들을 재활용하여 AI 개발의 복잡성을 줄이고, 비동기 처리 및 스트리밍과 같은 고급 기능까지 지원합니다. 이는 Rails가 AI 시대에도 여전히 경쟁력 있는 플랫폼임을 증명하며, Ruby 커뮤니티가 AI 분야에서 새로운 기회를 모색하고 혁신을 이끌어갈 수 있는 기반을 마련합니다. 궁극적으로 Active Agent는 Rails 개발자들이 AI 제품을 위해 외부 프레임워크로 눈을 돌리지 않고, 사랑하는 Rails 안에서 모든 것을 해결할 수 있도록 돕는 것을 목표로 합니다.

댓글 0

로그인이 필요합니다

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

로그인 하러 가기

아직 댓글이 없습니다

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