langgraph4j/langgraph4j

🚀 LangGraph for Java is a library for Graph Engineering, designed to build sophisticated AI agentic architectures within the Java ecosystem. It works seamlessly with both Langchain4j and Spring AI.

해결하는 문제

LangGraph4j는 Java에서 상태를 유지하는 다중 에이전트 AI 애플리케이션을 구축할 수 있는 방법을 제공합니다. 전통적인 방향성 비순환 그래프(DAG)의 한계를 극복하여, AI가 이전 단계로 돌아가거나 작업을 재시도하거나 설명을 요청해야 하는 에이전트 워크플로우에 필수적인 순환 그래프를 지원합니다.

작동 방식

이 라이브러리는 그래프 기반 접근 방식으로 AI 워크플로우를 정의합니다:

  • StateGraph: 개발자가 노드(작업)와 엣지(전이)를 정의하는 주요 구조입니다.
  • AgentState: 노드 간에 공유되는 상태(기본적으로 맵)입니다. 리듀서는 새로운 데이터가 이 상태에 어떻게 병합될지를 결정합니다(예: 덮어쓰기 또는 리스트에 추가).
  • 노드: 현재 상태를 받아 계산(예: LLM 호출)을 수행하고 상태 업데이트를 반환하는 개별 논리 단위입니다.
  • 엣지: 흐름을 제어합니다. 일반 엣지는 조건 없이 작동하지만, 조건부 엣지는 현재 상태를 기반으로 다음 노드를 동적으로 결정하는 로직을 사용합니다.
  • 지속성: CheckpointSaver를 통해 그래프 상태를 다양한 데이터베이스(MySQL, PostgreSQL, Redis 등)에 저장할 수 있어 장시간 실행 프로세스 및 워크플로우 재개/디버깅이 가능합니다.

대상 사용자

LangChain4j 또는 Spring AI를 이미 사용 중인 Java 개발자 중, 에이전트 협업, 메모리, 제어 흐름을 체계적으로 관리하고자 하는 분들을 대상으로 합니다.

주요 특징

  • 순환 그래프 지원: 루프와 반복적인 에이전트 추론을 가능하게 합니다.
  • 상태 관리: 노드 간 공유되고 리듀서 기반의 상태를 통해 컨텍스트 인식이 가능합니다.
  • 지속성: 여러 데이터베이스 백엔드를 내장 지원하여 그래프 상태를 저장하고 재개할 수 있습니다.
  • 시각적 디버깅: 그래프의 시각적 검사와 실행이 가능한 Studio 웹 UI를 포함합니다.
  • 프레임워크 통합: LangChain4j 및 Spring AI와 원활하게 연동됩니다.
  • 비동기/스트리밍: 비차단 작업과 LLM에서의 스트리밍 결과를 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트