a-agmon/rs-graph-llm
High-performance framework for building interactive workflow systems in Rust. Designed for complex workflows and multi-agent systems
What it solves
graph-flow는 Rust에서 복잡하고 상태 관리형 AI 에이전트 워크플로우를를 구축하는 방법을 제공합니다.
이 프레임워크는 인간의 입력이 필요하여 일시 중지되거나, LLM의 결정에 따라 분기하거나, 시스템 재시작 후 재개되어야 하는 장기 실행 에이전트 프로세스를 관리하는 어려움을 해결합니다. 이 모든 과정에서 타입 안전성과 높은 성능을 함께 유지합니다.
How it works
이 프레임워크는 워크플로우가 Tasks (노드)와 Edges (연결)로 구성된 그래프 기반 실행 엔진을を使用합니다.
- State Management: 스레드 안전한
Context가 타입화된 key-value 데이터와 채팅 히스토리를 저장하며, 이는Session에 직렬화되어 영속화됩니다. - Execution Control: Tasks는 흐름을 결정하기 위해
NextAction을 반환합니다. 이를 통해 "step-by-step" 실행 (한 번에 하나의 task를 실행한 후 호출자에게 제어권을 반환) 또는 "fire-and-forget" 실행 (일시 중지될 때까지 여러 task를 체인 형태로 실행)이 가능합니다. - Routing: 엔진은 표준 에지, 조건부 에지 (컨텍스트 데이터에 기반한 분기), 그리고 여러 자식 태스크를 동시에 실행하기 위한
FanOutTask를 지원합니다. - Persistence: 프로세스 재시작 후에도 세션 상태가 유지되도록 스토리지 백엔드 (In-memory 및 PostgreSQL)를 포함합니다.
- LLM Integration:
Rig라이브러리와의 선택적 통합을 통해 채팅 히스토리를 관리하고 LLM 제공업체와 상통하는 것을 단순화합니다.
Who it’s for
LangGraph와 유사하지만 Rust의 성능과 타입 보증을 함께 제공하는 구조화되고 재개 가능한 워크플로우 엔진이 필요한, Rust로 프로덕션급 AI 에이전트를 구축하는 개발자입니다.
Highlights
Human-in-the-loop: 외부 입력이 제공될 때까지 워크플로우를 대기시키는 내장된
WaitForInput액션이 있습니다.Flexible Execution: 대화형식의 단계별 실행과 자동화된 연속 체인을 혼합하여 사용할 수 있습니다.
State Persistence: 세션 저장을 위한 네이티브 PostgreSQL 지원 및 레이스 컨디션을 방지하기 위한 낙관적 잠금(optimistic locking)을 지원합니다.
Parallelismism:
FanOutTask를 통해 단일 노드 내에서 서브 태스크를 병렬로 실행할 수 있습니다.Type-Safe Context: 비동기 태스크와 동기 에지 조건 전반에 걸에서 동작하는 직렬화 가능한 타입화된 상태 저장소입니다.