Your browser does not support JavaScript!

LangGraph와 AI 에이전트 기반 시스템의 현재와 과거: LangChain을 중심으로

일일 보고서 2024년 07월 05일
goover

목차

  1. 요약
  2. LangGraph의 개요와 구조
  3. LangGraph와 LangChain 생태계
  4. LangGraph의 활용 사례
  5. 기술적 상세 사항 및 문제점
  6. LangGraph와 LangChain의 최신 업데이트
  7. 결론

1. 요약

  • 이 리포트는 LangGraph와 LangChain을 중심으로 AI 에이전트 기반 시스템의 개발과 활용에 대한 정보를 정리한 것입니다. LangGraph는 멀티 에이전트 시스템을 구성하는 데 중요한 도구이며, 상태 중심의 구조와 순환적 작업 처리를 통해 LLM(Applications Language Models) 애플리케이션에서 자주 사용됩니다. 리포트는 LangGraph의 핵심 개념과 LangChain 생태계 내에서의 역할, 그리고 다양한 실제 응용 사례와 최신 업데이트를 다룹니다. 이를 통해 독자는 LangGraph, LangChain, LangGraph Cloud, 그리고 Jockey 비디오 에이전트와 같은 주요 기술과 서비스의 기능과 적용 사례를 쉽게 이해할 수 있습니다.

2. LangGraph의 개요와 구조

  • 2-1. LangGraph 소개

  • LangGraph는 LangChain.js 위에 구축된 상태를 유지하며 다수의 액터 기반 애플리케이션을 구축하기 위한 라이브러리입니다. 이 라이브러리는 LangChain Expression Language를 확장하여 여러 계산 단계를 순환 방식으로 조정할 수 있게 합니다. 주된 용도는 LLM(Large Language Models) 애플리케이션에 사이클을 추가하는 것이며, 이를 통해 에이전트와 같은 행동을 하게 됩니다. 라이브러리는 상태를 중심으로 작동하며, 각 그래프 실행은 상태를 생성하여 그래프 내 노드 사이에 전파됩니다. 각 노드는 실행 후 반환값으로 이 상태를 업데이트합니다.

  • 2-2. 멀티 에이전트 시스템

  • LangGraph는 멀티 에이전트 시스템 구현 시 중요한 도구입니다. 멀티 에이전트 시스템에서 각 에이전트는 그래프의 노드로 표현되며, 각 노드는 상태를 주고받으며 작동합니다. 이러한 구성은 복잡한 작업을 순차적으로 처리하는데 유리하며, LangGraph는 사이클을 통해 각 에이전트의 행동을 조정할 수 있습니다.

  • 2-3. LangGraph의 핵심 개념

  • LangGraph의 주요 개념은 상태와 사이클링입니다. 상태는 각 노드가 실행되면서 업데이트 되며, 이는 그래프 선택 유형이나 커스텀 함수에 의해 정의됩니다. 또한, 사이클링을 통해 에이전트가 반복적으로 작동하며 다음 행동을 결정할 수 있게 합니다. LangGraph는 흔히 사용되는 DAG(반복 불가능한 그래프) 워크플로가 아니라, 순환적 행동에 최적화되어 있습니다.

