Rath-Team/OpenRath
An open-source, PyTorch-like runtime for dynamic multi-agent and multi-session workflows.
무엇을 해결하는가
OpenRath는 여러 에이전트가 분기 가능한 대화 상태에서 협업해야 하는 대규모 에이전트 클러스터 관리의 복잡성을 해결합니다. 간단한 에이전트 루프에서 데이터 흐름 중심 모델로 이동하여 "프롬프트 스파게티"를 방지하고, 대화 컨텍스트를 반복되는 문자열이 아닌 구조화되고 재사용 가능한 청크로 취급함으로써 토큰 소비를 줄입니다.
어떻게 작동하는가
PyTorch의 모듈러 디자인에서 영감을 얻어, OpenRath는 에이전트 런타임 상태를 흐르는 값인 Session으로 취급합니다.
- Session: 대화 기록, 계통, 샌드박스 배치를 포함하는 핵심 데이터 객체입니다. 복잡한 실행 그래프를 만들기 위해 포크, 병합, 분리할 수 있습니다.
- Agent: 프롬프트와 제공자를 사용하여 Session을 입력받아 수정된 Session을 반환하는 재사용 가능한 변환 레이어(신경망 레이어와 유사)입니다.
- Workflow: 에이전트, 도구, 기타 워크플로를 연결하는 컴포저블 컨테이너입니다.
- Sandbox: 도구가 실제로 실행되는 실행 환경(로컬 또는 OpenSandbox를 통해 컨테이너화)입니다.
- Memory: 서로 다른 실행에서 사실을 회상하고 커밋할 수 있도록 하는 지속적인 상태 레이어입니다.
- Selector: 현재 세션 상태를 기반으로 다음 워크플로를 동적으로 선택하는 LLM 기반 라우터입니다.
누가 사용하는가
복잡한 멀티 에이전트 시스템을 구축하는 개발자들로, 지속 가능한 메모리, 추적 가능한 실행 계통, 그리고 대화 상태를 잃지 않고 많은 협업 에이전트를 관리할 수 있는 능력이 필요한 사람들입니다.
주요 특징
- Session-Centric Dataflow: 컨텍스트는 구조화된 청크로 처리되어 대화 브랜치의 효율적인 포크와 병합을 허용합니다.
- Traceable Lineage: 특정 출력을 생성한 역할이나 도구를 추적할 수 있는 그래프 형태의 출처 레이어를 유지합니다.
- Modular Composition: 워크플로는 중첩 및 재사용이 가능하여 수백 개의 에이전트 관리가 가능해집니다.
- Decoupled Backends: 실행(샌드박스)과 지속성(OpenViking과 같은 메모리 백엔드) 모두에 대해 유연한 플러그인을 지원합니다.
- Dynamic Routing: 일반 Python을 사용하여
Selector를 통해 LLM 기반 제어 흐름(if/while)을 구현합니다.