포도가게의 개발일지

바닥부터 LangGraph(2) 본문

Tech

바닥부터 LangGraph(2)

grape.store 2024. 12. 24. 09:36
반응형

LangGraph

- LangGraph는 LLM(대형 언어 모델)을 활용하여 상태 기반의 다중 액터 애플리케이션을 구축하는 라이브러리로, LangGraph는 사이클을 포함하는 흐름을 정의할 수 있어, 대부분의 에이전트 아키텍처에 필수적인 특성을 제공합니다. 

 

1. Flow

- LangGraph는 애플리케이션의 실행 흐름을 그래프 형태로 정의합니다. 각 그래프의 노드는 작업을 나타내며, 이 작업들은 다른 작업들과 연결되어 흐름을 형성합니다. 노드 간의 연결은 데이터 흐름을 정의하며, 각 노드는 입력출력을 갖습니다. 이 흐름은 에이전트가 실행하는 작업을 순차적 또는 조건부로 처리할 수 있게 합니다.

 

2. Cycles

- LangGraph의 중요한 특징 중 하나는 사이클을 지원하는 점입니다. 대부분의 전통적인 그래프 기반 시스템은 DAG(유향 비순환 그래프)를 사용하지만, LangGraph는 주기적인 흐름을 지원합니다. 이를 통해 에이전트가 반복적으로 이전 상태로 돌아가거나, 반복 작업을 수행할 수 있습니다. 예를 들어, 에이전트가 특정 작업을 반복하면서 조건에 따라 다른 경로로 흐를 수 있습니다.

 

3. State Management

- LangGraph는 상태를 추적하고 관리하는 데 중요한 역할을 합니다. 각 노드에서 작업을 수행한 후, LangGraph는 그 상태를 자동으로 저장합니다. 이로 인해 애플리케이션은 실행 중에 발생하는 오류를 처리하거나 중간 결과를 저장하고, 그래프의 실행을 중단하고 재개할 수 있습니다. 이 기능은 시간 여행(time travel), 오류 복구(error recovery), human-in-the-loop 워크플로우에 유용하게 사용됩니다.

 

4. Human-in-the-loop

- LangGraph는 사람의 개입을 가능하게 하는 기능을 내장하고 있습니다. 에이전트가 자동으로 진행하는 동안, 특정 지점에서 사람의 승인이나 수정을 받을 수 있습니다. 예를 들어, 에이전트가 예측한 결과가 잘못되었거나 개선이 필요할 때, 인간 사용자가 개입하여 정확한 방향으로 수정할 수 있습니다.

 

5. Brancing & Conditional Flow

- LangGraph는 조건문을 사용하여 조건부 흐름을 정의할 수 있습니다. 각 노드는 조건에 따라 실행될 수 있는 여러 경로를 가질 수 있으며, 이를 통해 에이전트가 다양한 상황에 맞춰 다르게 행동하도록 할 수 있습니다.

 

6. Streaming

- LangGraph는 실시간 스트리밍을 지원하여, 각 노드에서 처리되는 데이터나 출력이 실시간으로 생성될 때 이를 바로 처리할 수 있게 합니다. 예를 들어, 텍스트 또는 데이터가 처리되는 즉시 출력 스트림을 통해 결과를 확인할 수 있습니다. 이 기능은 특히 토큰 스트리밍 같은 작업에서 유용합니다.

 

7. Persistence

- LangGraph는 그래프의 실행 중에 상태를 자동으로 저장하고, 이를 활용해 재개할 수 있는 기능을 제공합니다. 이 기능은 중요한 애플리케이션에서, 특히 긴 실행 시간이 요구되거나 예기치 않은 오류가 발생할 가능성이 있는 경우 매우 중요합니다. 지속성은 또한 장기 메모리 기능을 지원하며, 에이전트가 과거의 상태나 데이터를 기억하고 이를 바탕으로 결정을 내릴 수 있도록 합니다.

'Tech' 카테고리의 다른 글

바닥부터 LangChain(4)  (0) 2024.12.26
바닥부터 LangFlow(3)  (0) 2024.12.24
바닥부터 LangChain(1)  (0) 2024.12.20
바닥부터 LangChain(0)  (3) 2024.12.20
[k8s] Strategy for Gitops  (0) 2024.04.27
Comments