Post

이걸 왜 이제 알았을까? 오픈소스 여론 분석 끝판왕 'BettaFish' 솔직 리뷰

이걸 왜 이제 알았을까? 오픈소스 여론 분석 끝판왕 'BettaFish' 솔직 리뷰

“단일 LLM의 시대는 끝났다. 이제는 에이전트들이 알아서 데이터를 캐오고, 자기들끼리 토론해서 결론을 내는 시대다.”

요즘 깃허브 트렌딩을 눈팅하다가 진짜 ‘물건’을 하나 발견했습니다. 이름부터 심상치 않은 BettaFish(WeiYu, 微微)라는 오픈소스 프로젝트인데요. 처음엔 그저 흔한 ‘AI 크롤링 툴이겠거니~’ 하고 넘기려다가, 아키텍처 다이어그램을 보는 순간 커피를 뿜을 뻔했습니다.

우리가 흔히 겪는 문제 있죠? 쏟아지는 소셜 미디어 데이터 속에서 진짜 ‘여론’을 읽어내는 건 엄청난 노가다입니다. 기존에는 파이썬으로 크롤러 짜고, 그걸 또 랭체인(LangChain) 같은 프레임워크에 붙여서 단일 LLM한테 텍스트 요약이나 감정 분석을 시키는 게 국룰이었잖아요. 그런데 BettaFish는 아예 각기 다른 역할을 가진 AI 에이전트들을 모아 ‘토론의 장(Agent Forum)’을 만들어버렸습니다. 이건 진짜 기발하더라고요.

💡 한 마디로 정리해볼게요 (TL;DR)

BettaFish는 웹 크롤링, 멀티모달 분석, 프라이빗 데이터 마이닝을 담당하는 여러 AI 에이전트가 수집한 데이터를 바탕으로 스스로 토론(Agent Forum)하여 심층 여론 분석 리포트를 찍어내는 100% 오픈소스 파이프라인입니다.


🔍 Deep Dive: 도대체 기존과 뭐가 다를까?

이 녀석이 왜 특별한지 기술적인 관점에서 좀 더 깊게 들어가 볼게요. 공식 문서에서는 ‘정보의 고치(Information Cocoon)를 깬다’고 표현하던데, 개발자 입장에서 가장 매력적인 건 철저하게 분리된 에이전트 아키텍처입니다.

BettaFish는 크게 핵심 역할을 하는 전문 에이전트들과 이를 중재하는 LLM Host로 구성됩니다.

에이전트명주요 역할특징
🕵️‍♂️ Query Agent글로벌 및 로컬 웹 검색, 뉴스 수집국내외 포털, 뉴스 사이트를 실시간으로 스크랩합니다.
📊 Insight Agent프라이빗 데이터베이스 마이닝사내 DB나 기존 여론 데이터에 접근해 히스토리를 분석합니다.
👁️ Media Agent멀티모달(이미지/영상) 분석단순 텍스트를 넘어 틱톡, 숏폼 등의 시각적 요소와 감정을 읽어냅니다.
📝 Report Agent인텔리전트 리포트 생성최종 분석된 데이터를 바탕으로 커스텀 템플릿에 맞춰 HTML을 뽑아냅니다.
⚖️ LLM Host에이전트 포럼 중재자 (Moderator)(핵심!) 각 에이전트가 가져온 데이터가 충돌할 때 토론을 주도하고 결론을 도출합니다.

여기서 진짜 미친 포인트는 ‘Agent Forum’이라는 메커니즘이에요.

보통 단일 LLM에 데이터를 쏟아부으면, 그럴싸한 헛소리(Hallucination)를 하거나 앞뒤가 안 맞는 결론을 내는 경우가 많잖아요? BettaFish는 데이터를 수집한 에이전트들이 가상 포럼에 모여서 각자의 근거를 바탕으로 토론을 합니다. 그리고 LLM Host라는 AI가 의장 역할을 하면서 “Insight Agent, 방금 말한 데이터의 출처가 정확한가?”, “Media Agent, 틱톡 영상의 분위기는 텍스트 여론과 어떻게 다른가?”라고 묻고 조율합니다.

이건 마치 제가 주니어 개발자 시절, 시니어 개발자들이 회의실에 모여 아키텍처 회의를 하던 걸 AI로 고스란히 구현해놓은 느낌이랄까요?

💻 쏘-심플한 설정 방식 (LLM Agnostic)

개발자로서 또 하나 마음에 들었던 건 확장의 유연성입니다. 특정 LLM에 종속되지 않고 OpenAI 호환 API면 다 가져다 붙일 수 있어요.