3. LangGraph와 LangChain 생태계

  • 3-1. LangGraph Cloud 소개

  • LangGraph는 최근 LangChain 생태계에 새롭게 추가된 요소로, LangGraph Cloud의 출시로 관리형 호스팅 서비스가 LangGraph 애플리케이션 배포 및 호스팅을 위해 제공됩니다. LangGraph Cloud를 통해 사용자는 선호하는 IDE에서 애플리케이션을 개발한 후 GitHub를 통해 버전 관리 및 코드를 푸시할 수 있습니다. LangGraph Cloud는 이러한 코드를 접근하여 배포할 수 있으며, 애플리케이션 테스트, 트레이스 실행, 중단점 추가 등의 작업을 수행할 수 있습니다. LangGraph 스튜디오는 데이터 흐름을 시각화하고 실시간으로 단계를 스트리밍하여 사용자들이 노드를 편집하고 새로운 경로를 분기할 수 있게 합니다.

  • 3-2. LangChain의 역할

  • LangChain 생태계는 오픈 소스 소프트웨어와 상용 소프트웨어의 결합으로 빠르게 발전하고 있습니다. 상용 소프트웨어에는 LangSmith와 LangGraph Cloud가 포함됩니다. 에이전트 애플리케이션은 복잡하고 모호하며 암시적인 사용자 쿼리를 자동으로 처리할 수 있습니다. 에이전트는 사용자가 지정한 작업에 따라 이벤트 체인을 동적으로 생성하고, 큰 언어 모델(LLM)을 백본으로 사용합니다. 에이전트는 사용자의 쿼리를 수신하면 작업을 하위 작업으로 분해하여 순차적으로 실행합니다. 다양한 도구들이 에이전트에게 제공되며, 에이전트는 이러한 도구 설명을 기반으로 어떤 도구를 사용할지 결정합니다.

  • 3-3. LangGraph와 LangChain의 통합

  • LangGraph는 프레임워크와 상관없이 각 노드가 표준 Python 함수로 작동합니다. 이것은 다중 대화 턴이나 도구 호출 중 원활한 상태 관리를 지원합니다. 또한, 동적 기준에 따라 노드 간의 유연한 라우팅과 LLM과 인간 간의 원활한 전환을 지원합니다. LangGraph는 장기 실행 및 다중 세션 애플리케이션의 지속성을 유지하며, LangChain 생태계 내에서 중요한 통합 요소로 작용합니다. LangGraph Cloud에서는 코드 배포 및 애플리케이션 실행 과정을 관리할 수 있으며, LangGraph Studio를 통해 코드의 데이터 흐름을 시각적으로 확인하고 다양한 경로로 분기할 수 있는 강력한 도구를 제공합니다.

4. LangGraph의 활용 사례

  • 4-1. AI 에이전트 구축 예제

  • AI 에이전트는 자율적으로 특정 작업을 수행할 수 있는 소프트웨어 엔티티로, 다양한 어플리케이션에서 그 활용 가치가 높습니다. LangGraph는 이러한 AI 에이전트를 구축하는 데 커다란 도움이 되는 중요한 도구입니다. 예를 들어, 간단한 AI 에이전트를 구축하기 위해 필요로 하는 LangGraph 설치 방법과 Ollama의 설치 및 사용 방법을 소개합니다. 이를 통해, 사용자들은 LangGraph와 Ollama를 이용해 자신만의 로컬 AI 에이전트를 손쉽게 시작할 수 있습니다. 특히, LangGraph는 루프와 조건문을 지원하는 등의 고급 기능을 제공하여 더 복잡한 에이전트 동작을 설계할 수 있습니다.

  • 4-2. LangGraph 응용 프로그램

  • `LangGraph`를 이용한 응용 프로그램의 예로는 LangChain AgentExecutor를 대체하는 `LangGraph` v0.1이 있습니다. 이는 코드 흐름, 프롬프트, LLM 호출 등을 사용자 정의할 수 있는 유연한 API를 제공하며, 내장된 지속성 계층을 통해 작업 실행 전에 인간의 승인을 받을 수 있습니다. 또한 `LangGraph Cloud`를 통해 확장 가능한 인프라를 제공하며, 이는 여러 사용자와 대규모 상태 저장을 가능하게 합니다.

  • 4-3. Jockey 비디오 에이전트

  • Jockey는 Twelve Labs API와 LangGraph를 통합하여 고급 비디오 처리 능력을 가진 오픈 소스 대화형 비디오 에이전트입니다. 최신 버전의 Jockey는 LangGraph를 이용한 더 효율적이고 정밀한 비디오 워크플로우 관리를 제공합니다. Jockey의 아키텍처는 Supervisor, Planner, Worker로 구성된 멀티 에이전트 시스템으로, 복잡한 비디오 관련 작업을 처리합니다. 이 시스템은 다양한 작업을 수행하며 동적으로 적응할 수 있는 기능을 갖추고 있습니다. Jockey는 또한 LangGraph의 모듈성을 활용해 쉽게 커스터마이징이 가능하며, 비디오 검색, 텍스트 생성 등의 기능을 통해 복잡한 비디오 처리 작업을 효율적으로 수행합니다.

