langgraph4j/langgraph4j
🚀 LangGraph for Java. A library for develop AI Agentic Architectures in the Java ecosystem. Designed to work seamlessly with both Langchain4j and Spring AI.
What it solves
LangGraph4j는 Java에서 복잡하고 상태를 유지하는 멀티 에이전트 AI 애플리케이션을 구축하는 방법을 제공합니다. 전통적인 선형 워크플로우의 한계를 극복하고, 에이전트, 도구 및 사용자 정의 로직이 루프백하거나 작업을 재시도하거나 협업할 수 있는 순환 그래프를 만들 수 있게 하며, 전체 프로세스에서 공유 메모리(상태)를 유지합니다.
How it works
이 라이브러리는 그래프 기반 아키텍처를 사용하여 애플리케이션 로직을 다음과 같이 분리합니다:
- StateGraph: 노드와 엣지를 정의하는 주요 구조.
- AgentState: 노드 간에 전달되는 공유 맵 형태 객체. "reducers"를 사용해 새로운 데이터(예: 채팅 메시지)를 기존 상태에 어떻게 병합할지 결정합니다.
- Nodes: 현재 상태를 받아 작업을 수행(예: LLM 호출)하고 상태 업데이트를 반환하는 개별 작업 단위(함수 또는 클래스).
- Edges: 흐름을 정의하는 연결자. "Normal edges"는 무조건 전환이며, "Conditional edges"는 현재 상태에 따라 다음에 방문할 노드를 동적으로 결정합니다.
- Compilation: 그래프는 검증된 후 불변의
CompiledGraph로 컴파일되어 실행됩니다.
Who it’s for
Java로 AI 에이전트 또는 멀티 에이전트 시스템을 구축하고 상태 관리와 제어 흐름을 구조화된 방식으로 다루고자 하는 개발자를 위한 것입니다. 특히 LangChain4j나 Spring AI와 같은 프레임워크를 이미 사용하고 있는 경우에 적합합니다.
Highlights
- Cyclical Workflows: 루프를 지원하여 자기 수정이나 반복적 정제와 같은 에이전트 행동에 필수적입니다.
- Ckeckpointing: 그래프의 상태를 언제든 저장·복원할 수 있어 디버깅이나 장시간 실행 프로세스 재개에 유용합니다.
- Persistence: MySQL, PostgreSQL, Redis, OracleDB, DynamoDB, CockroachDB, Hazelcast용 내장 세이버 제공.
- Visual Debugging: 그래프를 시각적으로 검사하고 실행할 수 있는 웹 UI "LangGraph4j Studio" 포함.
- Framework Integration: LangChain4j와 Spring AI에 대한 네이티브 지원.