1
2
3
4
5
6
7
# config.py 중 일부
# 어떤 LLM이든 OpenAI 규격만 맞추면 OK! 오픈소스의 철학을 잘 보여줍니다.
LLM_SETTINGS = {
    "INSIGHT_ENGINE_API_KEY": "sk-your-api-key-here",
    "INSIGHT_ENGINE_BASE_URL": "https://api.moonshot.cn/v1", # Kimi, OpenAI, Claude 등 자유롭게 변경
    "INSIGHT_ENGINE_MODEL_NAME": "kimi-k2-0711-preview"
}

Docker Compose 기반이라 python schema/init_database.py 한 방이면 로컬이든 클라우드든(Hetzner 같은 가성비 서버 추천) 바로 띄울 수 있습니다. 깃허브에서 클론 받아서 환경 세팅하느라 주말을 날리지 않아도 된다는 건 축복이죠.


🚀 Hands-on: 실무에 적용한다면?

만약 제가 이 BettaFish를 실무에 도입한다면 어떻게 쓸 수 있을까요? 상상만 해도 손가락이 근질근질합니다.

  1. 자사 서비스 위기 감지 시스템 (Crisis Management): 특정 브랜드나 서비스에 장애가 발생했을 때, 트위터(X)나 레딧, 블라인드 등에서 올라오는 불만 글을 Query Agent가 긁어오고, Insight Agent는 사내 CS 접수 DB와 교차 검증합니다. “현재 외부에서는 불만이 폭주하는데, 실제 CS 인입량은 적습니다. 언론화되기 전에 선제 대응이 필요합니다.” 같은 묵직한 인사이트 리포트를 슬랙으로 받아볼 수 있겠죠.

  2. 트렌드 기반 자동화된 마케팅 리서치: 단순한 키워드 검색량 변화를 넘어서, Media Agent를 통해 유튜브나 인스타그램 릴스에서 최근 유행하는 특정 밈(Meme)의 영상 분위기와 텍스트 반응의 괴리를 찾아낼 수 있습니다. 이건 기존 마케팅 팀이 며칠 밤새워 하던 리서치 업무를 통째로 혁신할 수준입니다.


🤔 Honest Review: 솔직히 아쉬운 점도 있습니다

물론 칭찬만 할 수는 없겠죠. 제가 뜯어보면서 느낀 명확한 한계점들도 분명 있습니다.

  • 🔥 치명적인 장점 (Pros):
    • 단일 LLM의 환각을 줄이는 ‘토론형’ 다중 에이전트 구조는 정말 신선하고 강력합니다.
    • 오픈소스 기반이며 순수 Python + Docker 조합이라 커스터마이징 허들이 매우 낮습니다.
    • 퍼블릭(소셜 미디어) 데이터와 프라이빗(사내 DB) 데이터를 완벽하게 퓨전할 수 있습니다.
  • 🚧 현실적인 단점 (Cons / Limitations):
    • 비용의 압박: 에이전트끼리 끊임없이 토론(API Call)을 주고받다 보니, GPT-4o나 Claude 3.5 Sonnet 같은 무거운 모델을 메인으로 사용하면 API 토큰 비용이 눈덩이처럼 불어날 수 있습니다. 그래서 로컬 LLM이나 가성비 좋은 모델을 섞어 쓰는 Hybrid Inference 전략이 필수입니다.
    • 크롤링 인프라 관리: 시스템 자체는 훌륭하지만, 각 플랫폼(특히 인스타, 틱톡 등)의 안티 크롤링 정책이 빡세지면 결국 프록시 IP 벤더를 뚫거나 세션 관리를 직접 해줘야 하는 ‘인프라 노가다’는 피할 수 없어 보입니다.

🎯 Conclusion: 시대의 흐름이 바뀌고 있다

BettaFish(WeiYu)를 리뷰하면서 느낀 점은, 이제 AI를 활용하는 패러다임이 “얼마나 똑똑한 하나의 모델을 쓸 것인가”에서 “여러 AI를 어떻게 유기적으로 협업시킬 것인가”로 완전히 넘어왔다는 것입니다.

작지만 호전적인 열대어 ‘베타(Betta)’라는 이름처럼, 이 프로젝트는 거대 정보기관이나 대기업의 독점물이었던 빅데이터 여론 분석 시스템을 개인 개발자의 노트북 위로 끌어내렸습니다. 이번 주말, 토이 프로젝트로 뭐 할지 고민 중이셨다면 당장 깃허브에서 git clone부터 받아보세요. 에이전트들이 자기들끼리 지지고 볶으며 분석 리포트를 써내는 과정을 지켜보는 것만으로도 도파민이 터질 겁니다! 🚀

References

  • https://github.com/EaglaYao/BettaFish
  • https://jimmysong.io/blog/bettafish-weiyu/
  • https://betterstack.com/bettafish-explained
  • https://xugj520.cn/bettafish-revealed
This post is licensed under CC BY 4.0 by the author.