5. 기술적 상세 사항 및 문제점

  • 5-1. LangGraph와 LLM 통합

  • LangGraph는 LangChain 생태계 내에서 멀티 에이전트 시스템을 구축하는 중요한 도구로 사용됩니다. 이를 통해 Large Language Models (LLM)과의 통합이 원활하게 이루어지며, 이를 활용한 다양한 애플리케이션이 개발되고 있습니다. 대표적으로 'LangGraph 101: Building agents'와 같은 자료에서 이 통합 과정에 대한 상세한 설명을 확인할 수 있습니다. 이를 통해 LLM 기반의 에이전트 시스템이 효과적으로 구축될 수 있음을 보여줍니다. LangChain 생태계 내에서 LLM과의 통합을 더욱 강화하기 위한 다양한 안내서가 제공되고 있습니다. 예를 들어, Lakshya Agarwal의 'LangChain primer'와 Brandon Hancock의 'LangChain Masterclass for Beginners' 영상은 LangChain을 통해 LLM을 통합하고 활용하는 방법을 자세히 설명합니다.

  • 5-2. LangGraph의 제약과 해결책

  • LangGraph는 멀티 에이전트 시스템을 구성하며 강력한 도구로서 기능하지만, 몇 가지 제약사항도 존재합니다. 예를 들어, 복잡한 데이터 흐름과 높은 비용이 문제로 지적되었습니다. 이러한 문제들을 해결하기 위해 성능 최적화와 효율적인 자원 관리를 통해 제약을 극복하려는 다양한 접근법이 시도되고 있습니다. 문서 'Unveiling The Power Of LangChain And Retrieval-Augmented Generation (RAG)'에서 LangGraph의 제약에 대한 해결책으로 자주 인용되는 몇 가지 방안을 확인할 수 있습니다. 대표적으로 성능 최적화 기법과 자원 관리 전략이 이를 통해 발휘되는 효과에 대해 언급되었습니다.

  • 5-3. 성능 최적화

  • LangGraph의 성능 최적화는 중요한 과제로, 이를 통해 더욱 강력하고 효율적인 멀티 에이전트 시스템을 구축할 수 있습니다. 'LangChain Release Notes'에서 언급된 자료들을 통해 다양한 최적화 기법들이 설명되고 있습니다. 예를 들어, 코드 최적화, 자원 관리, 그리고 병렬 처리 기법을 통해 시스템의 성능을 극대화할 수 있습니다. 또한, LangChain 블로그와 유튜브 채널에서는 최신 제품 업데이트와 최적화 기법을 지속적으로 제공하여 개발자들이 최신 정보를 바탕으로 시스템을 최적화할 수 있도록 돕고 있습니다.

6. LangGraph와 LangChain의 최신 업데이트

  • 6-1. LangGraph v0.1 주요 기능

  • LangGraph는 멀티 에이전트 애플리케이션을 구축하기 위한 프레임워크로, 복잡한 시스템에서도 정밀 제어와 높은 신뢰성을 제공하는 것을 목표로 합니다. LangGraph v0.1의 주요 기능들을 살펴보면, 사용자는 코드 흐름, 프롬프트 및 LLM 호출에 대한 저수준 제어가 가능하며, 조건 분기와 반복 구문을 통해 단일 에이전트 또는 다중 에이전트 구성을 구축할 수 있습니다. Norwegian Cruise Line과 같은 회사에서는 이러한 기능을 활용해 AI 개발을 혁신적으로 변화시키고 있습니다. 또한, LangGraph는 모더레이션과 품질 체크 기능을 쉽게 추가할 수 있어, 작업 루프에서 에이전트가 일정 조건을 충족하지 않으면 작업을 일시 중지하고 필요 시 수정할 수 있습니다.

  • 6-2. LangGraph Cloud 베타 출시

  • LangGraph Cloud는 에이전트를 확장성 있고 안정적으로 배포하기 위한 인프라를 제공합니다. 현재 클로즈드 베타 단계에 있으며, 수평 확장이 가능한 작업 큐, 서버, 그리고 대규모 상태와 스레드를 효율적으로 처리할 수 있는 Postgres 체크포인터를 통해 많은 동시 사용자들을 지원합니다. LangGraph Cloud는 LangGraph 프레임워크와 상호작용하며, 스트리밍 및 인간-에이전트 협업과 같은 기능을 포함합니다. 또한, LangGraph Cloud는 비동기 백그라운드 작업과 크론 작업을 지원해, 장기 실행 작업의 완료 여부를 폴링 또는 웹훅으로 확인할 수 있습니다. LangGraph Studio는 LangGraph Cloud의 통합 개발 경험을 제공하며, 에이전트 경로를 시각화하고 디버그 모드에서 상태 편집, 작업 재개 등을 가능합니다.

  • 6-3. LangChain 최신 기능

  • LangChain은 LLM 애플리케이션을 구축하기 위한 프레임워크로, 모델, 체인, 에이전트, 프롬프트, 파서를 포함하고 있습니다. LangChain을 사용하면 Hugging Face와 OpenAI의 모델을 활용해 챗봇을 만들고, 프롬프트 템플릿을 생성하고, 대화 중 컨텍스트와 리소스를 관리하는 다양한 챗봇 메모리 전략을 통합할 수 있습니다. LangChain에서는 LangChain Expression Language (LCEL)을 이용해 더 유연하게 체인을 정의하고, 순차적 체인을 생성하며, 에이전트를 통합해 LLM을 사용한 의사 결정 애플리케이션을 만들 수 있습니다. 또한 외부 데이터를 통합해 지식 컷오프 문제를 해결하는 RAG(Revised Augmented Generation) 워크플로를 구현할 수 있습니다.

