AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

Apache Burr – 챗봇·에이전트·시뮬레이션을 위한 상태 머신 기반 결정 앱 프레임워크

Apache Burr(incubating)는 챗봇·에이전트·시뮬레이션 같이 결정을 내리는 Python 애플리케이션을 만들기 위한 오픈소스 프레임워크다. 상태(state)와 전이(transition)를 명시적으로 모델링하고, 내장 UI로 실행 흐름을 실시간으로 추적하고 디버깅할 수 있다. LangChain·LangGraph 등 기존 LLM 프레임워크와 함께 사용할 수 있으며, LLM 없이도 동작한다.

작동 방식

Burr는 애플리케이션을 상태 머신으로 표현한다. 각 단계(step)는 @action 데코레이터로 정의하고, ApplicationBuilder로 전이 그래프를 조립한다.

from burr.core import action, State, ApplicationBuilder

@action(reads=[], writes=["prompt", "chat_history"])
def human_input(state: State, prompt: str) -> State:
    chat_item = {"role": "user", "content": prompt}
    return state.update(prompt=prompt).append(chat_history=chat_item)

@action(reads=["chat_history"], writes=["response", "chat_history"])
def ai_response(state: State) -> State:
    response = _query_llm(state["chat_history"])  # LLM 호출 방식 자유
    chat_item = {"role": "system", "content": response}
    return state.update(response=response).append(chat_history=chat_item)

app = (
    ApplicationBuilder()
    .with_actions(human_input, ai_response)
    .with_transitions(
        ("human_input", "ai_response"),
        ("ai_response", "human_input")
    )
    .with_state(chat_history=[])
    .with_entrypoint("human_input")
    .build()
)

주요 특징

  • 상태 머신 명시화: 흐름을 코드로 선언해 예상치 못한 상태 전이를 방지
  • 내장 모니터링 UI: burr 명령어 하나로 실행 추적·디버깅 웹 UI 시작
  • 플러그인 영속성(Persisters): Redis, SQLite 등 다양한 스토리지로 상태를 저장·복원
  • 프레임워크 무관: OpenAI, Anthropic, LangChain 등 어떤 LLM 라이브러리와도 연동 가능
  • LLM 없이도 사용 가능: 결정 로직이 있는 일반 앱에도 적용 가능
  • 인간 개입(Human-in-the-loop): 특정 단계에서 사람의 승인·수정을 삽입할 수 있는 구조

경쟁 도구 비교

항목Apache BurrLangGraphTemporalLangChainApache Hamilton
상태 머신 명시 모델링
프레임워크 무관
비동기 이벤트 기반 오케스트레이션
오픈소스 모니터링·추적 UI
LLM 외 범용 사용

LangGraph처럼 상태 머신을 지원하면서도, 오픈소스 모니터링 UI를 기본 제공한다는 점이 Burr의 핵심 차별점이다.

설치 및 시작

pip install "apache-burr[start]"

# 모니터링 UI 실행
burr

burr 명령어로 텔레메트리 UI가 열린다. 사이드바에서 데모 챗봇 앱(chatbot)을 선택해 흐름을 직접 확인할 수 있다. OPENAI_API_KEY 없이도 UI 구조 탐색은 가능하다.

# 예제 실행
git clone https://github.com/apache/burr && cd burr/examples/hello-world-counter
python application.py

누가 쓰면 좋은가

사용자사용 케이스
LLM 앱 개발자챗봇·에이전트 흐름을 명확하게 설계하고 실시간으로 디버깅하고 싶을 때
AI 파이프라인 엔지니어상태를 저장·복원해야 하는 장기 실행 워크플로 구축
연구자·프로토타이퍼LLM 실험 결과를 추적하고 재현 가능하게 기록하고 싶을 때

라이선스

Apache 2.0

관련 문서

  • n8n — 시각적 노드 기반 워크플로 자동화 (코드리스 접근)
  • claude-managed-agents — Anthropic의 관리형 에이전트 플랫폼

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)