a-agmon/rs-graph-llm
High-performance framework for building interactive workflow systems in Rust. Designed for complex workflows and multi-agent systems
해결하는 문제
복잡한 AI 에이전트 워크플로우를 구축하는 것은 종종 여러 LLM 호출, 분기 로직, 사용자 중단, 진행 상황 저장을 동시에 처리하는 것을 의미합니다. 이 프로젝트는 개발자가 상태 저장 및 재개 가능한 에이전트 워크플로우를 그래프로 설계할 수 있게 하는 Rust 네이티브 프레임워크를 제공합니다. LangGraph와 유사하지만 Rust의 성능과 타입 안전성을 갖추고 있습니다. 작업 오케스트레이션, 조건부 라우팅, 인간 개입 일시 중지, 세션 영속성을 기본으로 처리합니다.
작동 방식
핵심 아이디어는 작업 그래프입니다. 각 작업은 간단한 Task 트레이트를 구현하고, Context 객체를 통해 공유 상태를 읽고 쓰며, 엔진에 다음에 무엇을 할지 알려주는 NextAction을 반환합니다(단계별 계속, 연속 실행, 입력 대기, 특정 작업으로 점프, 또는 종료). GraphBuilder는 작업과 엣지를 조립하며, 선택적으로 컨텍스트 데이터를 기반으로 조건부 분기를 추가합니다. 세션은 워크플로우의 상태를 저장하고, FlowRunner는 세션을 로드하고, 한 단계를 실행하고, 다시 저장합니다. 이를 통해 워크플로우는 일시 중지하고, 사용자 입력을 기다리고, 나중에 재개할 수 있습니다. 프로세스 재시작을 넘어서도 가능합니다. 이 프레임워크는 채팅 기록 변환을 위해 Rig LLM 생태계와 통합되며, 인메모리 또는 PostgreSQL 스토리지 백엔드도 함께 제공됩니다.
대상 사용자
구조화되고 안정적이며 재개 가능한 LLM 기반 워크플로우가 필요한 에이전트 애플리케이션을 구축하는 개발자. 예를 들어 대화형 서비스, 클레임 처리 파이프라인, 추천 시스템, 또는 분기와 인간 검토가 포함된 다단계 자동화 등이 있습니다. Python 기반 대안보다 타입 안전성과 성능을 원하는 Rust 사용자, 그리고 LangGraph에서 영감을 받은 깔끔한 API를 높이 평가하는 사용자에게 적합합니다.
주요 기능
- 상태 저장 및 재개 가능: 세션은 모든 작업에서 일시 중지하고, 사용자 입력을 기다리고, 나중에 재개할 수 있습니다. 선택적으로 PostgreSQL 영속성을 사용할 수 있습니다.
- 유연한 실행 모델: 동일한 그래프에서 단계별 대화형 제어와 fire-and-forget 연속 실행을 혼합합니다.
- 조건부 라우팅: 컨텍스트 데이터를 기반으로 분기합니다. 예를 들어 LLM의 감정 분류를 기반으로 라우팅합니다.
- 인간 개입 지원: 작업은
WaitForInput을 반환하여 인간이 응답할 때까지 워크플로우를 일시 중지할 수 있습니다. - 병렬 팬아웃: 하나의 그래프 노드 내에서 하위 작업을 동시에 실행하고 출력을 집계합니다.
- 프로덕션 안전장치: 작업별 타임아웃, 최대 실행 단계 제한, 세션 쓰기 충돌을 방지하기 위한 낙관적 잠금.
- Rig 통합: 컨텍스트에 저장된 채팅 기록을 LLM 호출용 Rig 메시지로 직접 변환합니다.
- 실제 예제: LLM 분류, 승인 워크플로우 및 HTTP API를 갖춘 완전한 보험 클레임 서비스; RAG 추천 서비스도 포함.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트