yoheinakajima/activegraph
Event-sourced graph runtime for durable and stateful agents
해결하는 문제
Active Graph는 높은 감사 가능성과 실행 재개, 포크 또는 차이점 비교 기능이 필요한 장기 실행 에이전트 시스템을 위해 설계되었습니다. 대화 기록에 의존하는 기존의 채팅 기반 에이전트와 달리, Active Graph는 공유 그래프를 워크스페이스로 사용하여 상태 변화에 행동이 반응하도록 함으로써 전체 프로세스를 추적하고 재현할 수 있게 합니다.
작동 원리
이 시스템은 이벤트 소싱 방식의 반응형 그래프 런타임입니다. 신뢰할 수 있는 소스로서 추가 전용(append-only) 이벤트 로그를 유지하며, 현재의 세계 상태(그래프)는 해당 로그의 투영입니다.
- Behaviors: 특정 이벤트 유형 또는 그래프 패턴(Cypher 서브셋 사용)을 구독하고 새로운 이벤트를 생성하는 반응형 코드(함수, 클래스 또는 LLM 기반) 단위입니다.
- Relations: "relation-behavior" 프리미티브를 도입하여 조정 로직이 엔드포인트가 아닌 객체 사이의 에지(edge)에 존재할 수 있도록 합니다.
- Replay and Forking: 이벤트 소싱 방식이므로 모든 실행을 로그로부터 재실행할 수 있습니다. 시스템은 "fork-and-diff"를 지원하여 사용자가 임의의 이벤트에서 실행을 분기하고, 구성을 변경하며, 공유 접두사를 재실행하지 않고도 결과의 구조적 차이를 비교할 수 있게 합니다.
- Packs: 모듈화를 위해 도메인별 로직, 객체 유형 및 도구가 "packs"로 번들링됩니다.
대상 사용자
엄격한 감사 추적, 결정론적 재생, 그리고 포크 및 차이점 비교를 통한 가설 검증 기능이 필요한 복잡하고 자율적인 에이전트를 구축하는 개발자.
주요 특징
- 이벤트 소싱 아키텍처: 모든 변경 사항은 이벤트이며, 완전한 감사 추적을 제공합니다.
- Fork-and-Diff: 실행을 분기하고 결과를 구조적으로 비교하며, LLM 호출에 캐시를 활용하여 포크 비용을 낮게 유지합니다.
- Relation-Behaviors: 고유한 조정 패턴을 위해 타입화된 에지에 로직을 연결합니다.
- 패턴 기반 구독: 그래프 형태 및 시간적 술어에 따라 행동을 트리거할 수 있습니다.
- 결정론적 재생: 시스템 동작의 재현성을 보장하기 위해 엄격(strict) 및 허용(permissive) 모드를 지원합니다.