langchain4j
무엇인가
LangChain4j는 JVM에서 LLM 기반 애플리케이션을 만드는 Java 라이브러리다. Python·JavaScript 진영의 LLM 라이브러리가 차지하던 자리를 Java 쪽에서 담당한다. 이름과 달리 Python LangChain을 Java로 옮긴 포트가 아니라 Java 관례에 맞춰 처음부터 새로 설계한 라이브러리이며, 2023년 초부터 개발됐다.
어떻게 동작하나
채팅 모델과 임베딩(벡터) 스토어 각각에 공통 인터페이스를 두고, 제공자별 구현체를 그 뒤에 끼우는 구조다. 그 위에 프롬프트 템플릿, 채팅 메모리 관리, 함수(툴) 호출, 에이전트, RAG 파이프라인 같은 추상화가 층으로 쌓인다. 툴 호출에는 MCP 지원이 포함된다. RAG는 데이터 수집부터 검색까지 이어지는 파이프라인으로 구성한다. 각 추상화마다 인터페이스 하나와 여러 개의 즉시 사용 가능한 구현체가 짝을 이룬다.
무엇과 다른가
제공자 SDK를 직접 쓰면 제공자마다 API가 다르고 모델이나 스토어를 바꿀 때 코드를 고쳐야 한다. LangChain4j는 그 위에 단일 API를 놓아 교체 지점을 한 곳으로 모은다. Python LangChain과는 API, 내부 구조, 릴리스 주기가 독립적이다. Java의 타입 안전성, POJO, 애노테이션, 인터페이스, 의존성 주입, 플루언트 API를 전제로 설계됐다.
어떻게 쓰나
Java 프로젝트에 의존성으로 추가해 쓴다. Quarkus는 quarkus-langchain4j, Helidon은 io.helidon.integrations.langchain4j, Micronaut은 micronaut-langchain4j를 쓰며 Spring Boot 연동도 있다. 순수 Java 예제와 각 프레임워크별 예제가 langchain4j-examples 저장소에 있고, 문서는 docs.langchain4j.dev에 있다.
전제와 한계
라이브러리는 활발히 개발 중이라 일부 기능은 아직 작업 중이고 핵심 기능은 사용할 수 있는 상태다. JVM에서 실행되는 Java 프로젝트를 전제로 한다. 어떤 LLM 제공자와 임베딩 스토어를 쓸 수 있는지는 제공자별 구현체에 따라 다르다. 문서 챗봇은 실험 단계다.
관련 논문 5
유사 도구
- langchainLLM 애플리케이션과 에이전트를 조립하는 Python 프레임워크다. 모델·임베딩·벡터 스토어·툴을 표준 인터페이스로 감싸 제공자 교체를 코드 수정 없이 처리한다.
- quivrRAG 파이프라인을 YAML 워크플로로 정의해 LLM 앱에 붙이는 Python 라이브러리다. LLM·벡터스토어·파서를 교체할 수 있다.
- rigRust로 LLM 애플리케이션을 만드는 라이브러리다. 20여 개 모델 제공자와 벡터 스토어를 단일 인터페이스로 묶고, 에이전트 런타임을 기본 제공한다.
- WeKnora원시 문서를 수집해 검색 가능한 RAG 지식베이스와 자율 추론 에이전트, 자체 유지 위키로 바꾸는 Go 기반 자체 호스팅 LLM 지식 플랫폼이다.
- difyLLM 애플리케이션을 워크플로·RAG·에이전트·모델 관리·관측까지 한 워크스페이스에서 만들고, 클라우드나 셀프호스팅으로 배포하는 오픈소스 플랫폼이다.
- txtai벡터 인덱스·그래프·관계형 DB를 합친 임베딩 데이터베이스 위에서 시맨틱 검색과 LLM 워크플로를 돌리는 Python AI 프레임워크다.