LLM 상호작용의 세 가지 물결
이어서 두 번째 물결에서는 에이전트가 로컬 데스크톱 애플리케이션으로 기능하여 더 통합되었지만 여전히 지역화된 기능을 제공했습니다. 현재 세 번째 물결은 에이전트를 영구적이고 비동기적인 인프라 엔티티로 활용하는 데 중점을 두며, 이는 더 복잡하고 분산된 에이전트 시스템으로의 전환을 의미합니다.
오픈소스 Restate 프레임워크는 현재 에이전트 SDK의 한계를 해결하며, 복원력 있는 AI 백엔드 구축을 위한 내구성 있고 상태 저장 가능하며 분산된 기반을 제공합니다.
이어서 두 번째 물결에서는 에이전트가 로컬 데스크톱 애플리케이션으로 기능하여 더 통합되었지만 여전히 지역화된 기능을 제공했습니다. 현재 세 번째 물결은 에이전트를 영구적이고 비동기적인 인프라 엔티티로 활용하는 데 중점을 두며, 이는 더 복잡하고 분산된 에이전트 시스템으로의 전환을 의미합니다.
기존 에이전트 소프트웨어 개발 키트(SDK)는 개념 증명(POC)을 구현하고 빠르게 시작하는 데는 탁월하지만, 조직 전반의 분산 구성 요소를 연결하는 데는 종종 부족합니다. Van Dongen은 이러한 도구들이 복잡한 에이전트 시스템에 필요한 복잡하고 장기 실행되는 프로세스를 적절하게 지원하지 못한다고 강조했습니다. 견고한 분산 에이전트 애플리케이션을 구축하려면 현재 SDK가 일반적으로 제공하는 것 이상의 추가 인프라 계층이 필요합니다.
Apache Flink 및 Meta의 이벤트 인프라와 같은 기술에서 영감을 받은 Restate는 장기 실행되는 상태 저장 및 분산 프로세스를 효과적으로 관리하도록 특별히 설계되었습니다. 그 핵심 목적은 최신 백엔드 애플리케이션, 특히 AI 에이전트와 관련된 애플리케이션에 필요한 근본적인 내구성과 신뢰성을 제공하는 것입니다.
첫째, 내구성 있는 실행을 보장합니다. 즉, 에이전트 실행이 처음부터 다시 시작할 필요 없이 오류에서 재개될 수 있습니다. 둘째, 병렬 동시성을 지원하여 일관된 상태를 유지하면서 수천 개의 동시 세션을 관리할 수 있습니다. 셋째, Restate는 다양한 에이전트와 도구 간의 연결을 처리하여 견고한 에이전트 통신을 용이하게 합니다. 마지막으로, 프로세스 취소 및 중단된 작업 종료 기능을 포함한 포괄적인 제어 메커니즘을 제공합니다.
Restate는 에이전트 서비스 앞에 위치한 서버로 작동하며, 메시지 브로커 또는 프록시와 유사하게 기능합니다. 에이전트와의 열린 연결을 유지하며 지속적인 작동을 보장하는 '생명선' 역할을 효과적으로 수행합니다. 아키텍처의 중요한 측면은 모든 상호 작용을 기록하는 이벤트 저널을 사용하는 것입니다. 오류가 발생할 경우 이 저널을 통해 Restate는 프로세스를 실패한 정확한 지점으로 복구하여 내구성과 내결함성을 보장합니다.
모든 활성 에이전트의 레지스트리를 제공하여 사용자가 에이전트의 상태를 모니터링할 수 있도록 합니다. UI는 또한 에이전트의 실시간 실행 상태를 표시하고 이벤트 저널을 보여줍니다. 이 저널은 이벤트 시퀀스를 이해하고 오류 발생 시 복구 프로세스를 용이하게 하는 데 중요하며, 에이전트 동작에 대한 투명성을 제공합니다.
UI 왼쪽에 보이는 이벤트 저널은 에이전트에서 Restate 서버로 전송된 모든 이벤트를 기록합니다. 에이전트가 어떤 시점에서든 충돌하면 이 저널을 사용하여 실행을 실패한 정확한 순간으로 복구합니다. 시스템이 API 다운타임을 자동으로 재시도하여 처리하는 방법을 보여주는 예시는 외부 서비스 중단에도 불구하고 복원력을 보장하는 능력을 보여주었습니다. 저널은 일관된 기록 역할을 하여 원활한 복구를 가능하게 합니다.
Restate 프레임워크 내의 애플리케이션은 주로 표준 HTTP 핸들러를 작성하여 구현됩니다. 이러한 핸들러는 Restate SDK를 사용하여 내구성을 얻습니다. SDK는 함수를 Restate 서버에 연결하는 Restate 컨텍스트 객체를 제공하여 프레임워크의 기능을 활용할 수 있도록 합니다. 특히, `restate.run` 래퍼는 함수를 묶어 내구성을 갖게 하고 Restate 환경 내에서 견고한 실행을 보장하는 데 사용됩니다.
Restate의 내구성 있는 실행은 함수의 일시 중단을 허용하며, 조건이 충족될 때만 진행을 재개하도록 합니다. 이 기능은 인간 승인 워크플로와 같이 몇 주 또는 몇 달에 걸쳐 진행될 수 있는 장기 프로세스를 관리하는 데 특히 유용합니다. 프레임워크는 내구성 있는 약속을 일시 중단 지점으로 사용하여 불필요한 서버리스 실행 비용을 소모하지 않고 프로세스를 일시 중지하고 외부 입력을 기다릴 수 있도록 합니다. 이 접근 방식은 실제 진행이 있을 때만 계산을 실행하여 리소스 사용을 최적화하여 휴먼 인 더 루프 작업을 더욱 효율적이고 비용 효율적으로 만듭니다.
각 가상 객체는 고유 식별자를 가지므로 장기 실행 작업 중에 정밀한 제어 및 상호 작용이 가능합니다. 이 접근 방식은 시스템이 다양한 상호 작용 및 장기간에 걸쳐 에이전트 상태를 유지할 수 있도록 합니다.
수천 개의 에이전트 세션을 고도로 병렬화된 방식으로 실행하려면 에이전트가 서로 간섭하고 공유 상태를 손상시키는 것을 방지하기 위한 엄격한 조치가 필요합니다. Restate 프레임워크는 특정 세션에 대한 하나의 실행만 동시에 실행되도록 보장하여 격리를 보장합니다. 동일한 세션에 대해 여러 실행이 요청될 경우 후속 호출은 자동으로 대기열에 추가됩니다. 이 대기열 메커니즘은 극심한 병렬 처리 상황에서도 데이터 무결성을 보장하고 경쟁 조건을 방지합니다.
새로운 신호나 입력이 도착하면 Restate는 LLM을 사용하여 에이전트의 현재 진행 중인 루프에 대한 관련성을 지능적으로 결정합니다. LLM이 입력이 관련성이 있다고 판단하면 신호를 통해 현재 프로세스에 주입되어 에이전트가 동적으로 적응할 수 있도록 합니다. 그러나 입력이 현재 작업과 관련이 없다고 판단되면 시스템은 진행 중인 프로세스를 취소하고 새 정보로 다시 시작하여 에이전트가 항상 가장 관련성 있고 최신 컨텍스트에 집중하도록 합니다. 이 동적 의사 결정은 에이전트가 오래되거나 관련 없는 작업에 갇히는 것을 방지하면서 새로운 지침을 효율적으로 통합합니다.
Restate에서 취소는 에이전트 실행의 전체 호출 체인, 즉 스택 아래로 전파되는 신호로 작동합니다. 주 에이전트가 여러 하위 에이전트를 시작했다면 취소 신호는 먼저 해당 하위 에이전트를 대상으로 합니다. 일단 취소되면 주 컨트롤러 에이전트가 취소됩니다. 이 메커니즘은 호출 스택을 효과적으로 해제하여 에이전트가 상태를 롤백하고 진행 중인 작업을 깔끔하게 종료할 수 있는 기능을 제공하여 복잡한 다중 에이전트 프로세스 중에도 일관성을 보장합니다.
처음에 LLM 호출은 인라인, 지속적인 Python 함수로 구현될 수 있습니다. 그러나 이러한 상호 작용에 대한 더 많은 제어를 위해 로직을 별도의 전용 핸들러로 추출할 수 있습니다. 이 모듈화는 LLM 호출에 대한 정책 검사 및 기타 제어 메커니즘의 구현을 가능하게 합니다. 분산 통신 프리미티브가 인라인 실행을 대체하며, Restate 서비스 패브릭이 에이전트 간 통신을 관리하여 LLM 통합에 대한 보다 구조화되고 확장 가능한 접근 방식을 제공합니다.
에이전트 간 통신을 용이하게 하는 Restate 서비스 패브릭은 중요한 흐름 제어 기능도 제공합니다. 이를 통해 단일 부서를 LLM 게이트웨이에 대한 300개의 동시 호출로 제한하는 것과 같은 부서별 동시성 제한을 설정할 수 있습니다. 이러한 제어를 구현함으로써 시스템은 네트워크 오류 및 '좀비' 프로세스를 견딜 수 있는 복원력 있는 인프라를 보장하여 리소스 과부하를 방지하고 과부하 시에도 전반적인 시스템 안정성을 유지합니다. 이러한 리소스 액세스에 대한 사전 관리는 견고한 운영에 필수적입니다.
이는 이러한 입증된 원칙 위에 구축된 반복으로, 오픈소스 확장성 및 일반성을 위해 최적화되었습니다. 이 프레임워크는 다양한 백엔드 요구 사항에 광범위하게 적용될 수 있는 고가용성 솔루션을 만드는 데 중점을 두며, 견고하고 적응 가능한 시스템 설계에 대한 약속을 보여줍니다. 이 기반은 Restate가 복잡한 분산 워크플로를 안정적으로 처리할 수 있는 능력을 뒷받침합니다.
Restate는 단일 바이너리로 작동하여 배포 및 운영 관리를 크게 단순화합니다. 고가용성을 달성하는 것은 간단합니다. 사용자는 여러 바이너리 인스턴스를 시작하고 상태를 객체 저장소에 스냅샷하도록 구성할 수 있습니다. 이 프레임워크는 현재 6개의 SDK를 지원하며 다양한 에이전트 프레임워크와 원활하게 통합되어 다양한 개발 환경에서 사용 편의성과 다양성을 더욱 향상시킵니다. 이 설계 선택은 개발자를 위한 운영 오버헤드를 줄이는 것을 목표로 합니다.
Restate는 Restate가 사용자 클라우드 계정에 직접 배포되는 BYOC(Bring-Your-Own-Cloud) 모델을 포함한 유연한 배포 옵션을 제공합니다. 이 옵션은 데이터가 사용자 클라우드 내에 유지되도록 보장하여 중요한 데이터 프라이버시 및 주권 문제를 해결합니다. 또한, 수동 관리를 선호하는 사용자를 위해 관리형 클라우드 서비스도 제공됩니다. 코드베이스 탐색에 관심 있는 사용자를 위해 Restate는 GitHub에서 공개적으로 사용할 수 있습니다.
자막에서 근거가 되는 대목을 찾아 답합니다.
AI Engineer의 다음 글도 받아볼까요?
AI Engineer에 새 영상이 올라오면, 방금 읽으신 것처럼 정리해서 메일로 보내 드릴게요.
이 채널은 지난 7일 동안 40편 올렸어요.
Anthropic's 30,000 Daily Code Changes: The Verification Imperative in AI-Driven Software FactoriesAI Engineer23시간 전 게시 · 18:52 · 조회 2.4만 · 1시간 전 생성
AI 코드 리뷰 에이전트 만드는 법: Greptile의 Daksh Gupta가 말하는 교훈AI Engineer3일 전 게시 · 18:27 · 조회 2.8만 · 2일 전 생성
AI 에이전트가 코드 작성을 거의 공짜로 만들었다. Laurie Voss가 묻는 엔지니어에게 남은 일AI Engineer4일 전 게시 · 27:09 · 조회 4.3만 · 4일 전 생성