내가 AI 워크플로 엔진을 만든 이유

발행: (2026년 2월 18일 오전 11:56 GMT+9)
10 분 소요
원문: Dev.to

Source: Dev.to

번역을 진행하려면 실제 텍스트(본문 내용)를 제공해 주시겠어요?
링크만으로는 내용을 가져올 수 없으니, 번역이 필요한 부분을 복사해서 알려주시면 바로 한국어로 번역해 드리겠습니다.

📖 반복되는 패턴

“나는 같은 것을 계속해서 만들고 있었다.”

지난 몇 년 동안 저는 모두 공통된 흐름을 가진 여러 애플리케이션을 개발해 왔습니다:

애플리케이션핵심 필요성
Memoir Writing Assistant장기적인 대화형 워크플로우로 사용자를 깊이 개인적인 스토리텔링으로 안내합니다.
Small‑Business Finance App비즈니스 프로세스 워크플로우(승인, 조정, 반복 작업)에 AI를 겹쳐 분류 및 인사이트 제공.
Customer Chatbot (current client)RAG 기반 지식베이스 탐색, 지원 처리, 부품 선택 및 주문.
Academic Research AssistantLLM 기반 연구 프로젝트 분석 및 종합.

모두 처음부터 다시 구축해야 했던 세 가지가 필요했습니다:

  1. 내구성 있는 워크플로우 오케스트레이션
  2. AI 에이전트와의 통합
  3. AI 비용에 대한 제어

각 새로운 프로젝트는 동일한 단계로 귀결되었습니다:

  • 작업을 큐에 넣기
  • LLM 호출하기
  • 진행 상황 및 재시도 추적하기
  • 상태 영구 저장하기
  • 사용자에게 알리기

더 나은 방법이 있을 것이라 생각했고, 그래서 찾아보기 시작했습니다.

🔎 기존 도구 – 무엇이 부족한가?

도구강점약점 (AI 중심 워크로드에 대해)
Temporal표준에 부합하는 내구성 있는 실행높은 유지보수 비용, 토큰 사용량이나 LLM 가격에 대한 인식 부족.
Airflow성숙한 배치 스케줄러cron 기반 DAG에 설계되어 있어 이벤트 기반 인터랙티브 흐름에 부적합; 대용량 Docker 이미지 및 RAM 사용량.
LangChain / LangGraphAI 중심, 풍부한 LLM 도구Python 전용, 내구성 부족; 프로덕션에서는 LangSmith 필요(전용, 실행당 약 $1k/백만 회).

핵심 요약: 기존 솔루션은 운영 부담이 크고 AI를 무시하거나 AI를 인식하지만 내구성 및 독립성이 부족합니다.

💡 핵심 인식

AI 애플리케이션에서 LLM 비용은 애플리케이션‑인프라 관점의 문제입니다.

워크플로우가 LLM을 호출할 때, 그 호출 비용이 다음 단계에 영향을 미쳐야 합니다:

  • Claude Sonnet을 사용할 여유가 있나요, 아니면 Haiku로 대체해야 할까요?
  • 이 워크플로우가 이미 예산을 소진했나요?
  • 다른 API 호출을 하기보다 캐시된 결과를 재사용할 수 있나요?

이러한 결정은 실행 중에 이루어져야 하며, 사후에 이루어져서는 안 됩니다. 따라서 비용 추적은 사후 대시보드가 아니라 오케스트레이터 자체에 포함되어야 합니다.

🚀 Introducing Kruxia Flow

AI 애플리케이션을 위해 특별히 설계된 내구성 있는 워크플로우 엔진.

특징세부 정보
Binary단일 Rust 바이너리 (~7.5 MiB)
PersistencePostgreSQL (Kafka, Elasticsearch, Cassandra 없음)
Deployment하나의 바이너리 + 하나의 DB → 작은 Docker 이미지 (≈ 63 MiB)
PortabilityRaspberry Pi Zero, 클라우드 VM, 혹은 모든 컨테이너 호스트에서 실행

AI‑네이티브 핵심 기능

  1. Automatic Cost Tracking

    • 토큰을 실시간으로 계산하고 가격을 산정합니다.
    • Anthropic, OpenAI, Google Gemini, 그리고 자체 호스팅 Ollama 모델을 지원합니다.
  2. Budget Enforcement

    • 워크플로우당 또는 활동당 예산을 설정합니다.
    • 엔진은 각 LLM 호출 전에 예산을 확인하며, 초과 시 중단하거나 알림을 보낼 수 있습니다.
  3. Cost‑Aware Model Fallback

    • 폴백 체인을 정의합니다 (예: Claude Sonnet → Claude Haiku → Ollama).
    • 오케스트레이터는 남은 예산에 맞는 가장 성능이 좋은 모델을 선택합니다.
  4. Semantic Caching

    • 유사한 쿼리는 API 대신 캐시를 사용합니다.
    • FAQ, RAG와 같은 일반 패턴에서 중복 호출을 50‑80 % 감소시킵니다.
  5. Python SDK

    • Python으로 워크플로우와 커스텀 워커를 정의합니다.
    • pandas, DuckDB, scikit‑learn에 대한 내장 지원을 제공합니다.