7. 결론

  • 이번 리포트는 LangGraph를 중심으로 한 AI 에이전트 시스템의 개요와 핵심 기술, 확장 사례, 그리고 최신 업데이트를 종합적으로 탐구했습니다. LangGraph는 복잡한 멀티 에이전트 시스템 구현에서 유용하게 사용되며, LangChain 생태계와의 통합을 통해 더욱 강력한 기능을 제공합니다. 예를 들어, Jockey와 같은 애플리케이션들이 이를 활용하여 고도화된 기능을 구현할 수 있음을 보여주었습니다. 그러나 이러한 시스템들은 여전히 높은 비용과 복잡성 등 몇 가지 제약을 안고 있으며, 이를 해결하기 위한 계속적인 연구와 최적화가 필요합니다. 향후 연구 방향으로는 LangGraph와 LangChain의 성능 최적화와 자원 관리 문제, 그리고 실질적인 애플리케이션에서의 적용 가능성을 높이는 방안을 제시할 수 있습니다. 또한, LangGraph Cloud 베타 버전의 출시와 같은 최신 업데이트는 개발자들이 더 효율적이고 안정적인 환경에서 작업을 진행할 수 있도록 돕습니다.

8. 용어집

  • 8-1. LangGraph [기술]

  • LangGraph는 멀티 에이전트 시스템을 구성하는 중요한 라이브러리로, LangChain.js를 기반으로 상호작용하는 에이전트를 그래프 형태로 구성할 수 있게 해줍니다. 주로 복잡한 데이터 흐름 관리와 상태 관리를 통해 에이전트 간의 협업을 가능하게 합니다.

  • 8-2. LangChain [프레임워크]

  • LangChain은 LLM 애플리케이션을 구축하는 데 사용되는 프레임워크로, 다양한 모델, 체인, 에이전트 등을 통합할 수 있습니다. LangGraph와 결합하여 멀티 에이전트 시스템을 구축할 때 높은 유연성과 확장성을 제공합니다.

  • 8-3. LangGraph Cloud [서비스]

  • LangGraph Cloud는 LangGraph 응용 프로그램을 클라우드 환경에서 관리하고 배포할 수 있게 해주는 서비스입니다. 클라우드 환경에서의 에이전트 배포를 간편하게 하고, 실시간 데이터 흐름 및 디버깅 기능을 제공합니다.

  • 8-4. Jockey [응용 프로그램]

  • Jockey는 Twelve Labs API와 LangGraph를 사용하여 고도화된 비디오 처리 기능을 제공하는 오픈 소스 대화형 비디오 에이전트입니다. 다양한 비디오 관련 작업을 동적으로 처리하며, LangGraph를 통해 확장성과 정밀한 제어를 구현합니다.

9. 출처 문서