17P by GN⁺ 2일전 | ★ favorite | 댓글과 토론
  • LangGraph, OpenAI Agents SDK, Smolagents, CrewAI, AutoGen, Semantic Kernel, LlamaIndex Agents 등 다양한 오픈 소스 AI 에이전트 프레임워크를 비교한 글
  • AI 에이전트 개발은 과거에는 스크립트와 프롬프트 엔지니어링, 시행착오의 조합이었으나, 이제 오픈소스 프레임워크가 증가
  • 각각의 프레임워크는 에이전트의 자율성과 안정성 사이에서 고유한 아키텍처 철학을 가지고 있음
  • Langfuse 같은 관측 도구와 통합하여 프롬프트, 응답, API 호출 과정을 시각화하고 디버깅 가능

LangGraph – 그래프 기반 워크플로우

  • LangChain 기반의 그래프 아키텍처 프레임워크
  • 각 노드는 프롬프트나 작업 단위를 처리하고, 엣지(edge)는 데이터 흐름과 분기 제어
  • 복잡한 멀티스텝 작업, 병렬 처리, 오류 처리 로직 삽입에 유리
  • 시각화와 디버깅에 강하며, 상태 기반 에이전트 설계에 적합

OpenAI Agents SDK – 공식 OpenAI 에이전트 툴킷

  • OpenAI에서 제공하는 공식 SDK
  • GPT-4o, GPT-o3 등 모델과 자연스럽게 통합
  • 역할(role), 도구(tools), 트리거(trigger)를 설정하여 멀티스텝 작업 수행 가능
  • OpenAI 생태계에 익숙한 사용자에게 적합

Smolagents – 코드 기반 최소화 접근

  • Hugging Face의 미니멀한 코드 중심 에이전트 프레임워크
  • 간단한 루프 안에서 AI가 파이썬 코드 생성 및 실행
  • 복잡한 오케스트레이션 없이 빠른 프로토타이핑에 적합
  • 내부적으로 ReAct 스타일 프롬프트 활용

CrewAI – 역할 기반 멀티 에이전트 협업

  • 각 에이전트에 고유한 역할을 부여하여 협업 가능
  • "Crew"라는 컨테이너 개념을 통해 워크플로우 자동 조정
  • 기획자(Planner) - 조사자(Researcher) - 작성자(Writer) 같은 시나리오 구현에 용이
  • 메모리 기능과 오류 처리 로직 포함

AutoGen – 비동기 대화형 에이전트

  • Microsoft Research에서 개발한 비동기 대화 기반 에이전트 프레임워크
  • 각 에이전트가 대화 메시지를 주고받으며 비동기로 동작
  • 멀티턴 대화, 역할 전환, 실시간 도구 호출이 중요한 경우 유리
  • 이벤트 기반 구조로 동시성 높은 작업에 적합

Semantic Kernel – 엔터프라이즈 친화적 워크플로우

  • Microsoft의 .NET 중심 프레임워크
  • AI 스킬과 코드 기반 스킬을 혼합하여 계획 기반 워크플로우 구성
  • 보안, 규정 준수, Azure 통합 등 기업용 요구사항에 최적화
  • Python, C#, Java 등 다양한 언어 지원

LlamaIndex Agents – 데이터 중심 에이전트

  • LlamaIndex는 RAG 기반 프레임워크로 시작해 에이전트 기능 확장
  • 로컬/외부 데이터 소스를 검색하고 결과를 응답 또는 작업으로 연결
  • 문서 기반 Q&A, 요약, 맞춤형 검색 에이전트에 적합
  • 기존에 LlamaIndex를 활용한 경험이 있다면 진입장벽 낮음

언제 어떤 프레임워크를 사용할까?

  • 작업 복잡도: 작업이 간단한지 복잡한지에 따라 적합한 프레임워크를 선택해야 함
    • 복잡한 멀티스텝 흐름: LangGraph, Semantic Kernel
    • 단순한 코드 기반 실행: Smolagents
  • 멀티 에이전트 협업: 다중 에이전트가 필요한 경우, 비동기 대화와 역할 위임을 지원하는 아키텍처가 필요
    • 역할 기반 에이전트: CrewAI
    • 대화형 비동기 에이전트: AutoGen
  • 통합 환경: 에이전트가 상호작용해야 하는 환경과 시스템을 고려
    • OpenAI 중심 서비스: OpenAI Agents SDK
    • 기존 비즈니스 로직과 연동 필요: Semantic Kernel
  • 성능 및 확장성: 애플리케이션의 성능 요구 사항을 고려해야 함. 실시간 상호작용이 필요한 경우 이벤트 기반 아키텍처가 필요할 수 있음
    • 고동시성 처리 필요: AutoGen
    • 관측 도구(Langfuse 등)와 통합해 디버깅과 추적 가능

관측 및 트레이싱 도구의 중요성

  • 에이전트는 외부 API 호출, 데이터 검색, 복잡한 분기 로직을 포함하므로 투명한 추적이 필수
  • Langfuse와 같은 도구를 통해 다음 항목들을 추적 가능:
    • 각 프롬프트 및 응답 흐름
    • 툴 호출 시점 및 결과
    • 에러 및 실행 경로 시각화
  • 프로덕션 환경에서 성능 측정, 오류 디버깅, 반복 개선에 필수