팟캐스트는 Ruby 커뮤니티의 뜨거운 감자인 Bundler, RubyGems 프로젝트의 관리권 논란으로 시작되었습니다. Joe Leo는 15년간 Bundler를 유지보수한 Andre Arco와 같은 장기 기여자들이 충분한 이유 없이 프로젝트 접근 권한을 잃은 상황에 대한 우려를 표명했습니다. 그는 RubyGems 오픈소스 라이브러리와 rubygems.org 웹사이트 간의 개념 혼동이 설명의 모호함을 야기한다고 지적하며, Shopify의 개입 방식에 대한 비판적인 시각을 드러냈습니다.
이어서 Amanda는 자신의 데이터 과학 및 머신러닝 배경을 소개하며, ChatGPT의 등장 이후 AI 기술이 더욱 접근 가능해졌다고 언급했습니다. Ambulabs는 고객의 AI 역량과 요구 사항에 맞춰 세 가지 유형의 접근 방식을 사용합니다.
고객의 AI 수요 대응 전략
-
AI에 대한 호기심: AI 활용 가능성을 탐색하고 가장 효율적인 통합 방안을 모색합니다.
-
명확한 아이디어: 특정 문제를 AI로 해결하고자 하지만, 구현 방법에 대한 지식이 부족한 고객에게 솔루션을 제공합니다.
-
AI가 필요 없는 문제: AI가 필요 없는데도 AI를 고집하는 고객에게는 분류기(classifier) 훈련이나 규칙 기반 시스템이 더 효율적일 수 있음을 설득합니다. 특히 LLM이 정형 데이터나 단순 분류에 비효율적임을 강조합니다.
Ambulabs의 AI 활용 사례
-
FastRuby.io를 통한 Rails 업그레이드 자동화: Rails 업그레이드 로드맵을 자동화하는 도구를 개발했습니다. 이는 정적 분석을 통해 수동으로 수행되던 반복적인 작업을 대체하여, 인간 엔지니어의 작업 효율을 85~90%까지 향상시킵니다.
-
내부 AI 기반 Slack 챗봇: 분산된 정보(Slack, 지식 기반, 블로그, 녹화된 영상)를 한곳에 모아 팀원들이 쉽게 검색할 수 있도록 지원합니다. 특히 영상 콘텐츠의 정보 검색 효율을 크게 높였습니다.
-
마케팅 자동화 에이전트: 뉴스레터 콘텐츠 생성을 자동화하여 마케팅 팀과 엔지니어링 팀 간의 협업을 간소화하고 시간을 절약합니다.
AI 개발 전략 및 기술
-
에이전트 vs. 워크플로우: 에이전트는 자율적인 의사결정을 통해 도구를 선택하고 실행하는 반면, 워크플로우는 정해진 단계를 순차적으로 따르는 방식으로 구분하여 사용합니다.
-
환각(Hallucination) 방지 및 가드레일: Guardrails AI 라이브러리를 활용하여 생성된 응답이 원본 데이터에 근거하는지 문장 단위로 검증합니다. 또한 Microsoft Presidio를 이용하여 PII(개인 식별 정보)를 제거하여 민감한 정보 유출을 방지합니다.
-
지식 기반 업데이트 및 청킹: 슬라이딩 윈도우(sliding window) 청킹 전략을 사용하며, 다양한 형식의 텍스트 데이터를 표준화하여 일관된 정보 처리 및 검색 정확도를 높입니다.
-
프롬프트 엔지니어링 및 멀티 에이전트 시스템: React 패턴, 플래너-실행자(planner-executor) 전략과 같은 강력한 프롬프트 엔지니어링 기법을 활용합니다. 또한 복잡한 작업을 위해 여러 에이전트가 협력하는 멀티 에이전트 시스템(예: 블로그 작성 에이전트와 리뷰어 에이전트) 개발을 모색하고 있습니다.
Amanda는 ActiveAgent, LangChain.rb, DSPy.rb, PGVector, Neighbor 등 Ruby AI 프로젝트에 유망한 Gem들을 언급하며, 내부적으로는 핵심 기술에 대한 이해를 높이기 위해 직접 구현하는 방식도 병행하고 있다고 덧붙였습니다.