AI 에이전트의 미래는 '로그'에 있다!
AI 에이전트의 핵심은 모델이나 실행 루프가 아닌, 이벤트 기록(Event History)인 로그에 있다는 주장 제기
로그 중심 설계(Log-centric Design)를 통해 에이전트의 상태를 완벽히 복원하고 재개 가능함을 강조
데이터 불변성(Data Immutability)을 기반으로 신뢰성, 확장성, 포크(Forking) 등 다양한 시스템 속성 확보 가능성 제시
에이전트 상태 재구성을 위한 로그의 역할
본문에서는 AI 에이전트의 핵심 상태를 불변하는 이벤트 로그(Immutable Event Log)로 정의하며, 모든 사용자 입력, 모델 출력, 도구 호출 및 결과가 순차적으로 기록된다고 설명함.
데이터 영속성(Data Durability): 로그는 에이전트의 모든 활동을 기록하는 유일한 진실 공급원(Single Source of Truth) 역할을 수행함.
재개 가능성(Resumability): 로그만 있으면 어떤 실행기(Executor)든 에이전트의 이전 상태를 완벽하게 복원하여 작업을 재개할 수 있음.
상태 관리 단순화(State Management Simplification): 모델, 런타임, 도구는 상태를 저장하는 대신 로그를 읽고 쓰는 역할만 수행하므로, 복잡한 상태 관리 로직이 불필요해짐.
결과적으로, 로그 중심 아키텍처(Log-centric Architecture)는 에이전트의 신뢰성과 복원력을 극대화하는 기반이 된다.
로그 중심 설계의 시스템 속성: 신뢰성과 확장성
에이전트를 로그로 정의함으로써 신뢰성(Reliability)과 확장성(Scalability) 측면에서 상당한 이점을 얻을 수 있다고 주장함.
신뢰성: 실행기(Executor)가 실패하더라도, 로그에 기록된 상태를 기반으로 다른 실행기가 작업을 즉시 이어받아 중단 없는 서비스(Uninterrupted Service) 제공이 가능함.
확장성: 단일 머신에 종속되지 않고, 수천 개의 에이전트 상태를 로그에서 재구성하여 여러 워커(Worker)가 병렬로 처리할 수 있음.
장애 조치(Failover) 용이성: 에이전트 상태가 로그에 있으므로, 특정 워커의 장애 발생 시 상태 마이그레이션(State Migration)이나 복잡한 조정 없이 즉시 다른 워커로 전환 가능.
이는 기존의 상태 저장 방식(Stateful 방식)에서 발생하는 고정 세션(Sticky Session) 문제나 복잡한 조정 오버헤드(Coordination Overhead)를 해소함.
로그 기반 에이전트의 포크(Forking) 및 멀티플레이어 기능
로그를 에이전트의 상태로 간주하면 다양한 실험과 협업 시나리오를 쉽게 구현할 수 있음.
포크(Forking): 로그의 특정 시점에서 분기하여 서로 다른 모델(Model)이나 도구(Tool)를 사용하는 여러 에이전트 실행 경로를 생성할 수 있음. 이는 다양한 전략 탐색이나 A/B 테스트에 유용함.
멀티플레이어(Multiplayer): 에이전트의 상태를 단순히 복사하는 것이 아니라, 공유 가능한 내구성 있는 기록(Durable History)으로 취급하여 여러 사용자가 동시에 에이전트의 상태를 검사하거나 작업을 확장할 수 있음.
이러한 기능은 에이전트의 유연성과 협업 가능성을 크게 향상시키며, 복잡한 에이전트 애플리케이션 개발을 용이하게 함.
로그 압축(Compaction)과 에이전트 상태의 관계
모델의 유한한 컨텍스트 창(Context Window) 때문에 로그 전체를 매번 모델에 전달하는 것은 불가능하며, 이 문제를 해결하기 위해 로그 압축(Log Compaction)이 필요함.
손실 압축(Lossy Compression): 압축 과정은 정보를 요약하거나 제거하는 손실 과정이며, 원본 로그의 모든 세부 정보를 보존하지는 않음.
에이전트 정체성 유지: 압축된 요약본은 에이전트의 상태를 완벽히 재현할 수 없으므로, 원본 로그의 중요성을 오히려 강화함. 원본 로그가 에이전트의 '진실'이며, 압축본은 그 '투영(Projection)' 중 하나임.
새로운 로그로 재개: 압축은 기존 로그를 대체하는 것이 아니라, 새로운 로그로 간주하고 재개하는 것이 가장 깔끔한 접근 방식임. 이를 통해 원본 로그의 불변성을 유지하면서도 컨텍스트 창 제약을 극복할 수 있음.
외부 상태 변경과 로그 중심 에이전트의 한계
에이전트가 파일을 수정하거나 이메일을 보내는 등 로그 외부의 상태를 변경하는 경우, 에이전트의 상태가 로그에만 국한되지 않는다는 반론이 제기될 수 있음.
상태 재파생(State Re-derivation): 에이전트의 상태는 여전히 로그를 기반으로 재구성되지만, 로그는 실제 세계의 변경 사항을 반영하지는 않음. 예를 들어, 이미 보낸 이메일을 로그가 되돌릴 수는 없음.
결정론적(Deterministic) 보장 불가: 로그는 에이전트의 행동과 관찰 기록을 충실히 보존하지만, 세계의 결정론이나 되돌릴 수 있음(Reversibility)을 보장하지는 않음.
게임 세이브 파일과의 유사성: 이는 게임의 세이브 파일이 게임 엔진이나 맵이 아닌, 플레이어의 상태만 저장하여 게임을 재개하는 것과 유사함. 에이전트는 외부 세계와 상호작용하며 자신의 세계관을 업데이트해야 함.