📊 Benchmarks (Kruxia Flow vs. Temporal & Airflow)

지표Kruxia FlowTemporalAirflow
처리량93 워크플로우 / s66 워크플로우 / s8 워크플로우 / s
최대 메모리328 MiB~1 GiB (변동)7.2 GiB
Docker 이미지 크기63 MiB> 500 MiB> 1 GiB
테스트 하드웨어2 vCPU, 4 GiB RAM (Linux)동일동일
Raspberry Pi Zero✅ 실행❌ 너무 무거움❌ 너무 무거움

👥 Kruxia Flow는 누구를 위한 것인가?

  • AI 스타트업: 에이전트를 프로덕션에 배포하면서 실시간 비용 가시성이 필요한 경우.
  • 소규모 기업: 수만 달러 규모의 인프라 비용 없이 워크플로 자동화를 원하는 경우.
  • 데이터 팀: 배치 파이프라인, ML 학습, NLP 처리, LLM 에이전트를 결합하면서 운영 경량성을 유지하고자 하는 경우.

위 항목 중 하나에 해당한다면, Kruxia Flow는 당신을 위해 만들어졌습니다.

📜 Licensing & Availability

  • Core engine, LLM cost tracking, budget enforcement, multi‑provider support, token streamingAGPL‑3.0 (open source).
  • Python SDKMIT‑licensed.

Repository: https://github.com/kruxia/kruxia‑flow (public, actively maintained)

🛠️ 시작하기 (빠른 시작)

# 1️⃣ Pull the Docker image (63 MiB)
docker pull ghcr.io/kruxia/kruxia-flow:latest

# 2️⃣ Run PostgreSQL (if you don’t have one already)
docker run -d \
  -e POSTGRES_PASSWORD=secret \
  -e POSTGRES_USER=kruxia \
  -e POSTGRES_DB=kruxia \
  -p 5432:5432 \
  postgres:15

# 3️⃣ Start Kruxia Flow
docker run -d \
  -e DATABASE_URL=postgresql://kruxia:secret@host.docker.internal:5432/kruxia \
  -p 8080:8080 \
  ghcr.io/kruxia/kruxia-flow:latest

# 4️⃣ Install the Python SDK
pip install kruxia-flow-sdk

이제 Python에서 워크플로를 정의할 수 있습니다:

from kruxia import workflow, activity, ModelSelector

@workflow
def memoir_assistant(user_id: str):
    # Step 1 – fetch user profile (cached)
    profile = await activity(fetch_profile, user_id)

    # Step 2 – generate outline (cost‑aware)
    outline = await activity(
        generate_outline,
        profile,
        model=ModelSelector(preferred="claude-sonnet", fallback="claude-haiku")
    )

    # Step 3 – store result
    await activity(save_outline, user_id, outline)

🎉 마무리 생각

기존 워크플로 엔진은 운영 복잡성을 부담하게 하거나 LLM 사용의 경제성을 무시합니다.
Kruxia Flow는 그 격차를 메우며 작고, Rust‑기반, AI‑인식 오케스트레이터를 제공하여:

  • 실시간으로 비용을 추적
  • 예산 초과 전에 강제 적용
  • 자동으로 더 저렴한 모델로 전환
  • 의미적으로 유사한 쿼리를 캐시

모두 경량, 오픈 소스, 그리고 단독 개발자나 소규모 팀이 쉽게 실행할 수 있도록 유지됩니다.

즐거운 개발 되세요! 🚀

로드맵

  • 시맨틱 캐싱, 웹 대시보드, 그리고 TypeScript SDK가 로드맵에 포함됩니다.

아직 개발 중이며 앞으로 할 일이 많습니다. 하지만 기반은 탄탄하고 저는 이미 제 프로젝트에 사용하고 있습니다 — 결국 이것이 제가 처음 만들게 된 이유이기도 합니다.

이 내용이 마음에 드신다면 살펴보시길 바랍니다. 코드는 GitHub에 있으며, 디자인, 로드맵, AI와의 작업 등에 대해 이야기할 수 있는 Discord도 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

OpenClaw는 설계상 안전하지 않다

OpenClaw는 설계상 안전하지 않다. Cline 공급망 공격, 2월 17일. 인기 있는 VS Code 확장 프로그램인 Cline이 침해되었다. 공격 체인은 여러 AI‑...