LlamaIndex, 에이전트 시스템(Agentic System)을 위한 경량 프레임워크 Workflows 1.0 발표

Workflows 1.0 소개

최근 몇 년간 대규모 언어 모델(LLM)의 발전과 함께, ‘에이전트 기반 시스템’의 개념이 점점 더 중요한 기술 트렌드로 자리잡고 있습니다. 단순한 프롬프트 응답을 넘어, 여러 단계의 작업을 처리하고, 외부 API와 상호작용하며, 상황에 따라 합리적인 판단을 내리는 ‘AI 에이전트’들이 실제 업무 자동화 및 사용자 지원에 활용되고 있기 때문입니다. 하지만 이러한 에이전트 시스템을 구현하는 데 있어 가장 큰 과제는 바로 복잡한 흐름 제어, 상태 관리, 그리고 시스템 간의 오케스트레이션입니다.

이러한 요구를 해결하기 위해 LlamaIndex 팀이 개발한 Workflows 1.0은 경량화된 에이전트 시스템 구축을 위한 프레임워크로, 복잡한 멀티스텝 AI 프로세스를 손쉽게 정의하고 제어할 수 있는 구조를 제공합니다. Workflows 프레임워크는 Python과 Typescript를 모두 지원하며, 처음에는 llama_index의 일부로 시작했으나, 이번 정식 릴리스를 통해 독립적인 패키지로 분리되어 제공되고 있습니다.

LlamaIndex Workflows는 단순한 태스크 시퀀싱을 넘어서 비동기(event-driven) 구조와 상태 기반 흐름 제어를 지원함으로써, 사용자 맞춤형 AI 파이프라인, 문서 처리, 고객 응대 자동화, 멀티모달 애플리케이션 등 다양한 사용 사례에 대응할 수 있는 유연함을 갖추고 있습니다.

Workflows는 기존 LLM 기반 애플리케이션 프레임워크와 비교했을 때 몇 가지 뚜렷한 차별점을 갖습니다. 예를 들어 LangChain과 같은 시스템은 다양한 체인과 프롬프트 템플릿, 에이전트 실행기 등을 포함하지만, 그 복잡성과 강한 프레임워크 종속성으로 인해 오히려 확장성과 관리에 어려움을 주는 경우가 있습니다.

반면, Workflows는 매우 경량화된 구조로 설계되어 있으며, LlamaIndex에 종속되지 않으면서도 완전한 에이전트 오케스트레이션 기능을 제공합니다. 또한, Pydantic 기반의 타입 안전성, 리소스 주입 기능, OpenTelemetry 기반의 옵서버빌리티 확장 등은 기존 시스템에서 보기 어려운 세심한 설계 요소로, 실제 프로덕션 환경에서의 사용을 염두에 둔 기능들이라고 할 수 있습니다.

Workflows의 주요 특징

Workflows는 단순한 태스크 실행을 넘어서, 다음과 같은 복잡한 AI 기반 시스템 구축에 적합합니다:

  • AI 에이전트 시스템: 상황 판단, 의사결정, 액션 실행을 여러 단계에 걸쳐 수행하는 시스템을 쉽게 정의할 수 있습니다.
  • 문서 처리 파이프라인: 문서를 수집하고, 분석하고, 요약하며, 단계별로 분기 처리하는 복합 구조를 설계할 수 있습니다.
  • 멀티모달 애플리케이션: 언어 모델, 이미지 모델, 외부 데이터 포맷 등을 조합해 다양한 입력을 처리할 수 있습니다.
  • 리서치 보조 시스템: 웹 검색, 정보 분석, 요약 및 보고서 생성까지 자동화된 흐름을 구축할 수 있습니다.
  • 역할 기반 멀티 에이전트 시스템: 여러 에이전트가 주도권을 넘겨가며 협력 작업을 수행하는 구조도 손쉽게 지원됩니다.
  • 콘텐츠 생성 자동화: 인간의 승인 루프를 포함한 생성-검토-편집-배포 파이프라인을 설계할 수 있습니다.
  • 고객 지원 자동화: 고객 요청을 분류하고 이해하며, 자동 응답 및 라우팅 시스템을 구축할 수 있습니다.

이러한 시스템들은 모두 Workflows의 비동기 기반, 상태 보존 기능, 이벤트 기반 트리거를 통해 유연하게 구현할 수 있습니다.

Workflows의 독립 패키지화

Workflows는 더 이상 llama_index의 부속 기능이 아닌, 독립적인 프레임워크로 제공됩니다. Python과 Typescript를 지원하며, 다음 명령어로 설치할 수 있습니다:

  • Python: pip install llama-index-workflows
  • Typescript: npm i @llamaindex/workflow-core

Workflows의 언어별 코드는 각각 아래 GitHub 저장소에서 관리됩니다:

기존 llama_index 프로젝트는 새로운 패키지를 re-export하는 방식으로 여전히 Workflows 기능을 제공하므로, 기존 코드베이스는 수정 없이 최신 기능을 사용할 수 있습니다. 이번 분리의 핵심 목적은 Workflows가 보다 범용적인 오케스트레이션 도구로 활용될 수 있도록 하고, llama_index에 종속되지 않은 사용자들도 쉽게 도입할 수 있도록 하는 데 있습니다.

Workflows 1.0의 새로운 기능

이번 1.0 버전은 Workflows를 독립적으로 배포하는 첫 버전으로, 다양한 기능이 개선되고 새롭게 도입되었습니다:

  • 타입 안전 상태 관리 (Typed Workflow State): Python과 Typescript 양쪽 모두에서 타입이 지정된 상태 관리가 가능해져, 워크플로우의 구조적 안정성이 강화됩니다.
  • 리소스 주입 (Resource Injection): Python 워크플로우에서 동적으로 데이터베이스 클라이언트 등의 리소스를 주입할 수 있어, 유연한 환경 구성이 가능합니다.
  • 옵서버빌리티 통합 (Observability): llama-index-instrumentation 패키지를 통해 OpenTelemetry, Arize Phoenix 등의 도구와 연동해 워크플로우 실행을 추적하고 분석할 수 있습니다.

새로운 공식 문서는 아직 이전 버전을 기반으로 제공되지만, 대부분의 개념과 코드 사용법은 호환됩니다:

라이선스

Workflows 프로젝트는 MIT 라이선스로 공개 및 배포 되고 있습니다. 상업적 사용을 포함하여 거의 모든 용도로 자유롭게 활용할 수 있으며, 별도의 제약은 존재하지 않습니다.

:scroll: Workflows 1.0 출시 블로그

:github: Workflows(Python:python:) GitHub 저장소

:github: Workflows(Typescript:typescript:) GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: